mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-24 13:40:29 +01:00
Bugfix count(0) dokumente
This commit is contained in:
parent
1f661b9a2b
commit
2acc8aceb9
File diff suppressed because it is too large
Load Diff
@ -43,7 +43,7 @@ class AuftragPDF extends BriefpapierCustom {
|
||||
{
|
||||
// pruefe ob es mehr als ein steuersatz gibt // wenn ja dann darf man sie nicht ausblenden
|
||||
$check = $this->app->erp->SteuerAusBeleg($this->doctype,$id);
|
||||
if(count($check)>1)$this->ust_spalteausblende=false;
|
||||
if(!empty($check)?count($check):0>1)$this->ust_spalteausblende=false;
|
||||
else $this->ust_spalteausblende=true;
|
||||
}
|
||||
|
||||
|
@ -1,491 +1,491 @@
|
||||
<?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 ****
|
||||
/*
|
||||
**** 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
|
||||
if(!class_exists('BriefpapierCustom'))
|
||||
{
|
||||
class BriefpapierCustom extends Briefpapier
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class GutschriftPDF extends BriefpapierCustom {
|
||||
public $doctype;
|
||||
|
||||
function __construct($app,$projekt="")
|
||||
{
|
||||
$this->app=$app;
|
||||
//parent::Briefpapier();
|
||||
$this->doctype="gutschrift";
|
||||
$this->doctypeOrig="Gutschrift";
|
||||
parent::__construct($this->app,$projekt);
|
||||
}
|
||||
|
||||
|
||||
function GetGutschrift($id)
|
||||
{
|
||||
$this->doctypeid = $id;
|
||||
|
||||
if($this->app->erp->Firmendaten("steuerspalteausblenden")=="1")
|
||||
{
|
||||
// pruefe ob es mehr als ein steuersatz gibt // wenn ja dann darf man sie nicht ausblenden
|
||||
$check = $this->app->erp->SteuerAusBeleg($this->doctype,$id);
|
||||
if(count($check)>1)$this->ust_spalteausblende=false;
|
||||
else $this->ust_spalteausblende=true;
|
||||
}
|
||||
|
||||
$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,"gutschrift");
|
||||
|
||||
$data = $this->app->DB->SelectRow(
|
||||
"SELECT adresse,kundennummer, sprache, rechnungid, buchhaltung, bearbeiter, vertrieb,
|
||||
lieferschein AS lieferscheinid, DATE_FORMAT(datum,'%d.%m.%Y') AS datum,
|
||||
DATE_FORMAT(lieferdatum,'%d.%m.%Y') AS lieferdatum, belegnr, freitext, ustid, ust_befreit,
|
||||
stornorechnung, keinsteuersatz, land, typ, zahlungsweise, zahlungsstatus, zahlungszieltage,
|
||||
zahlungszielskonto, projekt, waehrung, bodyzusatz,
|
||||
DATE_FORMAT(DATE_ADD(datum, INTERVAL zahlungszieltage DAY),'%d.%m.%Y') AS zahlungsdatum,
|
||||
ohne_briefpapier, ihrebestellnummer,DATE_FORMAT(datum,'%Y%m%d') as datum2, email, telefon
|
||||
FROM gutschrift WHERE id='$id' LIMIT 1"
|
||||
);
|
||||
extract($data,EXTR_OVERWRITE);
|
||||
$adresse = $data['adresse'];
|
||||
$kundennummer = $data['kundennummer'];
|
||||
$sprache = $data['sprache'];
|
||||
$rechnungid = $data['rechnungid'];
|
||||
$buchhaltung = $data['buchhaltung'];
|
||||
$email = $data['email'];
|
||||
$telefon = $data['telefon'];
|
||||
$bearbeiter = $data['bearbeiter'];
|
||||
$vertrieb = $data['vertrieb'];
|
||||
$lieferscheinid = $data['lieferscheinid'];
|
||||
$datum = $data['datum'];
|
||||
$lieferdatum = $data['lieferdatum'];
|
||||
$belegnr = $data['belegnr'];
|
||||
$freitext = $data['freitext'];
|
||||
$ustid = $data['ustid'];
|
||||
$ust_befreit = $data['ust_befreit'];
|
||||
$stornorechnung = $data['stornorechnung'];
|
||||
$keinsteuersatz = $data['keinsteuersatz'];
|
||||
$land = $data['land'];
|
||||
$typ = $data['typ'];
|
||||
$zahlungsweise = $data['zahlungsweise'];
|
||||
$zahlungszieltage = $data['zahlungszieltage'];
|
||||
|
||||
$zahlungszielskonto = $data['zahlungszielskonto'];
|
||||
$projekt = $data['projekt'];
|
||||
$waehrung = $data['waehrung'];
|
||||
$bodyzusatz = $data['bodyzusatz'];
|
||||
$zahlungsdatum = $data['zahlungsdatum'];
|
||||
$ohne_briefpapier = $data['ohne_briefpapier'];
|
||||
$ihrebestellnummer = $data['ihrebestellnummer'];
|
||||
$datum2 = $data['datum2'];
|
||||
$projektabkuerzung = $this->app->DB->Select(sprintf('SELECT abkuerzung FROM projekt WHERE id = %d', $projekt));
|
||||
$kundennummer = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id='$adresse' LIMIT 1");
|
||||
if(empty($sprache)){
|
||||
$sprache = $this->app->DB->Select("SELECT sprache FROM adresse WHERE id='$adresse' LIMIT 1");
|
||||
}
|
||||
$lieferschein = $this->app->DB->Select("SELECT belegnr FROM lieferschein WHERE id='$lieferscheinid' LIMIT 1");
|
||||
$lieferscheindatum = $this->app->DB->Select("SELECT DATE_FORMAT(datum, '%d.%m.%Y') AS datum FROM lieferschein WHERE id = '$lieferscheinid' LIMIT 1");
|
||||
$rechnung = $this->app->DB->Select("SELECT belegnr FROM rechnung WHERE id='$rechnungid' LIMIT 1");
|
||||
$rechnungsdatum = $this->app->DB->Select("SELECT DATE_FORMAT(datum, '%d.%m.%Y') AS datum FROM rechnung WHERE id = '$rechnungid' LIMIT 1");
|
||||
$auftrag = $this->app->DB->Select("SELECT auftrag FROM rechnung WHERE id = '$rechnungid' LIMIT 1");
|
||||
|
||||
$ihrebestellnummer = $this->app->erp->ReadyForPDF($ihrebestellnummer);
|
||||
$bearbeiter = $this->app->erp->ReadyForPDF($bearbeiter);
|
||||
$vertrieb = $this->app->erp->ReadyForPDF($vertrieb);
|
||||
|
||||
$this->app->erp->BeschriftungSprache($sprache);
|
||||
if($waehrung)$this->waehrung = $waehrung;
|
||||
$this->sprache = $sprache;
|
||||
$this->projekt = $projekt;
|
||||
$this->anrede = $typ;
|
||||
|
||||
if($vertrieb==$bearbeiter && (!$briefpapier_bearbeiter_ausblenden && !$briefpapier_vertrieb_ausblenden)) $vertrieb="";
|
||||
|
||||
if($ohne_briefpapier=="1")
|
||||
{
|
||||
$this->logofile = "";
|
||||
$this->briefpapier="";
|
||||
$this->briefpapier2="";
|
||||
}
|
||||
|
||||
// $zahlungsweise = strtolower($zahlungsweise);
|
||||
|
||||
if($zahlungsweise=="lastschrift" || $zahlungsweise=="einzugsermaechtigung")
|
||||
{
|
||||
$zahlungsweisetext = "\n".$this->app->erp->Beschriftung("dokument_offene_lastschriften");
|
||||
}
|
||||
|
||||
//if($zahlungszielskonto>0) $zahlungsweisetext .= "\n".$this->app->erp->Beschriftung("dokument_skonto")." $zahlungszielskonto% ".$this->app->erp->Beschriftung("dokument_auszahlungskonditionen");
|
||||
|
||||
if($zahlungszielskonto!=0)
|
||||
$zahlungsweisetext .="\r\n".$this->app->erp->Beschriftung("dokument_skontoanderezahlungsweisen");
|
||||
|
||||
$zahlungsweisetext = str_replace('{ZAHLUNGSZIELSKONTO}',number_format($zahlungszielskonto,2,',','.'),$zahlungsweisetext);
|
||||
|
||||
if($belegnr=="" || $belegnr=="0") $belegnr = "- ".$this->app->erp->Beschriftung("dokument_entwurf");
|
||||
|
||||
|
||||
if($stornorechnung)
|
||||
$this->doctypeOrig=$this->app->erp->Beschriftung("bezeichnungstornorechnung")." $belegnr";
|
||||
else
|
||||
$this->doctypeOrig=$this->app->erp->Beschriftung("dokument_gutschrift")." $belegnr";
|
||||
|
||||
if($gutschrift=="") $gutschrift = "-";
|
||||
if($kundennummer=="") $kundennummer= "-";
|
||||
|
||||
if($auftrag=="0") $auftrag = "-";
|
||||
if($lieferschein=="0") $lieferschein= "-";
|
||||
|
||||
$bearbeiteremail = $this->app->DB->Select("SELECT b.email FROM gutschrift g LEFT JOIN adresse b ON b.id=g.bearbeiterid WHERE g.id='$id' LIMIT 1");
|
||||
$bearbeitertelefon = $this->app->DB->Select("SELECT b.telefon FROM gutschrift g LEFT JOIN adresse b ON b.id=g.bearbeiterid WHERE g.id='$id' LIMIT 1");
|
||||
|
||||
/** @var \Xentral\Modules\Company\Service\DocumentCustomizationService $service */
|
||||
$service = $this->app->Container->get('DocumentCustomizationService');
|
||||
if($block = $service->findActiveBlock('corr', 'credit_note', $projekt)) {
|
||||
$sCD = $service->parseBlockAsArray($this->getLanguageCodeFrom($this->sprache),'corr', 'credit_note',[
|
||||
'GUTSCHRIFTSNUMMER' => $belegnr,
|
||||
'DATUM' => $datum,
|
||||
'RECHNUNGSNUMMER' => $rechnung,
|
||||
'RECHNUNGSDATUM' => $rechnungsdatum,
|
||||
'KUNDENNUMMER' => $kundennummer,
|
||||
'BEARBEITER' => $bearbeiter,
|
||||
'BEARBEITEREMAIL' => $bearbeiteremail,
|
||||
'BEARBEITERTELEFON' => $bearbeitertelefon,
|
||||
'VERTRIEB' => $vertrieb,
|
||||
'PROJEKT' => $projektabkuerzung,
|
||||
'AUFTRAGSNUMMER' => $auftrag,
|
||||
'LIEFERSCHEINNUMMER' => $lieferschein,
|
||||
'LIEFERSCHEINDATUM' => $lieferscheindatum,
|
||||
'EMAIL' => $email,
|
||||
'TELEFON' => $telefon
|
||||
|
||||
|
||||
|
||||
], $projekt);
|
||||
if(!empty($sCD)) {
|
||||
switch($block['fontstyle']) {
|
||||
case 'f':
|
||||
$this->setBoldCorrDetails($sCD);
|
||||
break;
|
||||
case 'i':
|
||||
$this->setItalicCorrDetails($sCD);
|
||||
break;
|
||||
case 'fi':
|
||||
$this->setItalicBoldCorrDetails($sCD);
|
||||
break;
|
||||
default:
|
||||
$this->setCorrDetails($sCD, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
//$this->setCorrDetails(array("Auftrag"=>$auftrag,"Datum"=>$datum,"Ihre Kunden-Nr."=>$kundennummer,"Lieferschein"=>$lieferschein,"Buchhaltung"=>$buchhaltung));
|
||||
if($briefpapier_bearbeiter_ausblenden || $briefpapier_vertrieb_ausblenden){
|
||||
if($rechnung != ""){
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_rechnung") => $rechnung, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer, $this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer);
|
||||
}else{
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer);
|
||||
//$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_datum")=>$datum,$this->app->erp->Beschriftung("bezeichnungkundennummer")=>$kundennummer,$this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer")=>$ihrebestellnummer));
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
}else{
|
||||
if($rechnung != "")
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_rechnung") => $rechnung, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer, $this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter") => $bearbeiter, $this->app->erp->Beschriftung("auftrag_bezeichnung_vertrieb") => $vertrieb);
|
||||
else
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter") => $bearbeiter, $this->app->erp->Beschriftung("auftrag_bezeichnung_vertrieb") => $vertrieb);
|
||||
}
|
||||
|
||||
if($lieferdatum != "00.00.0000")
|
||||
$sCD[$this->app->erp->Beschriftung("dokument_lieferdatum")] = $lieferdatum;
|
||||
|
||||
|
||||
$this->setCorrDetails($sCD);
|
||||
}
|
||||
|
||||
if($keinsteuersatz!="1")
|
||||
{
|
||||
|
||||
if($ust_befreit==2)//$this->app->erp->Export($land))
|
||||
$steuer = $this->app->erp->Beschriftung("export_lieferung_vermerk");
|
||||
else {
|
||||
if($ust_befreit==1 && $ustid!="")//$this->app->erp->IstEU($land))
|
||||
$steuer = $this->app->erp->Beschriftung("eu_lieferung_vermerk");
|
||||
}
|
||||
$steuer = str_replace('{USTID}',$ustid,$steuer);
|
||||
$steuer = str_replace('{LAND}',$land,$steuer);
|
||||
}
|
||||
|
||||
$gutschrift_header=$this->app->erp->Beschriftung("gutschrift_header");
|
||||
if($bodyzusatz!="") $gutschrift_header=$gutschrift_header."\r\n".$bodyzusatz;
|
||||
|
||||
if($stornorechnung)
|
||||
{
|
||||
$gutschrift_header = str_replace('{ART}',$this->app->erp->Beschriftung("bezeichnungstornorechnung"),$gutschrift_header);
|
||||
} else {
|
||||
$gutschrift_header = str_replace('{ART}',$this->app->erp->Beschriftung("dokument_gutschrift"),$gutschrift_header);
|
||||
}
|
||||
|
||||
$gutschrift_header = $this->app->erp->ParseUserVars("gutschrift",$id,$gutschrift_header);
|
||||
|
||||
|
||||
if($this->app->erp->Firmendaten("footer_reihenfolge_gutschrift_aktivieren")=="1") {
|
||||
$footervorlage = $this->app->erp->Firmendaten("footer_reihenfolge_gutschrift");
|
||||
if($footervorlage=="")
|
||||
$footervorlage = "{FOOTERFREITEXT}\r\n{FOOTERTEXTVORLAGEGUTSCHRIFT}\r\n{FOOTERSTEUER}\r\n{FOOTERZAHLUNGSWEISETEXT}";
|
||||
|
||||
$footervorlage = str_replace('{FOOTERFREITEXT}',$freitext,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERTEXTVORLAGEGUTSCHRIFT}',$this->app->erp->Beschriftung("gutschrift_footer"),$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERSTEUER}',$steuer,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERZAHLUNGSWEISETEXT}',$zahlungsweisetext,$footervorlage);
|
||||
$footervorlage = $this->app->erp->ParseUserVars("gutschrift",$id,$footervorlage);
|
||||
$footer = $footervorlage;
|
||||
} else {
|
||||
$footer = "$freitext"."\r\n".$this->app->erp->ParseUserVars("gutschrift",$id,$this->app->erp->Beschriftung("gutschrift_footer"))."\r\n$zahlungsweisetext\r\n$steuer";
|
||||
}
|
||||
|
||||
|
||||
$this->setTextDetails(array(
|
||||
"body"=>$gutschrift_header,
|
||||
"footer"=>$footer));
|
||||
|
||||
$artikel = $this->app->DB->SelectArr("SELECT * FROM gutschrift_position WHERE gutschrift='$id' ORDER By sort");
|
||||
|
||||
if(!$this->app->erp->GutschriftMitUmsatzeuer($id)) $this->ust_befreit=true;
|
||||
|
||||
$summe_rabatt = $this->app->DB->Select("SELECT SUM(rabatt) FROM gutschrift_position WHERE gutschrift='$id'");
|
||||
if($summe_rabatt <> 0) $this->rabatt=1;
|
||||
|
||||
if($this->app->erp->Firmendaten("modul_verband")=="1") $this->rabatt=1;
|
||||
|
||||
//$waehrung = $this->app->DB->Select("SELECT waehrung FROM gutschrift_position WHERE gutschrift='$id' LIMIT 1");
|
||||
$steuersatzV = $this->app->erp->GetSteuersatzNormal(false,$id,"gutschrift");
|
||||
$steuersatzR = $this->app->erp->GetSteuersatzErmaessigt(false,$id,"gutschrift");
|
||||
$gesamtsteuern = 0;
|
||||
$mitumsatzsteuer = $this->app->erp->GutschriftMitUmsatzeuer($id);
|
||||
$belege_subpositionenstuecklisten = $this->app->erp->Firmendaten('belege_subpositionenstuecklisten');
|
||||
$belege_stuecklisteneinrueckenmm = $this->app->erp->Firmendaten('belege_stuecklisteneinrueckenmm');
|
||||
//$positionenkaufmaenischrunden = $this->app->erp->Firmendaten('positionenkaufmaenischrunden');
|
||||
$positionenkaufmaenischrunden = $this->app->erp->Projektdaten($projekt,"preisberechnung");
|
||||
$viernachkommastellen_belege = $this->app->erp->Firmendaten('viernachkommastellen_belege');
|
||||
foreach($artikel as $key=>$value)
|
||||
{
|
||||
if($value['umsatzsteuer'] != "ermaessigt" && $value['umsatzsteuer'] != "befreit") $value['umsatzsteuer'] = "normal";
|
||||
$tmpsteuersatz = null;
|
||||
$tmpsteuertext = null;
|
||||
$this->app->erp->GetSteuerPosition('gutschrift', $value['id'],$tmpsteuersatz, $tmpsteuertext);
|
||||
if(is_null($value['steuersatz']) || $value['steuersatz'] < 0)
|
||||
{
|
||||
if($value['umsatzsteuer'] == "ermaessigt")
|
||||
{
|
||||
$value['steuersatz'] = $steuersatzR;
|
||||
}elseif($value['umsatzsteuer'] == "befreit")
|
||||
{
|
||||
$value['steuersatz'] = $steuersatzR;
|
||||
}else{
|
||||
$value['steuersatz'] = $steuersatzV;
|
||||
}
|
||||
if(!is_null($tmpsteuersatz))$value['steuersatz'] = $tmpsteuersatz;
|
||||
}
|
||||
if($tmpsteuertext && !$value['steuertext'])$value['steuertext'] = $tmpsteuertext;
|
||||
if(!$mitumsatzsteuer)$value['steuersatz'] = 0;
|
||||
// negative Darstellung bei Stornorechnung
|
||||
if($stornorechnung) $value['preis'] = $value['preis'] *-1;
|
||||
|
||||
if(!$this->app->erp->Export($land))
|
||||
{
|
||||
$value['zolltarifnummer']="";
|
||||
$value['herkunftsland']="";
|
||||
}
|
||||
|
||||
$value = $this->CheckPosition($value,"gutschrift",$this->doctypeid,$value['id']);
|
||||
|
||||
$value['menge'] = floatval($value['menge']);
|
||||
|
||||
if($value['explodiert_parent_artikel'] > 0)
|
||||
{
|
||||
if($belege_subpositionenstuecklisten || $belege_stuecklisteneinrueckenmm)$value['bezeichnung'] = ltrim(ltrim($value['bezeichnung'],'*'));
|
||||
if(isset($lvl) && isset($lvl[$value['explodiert_parent_artikel']]))
|
||||
{
|
||||
$value['lvl'] = $lvl[$value['explodiert_parent_artikel']] + 1;
|
||||
}else{
|
||||
$value['lvl'] = 1;
|
||||
}
|
||||
$lvl[$value['artikel']] = $value['lvl'];
|
||||
$check_ausblenden = $this->app->DB->Select("SELECT keineeinzelartikelanzeigen FROM artikel WHERE id='".$value['explodiert_parent_artikel']."' LIMIT 1");
|
||||
if(!$check_ausblenden && isset($ausblenden) && in_array($value['explodiert_parent_artikel'], $ausblenden))
|
||||
{
|
||||
$check_ausblenden = true;
|
||||
}
|
||||
if($check_ausblenden)
|
||||
{
|
||||
$ausblenden[] = $value['artikel'];
|
||||
}
|
||||
} else
|
||||
{
|
||||
$check_ausblenden=0;
|
||||
$lvl[$value['artikel']] = 0;
|
||||
$value['lvl'] = 0;
|
||||
}
|
||||
|
||||
if($value['ausblenden_im_pdf']) $check_ausblenden=1;
|
||||
|
||||
$ohne_artikeltext = $this->app->DB->Select("SELECT ohne_artikeltext FROM ".$this->table." WHERE id='".$this->id."' LIMIT 1");
|
||||
if($ohne_artikeltext=="1") $value['beschreibung']="";
|
||||
|
||||
if($check_ausblenden!=1)
|
||||
{
|
||||
$this->addItem(array('currency'=>$value['waehrung'],'lvl'=>isset($value['lvl'])?$value['lvl']:0,
|
||||
'amount'=>$value['menge'],
|
||||
'price'=>$value['preis'],
|
||||
'tax'=>$value['umsatzsteuer'],
|
||||
'steuersatz'=>$value['steuersatz'],
|
||||
'steuertext'=>$value['steuertext'],
|
||||
'itemno'=>$value['nummer'],
|
||||
'artikel'=>$value['artikel'],
|
||||
'unit'=>$value['einheit'],
|
||||
'desc'=>$value['beschreibung'],
|
||||
"name"=>ltrim($value['bezeichnung']),
|
||||
'artikelnummerkunde'=>$value['artikelnummerkunde'],
|
||||
'lieferdatum'=>$value['lieferdatum'],
|
||||
'lieferdatumkw'=>$value['lieferdatumkw'],
|
||||
'zolltarifnummer'=>$value['zolltarifnummer'],
|
||||
'herkunftsland'=>$value['herkunftsland'],
|
||||
'ohnepreis'=>$value['ohnepreis'],
|
||||
'grundrabatt'=>$value['grundrabatt'],
|
||||
'rabatt1'=>$value['rabatt1'],
|
||||
'rabatt2'=>$value['rabatt2'],
|
||||
'rabatt3'=>$value['rabatt3'],
|
||||
'rabatt4'=>$value['rabatt4'],
|
||||
'rabatt5'=>$value['rabatt5'],
|
||||
'freifeld1'=>$value['freifeld1'],
|
||||
'freifeld2'=>$value['freifeld2'],
|
||||
'freifeld3'=>$value['freifeld3'],
|
||||
'freifeld4'=>$value['freifeld4'],
|
||||
'freifeld5'=>$value['freifeld5'],
|
||||
'freifeld6'=>$value['freifeld6'],
|
||||
'freifeld7'=>$value['freifeld7'],
|
||||
'freifeld8'=>$value['freifeld8'],
|
||||
'freifeld9'=>$value['freifeld9'],
|
||||
'freifeld10'=>$value['freifeld10'],
|
||||
'freifeld11'=>$value['freifeld11'],
|
||||
'freifeld12'=>$value['freifeld12'],
|
||||
'freifeld13'=>$value['freifeld13'],
|
||||
'freifeld14'=>$value['freifeld14'],
|
||||
'freifeld15'=>$value['freifeld15'],
|
||||
'freifeld16'=>$value['freifeld16'],
|
||||
'freifeld17'=>$value['freifeld17'],
|
||||
'freifeld18'=>$value['freifeld18'],
|
||||
'freifeld19'=>$value['freifeld19'],
|
||||
'freifeld20'=>$value['freifeld20'],
|
||||
'freifeld21'=>$value['freifeld21'],
|
||||
'freifeld22'=>$value['freifeld22'],
|
||||
'freifeld23'=>$value['freifeld23'],
|
||||
'freifeld24'=>$value['freifeld24'],
|
||||
'freifeld25'=>$value['freifeld25'],
|
||||
'freifeld26'=>$value['freifeld26'],
|
||||
'freifeld27'=>$value['freifeld27'],
|
||||
'freifeld28'=>$value['freifeld28'],
|
||||
'freifeld29'=>$value['freifeld29'],
|
||||
'freifeld30'=>$value['freifeld30'],
|
||||
'freifeld31'=>$value['freifeld31'],
|
||||
'freifeld32'=>$value['freifeld32'],
|
||||
'freifeld33'=>$value['freifeld33'],
|
||||
'freifeld34'=>$value['freifeld34'],
|
||||
'freifeld35'=>$value['freifeld35'],
|
||||
'freifeld36'=>$value['freifeld36'],
|
||||
'freifeld37'=>$value['freifeld37'],
|
||||
'freifeld38'=>$value['freifeld38'],
|
||||
'freifeld39'=>$value['freifeld39'],
|
||||
'freifeld40'=>$value['freifeld40'],
|
||||
"keinrabatterlaubt"=>$value['keinrabatterlaubt'],
|
||||
"rabatt"=>$value['rabatt']));
|
||||
}
|
||||
if($positionenkaufmaenischrunden == 3){
|
||||
$netto_gesamt = $value['menge'] * round($value['preis'] - ($value['preis'] / 100 * $value['rabatt']),2);
|
||||
}else{
|
||||
$netto_gesamt = $value['menge'] * ($value['preis'] - ($value['preis'] / 100 * $value['rabatt']));
|
||||
}
|
||||
if($positionenkaufmaenischrunden)
|
||||
{
|
||||
$netto_gesamt = round($netto_gesamt, 2);
|
||||
}
|
||||
$summe = $summe + $netto_gesamt;
|
||||
if(!isset($summen[$value['steuersatz']]))$summen[$value['steuersatz']] = 0;
|
||||
$summen[$value['steuersatz']] += ($netto_gesamt/100)*$value['steuersatz'];
|
||||
$gesamtsteuern +=($netto_gesamt/100)*$value['steuersatz'];
|
||||
/*
|
||||
if($value['umsatzsteuer']=="" || $value['umsatzsteuer']=="normal")
|
||||
{
|
||||
$summeV = $summeV + (($netto_gesamt/100)*$this->app->erp->GetSteuersatzNormal(false,$id,"gutschrift"));
|
||||
}
|
||||
else {
|
||||
$summeR = $summeR + (($netto_gesamt/100)*$this->app->erp->GetSteuersatzErmaessigt(false,$id,"gutschrift"));
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
if($positionenkaufmaenischrunden && isset($summen) && is_array($summen))
|
||||
{
|
||||
$gesamtsteuern = 0;
|
||||
foreach($summen as $k => $v)
|
||||
{
|
||||
$summen[$k] = round($v, 2);
|
||||
$gesamtsteuern += round($v, 2);
|
||||
}
|
||||
}
|
||||
if($positionenkaufmaenischrunden)
|
||||
{
|
||||
list($summe,$gesamtsumme, $summen) = $this->app->erp->steuerAusBelegPDF($this->table, $this->id);
|
||||
$gesamtsteuern = $gesamtsumme - $summe;
|
||||
}
|
||||
|
||||
/*
|
||||
$summe = $this->app->DB->Select("SELECT SUM(menge*preis) FROM gutschrift_position WHERE gutschrift='$id'");
|
||||
|
||||
$summeV = $this->app->DB->Select("SELECT SUM(menge*preis) FROM gutschrift_position WHERE gutschrift='$id' AND (umsatzsteuer='normal' or umsatzsteuer='')")/100 * 19;
|
||||
$summeR = $this->app->DB->Select("SELECT SUM(menge*preis) FROM gutschrift_position WHERE gutschrift='$id' AND umsatzsteuer='ermaessigt'")/100 * 7;
|
||||
*/
|
||||
if($this->app->erp->GutschriftMitUmsatzeuer($id))
|
||||
{
|
||||
$this->setTotals(array("totalArticles"=>$summe,"total"=>$summe + $gesamtsteuern,"summen"=>$summen,"totalTaxV"=>0,"totalTaxR"=>0));
|
||||
//$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);
|
||||
|
||||
if($stornorechnung)
|
||||
$this->filename = $datum2."_STORNO_".$belegnr.".pdf";
|
||||
else
|
||||
$this->filename = $datum2."_GS".$belegnr.".pdf";
|
||||
|
||||
$this->setBarcode($belegnr);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
<?php
|
||||
if(!class_exists('BriefpapierCustom'))
|
||||
{
|
||||
class BriefpapierCustom extends Briefpapier
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class GutschriftPDF extends BriefpapierCustom {
|
||||
public $doctype;
|
||||
|
||||
function __construct($app,$projekt="")
|
||||
{
|
||||
$this->app=$app;
|
||||
//parent::Briefpapier();
|
||||
$this->doctype="gutschrift";
|
||||
$this->doctypeOrig="Gutschrift";
|
||||
parent::__construct($this->app,$projekt);
|
||||
}
|
||||
|
||||
|
||||
function GetGutschrift($id)
|
||||
{
|
||||
$this->doctypeid = $id;
|
||||
|
||||
if($this->app->erp->Firmendaten("steuerspalteausblenden")=="1")
|
||||
{
|
||||
// pruefe ob es mehr als ein steuersatz gibt // wenn ja dann darf man sie nicht ausblenden
|
||||
$check = $this->app->erp->SteuerAusBeleg($this->doctype,$id);
|
||||
if(!empty($check)?count($check):0>1)$this->ust_spalteausblende=false;
|
||||
else $this->ust_spalteausblende=true;
|
||||
}
|
||||
|
||||
$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,"gutschrift");
|
||||
|
||||
$data = $this->app->DB->SelectRow(
|
||||
"SELECT adresse,kundennummer, sprache, rechnungid, buchhaltung, bearbeiter, vertrieb,
|
||||
lieferschein AS lieferscheinid, DATE_FORMAT(datum,'%d.%m.%Y') AS datum,
|
||||
DATE_FORMAT(lieferdatum,'%d.%m.%Y') AS lieferdatum, belegnr, freitext, ustid, ust_befreit,
|
||||
stornorechnung, keinsteuersatz, land, typ, zahlungsweise, zahlungsstatus, zahlungszieltage,
|
||||
zahlungszielskonto, projekt, waehrung, bodyzusatz,
|
||||
DATE_FORMAT(DATE_ADD(datum, INTERVAL zahlungszieltage DAY),'%d.%m.%Y') AS zahlungsdatum,
|
||||
ohne_briefpapier, ihrebestellnummer,DATE_FORMAT(datum,'%Y%m%d') as datum2, email, telefon
|
||||
FROM gutschrift WHERE id='$id' LIMIT 1"
|
||||
);
|
||||
extract($data,EXTR_OVERWRITE);
|
||||
$adresse = $data['adresse'];
|
||||
$kundennummer = $data['kundennummer'];
|
||||
$sprache = $data['sprache'];
|
||||
$rechnungid = $data['rechnungid'];
|
||||
$buchhaltung = $data['buchhaltung'];
|
||||
$email = $data['email'];
|
||||
$telefon = $data['telefon'];
|
||||
$bearbeiter = $data['bearbeiter'];
|
||||
$vertrieb = $data['vertrieb'];
|
||||
$lieferscheinid = $data['lieferscheinid'];
|
||||
$datum = $data['datum'];
|
||||
$lieferdatum = $data['lieferdatum'];
|
||||
$belegnr = $data['belegnr'];
|
||||
$freitext = $data['freitext'];
|
||||
$ustid = $data['ustid'];
|
||||
$ust_befreit = $data['ust_befreit'];
|
||||
$stornorechnung = $data['stornorechnung'];
|
||||
$keinsteuersatz = $data['keinsteuersatz'];
|
||||
$land = $data['land'];
|
||||
$typ = $data['typ'];
|
||||
$zahlungsweise = $data['zahlungsweise'];
|
||||
$zahlungszieltage = $data['zahlungszieltage'];
|
||||
|
||||
$zahlungszielskonto = $data['zahlungszielskonto'];
|
||||
$projekt = $data['projekt'];
|
||||
$waehrung = $data['waehrung'];
|
||||
$bodyzusatz = $data['bodyzusatz'];
|
||||
$zahlungsdatum = $data['zahlungsdatum'];
|
||||
$ohne_briefpapier = $data['ohne_briefpapier'];
|
||||
$ihrebestellnummer = $data['ihrebestellnummer'];
|
||||
$datum2 = $data['datum2'];
|
||||
$projektabkuerzung = $this->app->DB->Select(sprintf('SELECT abkuerzung FROM projekt WHERE id = %d', $projekt));
|
||||
$kundennummer = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id='$adresse' LIMIT 1");
|
||||
if(empty($sprache)){
|
||||
$sprache = $this->app->DB->Select("SELECT sprache FROM adresse WHERE id='$adresse' LIMIT 1");
|
||||
}
|
||||
$lieferschein = $this->app->DB->Select("SELECT belegnr FROM lieferschein WHERE id='$lieferscheinid' LIMIT 1");
|
||||
$lieferscheindatum = $this->app->DB->Select("SELECT DATE_FORMAT(datum, '%d.%m.%Y') AS datum FROM lieferschein WHERE id = '$lieferscheinid' LIMIT 1");
|
||||
$rechnung = $this->app->DB->Select("SELECT belegnr FROM rechnung WHERE id='$rechnungid' LIMIT 1");
|
||||
$rechnungsdatum = $this->app->DB->Select("SELECT DATE_FORMAT(datum, '%d.%m.%Y') AS datum FROM rechnung WHERE id = '$rechnungid' LIMIT 1");
|
||||
$auftrag = $this->app->DB->Select("SELECT auftrag FROM rechnung WHERE id = '$rechnungid' LIMIT 1");
|
||||
|
||||
$ihrebestellnummer = $this->app->erp->ReadyForPDF($ihrebestellnummer);
|
||||
$bearbeiter = $this->app->erp->ReadyForPDF($bearbeiter);
|
||||
$vertrieb = $this->app->erp->ReadyForPDF($vertrieb);
|
||||
|
||||
$this->app->erp->BeschriftungSprache($sprache);
|
||||
if($waehrung)$this->waehrung = $waehrung;
|
||||
$this->sprache = $sprache;
|
||||
$this->projekt = $projekt;
|
||||
$this->anrede = $typ;
|
||||
|
||||
if($vertrieb==$bearbeiter && (!$briefpapier_bearbeiter_ausblenden && !$briefpapier_vertrieb_ausblenden)) $vertrieb="";
|
||||
|
||||
if($ohne_briefpapier=="1")
|
||||
{
|
||||
$this->logofile = "";
|
||||
$this->briefpapier="";
|
||||
$this->briefpapier2="";
|
||||
}
|
||||
|
||||
// $zahlungsweise = strtolower($zahlungsweise);
|
||||
|
||||
if($zahlungsweise=="lastschrift" || $zahlungsweise=="einzugsermaechtigung")
|
||||
{
|
||||
$zahlungsweisetext = "\n".$this->app->erp->Beschriftung("dokument_offene_lastschriften");
|
||||
}
|
||||
|
||||
//if($zahlungszielskonto>0) $zahlungsweisetext .= "\n".$this->app->erp->Beschriftung("dokument_skonto")." $zahlungszielskonto% ".$this->app->erp->Beschriftung("dokument_auszahlungskonditionen");
|
||||
|
||||
if($zahlungszielskonto!=0)
|
||||
$zahlungsweisetext .="\r\n".$this->app->erp->Beschriftung("dokument_skontoanderezahlungsweisen");
|
||||
|
||||
$zahlungsweisetext = str_replace('{ZAHLUNGSZIELSKONTO}',number_format($zahlungszielskonto,2,',','.'),$zahlungsweisetext);
|
||||
|
||||
if($belegnr=="" || $belegnr=="0") $belegnr = "- ".$this->app->erp->Beschriftung("dokument_entwurf");
|
||||
|
||||
|
||||
if($stornorechnung)
|
||||
$this->doctypeOrig=$this->app->erp->Beschriftung("bezeichnungstornorechnung")." $belegnr";
|
||||
else
|
||||
$this->doctypeOrig=$this->app->erp->Beschriftung("dokument_gutschrift")." $belegnr";
|
||||
|
||||
if($gutschrift=="") $gutschrift = "-";
|
||||
if($kundennummer=="") $kundennummer= "-";
|
||||
|
||||
if($auftrag=="0") $auftrag = "-";
|
||||
if($lieferschein=="0") $lieferschein= "-";
|
||||
|
||||
$bearbeiteremail = $this->app->DB->Select("SELECT b.email FROM gutschrift g LEFT JOIN adresse b ON b.id=g.bearbeiterid WHERE g.id='$id' LIMIT 1");
|
||||
$bearbeitertelefon = $this->app->DB->Select("SELECT b.telefon FROM gutschrift g LEFT JOIN adresse b ON b.id=g.bearbeiterid WHERE g.id='$id' LIMIT 1");
|
||||
|
||||
/** @var \Xentral\Modules\Company\Service\DocumentCustomizationService $service */
|
||||
$service = $this->app->Container->get('DocumentCustomizationService');
|
||||
if($block = $service->findActiveBlock('corr', 'credit_note', $projekt)) {
|
||||
$sCD = $service->parseBlockAsArray($this->getLanguageCodeFrom($this->sprache),'corr', 'credit_note',[
|
||||
'GUTSCHRIFTSNUMMER' => $belegnr,
|
||||
'DATUM' => $datum,
|
||||
'RECHNUNGSNUMMER' => $rechnung,
|
||||
'RECHNUNGSDATUM' => $rechnungsdatum,
|
||||
'KUNDENNUMMER' => $kundennummer,
|
||||
'BEARBEITER' => $bearbeiter,
|
||||
'BEARBEITEREMAIL' => $bearbeiteremail,
|
||||
'BEARBEITERTELEFON' => $bearbeitertelefon,
|
||||
'VERTRIEB' => $vertrieb,
|
||||
'PROJEKT' => $projektabkuerzung,
|
||||
'AUFTRAGSNUMMER' => $auftrag,
|
||||
'LIEFERSCHEINNUMMER' => $lieferschein,
|
||||
'LIEFERSCHEINDATUM' => $lieferscheindatum,
|
||||
'EMAIL' => $email,
|
||||
'TELEFON' => $telefon
|
||||
|
||||
|
||||
|
||||
], $projekt);
|
||||
if(!empty($sCD)) {
|
||||
switch($block['fontstyle']) {
|
||||
case 'f':
|
||||
$this->setBoldCorrDetails($sCD);
|
||||
break;
|
||||
case 'i':
|
||||
$this->setItalicCorrDetails($sCD);
|
||||
break;
|
||||
case 'fi':
|
||||
$this->setItalicBoldCorrDetails($sCD);
|
||||
break;
|
||||
default:
|
||||
$this->setCorrDetails($sCD, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
||||
//$this->setCorrDetails(array("Auftrag"=>$auftrag,"Datum"=>$datum,"Ihre Kunden-Nr."=>$kundennummer,"Lieferschein"=>$lieferschein,"Buchhaltung"=>$buchhaltung));
|
||||
if($briefpapier_bearbeiter_ausblenden || $briefpapier_vertrieb_ausblenden){
|
||||
if($rechnung != ""){
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_rechnung") => $rechnung, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer, $this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer);
|
||||
}else{
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer);
|
||||
//$this->setCorrDetails(array($this->app->erp->Beschriftung("dokument_datum")=>$datum,$this->app->erp->Beschriftung("bezeichnungkundennummer")=>$kundennummer,$this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer")=>$ihrebestellnummer));
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
}else{
|
||||
if($rechnung != "")
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_rechnung") => $rechnung, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer, $this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter") => $bearbeiter, $this->app->erp->Beschriftung("auftrag_bezeichnung_vertrieb") => $vertrieb);
|
||||
else
|
||||
$sCD = array($this->app->erp->Beschriftung("dokument_datum") => $datum, $this->app->erp->Beschriftung("bezeichnungkundennummer") => $kundennummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bestellnummer") => $ihrebestellnummer, $this->app->erp->Beschriftung("auftrag_bezeichnung_bearbeiter") => $bearbeiter, $this->app->erp->Beschriftung("auftrag_bezeichnung_vertrieb") => $vertrieb);
|
||||
}
|
||||
|
||||
if($lieferdatum != "00.00.0000")
|
||||
$sCD[$this->app->erp->Beschriftung("dokument_lieferdatum")] = $lieferdatum;
|
||||
|
||||
|
||||
$this->setCorrDetails($sCD);
|
||||
}
|
||||
|
||||
if($keinsteuersatz!="1")
|
||||
{
|
||||
|
||||
if($ust_befreit==2)//$this->app->erp->Export($land))
|
||||
$steuer = $this->app->erp->Beschriftung("export_lieferung_vermerk");
|
||||
else {
|
||||
if($ust_befreit==1 && $ustid!="")//$this->app->erp->IstEU($land))
|
||||
$steuer = $this->app->erp->Beschriftung("eu_lieferung_vermerk");
|
||||
}
|
||||
$steuer = str_replace('{USTID}',$ustid,$steuer);
|
||||
$steuer = str_replace('{LAND}',$land,$steuer);
|
||||
}
|
||||
|
||||
$gutschrift_header=$this->app->erp->Beschriftung("gutschrift_header");
|
||||
if($bodyzusatz!="") $gutschrift_header=$gutschrift_header."\r\n".$bodyzusatz;
|
||||
|
||||
if($stornorechnung)
|
||||
{
|
||||
$gutschrift_header = str_replace('{ART}',$this->app->erp->Beschriftung("bezeichnungstornorechnung"),$gutschrift_header);
|
||||
} else {
|
||||
$gutschrift_header = str_replace('{ART}',$this->app->erp->Beschriftung("dokument_gutschrift"),$gutschrift_header);
|
||||
}
|
||||
|
||||
$gutschrift_header = $this->app->erp->ParseUserVars("gutschrift",$id,$gutschrift_header);
|
||||
|
||||
|
||||
if($this->app->erp->Firmendaten("footer_reihenfolge_gutschrift_aktivieren")=="1") {
|
||||
$footervorlage = $this->app->erp->Firmendaten("footer_reihenfolge_gutschrift");
|
||||
if($footervorlage=="")
|
||||
$footervorlage = "{FOOTERFREITEXT}\r\n{FOOTERTEXTVORLAGEGUTSCHRIFT}\r\n{FOOTERSTEUER}\r\n{FOOTERZAHLUNGSWEISETEXT}";
|
||||
|
||||
$footervorlage = str_replace('{FOOTERFREITEXT}',$freitext,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERTEXTVORLAGEGUTSCHRIFT}',$this->app->erp->Beschriftung("gutschrift_footer"),$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERSTEUER}',$steuer,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERZAHLUNGSWEISETEXT}',$zahlungsweisetext,$footervorlage);
|
||||
$footervorlage = $this->app->erp->ParseUserVars("gutschrift",$id,$footervorlage);
|
||||
$footer = $footervorlage;
|
||||
} else {
|
||||
$footer = "$freitext"."\r\n".$this->app->erp->ParseUserVars("gutschrift",$id,$this->app->erp->Beschriftung("gutschrift_footer"))."\r\n$zahlungsweisetext\r\n$steuer";
|
||||
}
|
||||
|
||||
|
||||
$this->setTextDetails(array(
|
||||
"body"=>$gutschrift_header,
|
||||
"footer"=>$footer));
|
||||
|
||||
$artikel = $this->app->DB->SelectArr("SELECT * FROM gutschrift_position WHERE gutschrift='$id' ORDER By sort");
|
||||
|
||||
if(!$this->app->erp->GutschriftMitUmsatzeuer($id)) $this->ust_befreit=true;
|
||||
|
||||
$summe_rabatt = $this->app->DB->Select("SELECT SUM(rabatt) FROM gutschrift_position WHERE gutschrift='$id'");
|
||||
if($summe_rabatt <> 0) $this->rabatt=1;
|
||||
|
||||
if($this->app->erp->Firmendaten("modul_verband")=="1") $this->rabatt=1;
|
||||
|
||||
//$waehrung = $this->app->DB->Select("SELECT waehrung FROM gutschrift_position WHERE gutschrift='$id' LIMIT 1");
|
||||
$steuersatzV = $this->app->erp->GetSteuersatzNormal(false,$id,"gutschrift");
|
||||
$steuersatzR = $this->app->erp->GetSteuersatzErmaessigt(false,$id,"gutschrift");
|
||||
$gesamtsteuern = 0;
|
||||
$mitumsatzsteuer = $this->app->erp->GutschriftMitUmsatzeuer($id);
|
||||
$belege_subpositionenstuecklisten = $this->app->erp->Firmendaten('belege_subpositionenstuecklisten');
|
||||
$belege_stuecklisteneinrueckenmm = $this->app->erp->Firmendaten('belege_stuecklisteneinrueckenmm');
|
||||
//$positionenkaufmaenischrunden = $this->app->erp->Firmendaten('positionenkaufmaenischrunden');
|
||||
$positionenkaufmaenischrunden = $this->app->erp->Projektdaten($projekt,"preisberechnung");
|
||||
$viernachkommastellen_belege = $this->app->erp->Firmendaten('viernachkommastellen_belege');
|
||||
foreach($artikel as $key=>$value)
|
||||
{
|
||||
if($value['umsatzsteuer'] != "ermaessigt" && $value['umsatzsteuer'] != "befreit") $value['umsatzsteuer'] = "normal";
|
||||
$tmpsteuersatz = null;
|
||||
$tmpsteuertext = null;
|
||||
$this->app->erp->GetSteuerPosition('gutschrift', $value['id'],$tmpsteuersatz, $tmpsteuertext);
|
||||
if(is_null($value['steuersatz']) || $value['steuersatz'] < 0)
|
||||
{
|
||||
if($value['umsatzsteuer'] == "ermaessigt")
|
||||
{
|
||||
$value['steuersatz'] = $steuersatzR;
|
||||
}elseif($value['umsatzsteuer'] == "befreit")
|
||||
{
|
||||
$value['steuersatz'] = $steuersatzR;
|
||||
}else{
|
||||
$value['steuersatz'] = $steuersatzV;
|
||||
}
|
||||
if(!is_null($tmpsteuersatz))$value['steuersatz'] = $tmpsteuersatz;
|
||||
}
|
||||
if($tmpsteuertext && !$value['steuertext'])$value['steuertext'] = $tmpsteuertext;
|
||||
if(!$mitumsatzsteuer)$value['steuersatz'] = 0;
|
||||
// negative Darstellung bei Stornorechnung
|
||||
if($stornorechnung) $value['preis'] = $value['preis'] *-1;
|
||||
|
||||
if(!$this->app->erp->Export($land))
|
||||
{
|
||||
$value['zolltarifnummer']="";
|
||||
$value['herkunftsland']="";
|
||||
}
|
||||
|
||||
$value = $this->CheckPosition($value,"gutschrift",$this->doctypeid,$value['id']);
|
||||
|
||||
$value['menge'] = floatval($value['menge']);
|
||||
|
||||
if($value['explodiert_parent_artikel'] > 0)
|
||||
{
|
||||
if($belege_subpositionenstuecklisten || $belege_stuecklisteneinrueckenmm)$value['bezeichnung'] = ltrim(ltrim($value['bezeichnung'],'*'));
|
||||
if(isset($lvl) && isset($lvl[$value['explodiert_parent_artikel']]))
|
||||
{
|
||||
$value['lvl'] = $lvl[$value['explodiert_parent_artikel']] + 1;
|
||||
}else{
|
||||
$value['lvl'] = 1;
|
||||
}
|
||||
$lvl[$value['artikel']] = $value['lvl'];
|
||||
$check_ausblenden = $this->app->DB->Select("SELECT keineeinzelartikelanzeigen FROM artikel WHERE id='".$value['explodiert_parent_artikel']."' LIMIT 1");
|
||||
if(!$check_ausblenden && isset($ausblenden) && in_array($value['explodiert_parent_artikel'], $ausblenden))
|
||||
{
|
||||
$check_ausblenden = true;
|
||||
}
|
||||
if($check_ausblenden)
|
||||
{
|
||||
$ausblenden[] = $value['artikel'];
|
||||
}
|
||||
} else
|
||||
{
|
||||
$check_ausblenden=0;
|
||||
$lvl[$value['artikel']] = 0;
|
||||
$value['lvl'] = 0;
|
||||
}
|
||||
|
||||
if($value['ausblenden_im_pdf']) $check_ausblenden=1;
|
||||
|
||||
$ohne_artikeltext = $this->app->DB->Select("SELECT ohne_artikeltext FROM ".$this->table." WHERE id='".$this->id."' LIMIT 1");
|
||||
if($ohne_artikeltext=="1") $value['beschreibung']="";
|
||||
|
||||
if($check_ausblenden!=1)
|
||||
{
|
||||
$this->addItem(array('currency'=>$value['waehrung'],'lvl'=>isset($value['lvl'])?$value['lvl']:0,
|
||||
'amount'=>$value['menge'],
|
||||
'price'=>$value['preis'],
|
||||
'tax'=>$value['umsatzsteuer'],
|
||||
'steuersatz'=>$value['steuersatz'],
|
||||
'steuertext'=>$value['steuertext'],
|
||||
'itemno'=>$value['nummer'],
|
||||
'artikel'=>$value['artikel'],
|
||||
'unit'=>$value['einheit'],
|
||||
'desc'=>$value['beschreibung'],
|
||||
"name"=>ltrim($value['bezeichnung']),
|
||||
'artikelnummerkunde'=>$value['artikelnummerkunde'],
|
||||
'lieferdatum'=>$value['lieferdatum'],
|
||||
'lieferdatumkw'=>$value['lieferdatumkw'],
|
||||
'zolltarifnummer'=>$value['zolltarifnummer'],
|
||||
'herkunftsland'=>$value['herkunftsland'],
|
||||
'ohnepreis'=>$value['ohnepreis'],
|
||||
'grundrabatt'=>$value['grundrabatt'],
|
||||
'rabatt1'=>$value['rabatt1'],
|
||||
'rabatt2'=>$value['rabatt2'],
|
||||
'rabatt3'=>$value['rabatt3'],
|
||||
'rabatt4'=>$value['rabatt4'],
|
||||
'rabatt5'=>$value['rabatt5'],
|
||||
'freifeld1'=>$value['freifeld1'],
|
||||
'freifeld2'=>$value['freifeld2'],
|
||||
'freifeld3'=>$value['freifeld3'],
|
||||
'freifeld4'=>$value['freifeld4'],
|
||||
'freifeld5'=>$value['freifeld5'],
|
||||
'freifeld6'=>$value['freifeld6'],
|
||||
'freifeld7'=>$value['freifeld7'],
|
||||
'freifeld8'=>$value['freifeld8'],
|
||||
'freifeld9'=>$value['freifeld9'],
|
||||
'freifeld10'=>$value['freifeld10'],
|
||||
'freifeld11'=>$value['freifeld11'],
|
||||
'freifeld12'=>$value['freifeld12'],
|
||||
'freifeld13'=>$value['freifeld13'],
|
||||
'freifeld14'=>$value['freifeld14'],
|
||||
'freifeld15'=>$value['freifeld15'],
|
||||
'freifeld16'=>$value['freifeld16'],
|
||||
'freifeld17'=>$value['freifeld17'],
|
||||
'freifeld18'=>$value['freifeld18'],
|
||||
'freifeld19'=>$value['freifeld19'],
|
||||
'freifeld20'=>$value['freifeld20'],
|
||||
'freifeld21'=>$value['freifeld21'],
|
||||
'freifeld22'=>$value['freifeld22'],
|
||||
'freifeld23'=>$value['freifeld23'],
|
||||
'freifeld24'=>$value['freifeld24'],
|
||||
'freifeld25'=>$value['freifeld25'],
|
||||
'freifeld26'=>$value['freifeld26'],
|
||||
'freifeld27'=>$value['freifeld27'],
|
||||
'freifeld28'=>$value['freifeld28'],
|
||||
'freifeld29'=>$value['freifeld29'],
|
||||
'freifeld30'=>$value['freifeld30'],
|
||||
'freifeld31'=>$value['freifeld31'],
|
||||
'freifeld32'=>$value['freifeld32'],
|
||||
'freifeld33'=>$value['freifeld33'],
|
||||
'freifeld34'=>$value['freifeld34'],
|
||||
'freifeld35'=>$value['freifeld35'],
|
||||
'freifeld36'=>$value['freifeld36'],
|
||||
'freifeld37'=>$value['freifeld37'],
|
||||
'freifeld38'=>$value['freifeld38'],
|
||||
'freifeld39'=>$value['freifeld39'],
|
||||
'freifeld40'=>$value['freifeld40'],
|
||||
"keinrabatterlaubt"=>$value['keinrabatterlaubt'],
|
||||
"rabatt"=>$value['rabatt']));
|
||||
}
|
||||
if($positionenkaufmaenischrunden == 3){
|
||||
$netto_gesamt = $value['menge'] * round($value['preis'] - ($value['preis'] / 100 * $value['rabatt']),2);
|
||||
}else{
|
||||
$netto_gesamt = $value['menge'] * ($value['preis'] - ($value['preis'] / 100 * $value['rabatt']));
|
||||
}
|
||||
if($positionenkaufmaenischrunden)
|
||||
{
|
||||
$netto_gesamt = round($netto_gesamt, 2);
|
||||
}
|
||||
$summe = $summe + $netto_gesamt;
|
||||
if(!isset($summen[$value['steuersatz']]))$summen[$value['steuersatz']] = 0;
|
||||
$summen[$value['steuersatz']] += ($netto_gesamt/100)*$value['steuersatz'];
|
||||
$gesamtsteuern +=($netto_gesamt/100)*$value['steuersatz'];
|
||||
/*
|
||||
if($value['umsatzsteuer']=="" || $value['umsatzsteuer']=="normal")
|
||||
{
|
||||
$summeV = $summeV + (($netto_gesamt/100)*$this->app->erp->GetSteuersatzNormal(false,$id,"gutschrift"));
|
||||
}
|
||||
else {
|
||||
$summeR = $summeR + (($netto_gesamt/100)*$this->app->erp->GetSteuersatzErmaessigt(false,$id,"gutschrift"));
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
if($positionenkaufmaenischrunden && isset($summen) && is_array($summen))
|
||||
{
|
||||
$gesamtsteuern = 0;
|
||||
foreach($summen as $k => $v)
|
||||
{
|
||||
$summen[$k] = round($v, 2);
|
||||
$gesamtsteuern += round($v, 2);
|
||||
}
|
||||
}
|
||||
if($positionenkaufmaenischrunden)
|
||||
{
|
||||
list($summe,$gesamtsumme, $summen) = $this->app->erp->steuerAusBelegPDF($this->table, $this->id);
|
||||
$gesamtsteuern = $gesamtsumme - $summe;
|
||||
}
|
||||
|
||||
/*
|
||||
$summe = $this->app->DB->Select("SELECT SUM(menge*preis) FROM gutschrift_position WHERE gutschrift='$id'");
|
||||
|
||||
$summeV = $this->app->DB->Select("SELECT SUM(menge*preis) FROM gutschrift_position WHERE gutschrift='$id' AND (umsatzsteuer='normal' or umsatzsteuer='')")/100 * 19;
|
||||
$summeR = $this->app->DB->Select("SELECT SUM(menge*preis) FROM gutschrift_position WHERE gutschrift='$id' AND umsatzsteuer='ermaessigt'")/100 * 7;
|
||||
*/
|
||||
if($this->app->erp->GutschriftMitUmsatzeuer($id))
|
||||
{
|
||||
$this->setTotals(array("totalArticles"=>$summe,"total"=>$summe + $gesamtsteuern,"summen"=>$summen,"totalTaxV"=>0,"totalTaxR"=>0));
|
||||
//$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);
|
||||
|
||||
if($stornorechnung)
|
||||
$this->filename = $datum2."_STORNO_".$belegnr.".pdf";
|
||||
else
|
||||
$this->filename = $datum2."_GS".$belegnr.".pdf";
|
||||
|
||||
$this->setBarcode($belegnr);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -50,7 +50,7 @@ class RechnungPDF extends BriefpapierCustom {
|
||||
{
|
||||
// pruefe ob es mehr als ein steuersatz gibt // wenn ja dann darf man sie nicht ausblenden
|
||||
$check = $this->app->erp->SteuerAusBeleg($this->doctype,$id);
|
||||
if(count($check)>1)$this->ust_spalteausblende=false;
|
||||
if(!empty($check)?count($check):0>1)$this->ust_spalteausblende=false;
|
||||
else $this->ust_spalteausblende=true;
|
||||
}
|
||||
$lvl = null;
|
||||
|
Loading…
Reference in New Issue
Block a user