mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
Kommissionierung autoversand
This commit is contained in:
parent
042f5b5527
commit
7d41a4b73b
@ -50385,6 +50385,72 @@
|
|||||||
"Privileges": "select,insert,update,references",
|
"Privileges": "select,insert,update,references",
|
||||||
"Comment": ""
|
"Comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Field": "usereditid",
|
||||||
|
"Type": "int(11)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "YES",
|
||||||
|
"Key": "MUL",
|
||||||
|
"Default": null,
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "projekt",
|
||||||
|
"Type": "int(11)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "MUL",
|
||||||
|
"Default": "0",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "adresse",
|
||||||
|
"Type": "int(10)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "MUL",
|
||||||
|
"Default": null,
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "belegnr",
|
||||||
|
"Type": "varchar(255)",
|
||||||
|
"Collation": "utf8mb3_general_ci",
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "MUL",
|
||||||
|
"Default": null,
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "schreibschutz",
|
||||||
|
"Type": "int(1)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "0",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "sprache",
|
||||||
|
"Type": "varchar(32)",
|
||||||
|
"Collation": "utf8mb3_general_ci",
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": null,
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Field": "zeitstempel",
|
"Field": "zeitstempel",
|
||||||
"Type": "timestamp",
|
"Type": "timestamp",
|
||||||
@ -50472,6 +50538,28 @@
|
|||||||
"Extra": "",
|
"Extra": "",
|
||||||
"Privileges": "select,insert,update,references",
|
"Privileges": "select,insert,update,references",
|
||||||
"Comment": ""
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "lieferschein",
|
||||||
|
"Type": "int(11)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "0",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "auftrag",
|
||||||
|
"Type": "int(11)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "0",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"keys": [
|
"keys": [
|
||||||
@ -50534,6 +50622,17 @@
|
|||||||
"Privileges": "select,insert,update,references",
|
"Privileges": "select,insert,update,references",
|
||||||
"Comment": ""
|
"Comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Field": "menge",
|
||||||
|
"Type": "decimal(14,4)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "0.0000",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Field": "ausgeblendet",
|
"Field": "ausgeblendet",
|
||||||
"Type": "tinyint(1)",
|
"Type": "tinyint(1)",
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2024 OpenXE-org
|
||||||
* SPDX-FileCopyrightText: 2022 Andreas Palm
|
* SPDX-FileCopyrightText: 2022 Andreas Palm
|
||||||
* SPDX-FileCopyrightText: 2019 Xentral (c) Xentral ERP Software GmbH, Fuggerstrasse 11, D-86150 Augsburg, Germany
|
* SPDX-FileCopyrightText: 2019 Xentral (c) Xentral ERP Software GmbH, Fuggerstrasse 11, D-86150 Augsburg, Germany
|
||||||
*
|
*
|
||||||
@ -3025,6 +3026,8 @@ function LieferscheinEinlagern($id,$grund="Lieferschein Einlagern", $lpiids = nu
|
|||||||
}
|
}
|
||||||
|
|
||||||
// @refactor LagerBeleg Modul
|
// @refactor LagerBeleg Modul
|
||||||
|
// Returns Array:
|
||||||
|
// storageMovements => array('lager_platz', 'artikel', 'menge');
|
||||||
function LieferscheinAuslagern($lieferschein,$anzeige_lagerplaetze_in_lieferschein=false, $standardlager = 0, $belegtyp = 'lieferschein', $chargenmhdnachprojekt = 0, $forceseriennummerngeliefertsetzen = false,$nurrestmenge = false, $lager_platz_vpe = 0, $lpiid = 0)
|
function LieferscheinAuslagern($lieferschein,$anzeige_lagerplaetze_in_lieferschein=false, $standardlager = 0, $belegtyp = 'lieferschein', $chargenmhdnachprojekt = 0, $forceseriennummerngeliefertsetzen = false,$nurrestmenge = false, $lager_platz_vpe = 0, $lpiid = 0)
|
||||||
{
|
{
|
||||||
if($lieferschein <= 0) {
|
if($lieferschein <= 0) {
|
||||||
@ -3138,6 +3141,7 @@ function LieferscheinEinlagern($id,$grund="Lieferschein Einlagern", $lpiids = nu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$storageLocations = [];
|
$storageLocations = [];
|
||||||
|
$storageMovements = [];
|
||||||
$cartikel = $artikelarr?count($artikelarr):0;
|
$cartikel = $artikelarr?count($artikelarr):0;
|
||||||
for($i= ($belegtyp==='produktion'?1:0) ;$i<$cartikel;$i++) {
|
for($i= ($belegtyp==='produktion'?1:0) ;$i<$cartikel;$i++) {
|
||||||
$beschreibung = $artikelarr[$i]['beschreibung'];
|
$beschreibung = $artikelarr[$i]['beschreibung'];
|
||||||
@ -3454,51 +3458,33 @@ function LieferscheinEinlagern($id,$grund="Lieferschein Einlagern", $lpiids = nu
|
|||||||
}
|
}
|
||||||
if((round($maxAuslagern,8) > round($lager_max[0]['menge'],8)) && ($lager_max[0]['menge'] > 0)) {
|
if((round($maxAuslagern,8) > round($lager_max[0]['menge'],8)) && ($lager_max[0]['menge'] > 0)) {
|
||||||
// es werden mehr gebraucht als im lager sind
|
// es werden mehr gebraucht als im lager sind
|
||||||
$this->LagerAuslagernRegal($artikel,$lager_max[0]['lager_platz'],$lager_max[0]['menge'],$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein, $lager_max[0]['lager_platz_vpe'], $lager_max[0]['id']);
|
$menge_auslagern = $lager_max[0]['menge'];
|
||||||
if($anzeige_lagerplaetze_in_lieferschein){
|
|
||||||
$this->LagerAuslagernText($artikel, $subid, $lager_max[0]['lager_platz'], $lager_max[0]['menge'], $belegtyp);
|
|
||||||
}else{
|
|
||||||
$this->LagerAuslagernObjektLagerPlatz($artikel, $subid, $lager_max[0]['lager_platz'], $lager_max[0]['menge'], $belegtyp);
|
|
||||||
}
|
|
||||||
$storageLocations[] = $lager_max[0]['lager_platz'];
|
|
||||||
$regal_name = $this->app->DB->Select("SELECT kurzbezeichnung FROM lager_platz WHERE id='".$lager_max[0]['lager_platz']."' LIMIT 1");
|
|
||||||
$lager_string .= $regal_name."(".$lager_max[0]['menge'].") ";
|
|
||||||
$restmenge = round($restmenge - $lager_max[0]['menge'],8);
|
|
||||||
if(!$nurrestmenge){
|
|
||||||
$this->LagerAuslagernRegalMHDCHARGESRN($artikel,$lager_max[0]['lager_platz'],$lager_max[0]['menge'],$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein,$subid, $chargenauslagern, $mhdauslagern, $seriennummernauslagern);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if( ($lager_max[0]['menge'] >= $maxAuslagern) && ($maxAuslagern > 0) ) {
|
else if( ($lager_max[0]['menge'] >= $maxAuslagern) && ($maxAuslagern > 0) ) {
|
||||||
// es sind genuegend lager
|
// es sind genuegend lager
|
||||||
$this->LagerAuslagernRegal($artikel,$lager_max[0]['lager_platz'],$maxAuslagern,$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein, $lager_max[0]['lager_platz_vpe'], $lager_max[0]['id']);
|
$menge_auslagern = $maxAuslagern;
|
||||||
$storageLocations[] = $lager_max[0]['lager_platz'];
|
|
||||||
if($anzeige_lagerplaetze_in_lieferschein){
|
|
||||||
$this->LagerAuslagernText($artikel, $subid, $lager_max[0]['lager_platz'], $maxAuslagern, $belegtyp);
|
|
||||||
}else{
|
|
||||||
$this->LagerAuslagernObjektLagerPlatz($artikel, $subid, $lager_max[0]['lager_platz'], $maxAuslagern, $belegtyp);
|
|
||||||
}
|
|
||||||
$regal_name = $this->app->DB->Select("SELECT kurzbezeichnung FROM lager_platz WHERE id='".$lager_max[0]['lager_platz']."' LIMIT 1");
|
|
||||||
$lager_string .= $regal_name."(".(float)$maxAuslagern.") ";
|
|
||||||
|
|
||||||
if(!$nurrestmenge){
|
|
||||||
$this->LagerAuslagernRegalMHDCHARGESRN($artikel,$lager_max[0]['lager_platz'],$maxAuslagern,$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein,$subid, $chargenauslagern, $mhdauslagern, $seriennummernauslagern);
|
|
||||||
}
|
|
||||||
$restmenge = round($restmenge - $maxAuslagern, 8);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
$this->LagerAuslagernRegal($artikel,$lager_max[0]['lager_platz'],$menge_auslagern,$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein, $lager_max[0]['lager_platz_vpe'], $lager_max[0]['id']);
|
||||||
// neue datenstruktue
|
$storageLocations[] = $lager_max[0]['lager_platz'];
|
||||||
if($lager_string=='') {
|
if($anzeige_lagerplaetze_in_lieferschein){
|
||||||
$beschreibung .="\r\nLager: manuell";
|
$this->LagerAuslagernText($artikel, $subid, $lager_max[0]['lager_platz'], $menge_auslagern, $belegtyp);
|
||||||
|
} else {
|
||||||
|
$this->LagerAuslagernObjektLagerPlatz($artikel, $subid, $lager_max[0]['lager_platz'], $menge_auslagern, $belegtyp);
|
||||||
|
}
|
||||||
|
$regal_name = $this->app->DB->Select("SELECT kurzbezeichnung FROM lager_platz WHERE id='".$lager_max[0]['lager_platz']."' LIMIT 1");
|
||||||
|
$lager_string .= $regal_name."(".(float)$menge_auslagern.") ";
|
||||||
|
if(!$nurrestmenge){
|
||||||
|
$this->LagerAuslagernRegalMHDCHARGESRN($artikel,$lager_max[0]['lager_platz'],$menge_auslagern,$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein,$subid, $chargenauslagern, $mhdauslagern, $seriennummernauslagern);
|
||||||
|
}
|
||||||
|
$restmenge = round($restmenge - $menge_auslagern, 8);
|
||||||
|
|
||||||
|
$storageMovements[] = array('lager_platz' => $lager_max[0]['lager_platz'], 'artikel' => $artikel,'menge' => $menge_auslagern);
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
$beschreibung .="\r\nLager: $lager_string";
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$geliefert = $menge;
|
$geliefert = $menge;
|
||||||
@ -3553,6 +3539,7 @@ function LieferscheinEinlagern($id,$grund="Lieferschein Einlagern", $lpiids = nu
|
|||||||
$this->RunHook('erpapi_lieferschein_auslagern', 1, $lieferschein);
|
$this->RunHook('erpapi_lieferschein_auslagern', 1, $lieferschein);
|
||||||
$this->LieferscheinProtokoll($lieferschein,"Lieferschein ausgelagert");
|
$this->LieferscheinProtokoll($lieferschein,"Lieferschein ausgelagert");
|
||||||
}
|
}
|
||||||
|
return(array('storageMovements' => $storageMovements));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -69,6 +69,7 @@ class Briefpapier extends SuperFPDF {
|
|||||||
public function __construct($app,$projekt="", $styleData = null) {
|
public function __construct($app,$projekt="", $styleData = null) {
|
||||||
|
|
||||||
if($styleData != null) $this->setStyleData($styleData);
|
if($styleData != null) $this->setStyleData($styleData);
|
||||||
|
|
||||||
//$orientation='P';$unit='mm';$format='A4';
|
//$orientation='P';$unit='mm';$format='A4';
|
||||||
//parent::PDF_EPS($orientation,$unit,$format);
|
//parent::PDF_EPS($orientation,$unit,$format);
|
||||||
$this->projekt = $projekt;
|
$this->projekt = $projekt;
|
||||||
@ -94,6 +95,9 @@ class Briefpapier extends SuperFPDF {
|
|||||||
$this->ust_spalteausblende=true;
|
$this->ust_spalteausblende=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->getStyleElement('ohne_steuer')) {
|
||||||
|
$this->ust_spalteausblende=true;
|
||||||
|
}
|
||||||
|
|
||||||
$hintergrund = $this->getStyleElement('hintergrund');
|
$hintergrund = $this->getStyleElement('hintergrund');
|
||||||
|
|
||||||
@ -2023,7 +2027,6 @@ class Briefpapier extends SuperFPDF {
|
|||||||
//$this->SetFont($this->GetFont(),'',9);
|
//$this->SetFont($this->GetFont(),'',9);
|
||||||
//if(isset($this->recipient['country'])) $this->Cell_typed(80,5,$this->recipient['country'],0,1);
|
//if(isset($this->recipient['country'])) $this->Cell_typed(80,5,$this->recipient['country'],0,1);
|
||||||
|
|
||||||
|
|
||||||
//FREITEXT1
|
//FREITEXT1
|
||||||
$freitext1aktiv = $this->getStyleElement('freitext1aktiv');
|
$freitext1aktiv = $this->getStyleElement('freitext1aktiv');
|
||||||
if($freitext1aktiv){
|
if($freitext1aktiv){
|
||||||
@ -2297,6 +2300,7 @@ class Briefpapier extends SuperFPDF {
|
|||||||
|
|
||||||
$this->SetFont($this->GetFont(),'B',$betreffszeile);
|
$this->SetFont($this->GetFont(),'B',$betreffszeile);
|
||||||
$this->SetY($this->GetY()+$this->abstand_betreffzeileoben);
|
$this->SetY($this->GetY()+$this->abstand_betreffzeileoben);
|
||||||
|
|
||||||
//$this->Cell_typed(85,6,$this->doctypeOrig);
|
//$this->Cell_typed(85,6,$this->doctypeOrig);
|
||||||
$this->MultiCell(210-83+$this->abstand_boxrechtsoben_lr-$this->getStyleElement("abstand_seitenrandlinks")-5,6,html_entity_decode($this->doctypeOrig,ENT_QUOTES),0,'L');
|
$this->MultiCell(210-83+$this->abstand_boxrechtsoben_lr-$this->getStyleElement("abstand_seitenrandlinks")-5,6,html_entity_decode($this->doctypeOrig,ENT_QUOTES),0,'L');
|
||||||
$this->SetY($this->GetY()-$this->abstand_betreffzeileoben);
|
$this->SetY($this->GetY()-$this->abstand_betreffzeileoben);
|
||||||
@ -2559,25 +2563,30 @@ class Briefpapier extends SuperFPDF {
|
|||||||
$inventurohnepreis = null;
|
$inventurohnepreis = null;
|
||||||
if(!in_array($this->table ? $this->table : $this->doctype, ['rechnung','auftrag','angebot','bestellung'])) {
|
if(!in_array($this->table ? $this->table : $this->doctype, ['rechnung','auftrag','angebot','bestellung'])) {
|
||||||
|
|
||||||
$from = $this->table ? $this->table : $this->doctype;
|
$from = $this->table ? $this->table : $this->doctype;
|
||||||
|
|
||||||
if ($this->app->DB->Select("SHOW COLUMNS FROM `$from` LIKE 'noprice'")) {
|
if ($this->app->DB->Select("SHOW COLUMNS FROM `$from` LIKE 'noprice'")) {
|
||||||
|
|
||||||
$inventurohnepreis = $this->app->DB->Select(
|
$inventurohnepreis = $this->app->DB->Select(
|
||||||
sprintf(
|
sprintf(
|
||||||
'SELECT noprice
|
'SELECT noprice
|
||||||
FROM `%s`
|
FROM `%s`
|
||||||
WHERE id = %d
|
WHERE id = %d
|
||||||
LIMIT 1',
|
LIMIT 1',
|
||||||
$from,
|
$from,
|
||||||
$this->id
|
$this->id
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$inventurohnepreis = false;
|
$inventurohnepreis = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->getStyleElement("preise_ausblenden")) {
|
||||||
|
$inventurohnepreis = true;
|
||||||
|
}
|
||||||
|
|
||||||
if($inventurohnepreis){
|
if($inventurohnepreis){
|
||||||
$descWidth += 40;
|
$descWidth += 40;
|
||||||
}
|
}
|
||||||
@ -2731,7 +2740,13 @@ class Briefpapier extends SuperFPDF {
|
|||||||
$this->SetTextColor(0,0,0);
|
$this->SetTextColor(0,0,0);
|
||||||
for ($l=$pos; $l <= $pos+$jitposfix ; $l++) {
|
for ($l=$pos; $l <= $pos+$jitposfix ; $l++) {
|
||||||
//Arbeitet die Zwischenpositionen durch falls der vorherige Artikel ein Stücklistenartikel war bei dem Teile ausgeblendet wurden
|
//Arbeitet die Zwischenpositionen durch falls der vorherige Artikel ein Stücklistenartikel war bei dem Teile ausgeblendet wurden
|
||||||
$iszwichenpos = $this->DrawZwischenpositionen($l+$jitposfixbase);
|
|
||||||
|
if ($has_steuer) {
|
||||||
|
$iszwichenpos = $this->DrawZwischenpositionen($l+$jitposfixbase);
|
||||||
|
} else {
|
||||||
|
$iszwichenpos = $this->DrawZwischenpositionen($l+$jitposfixbase,'','');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
$jitposfixbase += $jitposfix;
|
$jitposfixbase += $jitposfix;
|
||||||
if($item['keineeinzelartikelanzeigen'] == 1){
|
if($item['keineeinzelartikelanzeigen'] == 1){
|
||||||
|
207
www/lib/dokumente/class.kommissionierung.php
Normal file
207
www/lib/dokumente/class.kommissionierung.php
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
<?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 KommissionierungPDF extends BriefpapierCustom {
|
||||||
|
public $doctype;
|
||||||
|
|
||||||
|
function __construct($app,$projekt="", $styleData=null)
|
||||||
|
{
|
||||||
|
$this->app=$app;
|
||||||
|
//parent::Briefpapier();
|
||||||
|
$this->doctype="kommissionierung";
|
||||||
|
$this->doctypeOrig="Kommissionierung";
|
||||||
|
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 GetKommissionierung($id,$info="",$extrafreitext="")
|
||||||
|
{
|
||||||
|
$this->doctypeid = $id;
|
||||||
|
$this->id = $id;
|
||||||
|
$this->table = 'kommissionierung'; // 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
|
||||||
|
k.kommentar,
|
||||||
|
k.bezeichnung,
|
||||||
|
k.bearbeiter,
|
||||||
|
DATE_FORMAT(k.zeitstempel,'%Y%m%d') as datum,
|
||||||
|
l.belegnr as lieferscheinnummer,
|
||||||
|
ab.belegnr as auftragnummer,
|
||||||
|
DATE_FORMAT(ab.tatsaechlicheslieferdatum,'%d.%m.%Y') as tatsaechlicheslieferdatum,
|
||||||
|
a.name
|
||||||
|
FROM
|
||||||
|
kommissionierung k
|
||||||
|
LEFT JOIN
|
||||||
|
lieferschein l
|
||||||
|
ON
|
||||||
|
k.lieferschein = l.id
|
||||||
|
LEFT JOIN
|
||||||
|
auftrag ab
|
||||||
|
ON
|
||||||
|
l.auftragid = ab.id
|
||||||
|
LEFT JOIN
|
||||||
|
adresse a
|
||||||
|
ON
|
||||||
|
a.id = l.adresse
|
||||||
|
WHERE k.id='$id'
|
||||||
|
");
|
||||||
|
|
||||||
|
$this->zusatzfooter = " (KS$id)";
|
||||||
|
|
||||||
|
$this->doctypeOrig = $this->app->erp->Beschriftung("dokument_kommissionierschein") . " $id";
|
||||||
|
|
||||||
|
$body = $this->app->erp->Beschriftung("Kommissionierung_header");
|
||||||
|
$body = $this->app->erp->ParseUserVars("Kommissionierung",$id,$body);
|
||||||
|
|
||||||
|
if($this->app->erp->Firmendaten("footer_reihenfolge_Kommissionierung_aktivieren")=="1") {
|
||||||
|
$footervorlage = $this->app->erp->Firmendaten("footer_reihenfolge_Kommissionierung");
|
||||||
|
if($footervorlage=='') {
|
||||||
|
$footervorlage = "{FOOTERVERSANDINFO}{FOOTERFREITEXT}{FOOTEREXTRAFREITEXT}\r\n{FOOTERTEXTVORLAGEKommissionierung}";
|
||||||
|
}
|
||||||
|
$footervorlage = str_replace('{FOOTERVERSANDINFO}',$versandinfo,$footervorlage);
|
||||||
|
$footervorlage = str_replace('{FOOTERFREITEXT}',$freitext,$footervorlage);
|
||||||
|
$footervorlage = str_replace('{FOOTEREXTRAFREITEXT}',$extrafreitext,$footervorlage);
|
||||||
|
$footervorlage = str_replace('{FOOTERTEXTVORLAGEKommissionierung}',$this->app->erp->Beschriftung("Kommissionierung_footer"),$footervorlage);
|
||||||
|
$footervorlage = $this->app->erp->ParseUserVars("Kommissionierung",$id,$footervorlage);
|
||||||
|
$footer = $footervorlage;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$footer = $versandinfo."$freitext\r\n$extrafreitext\r\n".$this->app->erp->ParseUserVars("Kommissionierung",$id,$this->app->erp->Beschriftung("Kommissionierung_footer"));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setTextDetails(
|
||||||
|
array(
|
||||||
|
'body' => $body,
|
||||||
|
'footer'=> $footer
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$orderpicking_sort = $this->app->erp->Projektdaten($this->projekt, 'orderpicking_sort');
|
||||||
|
|
||||||
|
$artikel = $this->app->DB->SelectArr(
|
||||||
|
sprintf(
|
||||||
|
"SELECT
|
||||||
|
ks.id,
|
||||||
|
a.nummer as itemno,
|
||||||
|
lp.kurzbezeichnung as `desc`,
|
||||||
|
ksp.menge as amount,
|
||||||
|
a.herstellernummer as `name`,
|
||||||
|
'' as steuersatz_ermaessigt,
|
||||||
|
DATE_FORMAT(zeitstempel,'%%Y%%m%%d') as datum
|
||||||
|
FROM
|
||||||
|
kommissionierung ks
|
||||||
|
INNER JOIN kommissionierung_position ksp ON ks.id = ksp.kommissionierung
|
||||||
|
INNER JOIN artikel a ON a.id = ksp.artikel
|
||||||
|
INNER JOIN lager_platz lp ON lp.id = ksp.lager_platz
|
||||||
|
WHERE ks.id = %d",
|
||||||
|
$id
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach($artikel as $key=>$value) {
|
||||||
|
$this->addItem($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->filename = $data['datum']."_KS".$id.".pdf";
|
||||||
|
$this->setBarcode($id);
|
||||||
|
|
||||||
|
$corrDetails = array();
|
||||||
|
|
||||||
|
if (!empty($data['auftragnummer'])) {
|
||||||
|
$corrDetails['Auftrag'] = $data['auftragnummer'];
|
||||||
|
}
|
||||||
|
if (!empty($data['lieferscheinnummer'])) {
|
||||||
|
$corrDetails['Lieferschein'] = $data['lieferscheinnummer'];
|
||||||
|
}
|
||||||
|
if (!empty($data['name'])) {
|
||||||
|
$corrDetails['Adresse'] = $data['name'];
|
||||||
|
}
|
||||||
|
if (!empty($data['tatsaechlicheslieferdatum'])) {
|
||||||
|
$corrDetails['Liefertermin'] = $data['tatsaechlicheslieferdatum'];
|
||||||
|
}
|
||||||
|
$this->setCorrDetails($corrDetails, true);
|
||||||
|
}
|
||||||
|
}
|
@ -5636,6 +5636,8 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
{
|
{
|
||||||
$this->kommissionierung = $this->app->erp->GetNextKommissionierung();
|
$this->kommissionierung = $this->app->erp->GetNextKommissionierung();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// mit der funktionen koennen nur erstauftraege abgewickelt koennen!!!
|
// mit der funktionen koennen nur erstauftraege abgewickelt koennen!!!
|
||||||
$internmodus = 0;
|
$internmodus = 0;
|
||||||
if($id!='')
|
if($id!='')
|
||||||
@ -5920,7 +5922,6 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
|
|
||||||
$druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
|
$druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
|
||||||
|
|
||||||
|
|
||||||
$this->app->erp->Protokoll("WeiterfuehrenAuftragZuRechnung AB $belegnr Kommissionierverfahren: $kommissionierverfahren Projekt $projekt");
|
$this->app->erp->Protokoll("WeiterfuehrenAuftragZuRechnung AB $belegnr Kommissionierverfahren: $kommissionierverfahren Projekt $projekt");
|
||||||
|
|
||||||
switch($kommissionierverfahren)
|
switch($kommissionierverfahren)
|
||||||
@ -5949,12 +5950,14 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
if($this->kommissionierung){
|
if($this->kommissionierung){
|
||||||
$this->app->DB->Update(
|
$this->app->DB->Update(
|
||||||
sprintf(
|
sprintf(
|
||||||
"UPDATE lieferschein SET kommissionierung = %d WHERE id = %d LIMIT 1",
|
"UPDATE kommissionierung SET lieferschein = %d WHERE id = %d LIMIT 1",
|
||||||
$this->kommissionierung, $lieferschein
|
$id,
|
||||||
|
$this->kommissionierung
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$this->updateCase($this->kommissionierung);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$auslagernresult =
|
||||||
$this->app->erp->LieferscheinAuslagern(
|
$this->app->erp->LieferscheinAuslagern(
|
||||||
$lieferschein,
|
$lieferschein,
|
||||||
true,
|
true,
|
||||||
@ -5965,9 +5968,31 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
$nurRestmenge
|
$nurRestmenge
|
||||||
);
|
);
|
||||||
|
|
||||||
|
foreach ($auslagernresult['storageMovements'] as $storageMovement) {
|
||||||
|
$this->app->DB->Update(
|
||||||
|
sprintf(
|
||||||
|
"INSERT INTO kommissionierung_position (kommissionierung, artikel, lager_platz, menge) VALUES (%d, %d, %d, %d)",
|
||||||
|
$this->kommissionierung,
|
||||||
|
$storageMovement['artikel'],
|
||||||
|
$storageMovement['lager_platz'],
|
||||||
|
$storageMovement['menge']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kommissionierschein drucken?
|
||||||
|
if ($projektarr['autodruckkommissionierscheinstufe1']) {
|
||||||
|
$Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
|
||||||
|
$Brief->GetKommissionierung($this->kommissionierung);
|
||||||
|
$tmpfile = $Brief->displayTMP();
|
||||||
|
for($mengedruck=$projektarr['autodruckkommissionierscheinstufe1menge'];$mengedruck > 0;$mengedruck--) {
|
||||||
|
$druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
|
||||||
|
$this->app->printer->Drucken($druckercode, $tmpfile);
|
||||||
|
}
|
||||||
|
unlink($tmpfile);
|
||||||
|
}
|
||||||
|
|
||||||
// Prozesse ohne Versandzentrum
|
// Prozesse ohne Versandzentrum
|
||||||
|
|
||||||
|
|
||||||
$this->app->erp->BriefpapierHintergrundDisable($druckercode);
|
$this->app->erp->BriefpapierHintergrundDisable($druckercode);
|
||||||
|
|
||||||
$this->app->erp->BriefpapierHintergrunddisable = !$this->app->erp->BriefpapierHintergrunddisable;
|
$this->app->erp->BriefpapierHintergrunddisable = !$this->app->erp->BriefpapierHintergrunddisable;
|
||||||
|
Loading…
Reference in New Issue
Block a user