2021-05-21 08:49:41 +02:00
<? php
include ( "_gen/widget.gen.auftrag.php" );
class WidgetAuftrag extends WidgetGenAuftrag
{
private $app ;
function __construct ( & $app , $parsetarget )
{
$this -> app = & $app ;
$this -> parsetarget = $parsetarget ;
parent :: __construct ( $app , $parsetarget );
$this -> ExtendsForm ();
}
function ExtendsForm ()
{
$id = $this -> app -> Secure -> GetGET ( "id" );
$this -> form -> ReplaceFunction ( "datum" , $this , "ReplaceDatum" );
$this -> form -> ReplaceFunction ( "reservationdate" , $this , "ReplaceDatum" );
$this -> form -> ReplaceFunction ( "einzugsdatum" , $this , "ReplaceDatum" );
$this -> form -> ReplaceFunction ( "lieferdatum" , $this , "ReplaceDatum" );
$this -> form -> ReplaceFunction ( "tatsaechlicheslieferdatum" , $this , "ReplaceDatum" );
$this -> form -> ReplaceFunction ( "gueltigbis" , $this , "ReplaceDatum" );
$this -> form -> ReplaceFunction ( "projekt" , $this , "ReplaceProjekt" );
$this -> form -> ReplaceFunction ( "adresse" , $this , "ReplaceKunde" );
$this -> form -> ReplaceFunction ( "angebotid" , $this , "ReplaceAngebot" );
$this -> form -> ReplaceFunction ( "gruppe" , $this , "ReplaceGruppe" );
$this -> form -> ReplaceFunction ( "standardlager" , $this , "ReplaceLager" );
$this -> form -> ReplaceFunction ( "zahlungszielskonto" , $this , "ReplaceBetrag" );
$this -> form -> ReplaceFunction ( "kurs" , $this , "ReplaceBetrag" );
$this -> app -> YUI -> AutoComplete ( "kostenstelle" , "kostenstelle" , 1 );
if ( $this -> app -> Secure -> GetPOST ( 'speichern' ) != '' ) {
$before = $this -> app -> DB -> SelectRow (
sprintf ( 'SELECT projekt, schreibschutz FROM auftrag WHERE id = %d' , $id )
);
$schreibschutzbefore = $before [ 'schreibschutz' ];
$projektbevor = $before [ 'projekt' ];
$projektabkuerzung = $this -> app -> DB -> Select ( "SELECT abkuerzung FROM projekt WHERE id = ' $projektbevor ' LIMIT 1" );
$projektdanach = explode ( ' ' , $this -> app -> Secure -> GetPOST ( 'projekt' ));
$projektdanach = reset ( $projektdanach );
$overwriteZahlungsweise = null ;
$overwriteVersandart = null ;
if ( ! $schreibschutzbefore && $projektdanach != $projektabkuerzung ){
$projektdanach = $this -> app -> DB -> Select ( "SELECT id FROM projekt WHERE abkuerzung = ' $projektdanach ' LIMIT 1" );
$this -> app -> erp -> LoadSteuersaetze ( $id , 'auftrag' , $projektdanach );
if ( ! empty ( $projektdanach )){
$standardlager = $this -> app -> DB -> Select ( "SELECT l.id FROM projekt p INNER JOIN lager l ON p.standardlager = l.id WHERE p.id = ' $projektdanach ' LIMIT 1" );
if ( $standardlager && $this -> form -> CallbackAndMandatorycheck ( true )){
$this -> form -> HTMLList [ 'standardlager' ] -> htmlvalue = $this -> app -> DB -> Select ( "SELECT bezeichnung FROM lager WHERE id = ' $standardlager ' LIMIT 1" );
$this -> form -> HTMLList [ 'standardlager' ] -> dbvalue = $standardlager ;
}
$deactivateautoshipping = $this -> app -> erp -> Projektdaten ( $projektdanach , 'deactivateautoshipping' );
if ( $deactivateautoshipping && $this -> form -> CallbackAndMandatorycheck ( true )) {
$this -> form -> HTMLList [ 'autoversand' ] -> htmlvalue = 0 ;
$this -> form -> HTMLList [ 'autoversand' ] -> dbvalue = 0 ;
}
$query = sprintf ( "SELECT zahlungsweise, zahlungsweiselieferant, versandart FROM projekt WHERE id='%s'" ,
$projektdanach );
$projectDefaultData = $this -> app -> DB -> SelectRow ( $query );
if ( $this -> form -> HTMLList [ 'lieferantenauftrag' ] -> htmlvalue ){
if ( ! empty ( $projectDefaultData [ 'zahlungsweiselieferant' ]) && $this -> form -> CallbackAndMandatorycheck ( true )){
$overwriteZahlungsweise = $projectDefaultData [ 'zahlungsweiselieferant' ];
}
} else {
if ( ! empty ( $projectDefaultData [ 'zahlungsweise' ]) && $this -> form -> CallbackAndMandatorycheck ( true )){
$overwriteZahlungsweise = $projectDefaultData [ 'zahlungsweise' ];
}
}
if ( ! empty ( $projectDefaultData [ 'versandart' ]) && $this -> form -> CallbackAndMandatorycheck ( true )){
$overwriteVersandart = $projectDefaultData [ 'versandart' ];
}
}
}
if ( ! $schreibschutzbefore && ( bool ) $this -> app -> Secure -> GetPOST ( 'schreibschutz' )) {
$this -> app -> DB -> Update (
sprintf (
'UPDATE auftrag SET zuarchivieren = 1 WHERE id = %d' ,
$id
)
);
}
if ( $this -> form -> CallbackAndMandatorycheck ( true ))
{
if ( $this -> app -> Secure -> GetPOST ( 'lieferantenauftrag' ))
{
$this -> app -> DB -> Update ( "UPDATE auftrag SET lieferantkdrnummer = '" . reset ( explode ( ' ' ,( $this -> app -> Secure -> GetPOST ( 'lieferant' )))) . "' WHERE id = ' $id ' LIMIT 1" );
} else {
$this -> app -> DB -> Update ( "UPDATE auftrag SET lieferantkdrnummer = '" . reset ( explode ( ' ' ,( $this -> app -> Secure -> GetPOST ( 'adresse' )))) . "' WHERE id = ' $id ' LIMIT 1" );
}
$modus = 'speichern' ;
$this -> app -> erp -> RunHook ( 'auftrageditdetail' , 2 , $id , $modus );
}
}
$adresse = $this -> app -> DB -> Select ( "SELECT adresse FROM auftrag WHERE id=' $id ' LIMIT 1" );
$this -> app -> YUI -> AutoComplete ( "adresse" , "kunde" , 1 );
$this -> app -> YUI -> AutoComplete ( "lieferant" , "lieferant" , 1 );
$this -> app -> YUI -> AutoComplete ( "angebotid" , "angebot" , 1 );
$this -> app -> YUI -> AutoComplete ( "projekt" , "projektname" , 1 );
$this -> app -> YUI -> AutoComplete ( "gruppe" , "verband" );
$this -> app -> YUI -> AutoComplete ( "aktion" , "aktionscode" , 1 );
$this -> app -> YUI -> AutoComplete ( "standardlager" , "lager" );
$this -> app -> YUI -> AutoComplete ( "lieferbedingung" , "lieferbedingungen" );
if ( $this -> app -> erp -> Firmendaten ( "briefhtml" ) == "1" )
{
$this -> app -> YUI -> CkEditor ( "bodyzusatz" , "belege" );
$this -> app -> YUI -> CkEditor ( "freitext" , "belege" );
$this -> app -> YUI -> CkEditor ( "internebemerkung" , "internal" );
}
$this -> form -> ReplaceFunction ( "lieferant" , $this , "ReplaceLieferant" );
$field = new HTMLCheckbox ( "lieferantenauftrag" , "" , "" , "1" );
$field -> onclick = "lieferantenauftraganzeige(this.form.lieferantenauftrag.value);" ;
$this -> form -> NewField ( $field );
$this -> app -> erp -> AnzeigeAbweichendeBezeichnung ( "auftrag" );
if ( $adresse > 0 )
{
$this -> app -> YUI -> AutoComplete ( "ihrebestellnummer" , "ihrebestellnummer" , 0 , "&adresse= $adresse " );
}
if ( $this -> app -> Secure -> GetGET ( "action" ) == "edit" ){
$this -> app -> Tpl -> Add ( 'FURTHERTABS' , '<li><a href="index.php?module=auftrag&action=minidetail&id=[ID]&frame=true#tabs-4">Protokoll</a></li>' );
$this -> app -> Tpl -> Add ( 'FURTHERTABSDIV' , '<div id="tabs-4"></div>' );
}
$this -> app -> YUI -> DatePicker ( "datum" );
$this -> app -> YUI -> DatePicker ( "lieferdatum" );
$this -> app -> YUI -> DatePicker ( "einzugsdatum" );
$this -> app -> YUI -> DatePicker ( "reservationdate" );
$this -> app -> YUI -> DatePicker ( "tatsaechlicheslieferdatum" );
$this -> app -> Tpl -> Set ( 'READONLY' , "readonly" );
$typOptions = $this -> app -> erp -> GetTypSelect ();
$field = new HTMLSelect ( "typ" , 0 );
//$field->onchange="onchange_typ(this.form.typ.options[this.form.typ.selectedIndex].value);";
$field -> AddOptionsSimpleArray ( $typOptions );
$this -> form -> NewField ( $field );
$versandart = $this -> app -> erp -> GetVersandartAuftrag (( int ) $this -> app -> DB -> Select ( "SELECT projekt FROM auftrag WHERE id = ' $id ' LIMIT 1" ));
$zahlungsweise = $this -> app -> erp -> GetZahlungsweise ( 'auftrag' , $id );
$zahlungsstatus = $this -> app -> erp -> GetZahlungsstatus ();
$typ = $this -> app -> erp -> GetKreditkarten ();
$status = $this -> app -> erp -> GetStatusAuftrag ();
for ( $i = 2009 ; $i < date ( 'Y' ) + 5 ; $i ++ )
{
$jahr [] = $i ;
}
for ( $i = 1 ; $i < 13 ; $i ++ )
{
$monat [] = $i ;
}
$this -> app -> Tpl -> Set ( 'VORWUNSCHLAGER' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHWUNSCHLAGER' , '-->' );
$projectRow = $this -> app -> DB -> SelectRow (
"SELECT p.standardlager, p.kommissionierverfahren, a.projekt
FROM auftrag a
INNER JOIN projekt p ON a.projekt=p.id
WHERE a.id=' $id '"
);
$projekt = $projectRow [ 'projekt' ]; //$this->app->DB->Select("SELECT projekt FROM auftrag WHERE id = '$id' LIMIT 1");
if ( $projekt ) {
if ( $this -> app -> DB -> Select ( "SELECT count(id) FROM lager" ) > 1
|| $projectRow [ 'standardlager' ] > 0 ) {
$kommissionierverfahren = $projectRow [ 'kommissionierverfahren' ]; //$this->app->DB->Select("SELECT kommissionierverfahren FROM projekt WHERE id = '$projekt' LIMIT 1");
if (( $kommissionierverfahren === 'lieferscheinlager'
|| $kommissionierverfahren === 'lieferscheinlagerscan'
|| $kommissionierverfahren === 'lieferscheinscan'
|| $kommissionierverfahren === 'lieferschein' )) {
$this -> app -> Tpl -> Set ( 'VORWUNSCHLAGER' , '' );
$this -> app -> Tpl -> Set ( 'NACHWUNSCHLAGER' , '' );
}
}
}
if ( $this -> app -> erp -> ModulVorhanden ( 'kommissionskonsignationslager' ))
{
$this -> form -> ReplaceFunction ( "kommissionskonsignationslager" , $this , "ReplaceLagerPlatz" );
$this -> app -> YUI -> AutoComplete ( "kommissionskonsignationslager" , "lagerplatz" );
$kommissionskonsignationslagerbezeichnung = $this -> app -> erp -> Firmendaten ( 'kommissionskonsignationslager' );
if (( String ) $kommissionskonsignationslagerbezeichnung === '' ) $kommissionskonsignationslagerbezeichnung = 'Kommissions-/Konsignationslager' ;
$this -> app -> Tpl -> Set ( 'KOMMISSIONIERLAGER' , $kommissionskonsignationslagerbezeichnung );
} else {
$this -> app -> Tpl -> Set ( 'VORKOMMISSIONSKONSIGNATIONSLAGER' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHKOMMISSIONSKONSIGNATIONSLAGER' , '-->' );
}
$waehrungOptions = $this -> app -> erp -> GetWaehrung ();
$field = new HTMLSelect ( "waehrung" , 0 , "waehrung" , false , false , "1" );
$field -> AddOptionsSimpleArray ( $waehrungOptions );
$this -> form -> NewField ( $field );
$sprachenOptions = $this -> app -> erp -> GetSprachenSelect ( $id ? $this -> app -> DB -> Select ( "SELECT sprache FROM adresse WHERE id = ' $id ' LIMIT 1" ) : null );
$field = new HTMLSelect ( "sprache" , 0 , "sprache" , false , false , "1" );
//$field->onchange="onchange_typ(this.form.typ.options[this.form.typ.selectedIndex].value);";
$field -> AddOptionsSimpleArray ( $sprachenOptions );
$this -> form -> NewField ( $field );
//$this->app->erp->GetSelect($versandart,$this->app->
$field = new HTMLSelect ( "versandart" , 0 );
// $field->onchange="versand(this.form.versandart.options[this.form.versandart.selectedIndex].value);";
$field -> AddOptionsSimpleArray ( $versandart );
$this -> form -> NewField ( $field );
if ( ! empty ( $overwriteZahlungsweise )){
$this -> form -> HTMLList [ 'versandart' ] -> htmlvalue = $overwriteVersandart ;
$this -> form -> HTMLList [ 'versandart' ] -> dbvalue = $overwriteVersandart ;
}
$field = new HTMLSelect ( "kreditkarte_typ" , 0 );
$field -> AddOptionsSimpleArray ( $typ );
$this -> form -> NewField ( $field );
$field = new HTMLSelect ( "kreditkarte_monat" , 0 );
$field -> AddOptionsSimpleArray ( $monat );
$this -> form -> NewField ( $field );
$field = new HTMLSelect ( "kreditkarte_jahr" , 0 );
$field -> AddOptionsSimpleArray ( $jahr );
$this -> form -> NewField ( $field );
// $this->app->Tpl->Set(ONCHANGE_ZAHLUNGSART,"onchange=\"aktion_buchen(this.form.zahlungsweise.options[this.form.zahlungsweise.selectedIndex].value);\"");
$zahlungsweisenmodule = $this -> app -> DB -> SelectArr ( "SELECT id, modul, type FROM zahlungsweisen WHERE verhalten = 'rechnung'" );
2022-05-30 14:37:13 +02:00
if ( ! is_null ( $zahlungsweisenmodule )) {
for ( $iz = 0 ; $iz < count ( $zahlungsweisenmodule ); $iz ++ ) $cmdcheck [] = " cmd=='" . $zahlungsweisenmodule [ $iz ][ 'type' ] . "'" ;
}
2021-05-21 08:49:41 +02:00
$field = new HTMLSelect ( "zahlungsweise" , 0 );
2022-05-30 14:37:13 +02:00
if ( ! is_null ( $zahlungsweisenmodule )) {
if ( count ( $zahlungsweisenmodule ) > 0 )
$field -> onchange = "var cmd = this.form.zahlungsweise.options[this.form.zahlungsweise.selectedIndex].value; if(" . implode ( ' || ' , $cmdcheck ) . ") cmd='rechnung'; aktion_buchen(cmd);" ;
else
$field -> onchange = "var cmd = this.form.zahlungsweise.options[this.form.zahlungsweise.selectedIndex].value; aktion_buchen(cmd);" ;
}
2021-05-21 08:49:41 +02:00
$field -> AddOptionsSimpleArray ( $zahlungsweise );
$this -> form -> NewField ( $field );
if ( ! empty ( $overwriteZahlungsweise )){
$this -> form -> HTMLList [ 'zahlungsweise' ] -> htmlvalue = $overwriteZahlungsweise ;
$this -> form -> HTMLList [ 'zahlungsweise' ] -> dbvalue = $overwriteZahlungsweise ;
}
$field = new HTMLSelect ( "zahlungsstatus" , 0 );
$field -> AddOptionsSimpleArray ( $zahlungsstatus );
$this -> form -> NewField ( $field );
$field = new HTMLCheckbox ( "abweichendelieferadresse" , "" , "" , "1" );
$field -> onclick = "abweichend2();" ;
$this -> form -> NewField ( $field );
$field = new HTMLInput ( "land" , "hidden" , "" );
$this -> form -> NewField ( $field );
$field = new HTMLInput ( "lieferland" , "hidden" , "" );
$this -> form -> NewField ( $field );
$field = new HTMLInput ( "datum" , "text" , "" , 10 );
//$field->readonly="readonly";
$this -> form -> NewField ( $field );
if ( $this -> app -> erp -> ModulVorhanden ( 'bundesstaaten' ))
{
$typOptions = $this -> app -> erp -> GetTypSelect ();
$field = new HTMLSelect ( "bundesstaat" , 0 , "bundesstaat" , false , false , "1" );
$this -> form -> NewField ( $field );
$typOptions = $this -> app -> erp -> GetTypSelect ();
$field = new HTMLSelect ( "lieferbundesstaat" , 0 , "lieferbundesstaat" , false , false , "1" );
$this -> form -> NewField ( $field );
if ( $id > 0 ){
$schreibschutz = $this -> app -> DB -> Select ( "SELECT schreibschutz FROM auftrag WHERE id = ' $id ' LIMIT 1" );
} else {
$schreibschutz = 0 ;
}
$this -> app -> YUI -> BundeslaenderSelect ( 'EPROO_SELECT_BUNDESSTAAT' , 'land' , 'bundesstaat' , $this -> app -> DB -> Select ( "SELECT land FROM auftrag WHERE id = ' $id ' LIMIT 1" ), $this -> app -> DB -> Select ( "SELECT bundesstaat FROM auftrag WHERE id = ' $id ' LIMIT 1" ), $schreibschutz ? true : false );
$this -> app -> YUI -> BundeslaenderSelect ( 'EPROO_SELECT_LIEFERBUNDESSTAAT' , 'lieferland' , 'lieferbundesstaat' , $this -> app -> DB -> Select ( "SELECT lieferland FROM auftrag WHERE id = ' $id ' LIMIT 1" ), $this -> app -> DB -> Select ( "SELECT lieferbundesstaat FROM auftrag WHERE id = ' $id ' LIMIT 1" ), $schreibschutz ? true : false );
} else {
$this -> app -> Tpl -> Set ( 'VORBUNDESSTAAT' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHBUNDESSTAAT' , '-->' );
}
$modus = 'anzeigen' ;
$this -> app -> erp -> RunHook ( 'auftrageditdetail' , 2 , $id , $modus );
}
function ReplaceGruppe ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceGruppe ( $db , $value , $fromform );
}
function ReplaceAngebot ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceAngebot ( $db , $value , $fromform );
}
function ReplaceLieferant ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceLieferantennummer ( $db , $value , $fromform );
}
function ReplaceProjekt ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceProjekt ( $db , $value , $fromform );
}
function ReplaceKunde ( $db , $value , $fromform )
{
if ( $db && $this -> app -> Secure -> GetPOST ( 'lieferantenauftrag' ))
{
return $this -> app -> erp -> ReplaceLieferantennummer ( 1 , $this -> app -> Secure -> GetPOST ( 'lieferant' ), 1 );
}
return $this -> app -> erp -> ReplaceKundennummer ( $db , $value , $fromform );
}
function ReplaceDatum ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceDatum ( $db , $value , $fromform );
}
function ReplaceLager ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceLager ( $db , $value , $fromform );
}
function ReplaceLagerPlatz ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceLagerPlatz ( $db , $value , $fromform );
}
function ReplaceBetrag ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceBetrag ( $db , $value , $fromform );
}
function ReplaceDecimal ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceDecimal ( $db , $value , $fromform );
}
}