mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
Produktion copy
This commit is contained in:
parent
f6a1315192
commit
ba31fc62cf
@ -17,6 +17,7 @@ class Produktion {
|
|||||||
$this->app->ActionHandler("list", "produktion_list");
|
$this->app->ActionHandler("list", "produktion_list");
|
||||||
$this->app->ActionHandler("create", "produktion_edit"); // This automatically adds a "New" button
|
$this->app->ActionHandler("create", "produktion_edit"); // This automatically adds a "New" button
|
||||||
$this->app->ActionHandler("edit", "produktion_edit");
|
$this->app->ActionHandler("edit", "produktion_edit");
|
||||||
|
$this->app->ActionHandler("copy", "produktion_copy");
|
||||||
$this->app->ActionHandler("delete", "produktion_delete");
|
$this->app->ActionHandler("delete", "produktion_delete");
|
||||||
$this->app->DefaultActionHandler("list");
|
$this->app->DefaultActionHandler("list");
|
||||||
$this->app->ActionHandlerListen($app);
|
$this->app->ActionHandlerListen($app);
|
||||||
@ -55,6 +56,7 @@ class Produktion {
|
|||||||
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" .
|
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" .
|
||||||
"<a href=\"index.php?module=produktion&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a> ".
|
"<a href=\"index.php?module=produktion&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a> ".
|
||||||
"<a href=\"#\" onclick=DeleteDialog(\"index.php?module=produktion&action=delete&id=%value%\");><img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>" .
|
"<a href=\"#\" onclick=DeleteDialog(\"index.php?module=produktion&action=delete&id=%value%\");><img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>" .
|
||||||
|
"<a href=\"#\" onclick=CopyDialog(\"index.php?module=produktion&action=copy&id=%value%\");><img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/copy.svg\" border=\"0\"></a>" .
|
||||||
"</td></tr></table>";
|
"</td></tr></table>";
|
||||||
|
|
||||||
// $sql = "SELECT SQL_CALC_FOUND_ROWS p.id, $dropnbox, p.datum, p.art, p.projekt, p.belegnr, p.internet, p.bearbeiter, p.angebot, p.freitext, p.internebemerkung, p.status, p.adresse, p.name, p.abteilung, p.unterabteilung, p.strasse, p.adresszusatz, p.ansprechpartner, p.plz, p.ort, p.land, p.ustid, p.ust_befreit, p.ust_inner, p.email, p.telefon, p.telefax, p.betreff, p.kundennummer, p.versandart, p.vertrieb, p.zahlungsweise, p.zahlungszieltage, p.zahlungszieltageskonto, p.zahlungszielskonto, p.bank_inhaber, p.bank_institut, p.bank_blz, p.bank_konto, p.kreditkarte_typ, p.kreditkarte_inhaber, p.kreditkarte_nummer, p.kreditkarte_pruefnummer, p.kreditkarte_monat, p.kreditkarte_jahr, p.firma, p.versendet, p.versendet_am, p.versendet_per, p.versendet_durch, p.autoversand, p.keinporto, p.keinestornomail, p.abweichendelieferadresse, p.liefername, p.lieferabteilung, p.lieferunterabteilung, p.lieferland, p.lieferstrasse, p.lieferort, p.lieferplz, p.lieferadresszusatz, p.lieferansprechpartner, p.packstation_inhaber, p.packstation_station, p.packstation_ident, p.packstation_plz, p.packstation_ort, p.autofreigabe, p.freigabe, p.nachbesserung, p.gesamtsumme, p.inbearbeitung, p.abgeschlossen, p.nachlieferung, p.lager_ok, p.porto_ok, p.ust_ok, p.check_ok, p.vorkasse_ok, p.nachnahme_ok, p.reserviert_ok, p.bestellt_ok, p.zeit_ok, p.versand_ok, p.partnerid, p.folgebestaetigung, p.zahlungsmail, p.stornogrund, p.stornosonstiges, p.stornorueckzahlung, p.stornobetrag, p.stornobankinhaber, p.stornobankkonto, p.stornobankblz, p.stornobankbank, p.stornogutschrift, p.stornogutschriftbeleg, p.stornowareerhalten, p.stornomanuellebearbeitung, p.stornokommentar, p.stornobezahlt, p.stornobezahltam, p.stornobezahltvon, p.stornoabgeschlossen, p.stornorueckzahlungper, p.stornowareerhaltenretour, p.partnerausgezahlt, p.partnerausgezahltam, p.kennen, p.logdatei, p.bezeichnung, p.datumproduktion, p.anschreiben, p.usereditid, p.useredittimestamp, p.steuersatz_normal, p.steuersatz_zwischen, p.steuersatz_ermaessigt, p.steuersatz_starkermaessigt, p.steuersatz_dienstleistung, p.waehrung, p.schreibschutz, p.pdfarchiviert, p.pdfarchiviertversion, p.typ, p.reservierart, p.auslagerart, p.projektfiliale, p.datumauslieferung, p.datumbereitstellung, p.unterlistenexplodieren, p.charge, p.arbeitsschrittetextanzeigen, p.einlagern_ok, p.auslagern_ok, p.mhd, p.auftragmengenanpassen, p.internebezeichnung, p.mengeoriginal, p.teilproduktionvon, p.teilproduktionnummer, p.parent, p.parentnummer, p.bearbeiterid, p.mengeausschuss, p.mengeerfolgreich, p.abschlussbemerkung, p.auftragid, p.funktionstest, p.seriennummer_erstellen, p.unterseriennummern_erfassen, p.datumproduktionende, p.standardlager, p.id FROM produktion p";
|
// $sql = "SELECT SQL_CALC_FOUND_ROWS p.id, $dropnbox, p.datum, p.art, p.projekt, p.belegnr, p.internet, p.bearbeiter, p.angebot, p.freitext, p.internebemerkung, p.status, p.adresse, p.name, p.abteilung, p.unterabteilung, p.strasse, p.adresszusatz, p.ansprechpartner, p.plz, p.ort, p.land, p.ustid, p.ust_befreit, p.ust_inner, p.email, p.telefon, p.telefax, p.betreff, p.kundennummer, p.versandart, p.vertrieb, p.zahlungsweise, p.zahlungszieltage, p.zahlungszieltageskonto, p.zahlungszielskonto, p.bank_inhaber, p.bank_institut, p.bank_blz, p.bank_konto, p.kreditkarte_typ, p.kreditkarte_inhaber, p.kreditkarte_nummer, p.kreditkarte_pruefnummer, p.kreditkarte_monat, p.kreditkarte_jahr, p.firma, p.versendet, p.versendet_am, p.versendet_per, p.versendet_durch, p.autoversand, p.keinporto, p.keinestornomail, p.abweichendelieferadresse, p.liefername, p.lieferabteilung, p.lieferunterabteilung, p.lieferland, p.lieferstrasse, p.lieferort, p.lieferplz, p.lieferadresszusatz, p.lieferansprechpartner, p.packstation_inhaber, p.packstation_station, p.packstation_ident, p.packstation_plz, p.packstation_ort, p.autofreigabe, p.freigabe, p.nachbesserung, p.gesamtsumme, p.inbearbeitung, p.abgeschlossen, p.nachlieferung, p.lager_ok, p.porto_ok, p.ust_ok, p.check_ok, p.vorkasse_ok, p.nachnahme_ok, p.reserviert_ok, p.bestellt_ok, p.zeit_ok, p.versand_ok, p.partnerid, p.folgebestaetigung, p.zahlungsmail, p.stornogrund, p.stornosonstiges, p.stornorueckzahlung, p.stornobetrag, p.stornobankinhaber, p.stornobankkonto, p.stornobankblz, p.stornobankbank, p.stornogutschrift, p.stornogutschriftbeleg, p.stornowareerhalten, p.stornomanuellebearbeitung, p.stornokommentar, p.stornobezahlt, p.stornobezahltam, p.stornobezahltvon, p.stornoabgeschlossen, p.stornorueckzahlungper, p.stornowareerhaltenretour, p.partnerausgezahlt, p.partnerausgezahltam, p.kennen, p.logdatei, p.bezeichnung, p.datumproduktion, p.anschreiben, p.usereditid, p.useredittimestamp, p.steuersatz_normal, p.steuersatz_zwischen, p.steuersatz_ermaessigt, p.steuersatz_starkermaessigt, p.steuersatz_dienstleistung, p.waehrung, p.schreibschutz, p.pdfarchiviert, p.pdfarchiviertversion, p.typ, p.reservierart, p.auslagerart, p.projektfiliale, p.datumauslieferung, p.datumbereitstellung, p.unterlistenexplodieren, p.charge, p.arbeitsschrittetextanzeigen, p.einlagern_ok, p.auslagern_ok, p.mhd, p.auftragmengenanpassen, p.internebezeichnung, p.mengeoriginal, p.teilproduktionvon, p.teilproduktionnummer, p.parent, p.parentnummer, p.bearbeiterid, p.mengeausschuss, p.mengeerfolgreich, p.abschlussbemerkung, p.auftragid, p.funktionstest, p.seriennummer_erstellen, p.unterseriennummern_erfassen, p.datumproduktionende, p.standardlager, p.id FROM produktion p";
|
||||||
@ -314,9 +316,11 @@ class Produktion {
|
|||||||
* If id is empty, create a new one
|
* If id is empty, create a new one
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function produktion_edit() {
|
function produktion_edit($id = NULL) {
|
||||||
$id = $this->app->Secure->GetGET('id');
|
|
||||||
|
|
||||||
|
if (empty($id)) {
|
||||||
|
$id = $this->app->Secure->GetGET('id');
|
||||||
|
}
|
||||||
if($this->app->erp->DisableModul('produktion',$id))
|
if($this->app->erp->DisableModul('produktion',$id))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -328,7 +332,6 @@ class Produktion {
|
|||||||
|
|
||||||
$this->app->erp->MenuEintrag("index.php?module=produktion&action=edit&id=$id", "Details");
|
$this->app->erp->MenuEintrag("index.php?module=produktion&action=edit&id=$id", "Details");
|
||||||
$this->app->erp->MenuEintrag("index.php?module=produktion&action=list", "Zurück zur Übersicht");
|
$this->app->erp->MenuEintrag("index.php?module=produktion&action=list", "Zurück zur Übersicht");
|
||||||
$id = $this->app->Secure->GetGET('id');
|
|
||||||
$input = $this->GetInput();
|
$input = $this->GetInput();
|
||||||
$msg = $this->app->erp->base64_url_decode($this->app->Secure->GetGET('msg'));
|
$msg = $this->app->erp->base64_url_decode($this->app->Secure->GetGET('msg'));
|
||||||
|
|
||||||
@ -1080,6 +1083,28 @@ class Produktion {
|
|||||||
$this->app->Tpl->Parse('PAGE', "produktion_edit.tpl");
|
$this->app->Tpl->Parse('PAGE', "produktion_edit.tpl");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Create a copy as draft
|
||||||
|
*/
|
||||||
|
|
||||||
|
function produktion_copy() {
|
||||||
|
$id = (int) $this->app->Secure->GetGET('id');
|
||||||
|
if (empty($id)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$result = $this->Copy($id,0);
|
||||||
|
if ($result <= 0) {
|
||||||
|
$msg .= "<div class=\"error\">Fehler beim Anlegen der Kopie.</div>";
|
||||||
|
$this->app->Tpl->Set('MESSAGE', $msg);
|
||||||
|
$this->produktion_list();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$msg .= "<div class=\"success\">Kopie angelegt. $result new $id old</div>";
|
||||||
|
$this->app->Tpl->Set('MESSAGE', $msg);
|
||||||
|
$this->produktion_edit((int) $result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all paramters from html form and save into $input
|
* Get all paramters from html form and save into $input
|
||||||
*/
|
*/
|
||||||
@ -1125,6 +1150,10 @@ class Produktion {
|
|||||||
$result = $this->app->DB->SelectArr($sql)[0];
|
$result = $this->app->DB->SelectArr($sql)[0];
|
||||||
$menge_plan_gesamt = $result['menge'];
|
$menge_plan_gesamt = $result['menge'];
|
||||||
|
|
||||||
|
if ($menge_plan_gesamt == 0) {
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "SELECT FORMAT(SUM(mengeerfolgreich),0) as menge FROM produktion WHERE id=$produktion_id";
|
$sql = "SELECT FORMAT(SUM(mengeerfolgreich),0) as menge FROM produktion WHERE id=$produktion_id";
|
||||||
$result = $this->app->DB->SelectArr($sql)[0];
|
$result = $this->app->DB->SelectArr($sql)[0];
|
||||||
$menge_geliefert_gesamt = $result['menge'];
|
$menge_geliefert_gesamt = $result['menge'];
|
||||||
@ -1431,4 +1460,99 @@ class Produktion {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy an existing produktion as draft, with option to adjust the quantity
|
||||||
|
// return id on sucess, else negative number
|
||||||
|
|
||||||
|
function Copy($produktion_id, $menge_abteilen) : int {
|
||||||
|
|
||||||
|
if (empty($produktion_id)) {
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$fortschritt = $this->MengeFortschritt($produktion_id,0);
|
||||||
|
if (empty($fortschritt)) {
|
||||||
|
return(-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($menge_abteilen < 1) {
|
||||||
|
$menge_abteilen = $fortschritt['geplant'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT * from produktion WHERE id = $produktion_id";
|
||||||
|
$produktion_alt = $this->app->DB->SelectArr($sql)[0];
|
||||||
|
|
||||||
|
if (empty($produktion_alt)) {
|
||||||
|
return (-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
$menge_pro_stueck = $menge_abteilen/$fortschritt['geplant'];
|
||||||
|
|
||||||
|
$produktion_neu = array();
|
||||||
|
$produktion_neu['status'] = 'angelegt';
|
||||||
|
$produktion_neu['datum'] = date("Y-m-d");
|
||||||
|
$produktion_neu['art'] = $produktion_alt['art'];
|
||||||
|
$produktion_neu['projekt'] = $produktion_alt['projekt'];
|
||||||
|
$produktion_neu['angebot'] = $produktion_alt['angebot'];
|
||||||
|
$produktion_neu['kundennummer'] = $produktion_alt['kundennummer'];
|
||||||
|
$produktion_neu['auftragid'] = $produktion_alt['auftragid'];
|
||||||
|
$produktion_neu['freitext'] = $produktion_alt['freitext'];
|
||||||
|
$produktion_neu['internebemerkung'] = $produktion_alt['internebemerkung'];
|
||||||
|
$produktion_neu['adresse'] = $produktion_alt['adresse'];
|
||||||
|
|
||||||
|
if ($produktion_alt['belegnr'] != '') {
|
||||||
|
$produktion_neu['internebezeichnung '] = "Kopie von ".$produktion_alt['belegnr']." ".$produktion_alt['internebezeichnung'];
|
||||||
|
} else {
|
||||||
|
$produktion_neu['internebezeichnung '] = $produktion_alt['internebezeichnung'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$produktion_neu['standardlager'] = $produktion_alt['standardlager'];
|
||||||
|
|
||||||
|
|
||||||
|
$columns = "";
|
||||||
|
$values = "";
|
||||||
|
$update = "";
|
||||||
|
|
||||||
|
$fix = "";
|
||||||
|
|
||||||
|
foreach ($produktion_neu as $key => $value) {
|
||||||
|
$columns = $columns.$fix.$key;
|
||||||
|
$values = $values.$fix."'".$value."'";
|
||||||
|
$update = $update.$fix.$key." = '$value'";
|
||||||
|
$fix = ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "INSERT INTO produktion (".$columns.") VALUES (".$values.")";
|
||||||
|
$this->app->DB->Update($sql);
|
||||||
|
$produktion_neu_id = $this->app->DB->GetInsertID();
|
||||||
|
|
||||||
|
// Now add the positions
|
||||||
|
$sql = "SELECT * FROM produktion_position WHERE produktion = $produktion_id";
|
||||||
|
$positionen = $this->app->DB->SelectArr($sql);
|
||||||
|
|
||||||
|
foreach ($positionen as $position) {
|
||||||
|
|
||||||
|
$columns = "";
|
||||||
|
|
||||||
|
// For the new positions
|
||||||
|
$position['id'] = 'NULL';
|
||||||
|
$position['geliefert_menge'] = 0;
|
||||||
|
|
||||||
|
$position['menge'] = $menge_abteilen*$menge_pro_stueck;
|
||||||
|
$position['produktion'] = $produktion_neu_id;
|
||||||
|
|
||||||
|
$values = "";
|
||||||
|
$fix = "";
|
||||||
|
foreach ($position as $key => $value) {
|
||||||
|
$columns = $columns.$fix.$key;
|
||||||
|
$values = $values.$fix."'".$value."'";
|
||||||
|
$fix = ", ";
|
||||||
|
}
|
||||||
|
$sql = "INSERT INTO produktion_position (".$columns.") VALUES (".$values.")";
|
||||||
|
$this->app->DB->Update($sql);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return($produktion_neu_id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user