OpenXE/www/lib/dokumente/class.kalkulation.php
2021-05-21 08:49:41 +02:00

228 lines
9.5 KiB
PHP

<?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 KalkulationPDF extends Briefpapier {
public $doctype;
function __construct($app,$projekt="")
{
$this->app=$app;
//parent::Briefpapier();
$this->doctype="kalkulation";
$this->doctypeOrig="Kalkulation";
parent::__construct($this->app,$projekt);
}
function GetKalkulation($id)
{
$briefpapier_bearbeiter_ausblenden = $this->app->erp->Firmendaten('briefpapier_bearbeiter_ausblenden');
$briefpapier_vertrieb_ausblenden = $this->app->erp->Firmendaten('briefpapier_vertrieb_ausblenden');
//$this->setRecipientDB($adresse);
$this->setRecipientLieferadresse($id,"kalkulation");
$data = $this->app->DB->SelectArr("SELECT adresse, kundennummer, ustid, land, bearbeiter, DATE_FORMAT(datum,'%d.%m.%Y') AS datum, belegnr, freitext, projekt, ohne_briefpapier FROM kalkulation WHERE id='$id' LIMIT 1");
$data = reset($data);
extract($data,EXTR_OVERWRITE);
$sprache = $this->app->DB->Select("SELECT sprache FROM adresse WHERE id='$adresse' LIMIT 1");
$zahlungszieltageskonto = '';
$zahlungszielskonto = '';
$kalkulationersatz = '';
$zahlungszieltage = '';
$zahlungsweise = '';
$waehrung = '';
$vertrieb = '';
$anfrage = '';
$typ = '';
$zahlungsweise = $this->app->erp->ReadyForPDF($zahlungsweise);
$bearbeiter = $this->app->erp->ReadyForPDF($bearbeiter);
$vertrieb = $this->app->erp->ReadyForPDF($vertrieb);
$anfrage = $this->app->erp->ReadyForPDF($anfrage);
$this->app->erp->BeschriftungSprache($sprache);
if($waehrung)$this->waehrung = $waehrung;
$this->projekt = $projekt;
$this->sprache = $sprache;
$this->anrede = $typ;
if($ohne_briefpapier=="1")
{
$this->logofile = "";
$this->briefpapier="";
$this->briefpapier2="";
}
//$zahlungstext = "\nZahlungsweise: $zahlungsweise ";
if($zahlungsweise=="rechnung")
{
if($zahlungszieltage >0) {
$zahlung_rechnung_de = $this->app->erp->Beschriftung("zahlung_rechnung_de");
if(empty($zahlung_rechnung_de)){
$zahlungstext = $this->app->erp->Beschriftung("dokument_zahlung_rechnung_anab");
}
else{
$zahlungstext = $zahlung_rechnung_de;
}
}
else {
$zahlungstext = $this->app->erp->Beschriftung("zahlung_rechnung_sofort_de");
}
if($zahlungszielskonto>0) $zahlungstext .= "\n".$this->app->erp->Beschriftung("dokument_skonto")." $zahlungszielskonto% ".$this->app->erp->Beschriftung("dokument_innerhalb")." $zahlungszieltageskonto ".$this->app->erp->Beschriftung("dokument_tagen");
} else {
$zahlungstext = $this->app->erp->Beschriftung("zahlung_".$zahlungsweise."_de");
if($zahlungstext=="")
$zahlungstext = "Bezahlung per ".ucfirst($zahlungsweise);
}
$zahlungsweise = ucfirst($zahlungsweise);
if($belegnr=="" || $belegnr=="0") $belegnr = "- ".$this->app->erp->Beschriftung("dokument_entwurf");
if($kalkulationersatz)
$this->doctypeOrig=($this->app->erp->Beschriftung("bezeichnungkalkulationersatz")?$this->app->erp->Beschriftung("bezeichnungkalkulationersatz"):$this->app->erp->Beschriftung("dokument_kalkulation"))." $belegnr";
else
$this->doctypeOrig=$this->app->erp->Beschriftung("dokument_kalkulation")." $belegnr";
$this->zusatzfooter = " (AN$belegnr)";
if($kalkulation=="") $kalkulation = "-";
if($kundennummer=="") $kundennummer= "-";
if($briefpapier_bearbeiter_ausblenden || $briefpapier_vertrieb_ausblenden)
{
$sCD = array($this->app->erp->Beschriftung("dokument_kalkulation_anfrage")=>$anfrage,$this->app->erp->Beschriftung("bezeichnungkundennummer")=>$kundennummer,$this->app->erp->Beschriftung("dokument_datum")=>$datum);
if(!$briefpapier_bearbeiter_ausblenden)
{
if($bearbeiter)$sCD[$this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter")] = $bearbeiter;
}elseif(!$briefpapier_vertrieb_ausblenden)
{
if($vertrieb)$sCD[$this->app->erp->Beschriftung("auftrag_bezeichnung_vertrieb")] = $vertrieb;
}
$this->setCorrDetails($sCD);
//$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_kalkulation_anfrage")=>$anfrage,$this->app->erp->Beschriftung("bezeichnungkundennummer")=>$kundennummer,$this->app->erp->Beschriftung("dokument_datum")=>$datum));
}else{
if($vertrieb==$bearbeiter)
$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_kalkulation_anfrage")=>$anfrage,$this->app->erp->Beschriftung("bezeichnungkundennummer")=>$kundennummer,$this->app->erp->Beschriftung("dokument_datum")=>$datum,$this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter")=>$bearbeiter));
else
$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_kalkulation_anfrage")=>$anfrage,$this->app->erp->Beschriftung("bezeichnungkundennummer")=>$kundennummer,$this->app->erp->Beschriftung("dokument_datum")=>$datum,$this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter")=>$bearbeiter,$this->app->erp->Beschriftung("auftrag_bezeichnung_vertrieb")=>$vertrieb));
}
$body=$this->app->erp->Beschriftung("kalkulation_header");
$body = $this->app->erp->ParseUserVars("kalkulation",$id,$body);
$this->setTextDetails(array(
"body"=>$body,
"footer"=>"$freitext\r\n".$this->app->erp->ParseUserVars("kalkulation",$id,$this->app->erp->Beschriftung("kalkulation_footer")."\r\n$steuer\r\n$zahlungstext")));
$artikel = $this->app->DB->SelectArr("SELECT * FROM kalkulation_position WHERE kalkulation='$id' ORDER By sort");
$summe_rabatt = $this->app->DB->Select("SELECT SUM(rabatt) FROM kalkulation_position WHERE kalkulation='$id'");
if($summe_rabatt > 0) $this->rabatt=1;
if($this->app->erp->Firmendaten("modul_verband")=="1") $this->rabatt=1;
$summe = 0;
//$waehrung = $this->app->DB->Select("SELECT waehrung FROM kalkulation_position WHERE kalkulation='$id' LIMIT 1");
foreach($artikel as $key=>$value)
{
if($value[umsatzsteuer] != "ermaessigt") $value[umsatzsteuer] = "normal";
// Herstellernummer von Artikel
$value['herstellernummer'] = $this->app->DB->Select("SELECT herstellernummer FROM artikel WHERE id='".$value[artikel]."' LIMIT 1");
$value['hersteller'] = $this->app->DB->Select("SELECT hersteller FROM artikel WHERE id='".$value[artikel]."' LIMIT 1");
$is_kalkulation_mit_bild=0;
if($is_kalkulation_mit_bild) {
$image_tmp = $this->app->erp->GetArtikelStandardbild($value['artikel']);
$value['image'] = $image_tmp['image'];
$value['image_type'] = $image_tmp['extenstion'];
}
if($value[optional]=="1") $value[bezeichnung] = "Optional: ".$value[bezeichnung];
if(!$this->app->erp->Export($land))
{
$value[zolltarifnummer]="";
$value[herkunftsland]="";
}
$tmp = $this->app->erp->GetKalkulationartAssoc();
$value[kalkulationart] = $tmp[$value[kalkulationart]];
$this->addItem(array('currency'=>$value[waehrung],
'amount'=>$value[menge],
'price'=>$value[betrag],
'tax'=>$value[umsatzsteuer],
'itemno'=>$value[nummer],
'desc'=>$value[kalkulationart]."\r\n".$value[beschreibung],
'optional'=>$value[optional],
'unit'=>$value[einheit],
'hersteller'=>$value[hersteller],
'zolltarifnummer'=>$value[zolltarifnummer],
'herkunftsland'=>$value[herkunftsland],
'herstellernummer'=>trim($value[herstellernummer]),
'lieferdatum'=>$value['lieferdatum'],
'lieferdatumkw'=>$value['lieferdatumkw'],
'artikelnummerkunde'=>$value['artikelnummerkunde'],
'grundrabatt'=>$value[grundrabatt],
'rabatt1'=>$value[rabatt1],
'rabatt2'=>$value[rabatt2],
'rabatt3'=>$value[rabatt3],
'rabatt4'=>$value[rabatt4],
'rabatt5'=>$value[rabatt5],
"name"=>ltrim($value[bezeichnung]),
"rabatt"=>$value[rabatt]));
$netto_gesamt = $value[menge]*($value[preis]-($value[preis]/100*$value[rabatt]));
if($value[optional]!="1"){
$summe = $summe + $netto_gesamt;
if($value[umsatzsteuer]=="" || $value[umsatzsteuer]=="normal")
{
$summeV = $summeV + (($netto_gesamt/100)*$this->app->erp->GetSteuersatzNormal(false,$id,"kalkulation"));
}
else {
$summeR = $summeR + (($netto_gesamt/100)*$this->app->erp->GetSteuersatzErmaessigt(false,$id,"kalkulation"));
}
}
}
if(0)//$this->app->erp->KalkulationMitUmsatzeuer($id))
{
$this->setTotals(array("totalArticles"=>$summe,"total"=>$summe + $summeV + $summeR,"totalTaxV"=>$summeV,"totalTaxR"=>$summeR));
} else {
$this->setTotals(array("totalArticles"=>$summe,"total"=>$summe));
}
/* Dateiname */
//$tmp_name = str_replace(' ','',trim($this->recipient['enterprise']));
//$tmp_name = str_replace('.','',$tmp_name);
$this->filename = $datum."_KA".$belegnr.".pdf";
$this->setBarcode($belegnr);
}
}