From 078d00517ba03d855ce884e7da3603b2113295cc Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Thu, 27 Aug 2020 11:10:55 +0200 Subject: [PATCH] Introduzione modulo Giacenze sedi Introduzione modulo Giacenze sedi per controllare le giacenze delle sedi dell'anagrafica Azienda. Co-authored-by: CJBeppe --- ajax_dataload.php | 3 ++- modules/giacenze_sedi/controller_before.php | 24 ++++++++++++++++++ modules/giacenze_sedi/init.php | 8 ++++++ src/Util/Query.php | 3 +++ update/2_4_18.sql | 27 +++++++++++++++++++++ update/2_4_6.sql | 2 +- 6 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 modules/giacenze_sedi/controller_before.php create mode 100644 modules/giacenze_sedi/init.php diff --git a/ajax_dataload.php b/ajax_dataload.php index a2a3a6b52..2e6d0ddb5 100755 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -139,8 +139,9 @@ if (!empty($query)) { if ($field != '_print_') { $id_record = $r['id']; $hash = ''; + + $id_module = $r['_link_module_'] ?: $id_module; if (!empty($r['_link_record_'])) { - $id_module = $r['_link_module_']; $id_record = $r['_link_record_']; $hash = !empty($r['_link_hash_']) ? '#'.$r['_link_hash_'] : ''; unset($id_plugin); diff --git a/modules/giacenze_sedi/controller_before.php b/modules/giacenze_sedi/controller_before.php new file mode 100644 index 000000000..8f1076d8f --- /dev/null +++ b/modules/giacenze_sedi/controller_before.php @@ -0,0 +1,24 @@ + +
+ {["type":"select", "label":"'.tr('Sede').'", "name": "id_sede", "ajax-source": "sedi_azienda", "value":"'.$id_sede.'" ]} +
+ + +'; diff --git a/modules/giacenze_sedi/init.php b/modules/giacenze_sedi/init.php new file mode 100644 index 000000000..b7fdadd15 --- /dev/null +++ b/modules/giacenze_sedi/init.php @@ -0,0 +1,8 @@ + !empty($segment) ? ' AND '.$segment_name.' = '.prepare($segment) : '', + + // Filtro dinamico per il modulo Giacenze sedi + '|giacenze_sedi_idsede|' => prepare($_SESSION['giacenze_sedi']['idsede']), ]; // Sostituzione dei formati diff --git a/update/2_4_18.sql b/update/2_4_18.sql index cc8b5bcb7..57795fbcf 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -38,3 +38,30 @@ CREATE TABLE IF NOT EXISTS `mg_prezzi_articoli` ( ) ENGINE=InnoDB; UPDATE `zz_plugins` SET `directory` = 'dettagli_articolo', `name`= 'Dettagli articolo', `title`= 'Dettagli' WHERE `name` = 'Fornitori Articolo'; + +-- Modulo Giacenze sedi +INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES (NULL, 'Giacenze sedi', 'Giacenze sedi', 'giacenze_sedi', 'SELECT |select| FROM `mg_articoli` + LEFT OUTER JOIN an_anagrafiche ON mg_articoli.id_fornitore = an_anagrafiche.idanagrafica + LEFT OUTER JOIN co_iva ON mg_articoli.idiva_vendita = co_iva.id + LEFT OUTER JOIN ( + SELECT SUM(qta - qta_evasa) AS qta_impegnata, idarticolo FROM or_righe_ordini + INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id + WHERE idstatoordine IN (SELECT id FROM or_statiordine WHERE completato = 0) + GROUP BY idarticolo + ) ordini ON ordini.idarticolo = mg_articoli.id +WHERE 1=1 AND `mg_articoli`.`deleted_at` IS NULL HAVING 2=2 AND `Q.tà` > 0 ORDER BY `descrizione`', '', 'fa fa-angle-right', '2.4.18', '2.4.18', '5', (SELECT id FROM zz_modules t WHERE t.name = 'Magazzino'), '1', '1', '1', '0'); + +INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), '_link_module_', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), '1', '1', '0', '0', NULL, NULL, '0', '0', '1'), +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'id', 'mg_articoli.id', '1', '1', '0', '0', NULL, NULL, '0', '0', '1'), +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'id', 'mg_articoli.id', '1', '1', '0', '0', NULL, NULL, '0', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Codice', 'mg_articoli.codice', '2', '1', '0', '0', NULL, NULL, '1', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Categoria', '(SELECT `nome` FROM `mg_categorie` WHERE `id` = `id_categoria`)', '4', '1', '0', '0', NULL, NULL, '1', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Sottocategoria', '(SELECT `nome` FROM `mg_categorie` WHERE `id` = `id_sottocategoria`)', '5', '1', '0', '0', NULL, NULL, '1', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Q.tà', '(SELECT SUM(IF(mg_movimenti.idsede_azienda = |giacenze_sedi_idsede|, mg_movimenti.qta, IF(mg_movimenti.idsede_controparte = |giacenze_sedi_idsede|, -mg_movimenti.qta, 0))) FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_azienda WHERE mg_movimenti.idarticolo=mg_articoli.id)', '9', '1', '0', '0', NULL, NULL, '1', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Descrizione', 'mg_articoli.descrizione', '1', '1', '0', '0', '', '', '1', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Fornitore', '(SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica` = `id_fornitore`)', '6', '1', '0', '0', NULL, NULL, '1', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Prezzo di acquisto', 'prezzo_acquisto', '6', '1', '0', '1', NULL, NULL, '1', '1', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Prezzo di vendita', 'prezzo_vendita', '6', '1', '0', '1', NULL, NULL, '1', '1', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Prezzo vendita ivato', 'IF( co_iva.percentuale IS NOT NULL, (mg_articoli.prezzo_vendita + mg_articoli.prezzo_vendita * co_iva.percentuale / 100), mg_articoli.prezzo_vendita + mg_articoli.prezzo_vendita*(SELECT co_iva.percentuale FROM co_iva INNER JOIN zz_settings ON co_iva.id=zz_settings.valore AND nome=\'Iva predefinita\')/100 )', '8', '1', '0', '1', '', '', '0', '0', '1'), + (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Giacenze sedi'), 'Barcode', 'mg_articoli.barcode', '2', '1', '0', '0', '', '', '1', '0', '1'); diff --git a/update/2_4_6.sql b/update/2_4_6.sql index 00157d21a..263caf3a8 100755 --- a/update/2_4_6.sql +++ b/update/2_4_6.sql @@ -22,7 +22,7 @@ UPDATE `zz_settings` SET `nome` = 'Percentuale rivalsa', `tipo` = 'query=SELECT UPDATE `zz_settings` SET `tipo` = 'query=SELECT ''IMP'' AS id, ''Imponibile'' AS descrizione UNION SELECT ''IMP+RIV'' AS id, ''Imponibile + rivalsa'' AS descrizione' WHERE `zz_settings`.`nome` = 'Metodologia calcolo ritenuta d\'acconto predefinito'; -- Aggiunto modulo per gestire le rivalse -INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Rivalse', 'Rivalse', 'rivalse', 'SELECT |select| FROM `co_rivalse` WHERE 1=1 HAVING 2=2', '', 'fa fa-percent', '2.4.6', '2.4.6', '1', (SELECT id FROM zz_modules t WHERE t.name = 'Tabelle' ), '1', '1'); +INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Rivalse', 'Rivalse', 'rivalse', 'SELECT |select| FROM `co_rivalse` WHERE 1=1 HAVING 2=2', '', 'fa fa-percent', '2.4.6', '2.4.6', '1', (SELECT id FROM zz_modules t WHERE t.name = 'Tabelle'), '1', '1'); -- Colonne per modulo 'Rivalse' INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default` ) VALUES