From 9fc07ca3df3841f15d055fe50452aa9a0a4d0e32 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Wed, 14 Feb 2024 11:00:16 +0100
Subject: [PATCH] bugfix lieferantengutschrift positionen hinzufuegen
---
www/pages/lieferantengutschrift.php | 43 +++++++++++++++++++----------
1 file changed, 29 insertions(+), 14 deletions(-)
diff --git a/www/pages/lieferantengutschrift.php b/www/pages/lieferantengutschrift.php
index f107e735..ae321994 100644
--- a/www/pages/lieferantengutschrift.php
+++ b/www/pages/lieferantengutschrift.php
@@ -303,17 +303,17 @@ class lieferantengutschrift {
$auswahl = array (
' 'pd.id'],
+ ['sql' => 'vp.id'],
'"/>'
);
$werte = array (
' 'vp.menge'],
+ ['sql' => 'if(vp.menge > COALESCE(lgp.menge,0),vp.menge-COALESCE(lgp.menge,0),0)'],
'" ',
'value = "',
- ['sql' => 'vp.menge'],
+ ['sql' => 'if(vp.menge > COALESCE(lgp.menge,0),vp.menge-COALESCE(lgp.menge,0),0)'],
'" ',
'/>'
);
@@ -358,9 +358,20 @@ class lieferantengutschrift {
INNER JOIN adresse adr ON
adr.id = v.adresse
LEFT JOIN kontorahmen skv ON skv.id = vp.kontorahmen
+ LEFT JOIN (
+ SELECT
+ verbindlichkeit_position,
+ SUM(menge) AS menge
+ FROM
+ lieferantengutschrift_position lgp
+ INNER JOIN
+ lieferantengutschrift lg ON lg.id = lgp.lieferantengutschrift
+ WHERE
+ lg.status <> 'storniert' AND verbindlichkeit_position <> 0 and verbindlichkeit_position IS NOT NULL
+ ) lgp ON lgp.verbindlichkeit_position = vp.id
";
- $where = "v.adresse = (SELECT adresse FROM lieferantengutschrift WHERE id = ".$id.") AND v.status = 'freigegeben'";
+ $where = "v.adresse = (SELECT adresse FROM lieferantengutschrift WHERE id = ".$id.") AND v.status IN ('freigegeben','abgeschlossen')";
$count = "";
@@ -713,13 +724,17 @@ class lieferantengutschrift {
";
$offen_menge = $this->app->DB->Select($sql);
- if ($offen_menge == 0) {
+ if ($offen_menge === 0) {
continue;
- }
+ }
- if ($menge > $offen_menge) {
+ if ($menge > $offen_menge && !empty($offen_menge)) {
$menge = $offen_menge;
}
+
+ if ($menge == 0) {
+ continue;
+ }
$sql = "SELECT
a.id,
@@ -1297,10 +1312,10 @@ class lieferantengutschrift {
if (!$this->lieferantengutschrift_is_freigegeben($id)) {
if ($gotoedit) {
- $this->app->YUI->Message('warning','lieferantengutschrift nicht freigebeben');
+ $this->app->YUI->Message('warning','lieferantengutschrift nicht freigegeben');
$error = true;
} else {
- return('lieferantengutschrift nicht freigebeben '.$this->lieferantengutschrift_get_belegnr($id));
+ return('lieferantengutschrift nicht freigegeben '.$this->lieferantengutschrift_get_belegnr($id));
}
}
@@ -1332,10 +1347,10 @@ class lieferantengutschrift {
if (!$this->lieferantengutschrift_is_freigegeben($id)) {
if ($gotoedit) {
- $this->app->YUI->Message('warning','lieferantengutschrift nicht freigebeben');
+ $this->app->YUI->Message('warning','lieferantengutschrift nicht freigegeben');
$error = true;
} else {
- return('lieferantengutschrift nicht freigebeben '.$this->lieferantengutschrift_get_belegnr($id));
+ return('lieferantengutschrift nicht freigegeben '.$this->lieferantengutschrift_get_belegnr($id));
}
}
@@ -1387,10 +1402,10 @@ class lieferantengutschrift {
if (!$this->lieferantengutschrift_is_freigegeben($id)) {
if ($gotoedit) {
- $this->app->YUI->Message('warning','lieferantengutschrift nicht freigebeben');
+ $this->app->YUI->Message('warning','lieferantengutschrift nicht freigegeben');
$error = true;
} else {
- return('lieferantengutschrift nicht freigebeben '.$this->lieferantengutschrift_get_belegnr($id));
+ return('lieferantengutschrift nicht freigegeben '.$this->lieferantengutschrift_get_belegnr($id));
}
}
@@ -1626,7 +1641,7 @@ class lieferantengutschrift {
WHERE
id='$id'
AND
- status IN ('freigegeben')
+ status IN ('freigegeben','abgeschlossen')
";
$check = $this->app->DB->SelectArr($sql);