Produktion ziellagerplatz, use lagerplatz of artikel or produktion

This commit is contained in:
OpenXE 2022-11-16 10:37:45 +00:00
parent 8518e327aa
commit 3ee518af03
2 changed files with 86 additions and 27 deletions

View File

@ -123,7 +123,7 @@
<div [POSITIONEN_TAB_VISIBLE]> <div [POSITIONEN_TAB_VISIBLE]>
<div id="tabs-2"> <div id="tabs-2">
[MESSAGE] [MESSAGE]
<form action="" method="post"> <form action="#tabs-2" method="post">
[FORMHANDLEREVENT] [FORMHANDLEREVENT]
<div class="row"> <div class="row">
<div class="row-height"> <div class="row-height">
@ -140,7 +140,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="row-height"> <div class="row-height">
<div class="col-xs-14 col-md-6 col-md-height"> <div class="col-xs-14 col-md-5 col-md-height">
<div class="inside inside-full-height"> <div class="inside inside-full-height">
<fieldset> <fieldset>
<legend [AKTION_PLANEN_VISIBLE]>{|Zu produzierende Artikel|}</legend> <legend [AKTION_PLANEN_VISIBLE]>{|Zu produzierende Artikel|}</legend>
@ -169,6 +169,7 @@
<td>[MENGE_PRODUZIERBAR]</td> <td>[MENGE_PRODUZIERBAR]</td>
</tr> </tr>
</tr> </tr>
<tr [ARTIKEL_MENGE_VISIBLE]>
<td>{|Ausschuss|}:</td> <td>{|Ausschuss|}:</td>
<td>[MENGEAUSSCHUSS]</td> <td>[MENGEAUSSCHUSS]</td>
</tr> </tr>
@ -176,15 +177,23 @@
</fieldset> </fieldset>
</div> </div>
</div> </div>
<div class="col-xs-14 col-md-6 col-md-height"> <div class="col-xs-14 col-md-5 col-md-height">
<div class="inside inside-full-height"> <div class="inside inside-full-height">
<fieldset> <fieldset>
<legend [AKTION_PRODUZIEREN_VISIBLE]>{|Parameter|}</legend> <legend [AKTION_PRODUZIEREN_VISIBLE]>{|Parameter|}</legend>
<table width="100%" border="0" class="mkTableFormular"> <table width="100%" border="0" class="mkTableFormular">
<tr [AKTION_PRODUZIEREN_VISIBLE]><td>{|Menge|}:</td></tr> <tr [AKTION_PRODUZIEREN_VISIBLE]>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><input type="text" name="menge_produzieren" id="menge_produzieren" value="[MENGE_PRODUZIEREN]" size="20" style="width:100%;"></td></tr> <td>{|Menge|}:</td>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td>{|Ausschuss|}:</td></tr> <td><input type="text" name="menge_produzieren" id="menge_produzieren" value="[MENGE_PRODUZIEREN]" size="20""></td>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><input type="text" name="menge_ausschuss" id="menge_ausschuss" value="[MENGE_AUSSCHUSS]" size="20" style="width:100%;"></td></tr> </tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]>
<td>{|Ausschuss|}:</td>
<td><input type="text" name="menge_ausschuss" id="menge_ausschuss" value="[MENGE_AUSSCHUSS]" size="20"></td>
</tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]>
<td>{|Ziellager|}:</td>
<td><input type="text" name="ziellager" id="ziellager" value="[ZIELLAGER]" size="20"></td>
</tr>
</table> </table>
</fieldset> </fieldset>
</div> </div>
@ -193,14 +202,23 @@
<div class="inside inside-full-height"> <div class="inside inside-full-height">
<fieldset> <fieldset>
<table width="100%" border="0" class="mkTableFormular"> <table width="100%" border="0" class="mkTableFormular">
<legend>{|Aktionen|}</legend> <legend>{|Anpassen|}</legend>
<tr [AKTION_PLANEN_VISIBLE]><td><button name="submit" value="planen" class="ui-button-icon" style="width:100%;">Planen</button></td></tr> <tr [AKTION_PLANEN_VISIBLE]><td><button name="submit" value="planen" class="ui-button-icon" style="width:100%;">Planen</button></td></tr>
<tr [AKTION_FREIGEBEN_VISIBLE]><td><button name="submit" value="freigeben" class="ui-button-icon" style="width:100%;">Freigeben</button></td></tr> <tr [AKTION_LEEREN_VISIBLE]><td><button name="submit" value="leeren" class="ui-button-icon" style="width:100%;">Leeren</button></td></tr>
<tr [AKTION_FREIGEBEN_VISIBLE]><td><button name="submit" value="freigeben" class="ui-button-icon" style="width:100%;">Freigeben</button></td></tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="teilen" class="ui-button-icon" style="width:100%;">Teilen</button></td></tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="anpassen" class="ui-button-icon" style="width:100%;">Anpassen</button></td></tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-14 col-md-2 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<table width="100%" border="0" class="mkTableFormular">
<legend>{|Produzieren|}</legend>
<tr [AKTION_RESERVIEREN_VISIBLE]><td><button name="submit" value="reservieren" class="ui-button-icon" style="width:100%;">Reservieren</button></td></tr> <tr [AKTION_RESERVIEREN_VISIBLE]><td><button name="submit" value="reservieren" class="ui-button-icon" style="width:100%;">Reservieren</button></td></tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="produzieren" class="ui-button-icon" style="width:100%;">Produzieren</button></td></tr> <tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="produzieren" class="ui-button-icon" style="width:100%;">Produzieren</button></td></tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="teilen" class="ui-button-icon" style="width:100%;">Teilproduktion erstellen</button></td></tr>
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="anpassen" class="ui-button-icon" style="width:100%;">Anpassen</button></td></tr>
<tr [AKTION_LEEREN_VISIBLE]><td><button name="submit" value="leeren" class="ui-button-icon" style="width:100%;">Leeren</button></td></tr>
<tr [AKTION_ABSCHLIESSEN_VISIBLE]><td><button name="submit" value="abschliessen" class="ui-button-icon" style="width:100%;">Abschliessen</button></td></tr> <tr [AKTION_ABSCHLIESSEN_VISIBLE]><td><button name="submit" value="abschliessen" class="ui-button-icon" style="width:100%;">Abschliessen</button></td></tr>
</table> </table>
</fieldset> </fieldset>

View File

@ -366,7 +366,6 @@ class Produktion {
// Write to database // Write to database
// Add checks here // Add checks here
$input['standardlager'] = $this->app->erp->ReplaceLagerPlatz(true,$input['standardlager'],true); // Parameters: Target db?, value, from form?
if (empty($input['datum'])) { if (empty($input['datum'])) {
$input['datum'] = date("Y-m-d"); $input['datum'] = date("Y-m-d");
@ -376,7 +375,6 @@ class Produktion {
if ($id == 'NULL') { if ($id == 'NULL') {
$input['status'] = 'angelegt'; $input['status'] = 'angelegt';
$this->ProtokollSchreiben($id,'Produktion angelegt');
} }
$input['datumauslieferung'] = $this->app->erp->ReplaceDatum(true,$input['datumauslieferung'],true); $input['datumauslieferung'] = $this->app->erp->ReplaceDatum(true,$input['datumauslieferung'],true);
@ -405,7 +403,9 @@ class Produktion {
$id = $this->app->DB->GetInsertID(); $id = $this->app->DB->GetInsertID();
if (!empty($id)) { if (!empty($id)) {
$msg .= $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>"); $this->ProtokollSchreiben($id,'Produktion angelegt');
$msg .= "<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>";
$msg = $this->app->erp->base64_url_encode($msg);
header("Location: index.php?module=produktion&action=edit&id=$id&msg=$msg"); header("Location: index.php?module=produktion&action=edit&id=$id&msg=$msg");
} }
@ -459,7 +459,7 @@ class Produktion {
$this->app->DB->Update($sql); $this->app->DB->Update($sql);
$msg .= "<div class=\"success\">Planung angelegt.</div>"; $msg .= "<div class=\"success\">Planung angelegt.</div>";
$this->ProtokollSchreiben($id,'Produktion geplant'); $this->ProtokollSchreiben($id,'Produktion geplant ($artikel_planen_menge)');
break; break;
case 'freigeben': case 'freigeben':
@ -573,17 +573,55 @@ class Produktion {
break; break;
} }
// Insert produced parts into stock // Insert produced parts into stock
// Check target stock, if not existing, use default stock of article, if not given use production stock
$ziellager_from_form = $this->app->erp->ReplaceLagerPlatz(true,$this->app->Secure->GetPOST('ziellager'),true); // Parameters: Target db?, value, from form?
$use_artikel_lager = false;
$ziellager = $global_standardlager;
if (!empty($ziellager_from_form)) {
$sql = "SELECT id FROM lager_platz WHERE id = ".$ziellager_from_form;
$result = $this->app->DB->SelectArr($sql);
if (!empty($result)) {
$ziellager = $ziellager_from_form;
} else {
$use_artikel_lager = true;
}
} else {
$use_artikel_lager = true;
}
if ($use_artikel_lager) {
$sql = "SELECT lager_platz FROM artikel WHERE id = ".$produktionsartikel_position['artikel'];
$result = $this->app->DB->SelectArr($sql);
if (!empty($result) && !empty($result[0]['lager_platz'])) {
$ziellager = $result[0]['lager_platz'];
} else {
}
} else {
}
$sql = "SELECT kurzbezeichnung FROM lager_platz WHERE id = $ziellager";
$lagername = $this->app->DB->SelectArr($sql)[0]['kurzbezeichnung'];
// ERPAPI // ERPAPI
// function LagerEinlagern($artikel,$menge,$regal,$projekt,$grund="",$importer="",$paketannahme="",$doctype = "", $doctypeid = 0, $vpeid = 0, $permanenteinventur = 0, $adresse = 0) // function LagerEinlagern($artikel,$menge,$regal,$projekt,$grund="",$importer="",$paketannahme="",$doctype = "", $doctypeid = 0, $vpeid = 0, $permanenteinventur = 0, $adresse = 0)
$this->app->erp->LagerEinlagern($produktionsartikel_position['artikel'],$menge_produzieren,$global_standardlager,$global_projekt,"Produktion $global_produktionsnummer"); $this->app->erp->LagerEinlagern($produktionsartikel_position['artikel'],$menge_produzieren,$ziellager,$global_projekt,"Produktion $global_produktionsnummer");
// No error handling in LagerEinlagern... // No error handling in LagerEinlagern...
$sql = "UPDATE produktion SET mengeerfolgreich = mengeerfolgreich + $menge_produzieren, mengeausschuss = mengeausschuss + $menge_ausschuss WHERE id = $id"; $sql = "UPDATE produktion SET mengeerfolgreich = mengeerfolgreich + $menge_produzieren, mengeausschuss = mengeausschuss + $menge_ausschuss WHERE id = $id";
$this->app->DB->Update($sql); $this->app->DB->Update($sql);
$msg .= "<div class=\"info\">Produktion durchgeführt.</div>"; if ($menge_ausschuss < $menge_produzieren) {
$this->ProtokollSchreiben($id,"Produktion durchgef&uuml;hrt ($menge_produzieren, davon $menge_ausschuss Ausschuss)"); $lagertext = ", eingelagert in $lagername";
}
$text = "Produktion durchgef&uuml;hrt ($menge_produzieren, davon $menge_ausschuss Ausschuss)$lagertext";
$msg .= "<div class=\"info\">$text.</div>";
$this->ProtokollSchreiben($id,$text);
break; break;
case 'teilen': case 'teilen':
@ -714,8 +752,10 @@ class Produktion {
} }
$msg .= $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>"); $this->ProtokollSchreiben($id,"Teilproduktion erstellt: ".$produktion_neu['belegnr']." (Menge $menge_abteilen)");
header("Location: index.php?module=produktion&action=list&msg=$msg"); $msg .= "<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>";
$msg = $this->app->erp->base64_url_encode($msg);
header("Location: index.php?module=produktion&action=edit&id=$produktion_neu_id&msg=$msg");
break; break;
case 'leeren': case 'leeren':
@ -981,6 +1021,8 @@ class Produktion {
$this->app->YUI->AutoComplete("artikel_planen", "stuecklistenartikel"); $this->app->YUI->AutoComplete("artikel_planen", "stuecklistenartikel");
$this->app->YUI->AutoComplete("standardlager", "lagerplatz"); $this->app->YUI->AutoComplete("standardlager", "lagerplatz");
$this->app->YUI->AutoComplete("ziellager", "lagerplatz");
$this->app->Tpl->Set('STANDARDLAGER', $this->app->erp->ReplaceLagerPlatz(false,$produktion_from_db['standardlager'],false)); // Convert ID to form display $this->app->Tpl->Set('STANDARDLAGER', $this->app->erp->ReplaceLagerPlatz(false,$produktion_from_db['standardlager'],false)); // Convert ID to form display
$this->app->YUI->DatePicker("datum"); $this->app->YUI->DatePicker("datum");
@ -1120,13 +1162,11 @@ class Produktion {
} }
} }
public function produktion_minidetail($parsetarget='',$menu=true) { public function produktion_minidetail($parsetarget='',$menu=true) {
$id = $this->app->Secure->GetGET('id'); $id = $this->app->Secure->GetGET('id');
$fortschritt = $this->MengeFortschritt($id, 0); $fortschritt = $this->MengeFortschritt((int) $id, 0);
if (!empty($fortschritt)) { if (!empty($fortschritt)) {
$this->app->Tpl->Set('MENGE_GEPLANT',$fortschritt['geplant']); $this->app->Tpl->Set('MENGE_GEPLANT',$fortschritt['geplant']);
@ -1167,6 +1207,7 @@ class Produktion {
$input['datum'] = $this->app->Secure->GetPOST('datum'); $input['datum'] = $this->app->Secure->GetPOST('datum');
$input['standardlager'] = $this->app->Secure->GetPOST('standardlager'); $input['standardlager'] = $this->app->Secure->GetPOST('standardlager');
$input['standardlager'] = $this->app->erp->ReplaceLagerPlatz(true,$input['standardlager'],true); // Parameters: Target db?, value, from form?
$input['reservierart'] = $this->app->Secure->GetPOST('reservierart'); $input['reservierart'] = $this->app->Secure->GetPOST('reservierart');
$input['auslagerart'] = $this->app->Secure->GetPOST('auslagerart'); $input['auslagerart'] = $this->app->Secure->GetPOST('auslagerart');