mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
228 lines
9.5 KiB
PHP
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);
|
|
}
|
|
|
|
|
|
}
|