From ee12d9097a1d3e93c78ef98cddfe340f78e70886 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Sun, 28 Jul 2024 13:42:28 +0200
Subject: [PATCH] seriennummern rework list view
---
www/pages/content/seriennummern_list.tpl | 8 +-
.../content/seriennummern_nummern_list.tpl | 99 ++++++++++++
www/pages/seriennummern.php | 144 +++++++++++++++---
www/themes/new/images/lupe.svg | 36 +++++
4 files changed, 261 insertions(+), 26 deletions(-)
create mode 100644 www/pages/content/seriennummern_nummern_list.tpl
create mode 100644 www/themes/new/images/lupe.svg
diff --git a/www/pages/content/seriennummern_list.tpl b/www/pages/content/seriennummern_list.tpl
index b5bec045..6a788521 100644
--- a/www/pages/content/seriennummern_list.tpl
+++ b/www/pages/content/seriennummern_list.tpl
@@ -1,16 +1,10 @@
[MESSAGE]
[TAB1]
[TAB1NEXT]
-
- [MESSAGE]
- [TAB2]
- [TAB2NEXT]
-
diff --git a/www/pages/content/seriennummern_nummern_list.tpl b/www/pages/content/seriennummern_nummern_list.tpl
new file mode 100644
index 00000000..f083f7e8
--- /dev/null
+++ b/www/pages/content/seriennummern_nummern_list.tpl
@@ -0,0 +1,99 @@
+
diff --git a/www/pages/seriennummern.php b/www/pages/seriennummern.php
index acd19138..a9d97451 100644
--- a/www/pages/seriennummern.php
+++ b/www/pages/seriennummern.php
@@ -16,7 +16,8 @@ class Seriennummern {
return;
$this->app->ActionHandlerInit($this);
- $this->app->ActionHandler("list", "seriennummern_list");
+ $this->app->ActionHandler("list", "seriennummern_artikel_list");
+ $this->app->ActionHandler("nummern_list", "seriennummern_nummern_list");
$this->app->ActionHandler("enter", "seriennummern_enter");
$this->app->ActionHandler("delete", "seriennummern_delete");
$this->app->DefaultActionHandler("list");
@@ -31,14 +32,14 @@ class Seriennummern {
switch ($name) {
case "seriennummern_list":
$allowed['seriennummern_list'] = array('list');
- $heading = array('','','Nummer','Artikel', 'Seriennummer','Erzeugt am','Adresse','Lieferschein','Lieferdatum', 'Menü');
+ $heading = array('','','Nummer','Artikel', 'Seriennummer','Erfasst am','Adresse','Lieferschein','Lieferdatum', 'Menü');
$width = array('1%','1%','10%'); // Fill out manually later
// columns that are aligned right (numbers etc)
// $alignright = array(4,5,6,7,8);
- $findcols = array('s.id','s.id', 'a.name_de', 'a.nummer', 's.seriennummer','s.logdatei','ad.name','l.belegnr','l.datum','s.id');
- $searchsql = array('a.name_de', 'a.name_de', 'a.nummer', 's.seriennummer');
+ $findcols = array('s.id','s.id', 'a.nummer', 'a.name_de', 's.seriennummer','s.logdatei','ad.name','l.belegnr','l.datum','s.id');
+ $searchsql = array('a.nummer', 'a.name_de', 's.seriennummer');
$defaultorder = 1;
$defaultorderdesc = 0;
@@ -79,8 +80,45 @@ class Seriennummern {
adresse ad ON ad.id = l.adresse
";
- $where = "1";
- $count = "SELECT count(DISTINCT id) FROM seriennummern WHERE $where";
+ $artikel_id = $app->User->GetParameter('seriennummern_artikel_id');
+
+ $where = "(a.id = '".$artikel_id."' OR '".$artikel_id."' = '')";
+
+ // Toggle filters
+ $app->Tpl->Add('JQUERYREADY', "$('#verfuegbar').click( function() { fnFilterColumn1( 0 ); } );");
+ $app->Tpl->Add('JQUERYREADY', "$('#versendet').click( function() { fnFilterColumn2( 0 ); } );");
+
+ for ($r = 1;$r <= 2;$r++) {
+ $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 = $app->Secure->GetGET("more_data1");
+ if ($more_data1 == 1) {
+ $where .= " AND s.lieferscheinpos = 0";
+ } else {
+ }
+
+ $more_data2 = $app->Secure->GetGET("more_data2");
+ if ($more_data2 == 1) {
+ $where .= " AND s.lieferscheinpos <> 0";
+ } else {
+ }
+
+ $count = "SELECT count(DISTINCT s.id) FROM seriennummern s LEFT JOIN artikel a on a.id = s.artikel WHERE $where";
// $groupby = "";
break;
@@ -114,6 +152,11 @@ class Seriennummern {
['sql' => 'a.id'],
'">',
'
',
+ '',
+ '',
+ '
',
''
);
@@ -229,31 +272,94 @@ class Seriennummern {
return $erg;
}
- function seriennummern_list() {
+ function seriennummern_menu() {
$this->app->erp->MenuEintrag("index.php?module=seriennummern&action=list", "Übersicht");
-
- $this->app->erp->MenuEintrag("index.php", "Zurück");
-
- $this->app->YUI->TableSearch('TAB1', 'seriennummern_artikel_list', "show", "", "", basename(__FILE__), __CLASS__);
- $this->app->YUI->TableSearch('TAB2', 'seriennummern_list', "show", "", "", basename(__FILE__), __CLASS__);
-
- $check_seriennummern = $this->seriennummern_check_serials();
+ $this->app->erp->MenuEintrag("index.php?module=seriennummern&action=nummern_list", "Seriennummern");
+ // $this->app->erp->MenuEintrag("index.php", "Zurück");
+ }
+
+ function seriennummern_check_and_message($artikel_id) {
+ $check_seriennummern = $this->seriennummern_check_serials($artikel_id);
if (!empty($check_seriennummern)) {
- $artikel_id_links = array();
+ $artikel_minus_id_links = array();
+ $artikel_plus_id_links = array();
foreach ($check_seriennummern as $artikel_id) {
if ($artikel_id['menge_nummern'] < $artikel_id['menge_auf_lager']) {
- $artikel_id_links[] = ''.$artikel_id['nummer'].'';
+ $artikel_minus_id_links[] = ''.$artikel_id['nummer'].'';
+ }
+ else if ($artikel_id['menge_nummern'] > $artikel_id['menge_auf_lager']) {
+ $artikel_plus_id_links[] = ''.$artikel_id['nummer'].'';
}
}
- if (!empty($artikel_id_links)) {
- $this->app->YUI->Message('warning','Seriennummern fehlen für Artikel: '.implode(', ',$artikel_id_links));
+ if (!empty($artikel_minus_id_links)) {
+ $this->app->YUI->Message('warning','Seriennummern fehlen für Artikel: '.implode(', ',$artikel_minus_id_links));
}
- }
+ if (!empty($artikel_plus_id_links)) {
+ $this->app->YUI->Message('warning','Seriennummern Überschuss für Artikel: '.implode(', ',$artikel_plus_id_links));
+ }
+ }
+ }
+
+ function seriennummern_nummern_list() {
+
+ $this->seriennummern_menu();
+ // For transfer to tablesearch
+ $artikel_id = $this->app->Secure->GetGET('artikel');
+ $this->app->User->SetParameter('seriennummern_artikel_id', $artikel_id);
+
+ if (empty($artikel_id)) {
+ $this->app->Tpl->Set('ARTIKEL_HIDDEN', "hidden");
+ } else {
+ $artikel = $this->app->DB->SelectRow("SELECT name_de, nummer FROM artikel WHERE id ='".$artikel_id."'");
+
+ $check_seriennummern = $this->seriennummern_check_serials($artikel_id);
+ $check_seriennummern = $check_seriennummern[0];
+
+ $this->app->Tpl->SetText('KURZUEBERSCHRIFT1','Anzeigen');
+ $this->app->Tpl->SetText('KURZUEBERSCHRIFT2',$artikel['name_de']." (Artikel ".$artikel['nummer'].")");
+
+ $anzahl_fehlt = $check_seriennummern['menge_auf_lager']-$check_seriennummern['menge_nummern'];
+
+ if ($anzahl_fehlt == 0) {
+ $this->app->Tpl->addMessage('success', 'Seriennummern vollständig.');
+ }
+
+ if ($anzahl_fehlt < 0) {
+ $anzahl_fehlt = 0;
+ }
+
+ $letzte_seriennummer = (string) $this->app->DB->Select("SELECT seriennummer FROM seriennummern WHERE artikel = '".$artikel_id."' ORDER BY id DESC LIMIT 1");
+ $this->app->Tpl->Set('LETZTE', $letzte_seriennummer);
+
+ $this->app->Tpl->Set('ANZAHL', $anzahl_fehlt);
+ $this->app->Tpl->Set('ARTIKEL_ID', $artikel_id);
+
+ $this->app->Tpl->Set('ARTIKELNUMMER', ''.$check_seriennummern['nummer'].'');
+ $this->app->Tpl->Set('ARTIKEL', $check_seriennummern['name']);
+ $this->app->Tpl->Set('ANZLAGER', $check_seriennummern['menge_auf_lager']);
+ $this->app->Tpl->Set('ANZVORHANDEN', $check_seriennummern['menge_nummern']);
+ $this->app->Tpl->Set('ANZFEHLT', $anzahl_fehlt);
+ }
+
+ $this->seriennummern_check_and_message($artikel_id);
+
+ $this->app->YUI->TableSearch('TAB1', 'seriennummern_list', "show", "", "", basename(__FILE__), __CLASS__);
+
+ $this->app->Tpl->Parse('PAGE', "seriennummern_nummern_list.tpl");
+ }
+
+ function seriennummern_artikel_list() {
+ $this->seriennummern_menu();
+ $this->seriennummern_check_and_message(null);
+
+ $this->app->YUI->TableSearch('TAB1', 'seriennummern_artikel_list', "show", "", "", basename(__FILE__), __CLASS__);
+
$this->app->Tpl->Parse('PAGE', "seriennummern_list.tpl");
}
+
public function seriennummern_delete() {
$id = (int) $this->app->Secure->GetGET('id');
diff --git a/www/themes/new/images/lupe.svg b/www/themes/new/images/lupe.svg
new file mode 100644
index 00000000..ef5adf6b
--- /dev/null
+++ b/www/themes/new/images/lupe.svg
@@ -0,0 +1,36 @@
+
+