From f76400e24801c329e85895091914ec25ee2b9196 Mon Sep 17 00:00:00 2001 From: OpenXE <> Date: Sun, 8 Jan 2023 18:51:29 +0100 Subject: [PATCH] Bestellvorschlag now working --- www/pages/bestellvorschlag.php | 82 +++++++++++ www/pages/content/bestellvorschlag_list.tpl | 150 ++++++++++---------- 2 files changed, 158 insertions(+), 74 deletions(-) diff --git a/www/pages/bestellvorschlag.php b/www/pages/bestellvorschlag.php index 9dd5b5c4..6f2da7d4 100644 --- a/www/pages/bestellvorschlag.php +++ b/www/pages/bestellvorschlag.php @@ -321,6 +321,86 @@ FROM } } break; + case 'bestellungen_erzeugen': + + $auswahl = $this->app->Secure->GetPOST('auswahl'); + $selectedIds = []; + + if(empty($auswahl)) { + $msg = '
Bitte Artikel auswählen.
'; + break; + } + + if(!empty($auswahl)) { + foreach ($auswahl as $selectedId) { + $selectedId = (int) $selectedId; + if ($selectedId > 0) { + $selectedIds[] = $selectedId; + } + } + } + + $menge_input = $this->app->Secure->GetPOSTArray(); + $mengen = array(); + + foreach ($selectedIds as $artikel_id) { + foreach ($menge_input as $key => $menge) { + if ((strpos($key,'menge_') === 0) && ($menge !== '')) { + $artikel = substr($key,'6'); + if ($menge > 0 && $artikel == $artikel_id) { + $mengen[] = array('id' => $artikel,'menge' => $menge); + } + } + } + } + + $mengen_pro_adresse = array(); + foreach ($mengen as $menge) { + $sql = "SELECT adresse FROM artikel WHERE id = ".$menge['id']; + $adresse = $this->app->DB->Select($sql); + if (!empty($adresse)) { + $index = array_search($adresse, array_column($mengen_pro_adresse,'adresse')); + if ($index !== false) { + $mengen_pro_adresse[$index]['positionen'][] = $menge; + } else { + $mengen_pro_adresse[] = array('adresse' => $adresse,'positionen' => array($menge)); + } + } + } + + $angelegt = 0; + + foreach ($mengen_pro_adresse as $bestelladresse) { + $bestellid = $this->app->erp->CreateBestellung($bestelladresse); + if (!empty($bestellid)) { + + $angelegt++; + + $this->app->erp->LoadBestellungStandardwerte($bestellid,$bestelladresse['adresse']); + $this->app->erp->BestellungProtokoll($bestellid,"Bestellung angelegt"); + foreach ($bestelladresse['positionen'] as $position) { + $preisid = $this->app->erp->Einkaufspreis($position['id'], $position['menge'], $bestelladresse['adresse']); + + if ($preisid == null) { + $artikelohnepreis = $position['id']; + } else { + $artikelohnepreis = null; + } + + $this->app->erp->AddBestellungPosition( + $bestellid, + $preisid, + $position['menge'], + $datum, + '', + $artikelohnepreis + ); + } + $this->app->erp->BestellungNeuberechnen($bestellid); + } + } + $msg .= "
Es wurden $angelegt Bestellungen angelegt.
"; + break; } $this->app->erp->MenuEintrag("index.php?module=bestellvorschlag&action=list", "Übersicht"); @@ -331,6 +411,8 @@ FROM $this->app->Tpl->Set('MONATE_ABSATZ',$monate_absatz); $this->app->Tpl->Set('MONATE_VORAUS',$monate_voraus); + $this->app->Tpl->Set('MESSAGE',$msg); + $this->app->YUI->TableSearch('TAB1', 'bestellvorschlag_list', "show", "", "", basename(__FILE__), __CLASS__); $this->app->Tpl->Parse('PAGE', "bestellvorschlag_list.tpl"); } diff --git a/www/pages/content/bestellvorschlag_list.tpl b/www/pages/content/bestellvorschlag_list.tpl index 2d2c1c01..9d79b6d8 100644 --- a/www/pages/content/bestellvorschlag_list.tpl +++ b/www/pages/content/bestellvorschlag_list.tpl @@ -1,81 +1,83 @@ -
- [MESSAGE] -
-
-
-
-
-
- - {|Einstellungen|} +
+
+ [MESSAGE] + +
+
+
+
+
+
+ {|Einstellungen|} - - - - - - - -
{|Absatz berücksichtigen (Monate)|}:
{|Vorausplanen (Monate)|}:
-
-
-
-
-
-
-
-
-
-
- - Aktionen - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- [TAB1] -
- - - - -
-  alle markieren  -
-
-
-
-
-
-
- [TAB1NEXT] + {|Absatz berücksichtigen (Monate)|}: + + + + {|Vorausplanen (Monate)|}: + + + + +
+ +
+
+
+
+
+
+
+ + Aktionen + + + + + + + + + +
+
+
+
+ + +
+
+
+
+ [TAB1] +
+ + + + +
+  alle markieren  +
+
+
+
+
+
+ + [TAB1NEXT] + - + $('#autoalle').on('change',function(){ + var wert = $(this).prop('checked'); + $('#bestellvorschlag_list').find('input[type="checkbox"]').prop('checked',wert); + $('#bestellvorschlag_list').find('input[type="checkbox"]').first().trigger('change'); + }); + + - +