mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-16 13:07:14 +01:00
317 lines
13 KiB
PHP
317 lines
13 KiB
PHP
<?php
|
|
include ("_gen/widget.gen.verbindlichkeit.php");
|
|
|
|
class WidgetVerbindlichkeit extends WidgetGenVerbindlichkeit
|
|
{
|
|
/** @var Application $pp */
|
|
private $app;
|
|
|
|
/**
|
|
* WidgetVerbindlichkeit constructor.
|
|
*
|
|
* @param Application $app
|
|
* @param string $parsetarget
|
|
*/
|
|
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 `schreibschutz` FROM `verbindlichkeit` WHERE `id` = %d', $id)
|
|
);
|
|
if(!empty($before['schreibschutz'])) {
|
|
$freigabe = (int)$this->app->Secure->GetPOST('freigabe');
|
|
$rechnungsfreigabe = (int)$this->app->Secure->GetPOST('rechnungsfreigabe');
|
|
$klaerfall = (int)$this->app->Secure->GetPOST('klaerfall');
|
|
$klaergrund = $this->app->Secure->GetPOST('klaergrund');
|
|
$this->app->DB->Update(
|
|
sprintf(
|
|
"UPDATE `verbindlichkeit`
|
|
SET `freigabe` = %d, `rechnungsfreigabe` = %d, `klaerfall` = %d, `klaergrund` = '%s'
|
|
WHERE `id` = %d ",
|
|
$freigabe, $rechnungsfreigabe, $klaerfall, $klaergrund, $id
|
|
)
|
|
);
|
|
$this->app->Location->execute(
|
|
'index.php?module=verbindlichkeit&action=edit&id='.$id
|
|
.'&msg='.$this->app->erp->base64_url_encode('<div class="info">Die Daten wurden gespeichert!</div>'));
|
|
}
|
|
}
|
|
|
|
$this->form->ReplaceFunction("adresse",$this,"ReplaceLieferant");
|
|
$this->form->ReplaceFunction("zahlbarbis",$this,"ReplaceDatum");
|
|
$this->form->ReplaceFunction("rechnungsdatum",$this,"ReplaceDatum");
|
|
$this->form->ReplaceFunction("eingangsdatum",$this,"ReplaceDatum");
|
|
$this->form->ReplaceFunction("skontobis",$this,"ReplaceDatum");
|
|
$this->form->ReplaceFunction("bezahltam",$this,"ReplaceDatum");
|
|
$this->form->ReplaceFunction("betrag",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("skonto",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("frachtkosten",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("summenormal",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("summeermaessigt",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("bestellung",$this,"ReplaceBestellung");
|
|
$this->form->ReplaceFunction("projekt",$this,"ReplaceProjekt");
|
|
$this->form->ReplaceFunction("auftrag",$this,"ReplaceAuftrag");
|
|
|
|
$this->app->YUI->AutoComplete("waehrung","waehrung");
|
|
|
|
$this->app->YUI->AutoSaveUserParameter('projekt','teilprojekt_filter');
|
|
$this->app->YUI->AutoComplete('teilprojekt','arbeitspaket');
|
|
|
|
$this->form->ReplaceFunction("teilprojekt",$this,"ReplaceArbeitspaket");
|
|
|
|
for($i=1;$i<=15;$i++)
|
|
{
|
|
$this->form->ReplaceFunction("bestellung".$i,$this,"ReplaceBestellung");
|
|
$this->app->YUI->AutoComplete("bestellung".$i,"bestellung",1);
|
|
$this->form->ReplaceFunction("bestellung".$i."betrag",$this,"ReplaceDecimal");
|
|
$this->app->YUI->AutoComplete("bestellung".$i."projekt","projektname",1);
|
|
$this->form->ReplaceFunction("bestellung".$i."projekt",$this,"ReplaceProjekt");
|
|
$this->app->YUI->AutoComplete("bestellung".$i."kostenstelle","kostenstelle",1);
|
|
|
|
$this->form->ReplaceFunction("bestellung".$i."auftrag",$this,"ReplaceAuftrag");
|
|
$this->app->YUI->AutoComplete("bestellung".$i."auftrag","auftragihrebestellnummer",1);
|
|
}
|
|
|
|
$this->app->YUI->AutoComplete("adresse","lieferant");
|
|
$this->app->YUI->AutoComplete("kunde","kunde");
|
|
$this->app->YUI->AutoComplete("mitarbeiter","mitarbeiter");
|
|
$this->app->YUI->AutoComplete("sonstige","adresse");
|
|
$this->app->YUI->AutoComplete("kostenstelle","kostenstelle",1);
|
|
$this->app->YUI->AutoComplete("bestellung","bestellung",1);
|
|
$this->app->YUI->AutoComplete("projekt","projektname",1);
|
|
|
|
//$this->app->YUI->AutoComplete("sachkonto","sachkonto",1);
|
|
|
|
$this->app->YUI->AutoComplete("buha_konto1","sachkonto",1);
|
|
$this->app->YUI->AutoComplete("buha_konto2","sachkonto",1);
|
|
$this->app->YUI->AutoComplete("buha_konto3","sachkonto",1);
|
|
$this->app->YUI->AutoComplete("buha_konto4","sachkonto",1);
|
|
$this->app->YUI->AutoComplete("buha_konto5","sachkonto",1);
|
|
|
|
$this->form->ReplaceFunction("buha_betrag1",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("buha_betrag2",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("buha_betrag3",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("buha_betrag4",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("buha_betrag5",$this,"ReplaceDecimal");
|
|
|
|
|
|
$this->form->ReplaceFunction("ustnormal",$this,"ReplaceSteuersatzNormal");
|
|
$this->form->ReplaceFunction("ustermaessigt",$this,"ReplaceSteuersatzErmaessigt");
|
|
$this->form->ReplaceFunction("uststuer3",$this,"ReplaceSteuersatz");
|
|
$this->form->ReplaceFunction("uststuer4",$this,"ReplaceSteuersatz");
|
|
$this->form->ReplaceFunction("summesatz3",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("summesatz4",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction("betragbezahlt",$this,"ReplaceDecimal");
|
|
$this->form->ReplaceFunction('skonto_erhalten',$this,'ReplaceDecimal');
|
|
|
|
$this->app->YUI->AutoComplete("auftrag","auftragihrebestellnummer",1);
|
|
|
|
$this->app->Secure->POST["firma"]=$this->app->User->GetFirma();
|
|
$field = new HTMLInput("firma","hidden",$this->app->User->GetFirma());
|
|
$this->form->NewField($field);
|
|
|
|
$this->app->YUI->DatePicker("zahlbarbis");
|
|
$this->app->YUI->DatePicker("skontobis");
|
|
$this->app->YUI->DatePicker("rechnungsdatum");
|
|
$this->app->YUI->DatePicker("eingangsdatum");
|
|
$this->app->YUI->DatePicker("bezahltam");
|
|
$this->app->YUI->CkEditor("internebemerkung","internal");
|
|
|
|
|
|
$field = new HTMLSelect("art",0);
|
|
$field->onchange="onchange_art(this.form.art.options[this.form.art.selectedIndex].value);";
|
|
$field->AddOptionsSimpleArray(array('lieferant'=>'Lieferant','kunde'=>'Kunde','sonstige'=>'Sonstige'));
|
|
$this->form->NewField($field);
|
|
$id = $this->app->Secure->GetGET("id");
|
|
$this->app->erp->RunHook('liability_widget',1, $id);
|
|
$zahlungsweise = $this->app->erp->GetZahlungsweise('verbindlichkeit', $id);
|
|
|
|
$field = new HTMLSelect("zahlungsweise",0);
|
|
$field->onchange="aktion_buchen(this.form.zahlungsweise.options[this.form.zahlungsweise.selectedIndex].value);";
|
|
$field->AddOptionsSimpleArray($zahlungsweise);
|
|
$this->form->NewField($field);
|
|
|
|
$weiteresteuer1 = $this->app->erp->GetKonfiguration('verbindlichkeit_steuertext1');
|
|
if(!$weiteresteuer1)$weiteresteuer1 = 'Weitere Steuer';
|
|
$weiteresteuer2 = $this->app->erp->GetKonfiguration('verbindlichkeit_steuertext2');
|
|
if(!$weiteresteuer2)$weiteresteuer2 = 'Weitere Steuer';
|
|
$this->app->Tpl->Set('WEITERESTEUER1',rtrim($weiteresteuer1,':').':');
|
|
$this->app->Tpl->Set('WEITERESTEUER2',rtrim($weiteresteuer2,':').':');
|
|
|
|
$action = $this->app->Secure->GetGET("action");
|
|
$speichern = $this->app->Secure->GetPOST("speichern");
|
|
if($action=="edit" && $speichern!="")
|
|
{
|
|
// Missing in API
|
|
// $this->app->erp->VerbindlichkeitProtokoll($id,"Verbindlichkeit gespeichert");
|
|
}
|
|
|
|
$this->app->Tpl->Parse("OCRDIALOGE","verbindlichkeit_ocrdialoge.tpl");
|
|
}
|
|
|
|
function ReplaceDecimal($db,$value,$fromform)
|
|
{
|
|
//value muss hier vom format ueberprueft werden
|
|
return $this->app->erp->ReplaceMengeBetrag($db,$value,$fromform);
|
|
return str_replace(",",".",$value);
|
|
}
|
|
|
|
function ReplaceAuftrag($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceAuftrag($db,$value,$fromform);
|
|
}
|
|
|
|
function ReplaceArbeitspaket($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceArbeitspaket($db,$value,$fromform);
|
|
}
|
|
|
|
function ReplaceDatum($db,$value,$fromform)
|
|
{
|
|
//value muss hier vom format ueberprueft werden
|
|
$dbformat = 0;
|
|
if(strpos($value,'-') > 0) $dbformat = 1;
|
|
|
|
// wenn ziel datenbank
|
|
if($db)
|
|
{
|
|
if($dbformat) return $value;
|
|
else return $this->app->String->Convert($value,"%1.%2.%3","%3-%2-%1");
|
|
}
|
|
// wenn ziel formular
|
|
else
|
|
{
|
|
if($dbformat) return $this->app->String->Convert($value,"%1-%2-%3","%3.%2.%1");
|
|
else return $value;
|
|
}
|
|
}
|
|
|
|
function ReplaceBestellung($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceBestellung($db,$value,$fromform);
|
|
}
|
|
|
|
|
|
function ReplaceLieferant($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceLieferant($db,$value,$fromform);
|
|
}
|
|
|
|
function ReplaceKunde($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceKunde($db,$value,$fromform);
|
|
}
|
|
|
|
|
|
function ReplaceMitarbeiter($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceMitarbeiter($db,$value,$fromform);
|
|
}
|
|
|
|
function ReplaceAdresse($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceAdresse($db,$value,$fromform);
|
|
}
|
|
|
|
function ReplaceProjekt($db,$value,$fromform)
|
|
{
|
|
return $this->app->erp->ReplaceProjekt($db,$value,$fromform);
|
|
}
|
|
|
|
function ReplaceSteuersatz($db,$value,$fromform)
|
|
{
|
|
if($db)
|
|
{
|
|
if($value === "" || $value === null)return -1;
|
|
return str_replace(',','.', $value);
|
|
}else{
|
|
if($value < 0 || is_null($value))return "";
|
|
return number_format($value,2,',','');
|
|
}
|
|
}
|
|
|
|
function ReplaceSteuersatzNormal($db,$value,$fromform)
|
|
{
|
|
if($db)
|
|
{
|
|
if($value === "" || $value === null)return -1;
|
|
return str_replace(',','.', $value);
|
|
}else{
|
|
if($value < 0 || is_null($value))return str_replace('.',',',$this->app->erp->GetKonfiguration('verbindlichkeit_steuersatznormal')?$this->app->erp->GetKonfiguration('verbindlichkeit_steuersatznormal'):$this->app->erp->Firmendaten('steuersatz_normal'));
|
|
return number_format($value,2,',','');
|
|
}
|
|
}
|
|
|
|
function ReplaceSteuersatzErmaessigt($db,$value,$fromform)
|
|
{
|
|
if($db)
|
|
{
|
|
if($value === "" || $value === null)return -1;
|
|
return str_replace(',','.', $value);
|
|
}else{
|
|
if($value < 0 || is_null($value))return str_replace('.',',',$this->app->erp->GetKonfiguration('verbindlichkeit_steuersatzermaessigt')?$this->app->erp->GetKonfiguration('verbindlichkeit_steuersatzermaessigt'):$this->app->erp->Firmendaten('steuersatz_ermaessigt'));
|
|
return number_format($value,2,',','');
|
|
}
|
|
}
|
|
|
|
public function Table()
|
|
{
|
|
$table = new EasyTable($this->app);
|
|
$this->app->Tpl->Set($this->parsetarget,"<form action=\"\" method=\"post\">");
|
|
$this->app->Tpl->Set('SUBSUBHEADING',"");
|
|
// $table->Query("SELECT a.name, verbindlichkeit.betrag, verbindlichkeit.rechnung, DATE_FORMAT(verbindlichkeit.skontobis,'%d.%m.%Y') as bis,verbindlichkeit.id FROM verbindlichkeit, adresse a WHERE verbindlichkeit.adresse = a.id AND verbindlichkeit.bezahlt!=1 AND verbindlichkeit.skontobis <= NOW() AND verbindlichkeit.status!='bezahlt' AND verbindlichkeit.skonto > 0 order by verbindlichkeit.skontobis");
|
|
|
|
$table->Query("SELECT
|
|
CONCAT('<input type=\"checkbox\" ',if(verbindlichkeit.zahlbarbis<=NOW(),'checked',''),if(verbindlichkeit.skontobis>=NOW(),'checked','')
|
|
,' name=\"verbindlichkeit[]\" value=\"',verbindlichkeit.id,'\">') as auswahl, verbindlichkeit.id as 'nr.', a.name as lieferant,
|
|
if(a.swift='','fehlt - bitte nachtragen',a.swift) as BIC,
|
|
if(a.iban='','fehlt - bitte nachtragen',a.iban) as IBAN,
|
|
betrag,verbindlichkeit.betrag, verbindlichkeit.rechnung,
|
|
if(verbindlichkeit.skontobis='0000-00-00','-',if(verbindlichkeit.skontobis >=NOW(),
|
|
CONCAT('<font color=red>',DATE_FORMAT(verbindlichkeit.skontobis,'%d.%m.%Y'),'</font>'),DATE_FORMAT(verbindlichkeit.skontobis,'%d.%m.%Y'))) as skonto_bis,
|
|
if(verbindlichkeit.zahlbarbis='0000-00-00','-',DATE_FORMAT(verbindlichkeit.zahlbarbis,'%d.%m.%Y')) as zahlbar_bis,
|
|
if(verbindlichkeit.skonto > 0,CONCAT(verbindlichkeit.skonto,' %'),'-') as skonto,
|
|
if(verbindlichkeit.status='','offen',verbindlichkeit.status) as status,
|
|
verbindlichkeit.id FROM verbindlichkeit LEFT JOIN adresse a ON verbindlichkeit.adresse = a.id
|
|
WHERE verbindlichkeit.status!='bezahlt' Order by verbindlichkeit.skontobis, verbindlichkeit.zahlbarbis ");
|
|
|
|
|
|
$table->DisplayNew('INHALT', "<a href=\"index.php?module=verbindlichkeit&action=edit&id=%value%\"><img border=\"0\" src=\"./themes/[THEME]/images/edit.svg\"></a>
|
|
<a onclick=\"if(!confirm('Wirklich löschen?')) return false; else window.location.href='index.php?module=verbindlichkeit&action=delete&id=%value%';\">
|
|
<img src=\"./themes/[THEME]/images/delete.svg\" border=\"0\"></a>
|
|
<a onclick=\"if(!confirm('Wirklich als bezahlt markieren?')) return false; else window.location.href='index.php?module=verbindlichkeit&action=bezahlt&id=%value%';\">
|
|
<img src=\"./themes/[THEME]/images/ack.png\" border=\"0\"></a>
|
|
");
|
|
|
|
|
|
$this->app->Tpl->Parse($this->parsetarget,"rahmen70_ohne_form.tpl");
|
|
|
|
$this->app->Tpl->Set('SUBSUBHEADING',"");
|
|
$this->app->Tpl->Set('INHALT',"<center>Auswahl Konto:
|
|
<select name=\"konto\">".$this->app->erp->GetSelectBICKonto()."</select> <input type=\"submit\" name=\"submit\" value=\"Sammelüberweisung herunterladen und Verbindlichkeit als bezahlt markieren\"></center></form>");
|
|
$this->app->Tpl->Parse($this->parsetarget,"rahmen70_ohne_form.tpl");
|
|
}
|
|
|
|
|
|
|
|
public function Search()
|
|
{
|
|
//$this->app->Tpl->Set($this->parsetarget,"suchmaske");
|
|
//$this->app->Table(
|
|
//$table = new OrderTable("veranstalter");
|
|
//$table->Heading(array('Name','Homepage','Telefon'));
|
|
}
|
|
|
|
|
|
}
|
|
?>
|