From ab65feb455bfd23f9cb418b14d55f920244396fb Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Mon, 2 Jan 2023 11:17:49 +0100
Subject: [PATCH] Bestellvorschlag with parameter absatz and voraus
---
www/pages/bestellvorschlag.php | 96 ++++++++++++++++++---
www/pages/content/bestellvorschlag_list.tpl | 10 +--
2 files changed, 86 insertions(+), 20 deletions(-)
diff --git a/www/pages/bestellvorschlag.php b/www/pages/bestellvorschlag.php
index b6d67463..9dd5b5c4 100644
--- a/www/pages/bestellvorschlag.php
+++ b/www/pages/bestellvorschlag.php
@@ -26,28 +26,34 @@ class Bestellvorschlag {
/* Fill out manually later */
}
- static function TableSearch(&$app, $name, $erlaubtevars) {
+ public function TableSearch(&$app, $name, $erlaubtevars) {
switch ($name) {
case "bestellvorschlag_list":
$allowed['bestellvorschlag_list'] = array('list');
- $monate_absatz = $app->Secure->GetPOST('monate_absatz');
- $monate_voraus = $app->Secure->GetPOST('monate_voraus');
+ $monate_absatz = $this->app->User->GetParameter('bestellvorschlag_monate_absatz');
+ if (empty($monate_absatz)) {
+ $monate_absatz = 0;
+ }
+ $monate_voraus = $this->app->User->GetParameter('bestellvorschlag_monate_voraus');
+ if (empty($monate_voraus)) {
+ $monate_voraus = 0;
+ }
- $heading = array('', '', 'Nr.', 'Artikel','Lieferant','Mindestlager','Lager','Bestellt','Auftrag','Vorschlag','Eingabe','');
- $width = array('1%','1%','1%', '20%', '10%', '1%', '1%', '1%', '1%', '1%', '1%', '1%');
+ $heading = array('', '', 'Nr.', 'Artikel','Lieferant','Mindestlager','Lager','Bestellt','Auftrag','Absatz','Voraus','Vorschlag','Eingabe','');
+ $width = array('1%','1%','1%', '20%', '10%', '1%', '1%', '1%', '1%', '1%', '1%', '1%', '1%', '1%');
// columns that are aligned right (numbers etc)
// $alignright = array(4,5,6,7,8);
- $findcols = array('a.id','a.id','a.nummer','a.name_de','l.name','mindestlager','lager','bestellt','auftrag','vorschlag');
+ $findcols = array('a.id','a.id','a.nummer','a.name_de','l.name','mindestlager','lager','bestellt','auftrag','absatz','voraus','vorschlag');
$searchsql = array('a.name_de');
$defaultorder = 1;
$defaultorderdesc = 0;
- $numbercols = array(6,7,8,9,10);
+ $numbercols = array(6,7,8,9,10,11,12);
// $sumcol = array(6);
- $alignright = array(6,7,8,9,10);
+ $alignright = array(6,7,8,9,10,11,12);
$dropnbox = "'' AS `open`, CONCAT('') AS `auswahl`";
@@ -70,8 +76,7 @@ class Bestellvorschlag {
a.id,
(
SELECT
- COALESCE(SUM(menge),
- 0)
+ COALESCE(SUM(menge),0)
FROM
lager_platz_inhalt lpi
INNER JOIN lager_platz lp ON
@@ -81,7 +86,7 @@ class Bestellvorschlag {
) AS lager,
(
SELECT
- COALESCE(SUM(menge - geliefert))
+ COALESCE(SUM(menge - geliefert),0)
FROM
bestellung_position bp
INNER JOIN bestellung b ON
@@ -95,7 +100,7 @@ class Bestellvorschlag {
) AS bestellt,
(
SELECT
- COALESCE(SUM(menge - geliefert))
+ COALESCE(SUM(menge - geliefert),0)
FROM
auftrag_position aufp
INNER JOIN auftrag auf ON
@@ -109,7 +114,24 @@ class Bestellvorschlag {
) AS auftrag,
(
SELECT
- menge
+ COALESCE(SUM(menge),0)
+ FROM
+ rechnung_position rp
+ INNER JOIN rechnung r ON
+ rp.rechnung = r.id
+ WHERE
+ rp.artikel = a.id AND r.status IN(
+ 'versendet',
+ 'freigegeben'
+ ) AND r.datum > LAST_DAY(CURDATE() - INTERVAL ('$monate_absatz'+1) MONTH) AND r.datum <= LAST_DAY(CURDATE() - INTERVAL 1 MONTH)
+) AS absatz,
+ROUND (
+(
+ select absatz
+) / '$monate_absatz' * '$monate_voraus') AS voraus,
+(
+ SELECT
+ COALESCE(menge,0)
FROM
bestellvorschlag bv
WHERE
@@ -127,7 +149,13 @@ SELECT
SELECT
auftrag
),
-0) AS vorschlag_ber_raw,
+0)
+ + COALESCE((
+SELECT
+ voraus
+),
+0)
+ AS vorschlag_ber_raw,
IF(
(
SELECT
@@ -174,6 +202,24 @@ SELECT
0,
'de_DE'
) AS auftrag_form,
+FORMAT(
+ COALESCE((
+SELECT
+ absatz
+),
+0),
+ 0,
+ 'de_DE'
+) AS absatz_form,
+FORMAT(
+ COALESCE((
+SELECT
+ voraus
+),
+0),
+ 0,
+ 'de_DE'
+) AS voraus_form,
FORMAT(
(
SELECT
@@ -195,6 +241,10 @@ FROM
artikel a
";
+
+//echo($sql_artikel_mengen);
+
+
$sql = "SELECT SQL_CALC_FOUND_ROWS
a.id,
$dropnbox,
@@ -205,6 +255,8 @@ FROM
mengen.lager_form,
mengen.bestellt_form,
mengen.auftrag_form,
+ mengen.absatz_form,
+ mengen.voraus_form,
mengen.vorschlag_ber_form,"
.$input_for_menge
."FROM
@@ -237,6 +289,19 @@ FROM
$submit = $this->app->Secure->GetPOST('submit');
$user = $this->app->User->GetID();
+ $monate_absatz = $this->app->Secure->GetPOST('monate_absatz');
+ if (empty($monate_absatz)) {
+ $monate_absatz = 0;
+ }
+ $monate_voraus = $this->app->Secure->GetPOST('monate_voraus');
+ if (empty($monate_voraus)) {
+ $monate_voraus = 0;
+ }
+
+ // For transfer to tablesearch
+ $this->app->User->SetParameter('bestellvorschlag_monate_absatz', $monate_absatz);
+ $this->app->User->SetParameter('bestellvorschlag_monate_voraus', $monate_voraus);
+
switch ($submit) {
case 'loeschen':
$sql = "DELETE FROM bestellvorschlag where user = $user";
@@ -263,6 +328,9 @@ FROM
$this->app->erp->MenuEintrag("index.php", "Zurück");
+ $this->app->Tpl->Set('MONATE_ABSATZ',$monate_absatz);
+ $this->app->Tpl->Set('MONATE_VORAUS',$monate_voraus);
+
$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 326560fc..2d2c1c01 100644
--- a/www/pages/content/bestellvorschlag_list.tpl
+++ b/www/pages/content/bestellvorschlag_list.tpl
@@ -5,20 +5,18 @@