mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-14 20:17:14 +01:00
Kommissionierung, Kommissionsscheine
This commit is contained in:
parent
5c21bf6c1d
commit
652838c950
@ -50440,6 +50440,17 @@
|
|||||||
"Privileges": "select,insert,update,references",
|
"Privileges": "select,insert,update,references",
|
||||||
"Comment": ""
|
"Comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Field": "ausgelagert",
|
||||||
|
"Type": "int(1)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "0",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Field": "sprache",
|
"Field": "sprache",
|
||||||
"Type": "varchar(32)",
|
"Type": "varchar(32)",
|
||||||
|
@ -3028,7 +3028,7 @@ function LieferscheinEinlagern($id,$grund="Lieferschein Einlagern", $lpiids = nu
|
|||||||
// @refactor LagerBeleg Modul
|
// @refactor LagerBeleg Modul
|
||||||
// Returns Array:
|
// Returns Array:
|
||||||
// storageMovements => array('lager_platz', 'artikel', 'menge');
|
// 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, $simulieren = false)
|
||||||
{
|
{
|
||||||
if($lieferschein <= 0) {
|
if($lieferschein <= 0) {
|
||||||
return;
|
return;
|
||||||
@ -3468,77 +3468,87 @@ function LieferscheinEinlagern($id,$grund="Lieferschein Einlagern", $lpiids = nu
|
|||||||
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']);
|
|
||||||
$storageLocations[] = $lager_max[0]['lager_platz'];
|
|
||||||
if($anzeige_lagerplaetze_in_lieferschein){
|
|
||||||
$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);
|
$storageMovements[] = array('lager_platz' => $lager_max[0]['lager_platz'], 'artikel' => $artikel,'menge' => $menge_auslagern);
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$geliefert = $menge;
|
if (!$simulieren) {
|
||||||
if($nurrestmenge && $belegtyp=='produktion') {
|
$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']);
|
||||||
$geliefert = $menge + $artikelarr[$i]['geliefert_menge'];
|
$storageLocations[] = $lager_max[0]['lager_platz'];
|
||||||
}
|
if($anzeige_lagerplaetze_in_lieferschein){
|
||||||
$artikelhatseriennummer = $this->app->DB->Select("SELECT seriennummern FROM artikel WHERE id='".$artikel."' LIMIT 1");
|
$this->LagerAuslagernText($artikel, $subid, $lager_max[0]['lager_platz'], $menge_auslagern, $belegtyp);
|
||||||
if($belegtyp == 'produktion')
|
} else {
|
||||||
{
|
$this->LagerAuslagernObjektLagerPlatz($artikel, $subid, $lager_max[0]['lager_platz'], $menge_auslagern, $belegtyp);
|
||||||
$this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert_menge='$geliefert', geliefert = 1 WHERE id='$subid' LIMIT 1");
|
}
|
||||||
}else{
|
$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($belegtyp=="lieferschein")
|
if(!$nurrestmenge){
|
||||||
{
|
$this->LagerAuslagernRegalMHDCHARGESRN($artikel,$lager_max[0]['lager_platz'],$menge_auslagern,$projekt,ucfirst($belegtyp)." $belegnr","",$belegtyp,$lieferschein,$subid, $chargenauslagern, $mhdauslagern, $seriennummernauslagern);
|
||||||
$auftragposid=$this->app->DB->Select("SELECT auftrag_position_id FROM lieferschein_position WHERE id='$subid'");
|
}
|
||||||
if($auftragposid>0)
|
|
||||||
{
|
|
||||||
$this->app->DB->Update("UPDATE auftrag_position SET geliefert_menge='$geliefert' WHERE id='$auftragposid' LIMIT 1");
|
|
||||||
}
|
}
|
||||||
}
|
$restmenge = round($restmenge - $menge_auslagern, 8);
|
||||||
|
|
||||||
if($seriennummernerfassen=='1' && ($artikelhatseriennummer=='vomprodukteinlagern' || $artikelhatseriennummer=='vomprodukt' || $artikelhatseriennummer=='eigene'))
|
|
||||||
{
|
|
||||||
// wenn Seriennummer erfasst werden soll
|
|
||||||
//if($anzeige_lagerplaetze_in_lieferschein)
|
|
||||||
//{
|
|
||||||
//$this->app->DB->Update("UPDATE ".$belegtyp."_position SET beschreibung='$beschreibung' WHERE id='$subid' LIMIT 1");
|
|
||||||
//neue datenstruktur
|
|
||||||
//}
|
|
||||||
if($forceseriennummerngeliefertsetzen)$this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert='$geliefert' WHERE id='$subid' LIMIT 1");
|
|
||||||
} else {
|
|
||||||
//wenn nicht
|
|
||||||
//if($anzeige_lagerplaetze_in_lieferschein)
|
|
||||||
// $this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert='$geliefert',beschreibung='$beschreibung' WHERE id='$subid' LIMIT 1");
|
|
||||||
//else
|
|
||||||
$this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert='$geliefert' WHERE id='$subid' LIMIT 1");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(!empty($storageLocations)) {
|
|
||||||
$this->addStorageCountry($belegtyp, $lieferschein, $storageLocations);
|
|
||||||
}
|
|
||||||
$this->app->DB->Delete("DELETE FROM lager_reserviert WHERE objekt = '$belegtyp' AND parameter = '$lieferschein'");
|
|
||||||
|
|
||||||
$auftragid = $this->app->DB->Select("SELECT auftragid FROM $belegtyp WHERE id='$lieferschein'");
|
if (!$simulieren) {
|
||||||
if($auftragid){
|
|
||||||
$this->app->DB->Delete("DELETE FROM lager_reserviert WHERE objekt = 'auftrag' AND parameter = '$auftragid'");
|
$geliefert = $menge;
|
||||||
|
if($nurrestmenge && $belegtyp=='produktion') {
|
||||||
|
$geliefert = $menge + $artikelarr[$i]['geliefert_menge'];
|
||||||
|
}
|
||||||
|
$artikelhatseriennummer = $this->app->DB->Select("SELECT seriennummern FROM artikel WHERE id='".$artikel."' LIMIT 1");
|
||||||
|
if($belegtyp == 'produktion')
|
||||||
|
{
|
||||||
|
$this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert_menge='$geliefert', geliefert = 1 WHERE id='$subid' LIMIT 1");
|
||||||
|
}else{
|
||||||
|
|
||||||
|
if($belegtyp=="lieferschein")
|
||||||
|
{
|
||||||
|
$auftragposid=$this->app->DB->Select("SELECT auftrag_position_id FROM lieferschein_position WHERE id='$subid'");
|
||||||
|
if($auftragposid>0)
|
||||||
|
{
|
||||||
|
$this->app->DB->Update("UPDATE auftrag_position SET geliefert_menge='$geliefert' WHERE id='$auftragposid' LIMIT 1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($seriennummernerfassen=='1' && ($artikelhatseriennummer=='vomprodukteinlagern' || $artikelhatseriennummer=='vomprodukt' || $artikelhatseriennummer=='eigene'))
|
||||||
|
{
|
||||||
|
// wenn Seriennummer erfasst werden soll
|
||||||
|
//if($anzeige_lagerplaetze_in_lieferschein)
|
||||||
|
//{
|
||||||
|
//$this->app->DB->Update("UPDATE ".$belegtyp."_position SET beschreibung='$beschreibung' WHERE id='$subid' LIMIT 1");
|
||||||
|
//neue datenstruktur
|
||||||
|
//}
|
||||||
|
if($forceseriennummerngeliefertsetzen)$this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert='$geliefert' WHERE id='$subid' LIMIT 1");
|
||||||
|
} else {
|
||||||
|
//wenn nicht
|
||||||
|
//if($anzeige_lagerplaetze_in_lieferschein)
|
||||||
|
// $this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert='$geliefert',beschreibung='$beschreibung' WHERE id='$subid' LIMIT 1");
|
||||||
|
//else
|
||||||
|
$this->app->DB->Update("UPDATE ".$belegtyp."_position SET geliefert='$geliefert' WHERE id='$subid' LIMIT 1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // simulieren
|
||||||
|
} // for loop
|
||||||
|
|
||||||
|
if (!$simulieren) {
|
||||||
|
|
||||||
|
if(!empty($storageLocations)) {
|
||||||
|
$this->addStorageCountry($belegtyp, $lieferschein, $storageLocations);
|
||||||
|
}
|
||||||
|
$this->app->DB->Delete("DELETE FROM lager_reserviert WHERE objekt = '$belegtyp' AND parameter = '$lieferschein'");
|
||||||
|
|
||||||
|
if($belegtyp == '' || $belegtyp === 'lieferschein')
|
||||||
|
{
|
||||||
|
$auftragid = $this->app->DB->Select("SELECT auftragid FROM $belegtyp WHERE id='$lieferschein'");
|
||||||
|
if($auftragid){
|
||||||
|
$this->app->DB->Delete("DELETE FROM lager_reserviert WHERE objekt = 'auftrag' AND parameter = '$auftragid'");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->RunHook('erpapi_lieferschein_auslagern', 1, $lieferschein);
|
||||||
|
$this->LieferscheinProtokoll($lieferschein,"Lieferschein ausgelagert");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($belegtyp == '' || $belegtyp === 'lieferschein')
|
|
||||||
{
|
|
||||||
$this->RunHook('erpapi_lieferschein_auslagern', 1, $lieferschein);
|
|
||||||
$this->LieferscheinProtokoll($lieferschein,"Lieferschein ausgelagert");
|
|
||||||
}
|
|
||||||
return(array('storageMovements' => $storageMovements));
|
return(array('storageMovements' => $storageMovements));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +108,7 @@ class KommissionierungPDF extends BriefpapierCustom {
|
|||||||
k.bezeichnung,
|
k.bezeichnung,
|
||||||
k.bearbeiter,
|
k.bearbeiter,
|
||||||
DATE_FORMAT(k.zeitstempel,'%Y%m%d') as datum,
|
DATE_FORMAT(k.zeitstempel,'%Y%m%d') as datum,
|
||||||
|
k.ausgelagert,
|
||||||
l.belegnr as lieferscheinnummer,
|
l.belegnr as lieferscheinnummer,
|
||||||
ab.belegnr as auftragnummer,
|
ab.belegnr as auftragnummer,
|
||||||
DATE_FORMAT(ab.tatsaechlicheslieferdatum,'%d.%m.%Y') as tatsaechlicheslieferdatum,
|
DATE_FORMAT(ab.tatsaechlicheslieferdatum,'%d.%m.%Y') as tatsaechlicheslieferdatum,
|
||||||
@ -121,11 +122,11 @@ class KommissionierungPDF extends BriefpapierCustom {
|
|||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
auftrag ab
|
auftrag ab
|
||||||
ON
|
ON
|
||||||
l.auftragid = ab.id
|
l.auftragid = ab.id OR k.auftrag = ab.id
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
adresse a
|
adresse a
|
||||||
ON
|
ON
|
||||||
a.id = l.adresse
|
a.id = k.adresse
|
||||||
WHERE k.id='$id'
|
WHERE k.id='$id'
|
||||||
");
|
");
|
||||||
|
|
||||||
@ -170,7 +171,7 @@ class KommissionierungPDF extends BriefpapierCustom {
|
|||||||
ksp.menge as amount,
|
ksp.menge as amount,
|
||||||
a.herstellernummer as `name`,
|
a.herstellernummer as `name`,
|
||||||
'' as steuersatz_ermaessigt,
|
'' as steuersatz_ermaessigt,
|
||||||
DATE_FORMAT(zeitstempel,'%%Y%%m%%d') as datum
|
DATE_FORMAT(zeitstempel,'%%Y%%m%%d') as datum
|
||||||
FROM
|
FROM
|
||||||
kommissionierung ks
|
kommissionierung ks
|
||||||
INNER JOIN kommissionierung_position ksp ON ks.id = ksp.kommissionierung
|
INNER JOIN kommissionierung_position ksp ON ks.id = ksp.kommissionierung
|
||||||
@ -202,6 +203,11 @@ class KommissionierungPDF extends BriefpapierCustom {
|
|||||||
if (!empty($data['tatsaechlicheslieferdatum'])) {
|
if (!empty($data['tatsaechlicheslieferdatum'])) {
|
||||||
$corrDetails['Liefertermin'] = $data['tatsaechlicheslieferdatum'];
|
$corrDetails['Liefertermin'] = $data['tatsaechlicheslieferdatum'];
|
||||||
}
|
}
|
||||||
|
if (!empty($data['ausgelagert'])) {
|
||||||
|
$corrDetails['Ausgelagert'] = "ja";
|
||||||
|
} else {
|
||||||
|
$corrDetails['Ausgelagert'] = "nein";
|
||||||
|
}
|
||||||
$this->setCorrDetails($corrDetails, true);
|
$this->setCorrDetails($corrDetails, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -579,91 +579,93 @@ class Auftrag extends GenAuftrag
|
|||||||
break;
|
break;
|
||||||
case 'auftraegeoffeneauto':
|
case 'auftraegeoffeneauto':
|
||||||
|
|
||||||
$allowed['auftraegeoffeneauto'] = array('list');
|
$allowed['auftraegeoffeneauto'] = array('list');
|
||||||
|
|
||||||
$heading = array('','', 'Auftrag', 'Vom', 'Kd-Nr.', 'Kunde','Lieferdatum', 'Land','Projekt', 'Zahlung', 'Betrag (brutto)','Monitor','Menü');
|
$heading = array('','', 'Auftrag', 'Vom', 'Kd-Nr.', 'Kunde','Lieferdatum', 'Land','Projekt', 'Zahlung', 'Betrag (brutto)','Kommissionierung','Monitor','Menü');
|
||||||
$width = array('1%','1%','1%', '10%', '10%', '10%', '27%', '5%', '5%','1%', '1%', '1%', '1%');
|
$width = array('1%','1%','1%', '10%', '10%', '27%', '10%', '5%', '5%', '1%', '1%', '1%', '1%');
|
||||||
$findcols = array('open','a.belegnr', 'a.belegnr', 'a.datum', 'a.lieferantkdrnummer', 'a.name','a.tatsaechlicheslieferdatum', 'a.land', 'p.abkuerzung', 'a.zahlungsweise', 'a.gesamtsumme');
|
$findcols = array('open','a.belegnr', 'a.belegnr', 'a.datum', 'a.lieferantkdrnummer', 'a.name','a.tatsaechlicheslieferdatum', 'a.land', 'p.abkuerzung', 'a.zahlungsweise', 'a.gesamtsumme','(SELECT id FROM kommissionierung WHERE auftrag = a.id)');
|
||||||
|
|
||||||
$defaultorder = 1;
|
$defaultorder = 1;
|
||||||
$defaultorderdesc = 0;
|
$defaultorderdesc = 0;
|
||||||
|
$alignright = array(3,4,5,11,12);
|
||||||
|
|
||||||
$menu = "";
|
$menu = "";
|
||||||
|
|
||||||
$sql = "SELECT SQL_CALC_FOUND_ROWS
|
$sql = "SELECT SQL_CALC_FOUND_ROWS
|
||||||
a.id,
|
a.id,
|
||||||
'<img src=./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/details_open.png class=details>' AS `open`,
|
'<img src=./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/details_open.png class=details>' AS `open`,
|
||||||
CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',a.id,'\" />') AS `auswahl`,
|
CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',a.id,'\" />') AS `auswahl`,
|
||||||
IF(a.fastlane=1,CONCAT(a.belegnr,' (FL)'),a.belegnr) AS `belegnr`,
|
IF(a.fastlane=1,CONCAT(a.belegnr,' (FL)'),a.belegnr) AS `belegnr`,
|
||||||
DATE_FORMAT(a.datum,'%d.%m.%Y') AS `datum`,
|
DATE_FORMAT(a.datum,'%d.%m.%Y') AS `datum`,
|
||||||
a.lieferantkdrnummer,
|
a.lieferantkdrnummer,
|
||||||
a.name,
|
a.name,
|
||||||
DATE_FORMAT(a.tatsaechlicheslieferdatum,'%d.%m.%Y') as `tatsaechlicheslieferdatum`,
|
DATE_FORMAT(a.tatsaechlicheslieferdatum,'%d.%m.%Y') as `tatsaechlicheslieferdatum`,
|
||||||
a.land,
|
a.land,
|
||||||
p.abkuerzung,
|
p.abkuerzung,
|
||||||
a.zahlungsweise,
|
a.zahlungsweise,
|
||||||
a.gesamtsumme,
|
a.gesamtsumme,
|
||||||
(" . $this->app->YUI->IconsSQL() . ") AS icons,
|
(SELECT id FROM kommissionierung WHERE auftrag = a.id) as kommissionierung,
|
||||||
a.id
|
(" . $this->app->YUI->IconsSQL() . ") AS icons,
|
||||||
FROM
|
a.id
|
||||||
auftrag a LEFT JOIN projekt p ON a.projekt = p.id";
|
FROM
|
||||||
|
auftrag a LEFT JOIN projekt p ON a.projekt = p.id";
|
||||||
|
|
||||||
$where = "a.status = 'freigegeben' AND a.cronjobkommissionierung = 0 AND a.lager_ok=1 AND a.porto_ok=1 AND a.ust_ok=1 AND a.vorkasse_ok=1 AND a.nachnahme_ok=1 AND a.autoversand=1 AND a.check_ok=1 AND a.kreditlimit_ok=1 AND a.liefersperre_ok=1"; // liefertermin_ok special treatment
|
$where = "a.status = 'freigegeben' AND a.cronjobkommissionierung = 0 AND a.lager_ok=1 AND a.porto_ok=1 AND a.ust_ok=1 AND a.vorkasse_ok=1 AND a.nachnahme_ok=1 AND a.autoversand=1 AND a.check_ok=1 AND a.kreditlimit_ok=1 AND a.liefersperre_ok=1"; // liefertermin_ok special treatment
|
||||||
|
|
||||||
$count = "SELECT count(DISTINCT id) FROM auftrag a WHERE $where";
|
$count = "SELECT count(DISTINCT id) FROM auftrag a WHERE $where";
|
||||||
|
|
||||||
// $groupby = "";
|
// $groupby = "";
|
||||||
|
|
||||||
$moreinfo = true; // Allow drop down details
|
$moreinfo = true; // Allow drop down details
|
||||||
|
|
||||||
// Toggle filters
|
// Toggle filters
|
||||||
$this->app->Tpl->Add('JQUERYREADY', "$('#fastlane').click( function() { fnFilterColumn1( 0 ); } );");
|
$this->app->Tpl->Add('JQUERYREADY', "$('#fastlane').click( function() { fnFilterColumn1( 0 ); } );");
|
||||||
$this->app->Tpl->Add('JQUERYREADY', "$('#auftrag_kundemehrereauftraege').click( function() { fnFilterColumn2( 0 ); } );");
|
$this->app->Tpl->Add('JQUERYREADY', "$('#auftrag_kundemehrereauftraege').click( function() { fnFilterColumn2( 0 ); } );");
|
||||||
$this->app->Tpl->Add('JQUERYREADY', "$('#auftrag_lieferdatum').click( function() { fnFilterColumn3( 0 ); } );");
|
$this->app->Tpl->Add('JQUERYREADY', "$('#auftrag_lieferdatum').click( function() { fnFilterColumn3( 0 ); } );");
|
||||||
|
|
||||||
for ($r = 1;$r <= 3;$r++) {
|
for ($r = 1;$r <= 3;$r++) {
|
||||||
$this->app->Tpl->Add('JAVASCRIPT', '
|
$this->app->Tpl->Add('JAVASCRIPT', '
|
||||||
function fnFilterColumn' . $r . ' ( i )
|
function fnFilterColumn' . $r . ' ( i )
|
||||||
{
|
{
|
||||||
if(oMoreData' . $r . $name . '==1)
|
if(oMoreData' . $r . $name . '==1)
|
||||||
oMoreData' . $r . $name . ' = 0;
|
oMoreData' . $r . $name . ' = 0;
|
||||||
else
|
else
|
||||||
oMoreData' . $r . $name . ' = 1;
|
oMoreData' . $r . $name . ' = 1;
|
||||||
|
|
||||||
$(\'#' . $name . '\').dataTable().fnFilter(
|
$(\'#' . $name . '\').dataTable().fnFilter(
|
||||||
\'\',
|
\'\',
|
||||||
i,
|
i,
|
||||||
0,0
|
0,0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
');
|
');
|
||||||
}
|
}
|
||||||
|
|
||||||
$more_data1 = $this->app->Secure->GetGET("more_data1");
|
$more_data1 = $this->app->Secure->GetGET("more_data1");
|
||||||
|
|
||||||
if ($more_data1 == 1) {
|
if ($more_data1 == 1) {
|
||||||
$where .= " AND a.fastlane=1";
|
$where .= " AND a.fastlane=1";
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|
||||||
$more_data3 = $this->app->Secure->GetGET("more_data3");
|
$more_data3 = $this->app->Secure->GetGET("more_data3");
|
||||||
if ($more_data3 == 1) {
|
if ($more_data3 == 1) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$where .= " AND a.liefertermin_ok=1";
|
$where .= " AND a.liefertermin_ok=1";
|
||||||
}
|
}
|
||||||
|
|
||||||
$more_data2 = $this->app->Secure->GetGET("more_data2");
|
$more_data2 = $this->app->Secure->GetGET("more_data2");
|
||||||
if ($more_data2 == 1) $where .= " AND a.adresse in (SELECT adresse FROM `auftrag` a WHERE ".$where." GROUP BY adresse HAVING count(id) > 1)"; // More than 1 order per address
|
if ($more_data2 == 1) $where .= " AND a.adresse in (SELECT adresse FROM `auftrag` a WHERE ".$where." GROUP BY adresse HAVING count(id) > 1)"; // More than 1 order per address
|
||||||
|
|
||||||
// END Toggle filters
|
// END Toggle filters
|
||||||
|
|
||||||
$menu .= "<a href=\"index.php?module=auftrag&action=edit&id=%value%\">";
|
$menu .= "<a href=\"index.php?module=auftrag&action=edit&id=%value%\">";
|
||||||
$menu .= "<img src=\"themes/{$this->app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">";
|
$menu .= "<img src=\"themes/{$this->app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">";
|
||||||
$menu .= "</a>";
|
$menu .= "</a>";
|
||||||
|
|
||||||
$moreinfo = true; // Minidetail active
|
$moreinfo = true; // Minidetail active
|
||||||
$menucol = 11; // For minidetail
|
$menucol = 11; // For minidetail
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'auftraegeoffeneautowartend':
|
case 'auftraegeoffeneautowartend':
|
||||||
@ -886,7 +888,6 @@ class Auftrag extends GenAuftrag
|
|||||||
*/
|
*/
|
||||||
public function __construct($app, $intern = false)
|
public function __construct($app, $intern = false)
|
||||||
{
|
{
|
||||||
$this->kommissionierung = false;
|
|
||||||
$this->app=$app;
|
$this->app=$app;
|
||||||
if($intern) {
|
if($intern) {
|
||||||
return;
|
return;
|
||||||
@ -5453,9 +5454,6 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
$this->app->Tpl->Parse('PAGE',"tabview.tpl");
|
$this->app->Tpl->Parse('PAGE',"tabview.tpl");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function AuftragReservieren()
|
function AuftragReservieren()
|
||||||
{
|
{
|
||||||
$id = $this->app->Secure->GetGET('id');
|
$id = $this->app->Secure->GetGET('id');
|
||||||
@ -5465,179 +5463,12 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
$this->app->Location->execute("index.php?module=auftrag&action=edit&id=$id&msg=$msg");
|
$this->app->Location->execute("index.php?module=auftrag&action=edit&id=$id&msg=$msg");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int $kommissionierungId
|
|
||||||
*/
|
|
||||||
public function updateCase($kommissionierungId)
|
|
||||||
{
|
|
||||||
if($kommissionierungId <= 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$deliveryNotes = $this->app->DB->SelectArr(
|
|
||||||
sprintf(
|
|
||||||
'SELECT id, kiste FROM lieferschein WHERE kommissionierung = %d ORDER BY id',
|
|
||||||
$kommissionierungId
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if(empty($deliveryNotes)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$kiste = 0;
|
|
||||||
foreach($deliveryNotes as $deliveryNote) {
|
|
||||||
$kiste++;
|
|
||||||
if($deliveryNote['kiste'] != $kiste) {
|
|
||||||
$this->app->DB->Update(
|
|
||||||
sprintf(
|
|
||||||
'UPDATE lieferschein SET kiste = %d WHERE id = %d',
|
|
||||||
$kiste, $deliveryNote['id']
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $orders
|
|
||||||
* @param int $projectId
|
|
||||||
* @param int $cronjobCommissionId
|
|
||||||
* @param int $cronjobId
|
|
||||||
* @param int $commissionId
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function sendOrders($orders, $projectId, $cronjobCommissionId, $cronjobId = 0, $commissionId = 0)
|
|
||||||
{
|
|
||||||
$return = 0;
|
|
||||||
if(empty($orders) || !is_array($orders)) {
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$commissionName = empty($cronjobCommissionId)?'': $this->app->DB->real_escape_string(
|
|
||||||
$this->app->DB->Select(
|
|
||||||
sprintf(
|
|
||||||
'SELECT `bezeichnung` FROM `cronjob_kommissionierung` WHERE `id` = %d',
|
|
||||||
$cronjobCommissionId
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
$this->kommissionierung = $commissionId > 0
|
|
||||||
? $commissionId
|
|
||||||
: $this->app->erp->GetNextKommissionierung($commissionName);
|
|
||||||
foreach($orders as $auftrag) {
|
|
||||||
if(
|
|
||||||
$auftragRow = $this->app->DB->SelectRow(
|
|
||||||
sprintf(
|
|
||||||
"SELECT a.id, a.belegnr
|
|
||||||
FROM auftrag AS a
|
|
||||||
WHERE (cronjobkommissionierung = '$cronjobCommissionId' OR 0 = '$cronjobCommissionId')
|
|
||||||
AND a.id != ''
|
|
||||||
AND (a.belegnr!=0 OR a.belegnr!='') AND a.status='freigegeben' AND a.inbearbeitung=0
|
|
||||||
AND a.nachlieferung!='1' AND a.autoversand='1' AND a.liefertermin_ok='1' AND kreditlimit_ok='1'
|
|
||||||
AND liefersperre_ok='1'
|
|
||||||
AND a.vorkasse_ok='1' AND a.porto_ok='1' AND a.lager_ok='1' AND a.check_ok='1' AND a.ust_ok='1'
|
|
||||||
AND a.id = %d
|
|
||||||
GROUP BY a.id
|
|
||||||
ORDER by a.id",
|
|
||||||
$auftrag
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
if($cronjobId > 0){
|
|
||||||
$this->app->erp->ProzessstarterStatus(
|
|
||||||
'Auftrag Versand Auftrag: ' . $auftragRow['belegnr'], $cronjobId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//$this->app->erp->AuftragEinzelnBerechnen($auftrag);
|
|
||||||
$this->app->DB->Update(
|
|
||||||
"UPDATE prozessstarter
|
|
||||||
SET mutex = 1 , mutexcounter = 0, letzteausfuerhung = now()
|
|
||||||
WHERE (parameter = 'autoversand_standard' OR parameter = 'autoversand_manuell') AND aktiv = 1"
|
|
||||||
);
|
|
||||||
$erg = null;
|
|
||||||
$this->app->erp->RunHook('VorAutoversand', 1, $auftrag);
|
|
||||||
if(
|
|
||||||
$this->app->DB->Select(
|
|
||||||
sprintf(
|
|
||||||
"SELECT a.id
|
|
||||||
FROM auftrag AS a
|
|
||||||
WHERE a.id = %d AND (a.belegnr!=0 OR a.belegnr!='') AND a.status='freigegeben'
|
|
||||||
AND a.inbearbeitung=0 AND a.nachlieferung!='1' AND a.autoversand='1' AND a.liefertermin_ok='1'
|
|
||||||
AND kreditlimit_ok='1' AND liefersperre_ok='1'
|
|
||||||
AND a.vorkasse_ok='1' AND a.porto_ok='1' AND a.lager_ok='1' AND a.check_ok='1' AND a.ust_ok='1'
|
|
||||||
GROUP BY a.id",
|
|
||||||
$auftrag
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
$this->AuftragVersand($auftrag, false, $erg, true);
|
|
||||||
$return++;
|
|
||||||
}
|
|
||||||
$this->app->DB->Update(
|
|
||||||
sprintf(
|
|
||||||
'UPDATE auftrag SET cronjobkommissionierung = 0 WHERE id = %d LIMIT 1',
|
|
||||||
$auftrag
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(
|
|
||||||
empty($projectId)
|
|
||||||
|| empty($this->kommissionierung)
|
|
||||||
|| !$this->app->DB->Select(
|
|
||||||
sprintf(
|
|
||||||
'SELECT `id` FROM `lieferschein` WHERE `kommissionierung` = %d LIMIT 1',
|
|
||||||
$this->kommissionierung
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$kommissionierlistestufe1 = $this->app->erp->Projektdaten($projectId, 'kommissionierlistestufe1');
|
|
||||||
if($kommissionierlistestufe1) {
|
|
||||||
$druckercode = $this->app->erp->Projektdaten($projectId, 'druckerlogistikstufe1');
|
|
||||||
if($druckercode <=0) {
|
|
||||||
$druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
|
|
||||||
}
|
|
||||||
$kommissionierlistestufe1menge = $this->app->erp->Projektdaten(
|
|
||||||
$projectId, 'kommissionierlistestufe1menge'
|
|
||||||
);
|
|
||||||
if($kommissionierlistestufe1menge < 1) {
|
|
||||||
$kommissionierlistestufe1menge = 1;
|
|
||||||
}
|
|
||||||
/** @var Kommissionierlauf $obj2 */
|
|
||||||
$obj2 = $this->app->erp->LoadModul('kommissionierlauf');
|
|
||||||
if($obj2 && $this->kommissionierung) {
|
|
||||||
if($cronjobId > 0){
|
|
||||||
$this->app->erp->ProzessstarterStatus(
|
|
||||||
'KommissionierlaufPDF: ' . $this->kommissionierung, $cronjobId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$tmpfile = $obj2->KommissionierlaufPDF($this->kommissionierung);
|
|
||||||
for($mengedruck=$kommissionierlistestufe1menge;$mengedruck > 0;$mengedruck--) {
|
|
||||||
$this->app->printer->Drucken($druckercode,$tmpfile);
|
|
||||||
}
|
|
||||||
unlink($tmpfile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
order processed true or false
|
order processed true or false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function AuftragVersand($id='', $ignoriereliefertermin = false, &$ergebnis = null, $paketmarkedrucken = false)
|
public function AuftragVersand($id='', $ignoriereliefertermin = false, &$ergebnis = null, $paketmarkedrucken = false)
|
||||||
{
|
{
|
||||||
if(!$this->kommissionierung)
|
|
||||||
{
|
|
||||||
$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!='')
|
||||||
@ -5947,14 +5778,25 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
if($kommissionierverfahren==='lieferschein' && $lieferschein > 0)
|
if($kommissionierverfahren==='lieferschein' && $lieferschein > 0)
|
||||||
{
|
{
|
||||||
//FALL 1 Lieferschein mit Lagerplatz
|
//FALL 1 Lieferschein mit Lagerplatz
|
||||||
|
|
||||||
if($this->kommissionierung){
|
$sql = "SELECT id FROM kommissionierung k WHERE k.auftrag = '".$id."'";
|
||||||
|
$vorkommissionierung = $this->app->DB->Select($sql);
|
||||||
|
|
||||||
|
if(!$vorkommissionierung)
|
||||||
|
{
|
||||||
|
$kommissionierung = $this->app->erp->GetNextKommissionierung();
|
||||||
|
} else {
|
||||||
|
$kommissionierung = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($kommissionierung){
|
||||||
$this->app->DB->Update(
|
$this->app->DB->Update(
|
||||||
sprintf(
|
sprintf(
|
||||||
"UPDATE kommissionierung SET lieferschein = %d, auftrag = %d WHERE id = %d LIMIT 1",
|
"UPDATE kommissionierung SET lieferschein = %d, auftrag = %d, adresse = %d WHERE id = %d LIMIT 1",
|
||||||
$lieferschein,
|
$lieferschein,
|
||||||
$id,
|
$id,
|
||||||
$this->kommissionierung
|
$kommissionierung,
|
||||||
|
$adresse
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -5969,30 +5811,39 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
false,
|
false,
|
||||||
$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($kommissionierung){
|
||||||
if ($projektarr['autodruckkommissionierscheinstufe1']) {
|
$this->app->DB->Update(
|
||||||
$Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
|
sprintf(
|
||||||
$Brief->GetKommissionierung($this->kommissionierung);
|
"UPDATE kommissionierung SET ausgelagert = 1 WHERE id = %d LIMIT 1",
|
||||||
$tmpfile = $Brief->displayTMP();
|
$kommissionierung
|
||||||
for($mengedruck=$projektarr['autodruckkommissionierscheinstufe1menge'];$mengedruck > 0;$mengedruck--) {
|
)
|
||||||
$druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
|
);
|
||||||
$this->app->printer->Drucken($druckercode, $tmpfile);
|
|
||||||
|
foreach ($auslagernresult['storageMovements'] as $storageMovement) {
|
||||||
|
$this->app->DB->Update(
|
||||||
|
sprintf(
|
||||||
|
"INSERT INTO kommissionierung_position (kommissionierung, artikel, lager_platz, menge) VALUES (%d, %d, %d, %d)",
|
||||||
|
$kommissionierung,
|
||||||
|
$storageMovement['artikel'],
|
||||||
|
$storageMovement['lager_platz'],
|
||||||
|
$storageMovement['menge']
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
unlink($tmpfile);
|
|
||||||
}
|
// 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($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);
|
||||||
@ -6649,65 +6500,15 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
foreach ($auftraegenachprojekt as $projekt => $auftraege) {
|
foreach ($auftraegenachprojekt as $projekt => $auftraege) {
|
||||||
if(!is_array($auftraege) || empty($auftraege)) {
|
if(!is_array($auftraege) || empty($auftraege)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$this->kommissionierung = $this->app->erp->GetNextKommissionierung($bezeichnung);
|
|
||||||
|
|
||||||
$processed_orders_num = 0;
|
$processed_orders_num = 0;
|
||||||
|
|
||||||
foreach ($auftraege as $auftrag) {
|
foreach ($auftraege as $auftrag) {
|
||||||
|
|
||||||
/* Process each order */
|
/* Process each order */
|
||||||
if($this->AuftragVersand($auftrag)) {
|
if($this->AuftragVersand($auftrag, true)) {
|
||||||
$processed_orders_num++;
|
$processed_orders_num++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->app->Tpl->Set('MESSAGE','<div class="info">'.$processed_orders_num.' Aufträge wurden verarbeitet.</div>');
|
$this->app->Tpl->Set('MESSAGE','<div class="info">'.$processed_orders_num.' Aufträge wurden verarbeitet.</div>');
|
||||||
|
|
||||||
if(empty($this->kommissionierung)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(
|
|
||||||
empty(
|
|
||||||
$this->app->DB->Select(
|
|
||||||
sprintf(
|
|
||||||
'SELECT `id` FROM `lieferschein` WHERE `kommissionierung` = %d',
|
|
||||||
$this->kommissionierung
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$kommissionierlistestufe1 = $this->app->erp->Projektdaten($projekt, 'kommissionierlistestufe1');
|
|
||||||
if(empty($kommissionierlistestufe1)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$druckercode = $this->app->DB->Select(
|
|
||||||
sprintf(
|
|
||||||
'SELECT druckerlogistikstufe1 FROM projekt WHERE id= %d LIMIT 1',
|
|
||||||
$projekt
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if($druckercode <= 0){
|
|
||||||
$druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
|
|
||||||
}
|
|
||||||
$kommissionierlistestufe1menge = $this->app->erp->Projektdaten(
|
|
||||||
$projekt, 'kommissionierlistestufe1menge'
|
|
||||||
);
|
|
||||||
if($kommissionierlistestufe1menge < 1){
|
|
||||||
$kommissionierlistestufe1menge = 1;
|
|
||||||
}
|
|
||||||
/** @var Kommissionierlauf $obj */
|
|
||||||
$obj = $this->app->erp->LoadModul('kommissionierlauf');
|
|
||||||
if($obj && $this->kommissionierung){
|
|
||||||
$tmpfile = $obj->KommissionierlaufPDF($this->kommissionierung);
|
|
||||||
for ($mengedruck = $kommissionierlistestufe1menge; $mengedruck > 0; $mengedruck--) {
|
|
||||||
$this->app->printer->Drucken($druckercode, $tmpfile);
|
|
||||||
}
|
|
||||||
unlink($tmpfile);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -6741,6 +6542,86 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'vorkommissionieren':
|
||||||
|
|
||||||
|
if (!empty($auftraegemarkiert)) {
|
||||||
|
foreach ($auftraegemarkiert as $k => $v) {
|
||||||
|
$sql = "
|
||||||
|
SELECT
|
||||||
|
k.id,
|
||||||
|
a.belegnr,
|
||||||
|
a.adresse
|
||||||
|
FROM
|
||||||
|
kommissionierung k
|
||||||
|
LEFT JOIN
|
||||||
|
lieferschein l
|
||||||
|
ON
|
||||||
|
l.id = k.lieferschein
|
||||||
|
LEFT JOIN
|
||||||
|
auftrag al
|
||||||
|
ON
|
||||||
|
al.id = l.auftrag
|
||||||
|
LEFT JOIN
|
||||||
|
auftrag a
|
||||||
|
ON
|
||||||
|
a.id = k.auftrag
|
||||||
|
WHERE
|
||||||
|
a.id = $v OR al.id = $v
|
||||||
|
LIMIT 1
|
||||||
|
";
|
||||||
|
$check = $this->app->DB->SelectRow($sql);
|
||||||
|
if (!empty($check)) {
|
||||||
|
$this->app->Tpl->addMessage('Error',"Bereits Kommissioniert: ".$check['belegnr']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$kid = $this->app->erp->GetNextKommissionierung();
|
||||||
|
|
||||||
|
$sql = "UPDATE kommissionierung SET auftrag = $v, adresse = (SELECT adresse FROM auftrag WHERE id = ".$v.") WHERE id = $kid";
|
||||||
|
$this->app->DB->Update($sql);
|
||||||
|
|
||||||
|
$auslagernresult =
|
||||||
|
$this->app->erp->LieferscheinAuslagern(
|
||||||
|
lieferschein: $v,
|
||||||
|
anzeige_lagerplaetze_in_lieferschein: true,
|
||||||
|
standardlager: (int)$this->app->DB->Select(sprintf('SELECT standardlager FROM auftrag WHERE id = %d LIMIT 1', $v)),
|
||||||
|
belegtyp: 'auftrag',
|
||||||
|
chargenmhdnachprojekt: true,
|
||||||
|
forceseriennummerngeliefertsetzen: false,
|
||||||
|
nurrestmenge: false,
|
||||||
|
simulieren: true
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($auslagernresult['storageMovements'] as $storageMovement) {
|
||||||
|
$this->app->DB->Update(
|
||||||
|
sprintf(
|
||||||
|
"INSERT INTO kommissionierung_position (kommissionierung, artikel, lager_platz, menge) VALUES (%d, %d, %d, %d)",
|
||||||
|
$kid,
|
||||||
|
$storageMovement['artikel'],
|
||||||
|
$storageMovement['lager_platz'],
|
||||||
|
$storageMovement['menge']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->app->erp->AuftragProtokoll($v,'Auftrag vorkommissioniert, Kommissionierung '.$kid);
|
||||||
|
|
||||||
|
$projektarr = $this->app->DB->SelectRow("SELECT projekt.* FROM projekt INNER JOIN auftrag ON projekt.id = auftrag.projekt WHERE auftrag.id = '".$v."'");
|
||||||
|
|
||||||
|
// 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($kid);
|
||||||
|
$tmpfile = $Brief->displayTMP();
|
||||||
|
for($mengedruck=$projektarr['autodruckkommissionierscheinstufe1menge'];$mengedruck > 0;$mengedruck--) {
|
||||||
|
$druckercode = $this->app->erp->Projektdaten($projektarr['id'],'druckerlogistikstufe1');
|
||||||
|
$this->app->printer->Drucken($druckercode, $tmpfile);
|
||||||
|
}
|
||||||
|
unlink($tmpfile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7191,7 +7072,6 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
}
|
}
|
||||||
foreach ($auftraegenachprojekt as $projekt => $auftraege) {
|
foreach ($auftraegenachprojekt as $projekt => $auftraege) {
|
||||||
if(is_array($auftraege)){
|
if(is_array($auftraege)){
|
||||||
$this->kommissionierung = $this->app->erp->GetNextKommissionierung($bezeichnung);
|
|
||||||
foreach ($auftraege as $auftrag) {
|
foreach ($auftraege as $auftrag) {
|
||||||
$this->AuftragVersand($auftrag);
|
$this->AuftragVersand($auftrag);
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
<option value="">{|bitte wählen|} ...</option>
|
<option value="">{|bitte wählen|} ...</option>
|
||||||
<option value="versandstarten">Auto-Versand</option>
|
<option value="versandstarten">Auto-Versand</option>
|
||||||
<option value="versandstartenmit">Auto-Versand (mit Kommissionierbez.)</option>
|
<option value="versandstartenmit">Auto-Versand (mit Kommissionierbez.)</option>
|
||||||
|
<option value="vorkommissionieren">Vorkommissionieren</option>
|
||||||
<option value="drucken">drucken</option>
|
<option value="drucken">drucken</option>
|
||||||
</select>
|
</select>
|
||||||
<span id="druckerauswahl" style="display: none;">{|Drucker|}: <select name="seldruckerversand" id="seldruckerversand">[SELDRUCKERVERSAND]</select></span><input type="submit" class="btnBlue" name="ausfuehren" value="{|ausführen|}" />
|
<span id="druckerauswahl" style="display: none;">{|Drucker|}: <select name="seldruckerversand" id="seldruckerversand">[SELDRUCKERVERSAND]</select></span><input type="submit" class="btnBlue" name="ausfuehren" value="{|ausführen|}" />
|
||||||
|
Loading…
Reference in New Issue
Block a user