mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-14 20:17:14 +01:00
kommissionierung rework functions
This commit is contained in:
parent
765e2ba217
commit
d7aa58190e
@ -5782,69 +5782,33 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
$sql = "SELECT id FROM kommissionierung k WHERE k.auftrag = '".$id."'";
|
$sql = "SELECT id FROM kommissionierung k WHERE k.auftrag = '".$id."'";
|
||||||
$vorkommissionierung = $this->app->DB->Select($sql);
|
$vorkommissionierung = $this->app->DB->Select($sql);
|
||||||
|
|
||||||
if(!$vorkommissionierung)
|
if (!$vorkommissionierung)
|
||||||
{
|
{
|
||||||
$kommissionierung = $this->app->erp->GetNextKommissionierung();
|
$kommissionierung = $this->app->erp->GetNextKommissionierung();
|
||||||
} else {
|
|
||||||
$kommissionierung = false;
|
$druckercode = $this->app->erp->Projektdaten($projekt,'druckerlogistikstufe1');
|
||||||
}
|
|
||||||
|
$auslagernresult =
|
||||||
if($kommissionierung){
|
$this->app->erp->LieferscheinAuslagern(
|
||||||
$this->app->DB->Update(
|
$lieferschein,
|
||||||
sprintf(
|
true,
|
||||||
"UPDATE kommissionierung SET lieferschein = %d, auftrag = %d, adresse = %d WHERE id = %d LIMIT 1",
|
(int)$this->app->DB->Select(sprintf('SELECT standardlager FROM auftrag WHERE id = %d LIMIT 1', $id)),
|
||||||
$lieferschein,
|
'lieferschein',
|
||||||
$id,
|
true,
|
||||||
$adresse,
|
false,
|
||||||
$kommissionierung
|
$nurRestmenge
|
||||||
)
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$auslagernresult =
|
|
||||||
$this->app->erp->LieferscheinAuslagern(
|
|
||||||
$lieferschein,
|
|
||||||
true,
|
|
||||||
(int)$this->app->DB->Select(sprintf('SELECT standardlager FROM auftrag WHERE id = %d LIMIT 1', $id)),
|
|
||||||
'lieferschein',
|
|
||||||
true,
|
|
||||||
false,
|
|
||||||
$nurRestmenge
|
|
||||||
);
|
|
||||||
|
|
||||||
if($kommissionierung){
|
$this->Kommissionieren(
|
||||||
$this->app->DB->Update(
|
kommissionierung : $kommissionierung,
|
||||||
sprintf(
|
auftrag: $id,
|
||||||
"UPDATE kommissionierung SET ausgelagert = 1 WHERE id = %d LIMIT 1",
|
lieferschein: $lieferschein,
|
||||||
$kommissionierung
|
ausgelagert: true,
|
||||||
)
|
lagerplatzliste: $auslagernresult,
|
||||||
);
|
mengedruck: $projektarr['autodruckkommissionierscheinstufe1']?$projektarr['autodruckkommissionierscheinstufe1menge']:0,
|
||||||
|
druckercode: $druckercode);
|
||||||
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']
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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);
|
||||||
|
|
||||||
@ -6577,9 +6541,6 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
|
|
||||||
$kid = $this->app->erp->GetNextKommissionierung();
|
$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 =
|
$auslagernresult =
|
||||||
$this->app->erp->LieferscheinAuslagern(
|
$this->app->erp->LieferscheinAuslagern(
|
||||||
lieferschein: $v,
|
lieferschein: $v,
|
||||||
@ -6592,33 +6553,20 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
simulieren: true
|
simulieren: true
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($auslagernresult['storageMovements'] as $storageMovement) {
|
$druckercode = $this->app->erp->Firmendaten('standardversanddrucker');
|
||||||
$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."'");
|
$projektarr = $this->app->DB->SelectRow("SELECT projekt.* FROM projekt INNER JOIN auftrag ON projekt.id = auftrag.projekt WHERE auftrag.id = '".$v."'");
|
||||||
|
|
||||||
// Kommissionierschein drucken?
|
$this->Kommissionieren(
|
||||||
if ($projektarr['autodruckkommissionierscheinstufe1']) {
|
kommissionierung : $kid,
|
||||||
$Brief = new KommissionierungPDF($this->app, styleData: array('ohne_steuer' => true, 'artikeleinheit' => false, 'abstand_boxrechtsoben' => -70, 'abstand_artikeltabelleoben' => -70, 'abstand_betreffzeileoben' => -70, 'preise_ausblenden' => true));
|
auftrag: $v,
|
||||||
$Brief->GetKommissionierung($kid);
|
lieferschein: 0,
|
||||||
$tmpfile = $Brief->displayTMP();
|
ausgelagert: false,
|
||||||
for($mengedruck=$projektarr['autodruckkommissionierscheinstufe1menge'];$mengedruck > 0;$mengedruck--) {
|
lagerplatzliste: $auslagernresult,
|
||||||
$druckercode = $this->app->erp->Projektdaten($projektarr['id'],'druckerlogistikstufe1');
|
mengedruck: $projektarr['autodruckkommissionierscheinstufe1']?$projektarr['autodruckkommissionierscheinstufe1menge']:0,
|
||||||
$this->app->printer->Drucken($druckercode, $tmpfile);
|
druckercode: $druckercode);
|
||||||
}
|
|
||||||
unlink($tmpfile);
|
$this->app->erp->AuftragProtokoll($v,'Auftrag vorkommissioniert, Kommissionierung '.$kid);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -7345,5 +7293,48 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
|
|||||||
$this->app->YUI->TableSearch('TAB1','offenepositionen',"show","","",basename(__FILE__), __CLASS__);
|
$this->app->YUI->TableSearch('TAB1','offenepositionen',"show","","",basename(__FILE__), __CLASS__);
|
||||||
$this->app->Tpl->Parse('PAGE',"tabview.tpl");
|
$this->app->Tpl->Parse('PAGE',"tabview.tpl");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Kommissionieren(int $kommissionierung, int $auftrag, int $lieferschein, bool $ausgelagert, array $lagerplatzliste, int $mengedruck, int $druckercode) {
|
||||||
|
|
||||||
|
$sql = sprintf(
|
||||||
|
"UPDATE kommissionierung SET lieferschein = %d, auftrag = %d, adresse = IF (%d != 0,(SELECT adresse FROM lieferschein WHERE id = %d LIMIT 1),(SELECT adresse FROM auftrag WHERE id = %d LIMIT 1)), ausgelagert = %d WHERE id = %d LIMIT 1",
|
||||||
|
$lieferschein,
|
||||||
|
$auftrag,
|
||||||
|
$lieferschein,
|
||||||
|
$lieferschein,
|
||||||
|
$auftrag,
|
||||||
|
$adresse,
|
||||||
|
$kommissionierung,
|
||||||
|
$ausgelager
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->DB->Update(
|
||||||
|
$sql
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($lagerplatzliste['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']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kommissionierschein
|
||||||
|
if ($mengedruck > 0) {
|
||||||
|
$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();
|
||||||
|
$this->app->erp->BriefpapierHintergrunddisable = true; // Disable background
|
||||||
|
for($drucklauf = 0; $drucklauf < $mengedruck;$drucklauf++) {
|
||||||
|
$this->app->printer->Drucken($druckercode, $tmpfile);
|
||||||
|
}
|
||||||
|
unlink($tmpfile);
|
||||||
|
$this->app->erp->BriefpapierHintergrundDisable($druckercode); // Restore default background from printersettings
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user