2021-05-21 08:49:41 +02:00
< ? php
include ( " _gen/widget.gen.angebot.php " );
class WidgetAngebot extends WidgetGenAngebot
{
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' );
if ( $id > 0 && $this -> app -> Secure -> GetPOST ( 'speichern' ) != '' ) {
$before = $this -> app -> DB -> SelectRow (
sprintf ( 'SELECT projekt, schreibschutz FROM angebot 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 );
$projektdanachid = $this -> app -> DB -> Select ( " SELECT id FROM projekt WHERE abkuerzung = ' $projektdanach ' AND IFNULL(geloescht,0) = 0 LIMIT 1 " );
if ( ! $schreibschutzbefore && $projektdanach != $projektabkuerzung ){
$this -> app -> erp -> LoadSteuersaetze ( $id , 'angebot' , $projektdanachid );
}
if ( ! $schreibschutzbefore && ( bool ) $this -> app -> Secure -> GetPOST ( 'schreibschutz' )) {
$this -> app -> DB -> Update (
sprintf (
'UPDATE angebot SET zuarchivieren = 1 WHERE id = %d' ,
$id
)
);
}
}
$this -> app -> YUI -> AutoComplete ( " adresse " , " kunde " , 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 ( " kostenstelle " , " kostenstelle " , 1 );
$this -> app -> YUI -> AutoComplete ( " lieferbedingung " , " lieferbedingungen " );
$this -> app -> YUI -> AutoComplete ( 'standardlager' , 'lager' );
//$this->app->Tpl->Add('JQUERY','$("#adresse").keyup(function (e) {if (e.keyCode == 13) {document.getElementById("eprooform").submit();}});');
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 ( " kurs " , $this , " ReplaceBetrag " );
$this -> app -> erp -> AnzeigeAbweichendeBezeichnung ( " angebot " );
$this -> app -> YUI -> DatePicker ( " datum " );
$this -> app -> YUI -> DatePicker ( " lieferdatum " );
$this -> app -> YUI -> DatePicker ( " gueltigbis " );
$this -> app -> YUI -> DatePicker ( " planedorderdate " );
if ( $this -> app -> Secure -> GetGET ( " action " ) == " edit " ){
$this -> app -> Tpl -> Add ( 'FURTHERTABS' , '<li><a href="index.php?module=angebot&action=minidetail&id=[ID]&frame=true#tabs-4">Protokoll</a></li>' );
$this -> app -> Tpl -> Add ( 'FURTHERTABSDIV' , '<div id="tabs-4"></div>' );
}
$this -> form -> ReplaceFunction ( " datum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " lieferdatum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " gueltigbis " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " planedorderdate " , $this , " ReplaceDatum " );
//$this->form->ReplaceFunction("lieferdatum",&$this,"ReplaceDatum");
$this -> form -> ReplaceFunction ( " projekt " , $this , " ReplaceProjekt " );
$this -> form -> ReplaceFunction ( " adresse " , $this , " ReplaceKunde " );
$this -> form -> ReplaceFunction ( " gruppe " , $this , " ReplaceGruppe " );
$this -> form -> ReplaceFunction ( " zahlungszielskonto " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( 'standardlager' , $this , 'ReplaceLager' );
// $this->app->YUI->AutoComplete("waehrung","waehrung");
$waehrungOptions = $this -> app -> erp -> GetWaehrung ();
$field = new HTMLSelect ( " waehrung " , 0 , " waehrung " , false , false , " 1 " );
$field -> AddOptionsSimpleArray ( $waehrungOptions );
$this -> form -> NewField ( $field );
if ( $this -> app -> Secure -> GetPOST ( 'speichern' ) != '' ) {
$before = $this -> app -> DB -> SelectRow (
sprintf ( 'SELECT projekt, schreibschutz FROM angebot WHERE id = %d' , $id )
);
$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 );
if ( empty ( $before [ 'schreibschutz' ]) && $projektdanach != $projektabkuerzung ){
$projektdanach = $this -> app -> DB -> Select ( " SELECT id FROM projekt WHERE abkuerzung = ' $projektdanach ' LIMIT 1 " );
$this -> app -> erp -> LoadSteuersaetze ( $id , 'angebot' , $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 ;
}
}
}
}
$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' , '' );
}
}
}
$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 );
$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 );
$id = $this -> app -> Secure -> GetGET ( " id " );
$versandart = $this -> app -> erp -> GetVersandartAuftrag (( int ) $this -> app -> DB -> Select ( " SELECT projekt FROM angebot WHERE id = ' $id ' LIMIT 1 " ));
$zahlungsweise = $this -> app -> erp -> GetZahlungsweise ( 'angebot' , $id );
$zahlungsstatus = $this -> app -> erp -> GetZahlungsstatus ();
$typ = $this -> app -> erp -> GetKreditkarten ();
$status = $this -> app -> erp -> GetStatusAuftrag ();
for ( $i = 2009 ; $i < 2020 ; $i ++ )
{
$jahr [] = $i ;
}
for ( $i = 1 ; $i < 13 ; $i ++ )
{
$monat [] = $i ;
}
//$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 );
$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-24 14:49:51 +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-24 14:49:51 +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 );
$field = new HTMLSelect ( " zahlungsstatus " , 0 );
$field -> AddOptionsSimpleArray ( $zahlungsstatus );
$this -> form -> NewField ( $field );
$field = new HTMLCheckbox ( " abweichendelieferadresse " , " " , " " , " 1 " );
$field -> onclick = " abweichend2(this.form.abweichendelieferadresse.value); " ;
$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 angebot WHERE id = ' $id ' LIMIT 1 " );
} else {
$schreibschutz = 0 ;
}
$this -> app -> YUI -> BundeslaenderSelect ( 'EPROO_SELECT_BUNDESSTAAT' , 'land' , 'bundesstaat' , $this -> app -> DB -> Select ( " SELECT land FROM angebot WHERE id = ' $id ' LIMIT 1 " ), $this -> app -> DB -> Select ( " SELECT bundesstaat FROM angebot WHERE id = ' $id ' LIMIT 1 " ), $schreibschutz ? true : false );
$this -> app -> YUI -> BundeslaenderSelect ( 'EPROO_SELECT_LIEFERBUNDESSTAAT' , 'lieferland' , 'lieferbundesstaat' , $this -> app -> DB -> Select ( " SELECT lieferland FROM angebot WHERE id = ' $id ' LIMIT 1 " ), $this -> app -> DB -> Select ( " SELECT lieferbundesstaat FROM angebot WHERE id = ' $id ' LIMIT 1 " ), $schreibschutz ? true : false );
} else {
$this -> app -> Tpl -> Set ( 'VORBUNDESSTAAT' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHBUNDESSTAAT' , '-->' );
}
}
function ReplaceLager ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceLager ( $db , $value , $fromform );
}
function ReplaceGruppe ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceGruppe ( $db , $value , $fromform );
}
function ReplaceProjekt ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceProjekt ( $db , $value , $fromform );
}
function ReplaceKunde ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceKundennummer ( $db , $value , $fromform );
}
function ReplaceDatum ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceDatum ( $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 );
}
}