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

145 lines
5.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 ArbeitsnachweisPDF extends Briefpapier {
public $doctype;
function __construct($app,$projekt="")
{
$this->app=$app;
//parent::Briefpapier();
$this->doctype="arbeitsnachweis";
$this->doctypeOrig="Arbeitsnachweis";
parent::__construct($this->app,$projekt);
}
function GetArbeitsnachweis($id,$info="",$extrafreitext="",$formular=false)
{
// das muss vom arbeitsnachweis sein!!!!
$this->setRecipientLieferadresse($id,"arbeitsnachweis");
$data = $this->app->DB->SelectArr("SELECT adresse,kundennummer,auftragid,bearbeiter,prefix, DATE_FORMAT(datum,'%d.%m.%Y') AS datum, belegnr,freitext, projekt, ohne_briefpapier FROM arbeitsnachweis WHERE id='$id' LIMIT 1");
$data = reset($data);
extract($data,EXTR_OVERWRITE);
$anzeige_verrechnungsart = ''; // Muss bei Bedarf aus den Positionen geholt werden
$auftrag = $this->app->DB->Select("SELECT belegnr FROM auftrag WHERE id='$auftragid' LIMIT 1");
$this->projekt = $projekt;
if($ohne_briefpapier=="1")
{
$this->logofile = "";
$this->briefpapier="";
$this->briefpapier2="";
}
$this->doctype="arbeitsnachweis";
if($belegnr<=0) $belegnr = "- Entwurf";
if($info=="")
$this->doctypeOrig="Arbeitsnachweis $belegnr";
else
$this->doctypeOrig="Arbeitsnachweis$info $belegnr";
if($arbeitsnachweis=="") $arbeitsnachweis = "-";
if($kundennummer=="") $kundennummer= "-";
//$this->setCorrDetails(array("Auftrag"=>$auftrag,"Ihre Kunden-Nr."=>$kundennummer,"Versand"=>$datum,"Versand"=>$bearbeiter));
$this->setCorrDetails(array("Auftrag"=>$auftrag,"Ihre Kunden-Nr."=>$kundennummer,"Datum"=>$datum,"Prefix"=>$prefix,"Bearbeiter"=>$bearbeiter));
$this->zusatzfooter = "Suffix: ".$prefix;
$footer_extra = $this->app->erp->ParseUserVars("arbeitsnachweis",$id,$this->app->erp->Firmendaten("arbeitsnachweis_footer"));
$footer_extra = str_replace("{SUFFIX}",$prefix,$footer_extra);
$footer_extra = str_replace("{DATUM}",$datum,$footer_extra);
$body=$this->app->erp->Firmendaten("arbeitsnachweis_header");
$body = $this->app->erp->ParseUserVars("arbeitsnachweis",$id,$body);
$this->setTextDetails(array(
"body"=>$body,
"footer"=>"$freitext\r\n$extrafreitext\r\n".$footer_extra));
$artikel = $this->app->DB->SelectArr("SELECT * FROM arbeitsnachweis_position WHERE arbeitsnachweis='$id' ORDER By sort");
//$waehrung = $this->app->DB->Select("SELECT waehrung FROM arbeitsnachweis_position WHERE arbeitsnachweis='$id' LIMIT 1");
if($formular)
{
for($reihen=0;$reihen<6;$reihen++)
{
$this->addItem(array('amount'=>"",'itemno'=>"",'desc'=>"________________________________________________________",
"name"=>'',"person"=>''));
}
} else {
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];
// anpassung zeit
$value[menge] = $this->app->erp->ZeitinMenge($value[menge]);
$verrechnungsart = $this->app->DB->Select("SELECT verrechnungsart FROM zeiterfassung
WHERE arbeitsnachweispositionid='{$value[id]}' LIMIT 1");
if($verrechnungsart!="" && $anzeige_verrechnungsart==1)
{
$verrechnungsart = $this->app->DB->Select("SELECT beschreibung FROM verrechnungsart WHERE nummer='$verrechnungsart' LIMIT 1");
$value[beschreibung] .= "\r\nVerrechnungsart: ".$verrechnungsart;
}
$value[beschreibung] .="\r\nDatum: ".date('d.m.Y',strtotime($value[datum]))." Uhrzeit: ".$value['von']." bis ".$value[bis];
$this->addItem(array('amount'=>$value[menge],'itemno'=>$value[ort],'desc'=>$value[bemerkung],'desc'=>ltrim($value[beschreibung]),'artikel'=>$value[artikel],
"name"=>$value[bezeichnung],"person"=>$adr_name));
}
}
$final_hours = floor($minutes / 60) + $hour;
$final_minutes = str_pad($minutes % 60,2,'0',STR_PAD_LEFT);
$summe = $final_hours.":".$final_minutes;
// anpassung zeit
$summe = $this->app->erp->ZeitinMenge($summe);
if(!$formular)
$this->setTotals(array("total"=>$summe));
/* Dateiname */
$tmp_name = str_replace(' ','',trim($this->recipient['enterprise']));
$tmp_name = str_replace('.','',$tmp_name);
$this->filename = $datum."_ABN".$belegnr.".pdf";
$this->setBarcode($belegnr);
}
}