From cb4981025186ad81e124d46425a0c0dab3d95c9e Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Wed, 17 Jan 2024 17:03:34 +0100
Subject: [PATCH] wareneingang impovements
---
.../content/wareneingang_paketinhalt.tpl | 22 ++-
www/pages/wareneingang.php | 142 +++++++++++++-----
2 files changed, 121 insertions(+), 43 deletions(-)
diff --git a/www/pages/content/wareneingang_paketinhalt.tpl b/www/pages/content/wareneingang_paketinhalt.tpl
index a1dfe0ad..b20027e8 100644
--- a/www/pages/content/wareneingang_paketinhalt.tpl
+++ b/www/pages/content/wareneingang_paketinhalt.tpl
@@ -25,17 +25,17 @@
@@ -182,7 +196,7 @@
- {|Multifilter|}:
+ {|Multifilter|}:
|
diff --git a/www/pages/wareneingang.php b/www/pages/wareneingang.php
index 9d5abc19..d46c98f9 100644
--- a/www/pages/wareneingang.php
+++ b/www/pages/wareneingang.php
@@ -118,6 +118,35 @@ class Wareneingang {
$adresse = $this->app->DB->Select("SELECT adresse FROM paketannahme WHERE id='$id' LIMIT 1");
$wareneingangauftragzubestellung = $this->app->erp->Firmendaten('wareneingangauftragzubestellung');
+ // Toggle filters
+ $this->app->Tpl->Add('JQUERYREADY', "$('#ausfuellen').click( function() { fnFilterColumn1( 0 ); } );");
+
+ for ($r = 1;$r <= 1;$r++) {
+ $this->app->Tpl->Add('JAVASCRIPT', '
+ function fnFilterColumn' . $r . ' ( i )
+ {
+ if(oMoreData' . $r . $name . '==1)
+ oMoreData' . $r . $name . ' = 0;
+ else
+ oMoreData' . $r . $name . ' = 1;
+
+ $(\'#' . $name . '\').dataTable().fnFilter(
+ \'\',
+ i,
+ 0,0
+ );
+ }
+ ');
+ }
+
+ $more_data1 = $this->app->Secure->GetGET("more_data1");
+ if ($more_data1 == 1) {
+ $ausfuellen = 'trim(bp.menge - bp.geliefert)+0';
+ } else {
+ $ausfuellen = "''";
+ }
+ // END Toggle filters
+
$vorschlag = "
if(
bp.menge-bp.geliefert-COALESCE((SELECT TRIM(SUM(menge))+0 FROM paketdistribution WHERE vorlaeufig = 1 AND bestellung_position = bp.id),0) > 0,
@@ -126,6 +155,14 @@ class Wareneingang {
)
";
+ $artikel_link = array(
+ ' 'art.id'],
+ '\" tabindex=\"-1\">',
+ ['sql' => 'art.nummer'],
+ '',
+ );
+
$auswahl = array (
' 'bp.id'],
@@ -136,6 +173,7 @@ class Wareneingang {
$input_for_menge = array(
' $ausfuellen],
'\"',
' name=\"mengen[]\"',
' style=\"text-align:right; width:100%\">',
@@ -167,10 +205,11 @@ class Wareneingang {
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT('
Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
)", "if(bp.lieferdatum,DATE_FORMAT(bp.lieferdatum,'%d.%m.%Y'),'sofort')", 'p.abkuerzung', 'bp.menge', 'bp.geliefert', "if((SELECT COUNT(auf2.id) FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ) > 0,(SELECT auf2.belegnr FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ORDER BY belegnr LIMIT 1),'-' )");
} else */ {
- $heading = array('Lieferant-Art.-Nr.',
+ $heading = array(
'Art.-Nummer',
- 'Bestellung',
'Beschreibung',
+ 'Bestellung',
+ 'Lieferant-Art.-Nr.',
'Lieferdatum',
'Projekt',
'Menge',
@@ -181,8 +220,6 @@ class Wareneingang {
''
);
$width = array(
- '1%',
- '1%',
'1%',
'25%',
'1%',
@@ -191,13 +228,13 @@ class Wareneingang {
'1%',
'1%',
'1%',
+ '1%',
+ '1%',
'10%',
'1%'
);
$findcols = array(
- 'bp.bestellnummer',
'art.nummer',
- 'b.belegnr',
"CONCAT(
art.name_de,
'
Bei Lieferant: ',
@@ -238,11 +275,14 @@ class Wareneingang {
''
)
)",
+ 'b.belegnr',
+ 'bp.bestellnummer',
"if(
bp.lieferdatum,
bp.lieferdatum,
'sofort'
- )", 'p.abkuerzung',
+ )",
+ 'p.abkuerzung',
'bp.menge',
'bp.geliefert',
$this->app->erp->FormatMenge("bp.menge - bp.geliefert"),
@@ -354,10 +394,10 @@ class Wareneingang {
$sql = "
SELECT SQL_CALC_FOUND_ROWS
bp.id,
- ".$this->app->erp->ConcatSQL($auswahl).",
- CONCAT('',art.nummer,''),
- b.belegnr as `Bestellung`,
+ ".$this->app->erp->ConcatSQL($artikel_link).",
$colBeschreibung as beschreibung,
+ b.belegnr as `Bestellung`,
+ ".$this->app->erp->ConcatSQL($auswahl).",
if(bp.lieferdatum,DATE_FORMAT(bp.lieferdatum,'%d.%m.%Y'),'sofort') as lieferdatum,
p.abkuerzung as projekt,
".$this->app->erp->FormatMenge('bp.menge').",
@@ -458,6 +498,7 @@ class Wareneingang {
$where .= " AND (1=0";
foreach($multifilter_array as $keyword) {
$where .= " OR name_de LIKE '%".$keyword."%'";
+ $where .= " OR nummer LIKE '%".$keyword."%'";
}
$where .= ")";
}
@@ -1182,10 +1223,10 @@ class Wareneingang {
*/
- $heading = array('Lieferant-Art.-Nr.', 'Art.-Nummer', 'Bestellung', 'Beschreibung', 'Menge', 'Bemerkung','Bearbeiter', '','','');
- $width = array( '5%', '5%', '5%', '30%', '5%', '15%', '5%', '1%','1%','1%');
+ $heading = array('Pos.', 'Art.-Nummer', 'Beschreibung', 'Bestellung', 'Lieferant-Art.-Nr.', 'Menge','Standardlager', 'Bemerkung','Bearbeiter', '','','');
+ $width = array( '1%', '5%', '30%', '5%', '5%', '5%', '5%', '15%', '5%', '1%','1%','1%');
- $findcols = array('p.lieferantnummer','p.nummer', 'p.bestellbezug', 'p.name', 'p.menge', 'p.bemerkung','p.bearbeiter','p.nummer','p.nummer','p.nummer');
+ $findcols = array('p.pos', 'p.artikel', 'p.name', 'p.bestellbezug', 'p.lieferantnummer', 'p.menge', 'lagerplatz_bezeichnung', 'p.bemerkung','p.bearbeiter','p.vorlaeufig','p.vorlaeufig','p.vorlaeufig');
$searchsql = array('p.nummer', 'p.name', 'p.bemerkung');
$alignright = array('5');
@@ -1204,28 +1245,42 @@ class Wareneingang {
['sql' => 'paketannahme'],
'&posid=',
['sql' => 'paketdistribution.id'],
- "\">Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\">
"
+ "\">
Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"> "
);
+
+ $artikel_link = array(
+ '
'artikel.id'],
+ '\" tabindex=\"-1\">',
+ ['sql' => 'artikel.nummer'],
+ '',
+ );
+
$sql = "SELECT SQL_CALC_FOUND_ROWS
- p.nummer,
- p.lieferantnummer,
- p.nummer,
- p.bestellbezug,
+ p.pos,
+ p.pos,
+ p.artikel,
p.name,
+ p.bestellbezug,
+ p.lieferantnummer,
p.menge,
+ p.lagerplatz_bezeichnung,
p.bemerkung,
p.bearbeiter,
p.icon,
- p.menu
+ p.menu,
+ p.vorlaeufig
FROM
(
SELECT
+ paketdistribution.id as pos,
bestellung.belegnr as bestellbezug,
bestellung_position.bestellnummer as lieferantnummer,
- artikel.nummer as nummer,
+ ".$this->app->erp->ConcatSQL($artikel_link)." as artikel,
artikel.name_de as name,
" . $this->app->erp->FormatMenge("paketdistribution.menge") . " as menge,
+ if (paketdistribution.vorlaeufig,lager_platz.kurzbezeichnung,'') AS lagerplatz_bezeichnung,
paketdistribution.bemerkung,
paketdistribution.bearbeiter,
CONCAT(
@@ -1254,9 +1309,11 @@ class Wareneingang {
''
)
AS icon,
- if (paketdistribution.vorlaeufig,".$this->app->erp->ConcatSQL($deletelink).",'') as menu
+ if (paketdistribution.vorlaeufig,".$this->app->erp->ConcatSQL($deletelink).",'') as menu,
+ paketdistribution.vorlaeufig
FROM paketdistribution
LEFT JOIN artikel ON artikel.id = paketdistribution.artikel
+ LEFT JOIN lager_platz ON lager_platz.id = artikel.lager_platz
LEFT JOIN bestellung_position ON bestellung_position = bestellung_position.id
LEFT JOIN bestellung on bestellung_position.bestellung = bestellung.id
WHERE paketannahme = $id
@@ -1953,6 +2010,8 @@ class Wareneingang {
$bemerkung = str_replace(array('\r\n', '\r', '\n'), "\n", $bemerkung);
+ $this->app->User->SetParameter('table_wareneingang_lieferant_ausfuellen', '');
+
// Load from DB
if (($lsnr == '' && $renr == '' && $bemerkung == '') && $id != '') {
$fields = $this->app->DB->SelectArr(
@@ -1967,13 +2026,14 @@ class Wareneingang {
} else {
// Save header
- $this->app->DB->Update(
- "UPDATE paketannahme SET
- lsnr='" . $lsnr . "',
- renr='" . $renr . "',
- bemerkung='" . $bemerkung . "'
- WHERE id='$id' LIMIT 1");
-
+ $sql = "
+ UPDATE paketannahme SET
+ lsnr='" . $lsnr . "',
+ renr='" . $renr . "',
+ bemerkung='" . $bemerkung . "'
+ WHERE id='$id' LIMIT 1
+ ";
+ $this->app->DB->Update($sql);
$bemerkung = stripslashes($bemerkung);
}
@@ -2444,16 +2504,7 @@ class Wareneingang {
$datum = $paketannahme['datum'];
$datum_abgeschlossen = $paketannahme['datum_abgeschlossen'];
$bearbeiter_abgeschlossen = $paketannahme['bearbeiter_abgeschlossen'];
-
- $sql = "SELECT id FROM paketdistribution WHERE paketannahme = ".$id." AND vorlaeufig = 1";
- $vorlaeufige = $this->app->DB->SelectArr($sql);
- if (!empty($vorlaeufige)) {
- $this->app->YUI->Message('warning','Nicht eingebuchte Positionen vorhanden');
- $this->app->Tpl->Set('ABSCHLIESSENHIDDEN','hidden');
- } else {
- $this->app->Tpl->Set('BUCHENHIDDEN','hidden');
- }
-
+
$addressRow = empty($adresse) ? null : $this->app->DB->SelectRow(
sprintf(
'SELECT `name`,`kundennummer`,`lieferantennummer`
@@ -2549,8 +2600,21 @@ class Wareneingang {
$this->app->Tpl->Set('ABGESCHLOSSENHIDDEN','hidden');
}
} else {
- $this->app->Tpl->Set('ABGESCHLOSSENHIDDEN','hidden');
+ $this->app->Tpl->Set('ABGESCHLOSSENHIDDEN','hidden');
}
+
+ $sql = "SELECT id FROM paketdistribution WHERE paketannahme = ".$id." AND vorlaeufig = 1";
+ $vorlaeufige = $this->app->DB->SelectArr($sql);
+ if (!empty($vorlaeufige)) {
+ $this->app->YUI->Message('warning','Nicht eingebuchte Positionen vorhanden');
+ $this->app->Tpl->Set('ABSCHLIESSENHIDDEN','hidden');
+ } else {
+ $this->app->Tpl->Set('BUCHENHIDDEN','hidden');
+ if ($status != 'abgeschlossen') {
+ $this->app->YUI->Message('warning','Wareneingang noch nicht abgeschlossen');
+ }
+ }
+
$this->app->Tpl->Parse('PAGE', 'wareneingang_paketinhalt.tpl');