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
break;
/* case 'auftraegeoffeneautowartend':
// TODO for cronjob commissioning
break;*/
}
$erg = [];
@ -5245,6 +5252,10 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
return $return;
}
/*
order processed true or false
*/
public function AuftragVersand($id='', $ignoriereliefertermin = false, &$ergebnis = null, $paketmarkedrucken = false)
{
if(!$this->kommissionierung)
@ -6076,6 +6087,9 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '.
{
$this->AuftraguebersichtMenu();
$targetMessage = 'AUTOVERSANDBERECHNEN';
$this->app->Tpl->Set('MESSAGE','<div class="info">Auftr&auml;ge an Versand übergeben mit automatischem Druck und Mailversand.</div>');
$autoshipmentEnabled = true;
$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){
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(
"SELECT ps.id
FROM `prozessstarter` AS `ps`
@ -6179,6 +6199,9 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
//sort($auftraegemarkiert);
}
if($check){
/* Send all to cronjob */
$maxcronjobkommissionierung = $this->createCronjobCommission((string)$bezeichnung);
$cauftraegemarkiert = $auftraegemarkiert ? count($auftraegemarkiert) : 0;
@ -6195,6 +6218,9 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
}
}
else {
/* Process here now */
$cauftraegemarkiert = $auftraegemarkiert ? count($auftraegemarkiert) : 0;
for ($i = 0; $i < $cauftraegemarkiert; $i++) {
$projekt = (int)$this->app->DB->Select(
@ -6211,9 +6237,20 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
continue;
}
$this->kommissionierung = $this->app->erp->GetNextKommissionierung($bezeichnung);
$processed_orders_num = 0;
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)) {
continue;
}
@ -6336,9 +6373,12 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
$warteschleife='';
}
$this->app->Tpl->Set('TABTEXT2','Unversendet '.$unversendet);
$this->app->Tpl->Set('TABTEXT3','Warteschleife '.$warteschleife);
$this->app->YUI->TableSearch('TAB3','auftraegeoffeneautowartend');
$this->app->Tpl->Set('MESSAGE','<div class="error">Cronjob order processing not yet implemented!</div>');
$this->app->Tpl->Set('TABTEXT1','Unversendet '.$unversendet);
$this->app->Tpl->Set('TABTEXT2','Warteschleife '.$warteschleife);
// $this->app->YUI->TableSearch('TAB2','auftraegeoffeneautowartend');
if($warteschleife > 0 && !$cronjobActive) {
$this->app->Tpl->Add(
'AUTOVERSANDBERECHNEN',
@ -6351,8 +6391,8 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
}
else{
$this->app->Tpl->Set('VORTABS3UEBERSCHRIFT','<!--');
$this->app->Tpl->Set('NACHTABS3UEBERSCHRIFT','-->');
$this->app->Tpl->Set('VORTABS2UEBERSCHRIFT','<!--');
$this->app->Tpl->Set('NACHTABS2UEBERSCHRIFT','-->');
}
$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','');
}
$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');
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>');
@ -6375,14 +6417,10 @@ Die Gesamtsumme stimmt nicht mehr mit urspr&uuml;nglich festgelegten Betrag '.
else{
$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('TAB2','auftraegeoffeneauto', 'show','','',basename(__FILE__), __CLASS__);
// $this->app->Tpl->Parse('PAGE',"auftraguebersicht.tpl");
// TEST
$this->app->YUI->TableSearch('TAB1','auftraegeoffeneauto', 'show','','',basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE','auftrag_versandzentrum.tpl');
// TEST
} // 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->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('TAB2',"auftraegeoffeneauto");
$this->app->YUI->TableSearch('TAB3',"auftraegeoffene");
$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">
<ul>
<li><a href="#tabs-2">[TABTEXT2]</a></li>
[VORTABS3UEBERSCHRIFT]<li><a href="#tabs-3">[TABTEXT3]</a></li>[NACHTABS3UEBERSCHRIFT]
</ul>
<li><a href="#tabs-1">[TABTEXT1]</a></li>
[VORTABS2UEBERSCHRIFT]<li><a href="#tabs-2">[TABTEXT2]</a></li>[NACHTABS2UEBERSCHRIFT]
</ul>
<div id="tabs-2">
<div id="tabs-1">
[MESSAGE]
[AUTOVERSANDBERECHNEN]
<form action="#tabs-2" id="frmauto" name="frmauto" method="post">
<form action="#tabs-1" id="frmauto" name="frmauto" method="post">
<div class="filter-box filter-usersave">
<div class="filter-block filter-inline">
<div class="filter-title">{|Filter|}</div>
@ -39,8 +37,7 @@
</ul>
</div>
</div>
[TAB2]
[TAB1]
<fieldset>
<legend>Stapelverarbeitung</legend>
<input type="checkbox" value="1" id="autoalle" checked="checked" />&nbsp;alle markieren&nbsp;
@ -59,10 +56,11 @@
</fieldset>
</form>
</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-block filter-inline">
<div class="filter-title">{|Filter|}</div>
@ -77,14 +75,12 @@
</ul>
</div>
</div>
[TAB3]
[TAB2]
<table width="100%"><tr><td><input type="submit" value="Auftr&auml;ge aus Liste entfernen" name="entfernen"></td>
</tr></table>
</form>
[NACHTABS3UEBERSCHRIFT]
[NACHTABS2UEBERSCHRIFT]
</div>
</div>
<script>

View File

@ -19,7 +19,11 @@ class WidgetProjekt extends WidgetGenProjekt
$id = $this->app->Secure->GetGET("id");
$kommissionierverfahren = array(
'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->AddOptionsAsocSimpleArray($kommissionierverfahren);
$this->form->NewField($field);