OpenXE/www/lib/dokumente/class.reisekosten.php

185 lines
6.3 KiB
PHP
Raw Normal View History

2021-05-21 08:49:41 +02:00
<?php
/*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
*
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
*
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version.
*
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/
?>
<?php
class ReisekostenPDF extends Dokumentenvorlage {
public $doctype;
function __construct($app,$projekt="")
{
$this->app=$app;
//parent::Dokumentenvorlage();
$this->doctype="reisekosten";
$this->doctypeOrig="Reisekosten";
parent::__construct($this->app,$projekt);
}
public function renderDocument() {
// prepare page details
SuperFPDF::__construct('P','mm','A4');
$this->AddPage();
$this->SetDisplayMode("real","single");
$this->SetMargins(15,50);
$this->SetAutoPageBreak(true,40);
$this->AliasNbPages('{nb}');
//if($this->barcode!="")
{
$y = $this->GetY();
$this->Code39(155, $y+1, $this->barcode, 1, 5);
}
// Bei Reisekosten immer oben beginnen
$this->abstand_betreffzeileoben=0;
//$this->logofile = "";//$this->app->erp->GetTMP()."/".$this->app->Conf->WFdbname."_logo.jpg";
//$this->briefpapier="";
$this->renderDoctype();
$infofields[]=array("Firma",$this->firmenname);
$infofields[]=array("Kunde",$this->name);
$infofields[]=array("Mitarbeiter",$this->mitarbeiter);
$infofields[]=array("Projekt",$this->projektabkuerzung);
$infofields[]=array("Datum Abrechnung",$this->datum);
$infofields[]=array("Anlass",$this->anlass);
$infofields[]=array("Von",$this->von." (".$this->von_zeit." Uhr)");
$infofields[]=array("Bis",$this->bis." (".$this->bis_zeit." Uhr)");
$this->renderInfoBox($infofields);
$this->renderReisekostenItems();
if(count($this->gesamt)>0)
{
foreach($this->gesamt as $key=>$value)
{
$summe_infofields[]=array("Summe $key %",number_format($value,2,',','.')." EUR (inkl. $key % MwSt)");
}
}
$this->renderInfoBox($summe_infofields);
if($this->freitext!="") {
$this->Ln(5);
$this->renderTextBox("Bemerkung:");
$this->renderTextBox($this->freitext);
}
$this->Ln(5);
$unterschrift[]=array("Unterschrift Arbeitnehmer","");
$unterschrift[]=array("Ort, Datum","");
$this->renderInfoBox($unterschrift,10);
$this->Ln(5);
$unterschrift2[]=array("Betrag Privat ausgelegt",number_format($this->gesamt_privat['privat'],2,',','.')." EUR");
$unterschrift2[]=array("Betrag erstattet","");
$this->renderInfoBox($unterschrift2,10);
$this->renderFooter();
}
function GetReisekosten($id,$info="",$extrafreitext="")
{
$this->doctypeid = $id;
// das muss vom reisekosten sein!!!!
//$this->setRecipientLieferadresse($id,"reisekosten");
$data = $this->app->DB->SelectArr("SELECT r.adresse, r.auftragid, r.bearbeiter, r.prefix, DATE_FORMAT(r.datum,'%d.%m.%Y') AS datum, DATE_FORMAT(r.von,'%d.%m.%Y') AS von, DATE_FORMAT(r.bis,'%d.%m.%Y') AS bis, r.von_zeit, r.bis_zeit, r.belegnr, r.anlass, r.freitext, r.projekt, a.name as mitarbeiter, r.name, r.ohne_briefpapier FROM reisekosten r LEFT JOIN adresse a ON r.mitarbeiter = a.id WHERE r.id='$id' LIMIT 1");
$data = reset($data);
extract($data,EXTR_OVERWRITE);
$kundennummer = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id='$adresse' LIMIT 1");
$auftrag = $this->app->DB->Select("SELECT belegnr FROM auftrag WHERE id='$auftragid' LIMIT 1");
$projektname = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '$projekt' LIMIT 1");
$this->firmenname = $this->app->erp->Firmendaten('name');
$this->projektabkuerzung = $projektname;
$this->von_zeit = $von_zeit;
$this->bis_zeit = $bis_zeit;
$this->freitext = $freitext;
$this->anlass = $anlass;
$this->barcode=$belegnr;
$this->datum = $datum;
$this->name = $name;
$this->von = $von;
$this->bis = $bis;
$this->mitarbeiter = $mitarbeiter;
if($ohne_briefpapier=="1")
{
$this->logofile = "";
$this->briefpapier="";
$this->briefpapier2="";
}
$this->doctype="reisekosten";
if($belegnr=="") $belegnr = "- Entwurf";
if($info=="")
$this->doctypeOrig="Reisekostenabrechnung $belegnr";
else
$this->doctypeOrig="Reisekosten$info $belegnr";
$artikel = $this->app->DB->SelectArr("SELECT *,DATE_FORMAT(datum,'%d.%m.%Y') as datum, CONCAT(rk.nummer,'- ',rk.beschreibung) as reisekostenart FROM reisekosten_position rp LEFT JOIN reisekostenart rk ON rk.id=rp.reisekostenart WHERE rp.reisekosten='$id' ORDER By rp.sort");
//$waehrung = $this->app->DB->Select("SELECT waehrung FROM reisekosten_position WHERE reisekosten='$id' LIMIT 1");
foreach($artikel as $key=>$value)
{
if($value[seriennummer]!="")
{
if( $value[beschreibung]!="") $value[beschreibung] = $value[beschreibung]."\n";
$value[beschreibung] = "Seriennummer: ".$value[seriennummer]."\n\n";
}
$value[menge] = $this->app->erp->get_time_difference($value[von].":00",$value[bis].":00");
$adr_name = $this->app->DB->Select("SELECT name FROM adresse WHERE id='{$value[adresse]}' LIMIT 1");
$add_sum = explode(":", $value[menge]);
$hour = $hour + $add_sum[0];
$minutes = $minutes + $add_sum[1];
if($value[uststeuersatz]>0)
{
$netto = ($value[betrag] * 100)/(100+$value[uststeuersatz]);
} else $netto = $value[betrag];
$this->gesamt[$value[uststeuersatz]] = $this->gesamt[$value[uststeuersatz]] + $value[betrag];
$this->gesamt_privat[$value[bezahlt_wie]] = $this->gesamt_privat[$value[bezahlt_wie]] + $value[betrag];
$this->addItem(array('brutto'=>number_format($value[betrag],2,',','.'),
'tax'=>$value[uststeuersatz],
'bezahlt_wie'=>$value[bezahlt_wie],
'netto'=>number_format($netto,2,',','.'),
'desc'=>ltrim($value[bezeichnung]." (am ".$value[datum].")"),
"name"=>$value[reisekostenart]));
}
/* Dateiname */
$this->filename = $datum."_RK".$belegnr.".pdf";
$this->setBarcode($belegnr);
}
}