mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2025-02-11 12:10:09 +01:00
produktion PDF class
This commit is contained in:
parent
c2dbc20f37
commit
0dd54fe099
244
www/lib/dokumente/class.produktion.php
Normal file
244
www/lib/dokumente/class.produktion.php
Normal file
@ -0,0 +1,244 @@
|
||||
<?php
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024 OpenXE-org
|
||||
* SPDX-FileCopyrightText: 2019 Xentral (c) Xentral ERP Software GmbH, Fuggerstrasse 11, D-86150 Augsburg, Germany
|
||||
*
|
||||
* SPDX-License-Identifier: LicenseRef-EGPL-3.1
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
if(!class_exists('BriefpapierCustom'))
|
||||
{
|
||||
class BriefpapierCustom extends Briefpapier
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class ProduktionPDF extends BriefpapierCustom {
|
||||
public $doctype;
|
||||
|
||||
function __construct($app,$projekt="", $styleData=null)
|
||||
{
|
||||
$this->app=$app;
|
||||
//parent::Briefpapier();
|
||||
$this->doctype="produktion";
|
||||
$this->doctypeOrig="produktion";
|
||||
parent::__construct($this->app,$projekt,$styleData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $articleList
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function sortAricleExploded($articleList)
|
||||
{
|
||||
if(empty($articleList)) {
|
||||
return $articleList;
|
||||
}
|
||||
|
||||
$ret = [];
|
||||
|
||||
$articleIdToKey = [];
|
||||
$children = [];
|
||||
foreach($articleList as $aricleKey => $article) {
|
||||
$articleIdToKey[$article['id']] = $aricleKey;
|
||||
if(!empty($article['explodiert_parent_artikel'])) {
|
||||
$children[$article['explodiert_parent']][] = $aricleKey;
|
||||
}
|
||||
elseif(empty($ret)) {
|
||||
$ret[] = $article;
|
||||
unset($articleList[$aricleKey]);
|
||||
}
|
||||
}
|
||||
if(empty($ret)) {
|
||||
$ret[] = reset($articleList);
|
||||
$key = array_keys($articleList);
|
||||
$key = reset($key);
|
||||
unset($articleList[$key]);
|
||||
}
|
||||
|
||||
while(!empty($articleList)) {
|
||||
$cRet = count($ret);
|
||||
for($i = $cRet -1; $i >= 0; $i--) {
|
||||
$last= $ret[$i];
|
||||
if(!empty($children[$last['id']])) {
|
||||
$child = reset($children[$last['id']]);
|
||||
$childKey = array_keys($children[$last['id']]);
|
||||
$childKey = reset($childKey);
|
||||
$ret[] = $articleList[$child];
|
||||
unset($articleList[$child]);
|
||||
unset($children[$last['id']][$childKey]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($cRet === count($ret)) {
|
||||
$ret[] = reset($articleList);
|
||||
$key = array_keys($articleList);
|
||||
$key = reset($key);
|
||||
unset($articleList[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
function GetProduktion($id,$info="",$extrafreitext="")
|
||||
{
|
||||
$this->doctypeid = $id;
|
||||
$this->id = $id;
|
||||
$this->table = 'produktion'; // Alles doppelt und dreifach... $#%#!
|
||||
$this->parameter = $info;
|
||||
$this->nichtsichtbar_summe = true;
|
||||
// $this->nichtsichtbar_box = true;
|
||||
$this->nichtsichtbar_empfaenger = true;
|
||||
$this->nichtsichtbar_zeileabsender = true;
|
||||
$this->nichtsichtbar_footer = true;
|
||||
|
||||
$briefpapier_bearbeiter_ausblenden = $this->app->erp->Firmendaten('briefpapier_bearbeiter_ausblenden');
|
||||
$briefpapier_vertrieb_ausblenden = $this->app->erp->Firmendaten('briefpapier_vertrieb_ausblenden');
|
||||
$lvl = null;
|
||||
|
||||
$data = $this->app->DB->SelectRow("
|
||||
SELECT
|
||||
a.name as adressname,
|
||||
DATE_FORMAT(p.datum,'%d.%m.%Y') as datum,
|
||||
p.belegnr,
|
||||
p.freitext,
|
||||
p.internebemerkung,
|
||||
p.bearbeiter,
|
||||
p.internebezeichnung,
|
||||
auf.belegnr auftragsnummer,
|
||||
projekt.name projekt
|
||||
FROM
|
||||
produktion p
|
||||
LEFT JOIN
|
||||
adresse a
|
||||
ON
|
||||
a.id = p.adresse
|
||||
LEFT JOIN
|
||||
auftrag auf
|
||||
ON
|
||||
auf.id = p.auftragid
|
||||
LEFT JOIN projekt ON projekt.id = p.projekt
|
||||
WHERE p.id='$id'
|
||||
");
|
||||
|
||||
$this->zusatzfooter = " (PD".$data['belegnr'].")";
|
||||
|
||||
$this->doctypeOrig = $this->app->erp->Beschriftung("dokument_produktion") ." ".$data['belegnr'];
|
||||
|
||||
$produktionsartikel = $this->app->DB->SelectRow("
|
||||
SELECT
|
||||
a.name_de,
|
||||
a.nummer,
|
||||
a.internerkommentar,
|
||||
a.hinweis_einfuegen
|
||||
FROM
|
||||
produktion p
|
||||
INNER JOIN produktion_position pp ON p.id = pp.produktion
|
||||
INNER JOIN artikel a ON a.id = pp.artikel
|
||||
WHERE pp.stuecklistestufe = 1
|
||||
");
|
||||
|
||||
$bodytexte = Array();
|
||||
if (!empty($produktionsartikel['internerkommentar'])) {
|
||||
$bodytext['Artikelkommentar'] = $produktionsartikel['internerkommentar'];
|
||||
}
|
||||
if (!empty($produktionsartikel['hinweis_einfuegen'])) {
|
||||
$bodytext['Artikelhinweis'] = $produktionsartikel['hinweis_einfuegen'];
|
||||
}
|
||||
if (!empty($data['freitext'])) {
|
||||
$bodytext['Freitext'] = $data['freitext'];
|
||||
}
|
||||
if (!empty($data['internebemerkung'])) {
|
||||
$bodytext['Interne Bemerkung'] = $data['internebemerkung'];
|
||||
}
|
||||
|
||||
$nlbr = "";
|
||||
foreach ($bodytext as $key => $value) {
|
||||
$body .= $nlbr.$key.":\n".$value;
|
||||
$nlbr = "\n\n";
|
||||
}
|
||||
|
||||
$artikel = $this->app->DB->SelectArr(
|
||||
sprintf(
|
||||
"SELECT
|
||||
p.id,
|
||||
a.nummer as itemno,
|
||||
a.name_de as name,
|
||||
a.herstellernummer,
|
||||
TRIM(pp.menge)+0 as amount,
|
||||
'' as steuersatz_ermaessigt,
|
||||
DATE_FORMAT(datum,'%%Y%%m%%d') as datum
|
||||
FROM
|
||||
produktion p
|
||||
INNER JOIN produktion_position pp ON p.id = pp.produktion
|
||||
INNER JOIN artikel a ON a.id = pp.artikel
|
||||
WHERE p.id = %d
|
||||
AND pp.stuecklistestufe = 0
|
||||
",
|
||||
$id
|
||||
)
|
||||
);
|
||||
|
||||
/*
|
||||
$item['name'] = ($langeartikelnummern?"\r\n\r\n":'').$this->app->erp->ReadyForPDF($item['name']);
|
||||
$item['desc'] = $this->app->erp->ReadyForPDF($item['desc']);
|
||||
$item['itemno'] = $this->app->erp->ReadyForPDF($item['itemno']);
|
||||
$item['herstellernummer'] = $this->app->erp->ReadyForPDF($item['herstellernummer']);
|
||||
$item['artikelnummerkunde'] = $this->app->erp->ReadyForPDF($item['artikelnummerkunde']);
|
||||
$item['lieferdatum'] = $this->app->erp->ReadyForPDF($item['lieferdatum']);
|
||||
$item['hersteller'] = $this->app->erp->ReadyForPDF($item['hersteller']);
|
||||
|
||||
if($this->getStyleElement('herstellernummerimdokument')=='1' && $item['herstellernummer']!='')
|
||||
|
||||
*/
|
||||
|
||||
foreach($artikel as $key=>$value) {
|
||||
$this->addItem($value);
|
||||
}
|
||||
|
||||
if($this->app->erp->Firmendaten("footer_reihenfolge_Produktion_aktivieren")=="1") {
|
||||
$footervorlage = $this->app->erp->Firmendaten("footer_reihenfolge_Produktion");
|
||||
if($footervorlage=='') {
|
||||
$footervorlage = "{FOOTERVERSANDINFO}{FOOTERFREITEXT}{FOOTEREXTRAFREITEXT}\r\n{FOOTERTEXTVORLAGEProduktion}";
|
||||
}
|
||||
$footervorlage = str_replace('{FOOTERVERSANDINFO}',$versandinfo,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERFREITEXT}',$freitext,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTEREXTRAFREITEXT}',$extrafreitext,$footervorlage);
|
||||
$footervorlage = str_replace('{FOOTERTEXTVORLAGEProduktion}',$this->app->erp->Beschriftung("Produktion_footer"),$footervorlage);
|
||||
$footervorlage = $this->app->erp->ParseUserVars("Produktion",$id,$footervorlage);
|
||||
$footer = $footervorlage;
|
||||
}
|
||||
else {
|
||||
$footer = $versandinfo."$freitext\r\n$extrafreitext\r\n".$this->app->erp->ParseUserVars("Produktion",$id,$this->app->erp->Beschriftung("Produktion_footer"));
|
||||
}
|
||||
|
||||
$this->filename = $data['datum']."_PD".$data['belegnr'].".pdf";
|
||||
$this->setBarcode($data['belegnr']);
|
||||
|
||||
$corrDetails = array();
|
||||
|
||||
$corrDetails['Artikel'] = $produktionsartikel['name_de']." (".$produktionsartikel['nummer'].")";
|
||||
$corrDetails['Projekt'] = $data['projekt'];
|
||||
$corrDetails['Adresse'] = $data['adressname'];
|
||||
$corrDetails['Auftrag'] = $data['auftragsnummer'];
|
||||
$corrDetails['Interne Bezeichnung'] = $data['internebezeichnung'];
|
||||
$corrDetails['Datum'] = $data['datum'];
|
||||
|
||||
$body = $this->app->erp->ParseUserVars("Produktion",$id,$body);
|
||||
|
||||
$this->setTextDetails(
|
||||
array(
|
||||
'body' => $body,
|
||||
'footer'=> $footer
|
||||
)
|
||||
);
|
||||
|
||||
$this->setCorrDetails($corrDetails, true);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user