diff --git a/phpwf/plugins/class.yui.php b/phpwf/plugins/class.yui.php index 9dd92f04..ceea5b93 100644 --- a/phpwf/plugins/class.yui.php +++ b/phpwf/plugins/class.yui.php @@ -5817,12 +5817,8 @@ url:strUrl, success:function(html){strReturn = html;}, async:false } } // Fester filter - $more_data6 = $this->app->Secure->GetGET("more_data6"); - $more_data7 = $this->app->Secure->GetGET("more_data7"); - $more_data8 = $this->app->Secure->GetGET("more_data8"); - $more_data4 = $this->app->Secure->GetGET("more_data4"); - +/* $versandjoin = ""; if(isset($parameter['offenversandzentrum']) && !empty($parameter['offenversandzentrum'])) { @@ -5856,8 +5852,8 @@ url:strUrl, success:function(html){strReturn = html;}, async:false } if($versandjoin)$sql .= $versandjoin; - - + */ + if($more_data4 || (isset($parameter['ohnerechnung']) && !empty($parameter['ohnerechnung']))) { $paramsArray[] = " l.status !='storniert' "; @@ -5932,6 +5928,21 @@ url:strUrl, success:function(html){strReturn = html;}, async:false if ($more_data3 == 1) $subwhere[] = " l.lieferantenretoure=1 "; // ENDE EXTRA more + $more_data6 = $this->app->Secure->GetGET("more_data6"); + $more_data7 = $this->app->Secure->GetGET("more_data7"); + $more_data8 = $this->app->Secure->GetGET("more_data8"); + + if ($more_data6) { + $subwhere[] = "l.versand_status = 3"; + } + if ($more_data7) { + $subwhere[] = "l.versand_status = 1"; + } + if ($more_data8) { + $subwhere[] = "l.versand_status IN (2,3)"; + } + + for ($j = 0;$j < (empty($subwhere)?0:count($subwhere));$j++) $tmp.= " AND " . $subwhere[$j]; $where = " l.id!='' AND l.status!='angelegt' $tmp " . $this->app->erp->ProjektRechte('p.id', true, 'l.vertriebid'); diff --git a/upgrade/data/db_schema.json b/upgrade/data/db_schema.json index 181fc285..8861b443 100644 --- a/upgrade/data/db_schema.json +++ b/upgrade/data/db_schema.json @@ -57169,6 +57169,17 @@ "Extra": "", "Privileges": "select,insert,update,references", "Comment": "" + }, + { + "Field": "versand_status", + "Type": "int(11)", + "Collation": null, + "Null": "NO", + "Key": "", + "Default": "0", + "Extra": "", + "Privileges": "select,insert,update,references", + "Comment": "" } ], "keys": [ diff --git a/www/pages/auftrag.php b/www/pages/auftrag.php index 5cff46f2..efe87cd6 100644 --- a/www/pages/auftrag.php +++ b/www/pages/auftrag.php @@ -5694,8 +5694,13 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '. } $this->app->DB->Update("UPDATE lieferschein SET - belegnr='$ls_belegnr', status='freigegeben', versand='".$this->app->User->GetDescription()."' - WHERE id='$lieferschein' LIMIT 1"); + belegnr='$ls_belegnr', + status='freigegeben', + versand='".$this->app->User->GetDescription()."', + versand_status = 1 + WHERE id='$lieferschein' LIMIT 1"); + + // Versand_status: 1 = process in versandpakete, 2 = finished, 3 = finished manually $this->app->erp->LieferscheinProtokoll($lieferschein, 'Lieferschein freigegeben'); @@ -6342,7 +6347,7 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '. $this->app->erp->MenuEintrag('index.php?module=auftrag&action=list','Übersicht'); $this->app->erp->MenuEintrag('index.php?module=auftrag&action=create','Neuen Auftrag anlegen'); $this->app->erp->MenuEintrag('index.php?module=auftrag&action=offene','Offene Positionen'); - $this->app->erp->MenuEintrag('index.php?module=auftrag&action=versandzentrum','Versandzentrum'); + $this->app->erp->MenuEintrag('index.php?module=auftrag&action=versandzentrum','Versandübergabe'); if(strlen($backurl)>5){ $this->app->erp->MenuEintrag("$backurl", 'Zurück zur Übersicht'); @@ -6387,7 +6392,7 @@ Die Gesamtsumme stimmt nicht mehr mit ursprünglich festgelegten Betrag '. $this->AuftraguebersichtMenu(); $targetMessage = 'AUTOVERSANDBERECHNEN'; - $this->app->Tpl->Add('MESSAGE','
' AS `open`, CONCAT('') AS `auswahl`";
$menucol = 1;
$moreinfoaction = "lieferschein";
$moreinfo = true; // Allow drop down details
$aligncenter = [5,6,7,8,9,10];
- $menu = "
' AS `open`, CONCAT('') AS `auswahl`";
+
+ $sql_lieferschein_position = "
+ SELECT
+ l.id,
+ l.belegnr,
+ l.name,
+ lp.menge lmenge,
+ SUM(vlp.menge) vmenge,
+ BIT_OR(COALESCE(v.status,0) IN ('versendet')) AS eins_versendet,
+ BIT_AND(COALESCE(v.status,0) IN ('versendet')) AS alle_versendet,
+ BIT_OR(COALESCE(v.status,0) IN ('abgeschlossen')) AS eins_abgeschlossen,
+ BIT_AND(COALESCE(v.status,0) IN ('abgeschlossen')) AS alle_abgeschlossen
+ FROM
+ lieferschein l
+ INNER JOIN lieferschein_position lp ON lp.lieferschein = l.id
+ INNER JOIN artikel a ON lp.artikel = a.id
+ LEFT JOIN versandpaket_lieferschein_position vlp ON vlp.lieferschein_position = lp.id
+ LEFT JOIN versandpakete v ON vlp.versandpaket = v.id
+ WHERE
+ l.versand_status <> 0 AND
+ l.belegnr <> '' AND
+ (v.status <> 'storniert' OR v.status IS NULL) AND
+ a.lagerartikel
+ GROUP BY lp.id
+ ";
+
+ $sql_lieferschein = "
+ SELECT
+ id,
+ belegnr,
+ name,
+ SUM(lmenge) lmenge,
+ SUM(COALESCE(vmenge,0)) vmenge,
+ eins_versendet,
+ alle_versendet,
+ eins_abgeschlossen,
+ alle_abgeschlossen
+ FROM (
+ ".$sql_lieferschein_position."
+ ) lp
+ GROUP BY id
+ ";
+
+ $sql = "
+ SELECT SQL_CALC_FOUND_ROWS
+ id,
+ ".$dropnbox.",
+ CONCAT('',belegnr,''),
+ name,
+ ".$app->erp->FormatMenge("lmenge").",
+ ".$app->erp->FormatMenge("vmenge").",
+ ".$app->YUI->IconsSQL_lieferung().",
+ if(vmenge=0,'',CONCAT('