2021-05-21 08:49:41 +02:00
< ? php
include ( " _gen/widget.gen.rechnung.php " );
class WidgetRechnung extends WidgetGenRechnung
{
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` , `zahlungsstatus` , `bezahlt_am` , `skonto_gegeben` , `ist`
FROM `rechnung`
WHERE `id` = % d ' ,
$id
)
);
$schreibschutzbefore = $before [ 'schreibschutz' ];
$projektbevor = $before [ 'projekt' ]; //$this->app->DB->Select("SELECT projekt FROM rechnung WHERE id = '$id' LIMIT 1");
$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 , 'rechnung' , $projektdanachid );
}
if ( ! $schreibschutzbefore && ( bool ) $this -> app -> Secure -> GetPOST ( 'schreibschutz' )) {
$this -> app -> DB -> Update (
sprintf (
'UPDATE rechnung SET zuarchivieren = 1 WHERE id = %d' ,
$id
)
);
}
if ( empty ( $this -> app -> Secure -> GetPOST ( 'mahnwesenfestsetzen' ))) {
$this -> form -> HTMLList [ 'zahlungsstatus' ] -> htmlvalue = $before [ 'zahlungsstatus' ];
$this -> form -> HTMLList [ 'zahlungsstatus' ] -> dbvalue = $before [ 'zahlungsstatus' ];
$this -> form -> HTMLList [ 'bezahlt_am' ] -> htmlvalue
= ( empty ( $before [ 'bezahlt_am' ]) || $before [ 'bezahlt_am' ] === '0000-00-00' )
? ''
: $this -> app -> String -> Convert ( $before [ 'bezahlt_am' ], '%1-%2-%3' , '%3.%2.%1' );
$this -> form -> HTMLList [ 'bezahlt_am' ] -> dbvalue = $before [ 'bezahlt_am' ];
$this -> form -> HTMLList [ 'skonto_gegeben' ] -> htmlvalue = $before [ 'skonto_gegeben' ];
$this -> form -> HTMLList [ 'skonto_gegeben' ] -> dbvalue = $before [ 'skonto_gegeben' ];
$this -> form -> HTMLList [ 'ist' ] -> htmlvalue = $before [ 'ist' ];
$this -> form -> HTMLList [ 'ist' ] -> dbvalue = $before [ 'ist' ];
}
}
$this -> app -> YUI -> AutoComplete ( " adresse " , " kunde " , 1 );
$this -> app -> YUI -> AutoComplete ( " projekt " , " projektname " , 1 );
$this -> app -> YUI -> AutoComplete ( " lieferschein " , " lieferschein " , 1 );
$this -> app -> YUI -> AutoComplete ( " auftragid " , " auftrag " , 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 " );
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 " );
}
if ( $this -> app -> Secure -> GetGET ( " action " ) == " edit " )
{
$this -> app -> Tpl -> Add ( 'FURTHERTABS' , '<li><a href="index.php?module=rechnung&action=minidetail&id=[ID]&frame=true#tabs-4">Protokoll</a></li>' );
$this -> app -> Tpl -> Add ( 'FURTHERTABSDIV' , '<div id="tabs-4"></div>' );
}
$this -> app -> erp -> AnzeigeAbweichendeBezeichnung ( " rechnung " );
$this -> form -> ReplaceFunction ( " ist " , $this , " ReplaceDecimal " );
$this -> form -> ReplaceFunction ( " kurs " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " skonto_gegeben " , $this , " ReplaceDecimal " );
//$this->app->YUI->DatePicker("datum");
$this -> app -> YUI -> DatePicker ( " ustbrief_eingang_am " );
$this -> app -> YUI -> DatePicker ( " lieferdatum " );
$this -> app -> YUI -> DatePicker ( " datum " );
$this -> app -> YUI -> DatePicker ( " bezahlt_am " );
$this -> app -> YUI -> DatePicker ( " einzugsdatum " );
$this -> app -> YUI -> DatePicker ( " mahnwesen_datum " );
if ( $auftragArr [ 0 ][ 'rma' ] == 1 )
$this -> app -> YUI -> ParserVarIf ( 'RMA' , 1 );
else
$this -> app -> YUI -> ParserVarIf ( 'RMA' , 0 );
$this -> form -> ReplaceFunction ( " adresse " , $this , " ReplaceKundennummer " );
$this -> form -> ReplaceFunction ( " projekt " , $this , " ReplaceProjekt " );
$this -> form -> ReplaceFunction ( " datum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " einzugsdatum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " mahnwesen_datum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " lieferdatum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " ustbrief_eingang_am " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " lieferschein " , $this , " ReplaceLieferschein " );
$this -> form -> ReplaceFunction ( " gruppe " , $this , " ReplaceGruppe " );
$this -> form -> ReplaceFunction ( " auftragid " , $this , " ReplaceAuftrag " );
$this -> form -> ReplaceFunction ( " datum " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " bezahlt_am " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " zahlungszielskonto " , $this , " ReplaceBetrag " );
$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 " );
$zahlungsweise = $this -> app -> erp -> GetZahlungsweise ( 'rechnung' , $id );
//$zahlungsstatus= $this->app->erp->GetZahlungsstatus();
$zahlungsstatus = $this -> app -> DB -> Select ( " SELECT zahlungsstatus FROM rechnung WHERE id=' $id ' LIMIT 1 " );
$this -> app -> Tpl -> Set ( 'ZAHLUNGSSTATUS' , $zahlungsstatus );
$status = $this -> app -> erp -> GetStatusRechnung ();
$zahlungsweisenmodule = $this -> app -> DB -> SelectArr ( " SELECT id, modul, type FROM zahlungsweisen WHERE verhalten = 'rechnung' " );
2022-05-23 21:03:20 +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-23 21:03:20 +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 );
$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 );
$field = new HTMLInput ( " land " , " hidden " , " " );
$this -> form -> NewField ( $field );
$field = new HTMLCheckbox ( " mahnwesenfestsetzen " , " " , " " , " 1 " );
$field -> onclick = " mahnwesenfest(this.form.mahnwesenfestsetzen.value); " ;
$this -> form -> NewField ( $field );
for ( $i = date ( 'Y' ); $i < date ( 'Y' ) + 20 ; $i ++ )
{
$jahr [] = $i ;
}
for ( $i = 1 ; $i < 13 ; $i ++ )
{
$monat [] = $i ;
}
if ( $this -> app -> erp -> ModulVorhanden ( 'bundesstaaten' ))
{
$typOptions = $this -> app -> erp -> GetTypSelect ();
$field = new HTMLSelect ( " bundesstaat " , 0 , " bundesstaat " , false , false , " 1 " );
$this -> form -> NewField ( $field );
if ( $id > 0 ){
$schreibschutz = $this -> app -> DB -> Select ( " SELECT schreibschutz FROM rechnung WHERE id = ' $id ' LIMIT 1 " );
} else {
$schreibschutz = 0 ;
}
$this -> app -> YUI -> BundeslaenderSelect ( 'EPROO_SELECT_BUNDESSTAAT' , 'land' , 'bundesstaat' , $this -> app -> DB -> Select ( " SELECT land FROM rechnung WHERE id = ' $id ' LIMIT 1 " ), $this -> app -> DB -> Select ( " SELECT bundesstaat FROM rechnung WHERE id = ' $id ' LIMIT 1 " ), $schreibschutz ? true : false );
} else {
$this -> app -> Tpl -> Set ( 'VORBUNDESSTAAT' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHBUNDESSTAAT' , '-->' );
}
$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 );
$field = new HTMLInput ( " datum " , " text " , " " , 10 );
$field -> readonly = " readonly " ;
$this -> form -> NewField ( $field );
}
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 ReplaceKundennummer ( $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 ReplaceLieferschein ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceLieferschein ( $db , $value , $fromform );
}
function ReplaceAuftrag ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceAuftrag ( $db , $value , $fromform );
}
function ReplaceDecimal ( $db , $value , $fromform )
{
//value muss hier vom format ueberprueft werden
return str_replace ( " , " , " . " , $value );
}
function ReplaceBetrag ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceBetrag ( $db , $value , $fromform );
}
}
?>