Automatic order processing manually

Cronjob based not working yes. Expanded process options in project settings.
This commit is contained in:
Xenomporio 2022-07-14 14:06:30 +02:00
parent 90de642685
commit b52354b1ad
3 changed files with 69 additions and 31 deletions

View File

@ -622,6 +622,13 @@ class Auftrag extends GenAuftrag
$menucol = 8; // For moredata $menucol = 8; // For moredata
break; break;
/* case 'auftraegeoffeneautowartend':
// TODO for cronjob commissioning
break;*/
} }
$erg = []; $erg = [];
@ -5245,6 +5252,10 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
return $return; return $return;
} }
/*
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) if(!$this->kommissionierung)
@ -6076,6 +6087,9 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
{ {
$this->AuftraguebersichtMenu(); $this->AuftraguebersichtMenu();
$targetMessage = 'AUTOVERSANDBERECHNEN'; $targetMessage = 'AUTOVERSANDBERECHNEN';
$this->app->Tpl->Set('MESSAGE','<div class="info">Auftr&auml;ge an Versand übergeben mit automatischem Druck und Mailversand.</div>');
$autoshipmentEnabled = true; $autoshipmentEnabled = true;
$this->app->erp->RunHook('OrderAutoShipment', 2, $targetMessage, $autoshipmentEnabled); $this->app->erp->RunHook('OrderAutoShipment', 2, $targetMessage, $autoshipmentEnabled);
@ -6143,6 +6157,12 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
switch($aktion){ switch($aktion){
case 'versandstarten': case 'versandstarten':
/*
* If one of the cronjobs is active, orders only get marked. Sending will be handled by the cronjob.
* If not, sending will be done here.
*/
$cronjobActive = $this->app->DB->Select( $cronjobActive = $this->app->DB->Select(
"SELECT ps.id "SELECT ps.id
FROM `prozessstarter` AS `ps` FROM `prozessstarter` AS `ps`
@ -6179,6 +6199,9 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
//sort($auftraegemarkiert); //sort($auftraegemarkiert);
} }
if($check){ if($check){
/* Send all to cronjob */
$maxcronjobkommissionierung = $this->createCronjobCommission((string)$bezeichnung); $maxcronjobkommissionierung = $this->createCronjobCommission((string)$bezeichnung);
$cauftraegemarkiert = $auftraegemarkiert ? count($auftraegemarkiert) : 0; $cauftraegemarkiert = $auftraegemarkiert ? count($auftraegemarkiert) : 0;
@ -6195,6 +6218,9 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
} }
} }
else { else {
/* Process here now */
$cauftraegemarkiert = $auftraegemarkiert ? count($auftraegemarkiert) : 0; $cauftraegemarkiert = $auftraegemarkiert ? count($auftraegemarkiert) : 0;
for ($i = 0; $i < $cauftraegemarkiert; $i++) { for ($i = 0; $i < $cauftraegemarkiert; $i++) {
$projekt = (int)$this->app->DB->Select( $projekt = (int)$this->app->DB->Select(
@ -6211,9 +6237,20 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
continue; continue;
} }
$this->kommissionierung = $this->app->erp->GetNextKommissionierung($bezeichnung); $this->kommissionierung = $this->app->erp->GetNextKommissionierung($bezeichnung);
$processed_orders_num = 0;
foreach ($auftraege as $auftrag) { foreach ($auftraege as $auftrag) {
$this->AuftragVersand($auftrag);
/* Process each order */
if($this->AuftragVersand($auftrag)) {
$processed_orders_num++;
}
} }
$this->app->Tpl->Set('MESSAGE','<div class="info">'.$processed_orders_num.' Auftr&auml;ge wurden verarbeitet.</div>');
if(empty($this->kommissionierung)) { if(empty($this->kommissionierung)) {
continue; continue;
} }
@ -6336,9 +6373,12 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
$warteschleife=''; $warteschleife='';
} }
$this->app->Tpl->Set('TABTEXT2','Unversendet '.$unversendet); $this->app->Tpl->Set('MESSAGE','<div class="error">Cronjob order processing not yet implemented!</div>');
$this->app->Tpl->Set('TABTEXT3','Warteschleife '.$warteschleife);
$this->app->YUI->TableSearch('TAB3','auftraegeoffeneautowartend'); $this->app->Tpl->Set('TABTEXT1','Unversendet '.$unversendet);
$this->app->Tpl->Set('TABTEXT2','Warteschleife '.$warteschleife);
// $this->app->YUI->TableSearch('TAB2','auftraegeoffeneautowartend');
if($warteschleife > 0 && !$cronjobActive) { if($warteschleife > 0 && !$cronjobActive) {
$this->app->Tpl->Add( $this->app->Tpl->Add(
'AUTOVERSANDBERECHNEN', 'AUTOVERSANDBERECHNEN',
@ -6351,8 +6391,8 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
} }
else{ else{
$this->app->Tpl->Set('VORTABS3UEBERSCHRIFT','<!--'); $this->app->Tpl->Set('VORTABS2UEBERSCHRIFT','<!--');
$this->app->Tpl->Set('NACHTABS3UEBERSCHRIFT','-->'); $this->app->Tpl->Set('NACHTABS2UEBERSCHRIFT','-->');
} }
$this->app->Tpl->Set('SELDRUCKERVERSAND', $this->app->erp->GetSelectDrucker($this->app->User->GetParameter('rechnung_list_drucker'))); $this->app->Tpl->Set('SELDRUCKERVERSAND', $this->app->erp->GetSelectDrucker($this->app->User->GetParameter('rechnung_list_drucker')));
@ -6368,6 +6408,8 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
// $this->app->Tpl->Set('AUTOBERECHNEN2',''); // $this->app->Tpl->Set('AUTOBERECHNEN2','');
} }
$infolink = '<a href="https://xentral.biz/helpdesk/kurzanleitung-ablauf-des-versands-von-auftraegen#nav-autoversand-mit-prozessstarter-berechnen" target="_blank">(Information)</a>'; $infolink = '<a href="https://xentral.biz/helpdesk/kurzanleitung-ablauf-des-versands-von-auftraegen#nav-autoversand-mit-prozessstarter-berechnen" target="_blank">(Information)</a>';
/*
$last_order_calc = $this->app->erp->GetKonfiguration('last_order_calc'); $last_order_calc = $this->app->erp->GetKonfiguration('last_order_calc');
if(!empty($last_order_calc)) { if(!empty($last_order_calc)) {
$this->app->Tpl->Add('AUTOVERSANDBERECHNEN','<div class="info">Die letzte Berechnung der Auftragsampeln war am '.$last_order_calc.'. '.$infolink.' [AUTOBERECHNEN]</div>'); $this->app->Tpl->Add('AUTOVERSANDBERECHNEN','<div class="info">Die letzte Berechnung der Auftragsampeln war am '.$last_order_calc.'. '.$infolink.' [AUTOBERECHNEN]</div>');
@ -6375,14 +6417,10 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
else{ else{
$this->app->Tpl->Add('AUTOVERSANDBERECHNEN','<div class="info">Die letzte Berechnung der Auftragsampeln wurde noch nicht ermittelt. '.$infolink.' [AUTOBERECHNEN]</div>'); $this->app->Tpl->Add('AUTOVERSANDBERECHNEN','<div class="info">Die letzte Berechnung der Auftragsampeln wurde noch nicht ermittelt. '.$infolink.' [AUTOBERECHNEN]</div>');
} }
*/
// $this->app->YUI->TableSearch('TAB1','auftraege', 'show','','',basename(__FILE__), __CLASS__); $this->app->YUI->TableSearch('TAB1','auftraegeoffeneauto', 'show','','',basename(__FILE__), __CLASS__);
$this->app->YUI->TableSearch('TAB2','auftraegeoffeneauto', 'show','','',basename(__FILE__), __CLASS__);
// $this->app->Tpl->Parse('PAGE',"auftraguebersicht.tpl");
// TEST
$this->app->Tpl->Parse('PAGE','auftrag_versandzentrum.tpl'); $this->app->Tpl->Parse('PAGE','auftrag_versandzentrum.tpl');
// TEST
} // Ende } // Ende
@ -6830,8 +6868,8 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
$this->app->Tpl->Add('LAENDER',$laenderStr); $this->app->Tpl->Add('LAENDER',$laenderStr);
$this->app->Tpl->Parse('TAB1',"auftrag_table_filter.tpl"); $this->app->Tpl->Parse('TAB1',"auftrag_table_filter.tpl");
$this->app->YUI->TableSearch('TAB2',"auftraegeoffeneauto");
$this->app->YUI->TableSearch('TAB1','auftraege', 'show','','',basename(__FILE__), __CLASS__); $this->app->YUI->TableSearch('TAB1','auftraege', 'show','','',basename(__FILE__), __CLASS__);
// $this->app->YUI->TableSearch('TAB2',"auftraegeoffeneauto");
$this->app->YUI->TableSearch('TAB3',"auftraegeoffene"); $this->app->YUI->TableSearch('TAB3',"auftraegeoffene");
$this->app->Tpl->Set('SELDRUCKER', $this->app->erp->GetSelectDrucker($this->app->User->GetParameter('rechnung_list_drucker'))); $this->app->Tpl->Set('SELDRUCKER', $this->app->erp->GetSelectDrucker($this->app->User->GetParameter('rechnung_list_drucker')));

View File

@ -1,16 +1,14 @@
<div id="tabs"> <div id="tabs">
<ul> <ul>
<li><a href="#tabs-2">[TABTEXT2]</a></li> <li><a href="#tabs-1">[TABTEXT1]</a></li>
[VORTABS3UEBERSCHRIFT]<li><a href="#tabs-3">[TABTEXT3]</a></li>[NACHTABS3UEBERSCHRIFT] [VORTABS2UEBERSCHRIFT]<li><a href="#tabs-2">[TABTEXT2]</a></li>[NACHTABS2UEBERSCHRIFT]
</ul> </ul>
<div id="tabs-1">
<div id="tabs-2"> [MESSAGE]
[AUTOVERSANDBERECHNEN] [AUTOVERSANDBERECHNEN]
<form action="#tabs-1" id="frmauto" name="frmauto" method="post">
<form action="#tabs-2" id="frmauto" name="frmauto" method="post">
<div class="filter-box filter-usersave"> <div class="filter-box filter-usersave">
<div class="filter-block filter-inline"> <div class="filter-block filter-inline">
<div class="filter-title">{|Filter|}</div> <div class="filter-title">{|Filter|}</div>
@ -39,8 +37,7 @@
</ul> </ul>
</div> </div>
</div> </div>
[TAB1]
[TAB2]
<fieldset> <fieldset>
<legend>Stapelverarbeitung</legend> <legend>Stapelverarbeitung</legend>
<input type="checkbox" value="1" id="autoalle" checked="checked" />&nbsp;alle markieren&nbsp; <input type="checkbox" value="1" id="autoalle" checked="checked" />&nbsp;alle markieren&nbsp;
@ -59,10 +56,11 @@
</fieldset> </fieldset>
</form> </form>
</div> </div>
<div id="tabs-3">
[VORTABS3UEBERSCHRIFT]
<form action="#tabs-3" method="post">
<div id="tabs-2">
[VORTABS2UEBERSCHRIFT]
<form action="#tabs-2" method="post">
<div class="filter-box filter-usersave"> <div class="filter-box filter-usersave">
<div class="filter-block filter-inline"> <div class="filter-block filter-inline">
<div class="filter-title">{|Filter|}</div> <div class="filter-title">{|Filter|}</div>
@ -77,14 +75,12 @@
</ul> </ul>
</div> </div>
</div> </div>
[TAB2]
[TAB3]
<table width="100%"><tr><td><input type="submit" value="Auftr&auml;ge aus Liste entfernen" name="entfernen"></td> <table width="100%"><tr><td><input type="submit" value="Auftr&auml;ge aus Liste entfernen" name="entfernen"></td>
</tr></table> </tr></table>
</form> </form>
[NACHTABS3UEBERSCHRIFT] [NACHTABS2UEBERSCHRIFT]
</div> </div>
</div> </div>
<script> <script>

View File

@ -19,7 +19,11 @@ class WidgetProjekt extends WidgetGenProjekt
$id = $this->app->Secure->GetGET("id"); $id = $this->app->Secure->GetGET("id");
$kommissionierverfahren = array( $kommissionierverfahren = array(
'rechnungsmail'=>'Ohne Lagerbuchung', 'rechnungsmail'=>'Ohne Lagerbuchung',
'lieferschein'=>'Einfache Lagerbuchung ohne weiteren Prozess'); 'lieferschein'=>'Einfache Lagerbuchung ohne weiteren Prozess',
'lieferscheinscan'=>'Lieferscheinscan',
'lieferscheinlagerscan'=>'Lieferscheinlagerscan',
'lieferscheinlager'=>'Lieferscheinlager',
'zweistufig'=>'Zweistufig');
$field = new HTMLSelect("kommissionierverfahren",0); $field = new HTMLSelect("kommissionierverfahren",0);
$field->AddOptionsAsocSimpleArray($kommissionierverfahren); $field->AddOptionsAsocSimpleArray($kommissionierverfahren);
$this->form->NewField($field); $this->form->NewField($field);