From 8995c5d89205b66556f8dfce7c12f72d7858d25c Mon Sep 17 00:00:00 2001 From: Solace Date: Mon, 13 Nov 2017 02:43:14 -0800 Subject: [PATCH 01/14] Update print.css ul.nav is overqualified - simply nav is more scope-appropriate. --- assets/src/css/print/print.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/src/css/print/print.css b/assets/src/css/print/print.css index 06f4d4410..45414fd7a 100644 --- a/assets/src/css/print/print.css +++ b/assets/src/css/print/print.css @@ -26,7 +26,7 @@ th { text-align: left; padding: 4px; } -ul.nav { +nav { float: left; } ul { From 956bde1d888dd6f9869dfe5f712d64fc221eca39 Mon Sep 17 00:00:00 2001 From: Solace Date: Mon, 13 Nov 2017 02:46:43 -0800 Subject: [PATCH 02/14] Update style.css 0 value should have no unit. --- assets/src/css/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 4281e6ebc..d2c8a2f13 100644 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -67,7 +67,7 @@ a.disabled { } #right-menu .fa-info { - padding: 0px 5px + padding: 0 5px } .ui-menu { From 65afd85d08e47afc3ee189b388ecf4cdfad00899 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 14 Nov 2017 15:52:27 +0100 Subject: [PATCH 03/14] bugfix - Aggiornamenti corretta disattivazione/attivazione + messaggi - Spostati tutti i widgets della Dashboard in alto --- modules/aggiornamenti/actions.php | 16 ++++++++-------- modules/aggiornamenti/edit.php | 20 ++++++++++---------- update/2_3.sql | 3 +++ 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/modules/aggiornamenti/actions.php b/modules/aggiornamenti/actions.php index 59e61d3fa..779301e9e 100644 --- a/modules/aggiornamenti/actions.php +++ b/modules/aggiornamenti/actions.php @@ -58,50 +58,50 @@ switch (post('op')) { break; case 'disable_widget': - if (Modules::getPermission($module_name) == 'rw') { + //if (Modules::getPermission($module_name) == 'rw') { $dbo->query('UPDATE zz_widgets SET enabled=0 WHERE id='.prepare($id)); $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id)); $widget = $rs[0]['name']; $_SESSION['infos'][] = tr('Widget _WIDGET_ disabilitato!', [ '_WIDGET_' => '"'.$widget.'"', ]); - } + //} break; case 'enable_widget': - if (Modules::getPermission($module_name) == 'rw') { + //if (Modules::getPermission($module_name) == 'rw') { $dbo->query('UPDATE zz_widgets SET enabled=1 WHERE id='.prepare($id)); $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id)); $widget = $rs[0]['name']; $_SESSION['infos'][] = tr('Widget _WIDGET_ abilitato!', [ '_WIDGET_' => '"'.$widget.'"', ]); - } + //} break; case 'change_position_widget_top': - if (Modules::getPermission($module_name) == 'rw') { + //if (Modules::getPermission($module_name) == 'rw') { $dbo->query("UPDATE zz_widgets SET location='controller_top' WHERE id=".prepare($id)); $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id)); $widget = $rs[0]['name']; $_SESSION['infos'][] = tr('Posizione del widget _WIDGET_ aggiornata!', [ '_WIDGET_' => '"'.$widget.'"', ]); - } + //} break; case 'change_position_widget_right': - if (Modules::getPermission($module_name) == 'rw') { + //if (Modules::getPermission($module_name) == 'rw') { $dbo->query("UPDATE zz_widgets SET location='controller_right' WHERE id=".prepare($id)); $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id)); $widget = $rs[0]['name']; $_SESSION['infos'][] = tr('Posizione del widget _WIDGET_ aggiornata!', [ '_WIDGET_' => '"'.$widget.'"', ]); - } + //} break; diff --git a/modules/aggiornamenti/edit.php b/modules/aggiornamenti/edit.php index 59cebe853..8c84d6046 100644 --- a/modules/aggiornamenti/edit.php +++ b/modules/aggiornamenti/edit.php @@ -118,9 +118,9 @@ foreach ($modules as $module) { // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti if ($module['id'] != $id_module) { if ($module['enabled']) { - $stato = "".$stato."\n"; + $stato = "".$stato."\n"; } else { - $stato = "".$stato."\n"; + $stato = "".$stato."\n"; } } @@ -153,7 +153,7 @@ foreach ($modules as $module) { // Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti if (empty($module['default'])) { echo " - "; + "; } else { echo " @@ -181,9 +181,9 @@ foreach ($modules as $module) { // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti if ($sub['id'] != $id_module) { if ($sub['enabled']) { - $stato = "".$stato."\n"; + $stato = "".$stato."\n"; } else { - $stato = "".$stato."\n"; + $stato = "".$stato."\n"; } } @@ -217,7 +217,7 @@ foreach ($modules as $module) { // Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti if (empty($sub['default'])) { echo " - + "; } else { @@ -273,9 +273,9 @@ foreach ($widgets as $widget) { // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti if ($widget['enabled']) { - $stato = "".$stato."\n"; + $stato = "".$stato."\n"; } else { - $stato = "".$stato."\n"; + $stato = "".$stato."\n"; } // POSIZIONE @@ -287,10 +287,10 @@ foreach ($widgets as $widget) { if ($widget['location'] == 'controller_right') { $posizione = " "; - $posizione = "".$posizione."\n"; + $posizione = "".$posizione."\n"; } elseif ($widget['location'] == 'controller_top') { $posizione = " '; - $posizione = "".$posizione."\n"; + $posizione = "".$posizione."\n"; } echo ' diff --git a/update/2_3.sql b/update/2_3.sql index 5eb9495f5..5f48a92a2 100644 --- a/update/2_3.sql +++ b/update/2_3.sql @@ -975,3 +975,6 @@ UPDATE `mg_listini` SET `prc_guadagno` = - `prc_guadagno`; -- Aggiunta pagamento di default "Bonifico bancario" INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `idconto_vendite`, `idconto_acquisti`) VALUES (NULL, 'Bonifico bancario', '0', '10', '100', CURRENT_TIMESTAMP, NULL, NULL); + +-- Per la Dashboard i widgets vanno in alto +UPDATE `zz_widgets` SET `location` = 'controller_top' WHERE `zz_widgets`.`id_module` = 1; From 531de41002eb1c081fe582faaf74498a4e5ee9b4 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 14 Nov 2017 17:42:09 +0100 Subject: [PATCH 04/14] per i mobile, i widget su controller_top vanno sotto --- controller.php | 17 +++++++++++++++-- lib/functions.php | 9 +++++++++ src/Widgets.php | 12 ++++++++++-- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/controller.php b/controller.php index 1d9855f74..0d3adde8a 100644 --- a/controller.php +++ b/controller.php @@ -22,7 +22,11 @@ include $docroot.'/actions.php'; /* * Widget top */ -echo Widgets::addModuleWidgets($id_module, 'controller_top'); + + //se non sono mobile nascondo i widget controller_top +if (!isMobile()){ + echo Widgets::addModuleWidgets($id_module, 'controller_top'); +} // Lettura eventuali plugins modulo da inserire come tab echo ' @@ -87,7 +91,16 @@ redirectOperation($id_module, $id_record); * Widget laterali. */ // Controllo se ho widget per il lato destro dello schermo, altrimenti non creo la colonna di destra -$result_widgets = $dbo->fetchArray('SELECT `id`, `location`, `class` FROM `zz_widgets` WHERE `id_module`='.prepare($id_module)." AND `location`='controller_right' AND `enabled`=1 ORDER BY `order` ASC"); + +//se sono mobile pesco anche i widget di controller_top +if (isMobile()){ + $extra_where = " OR location = 'controller_top'"; +}else{ + $extra_where = ""; +} + + +$result_widgets = $dbo->fetchArray('SELECT `id`, `location`, `class` FROM `zz_widgets` WHERE `id_module`='.prepare($id_module)." AND (`location`='controller_right' ".$extra_where." ) AND `enabled`=1 ORDER BY `order` ASC"); if (count($result_widgets) > 0) { echo '
'; diff --git a/lib/functions.php b/lib/functions.php index 3e965acf3..a2a3c55ec 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -869,3 +869,12 @@ function getConfig() return get_defined_vars(); } + +/** + * Restituisce se l'user-agent (browser web) è una versione mobile + * + * @return bool + */ +function isMobile() { + return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); +} diff --git a/src/Widgets.php b/src/Widgets.php index d946f8d92..a916dec82 100644 --- a/src/Widgets.php +++ b/src/Widgets.php @@ -20,9 +20,17 @@ class Widgets { if (empty(self::$widgets[$id_module][$location])) { $dbo = Database::getConnection(); - + + //se sono mobile mostro su controller_right anche quello che è su controller_top + if ((isMobile())and($location=='controller_right')){ + $extra_where = " OR location = 'controller_top' "; + }else{ + $extra_where = ""; + } + + // ottengo da db gli id dei widget associati al modulo - $results = $dbo->fetchArray('SELECT id, location, class FROM zz_widgets WHERE id_module='.prepare($id_module).' AND location='.prepare($location).' AND enabled=1 ORDER BY `order` ASC'); + $results = $dbo->fetchArray('SELECT id, location, class FROM zz_widgets WHERE id_module='.prepare($id_module).' AND ( location='.prepare($location).' '.$extra_where.' ) AND enabled=1 ORDER BY `order` ASC'); $result = ''; From 181e18d2fcec72f4128f00b971ffd6c30f7d3e8b Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 14 Nov 2017 19:14:41 +0100 Subject: [PATCH 05/14] Bugfix - corretto dataload per ricarca campi icon_ - corretto campo select vettori in fatture --- ajax_dataload.php | 8 +++++++- modules/fatture/edit.php | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ajax_dataload.php b/ajax_dataload.php index c19837b3f..c694f7381 100644 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -52,6 +52,12 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom $search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]); } } else { + + //per le icone cerco per il campo icon_title + if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) { + $total['search_inside'][$i] = "icon_title_".$m[1]; + } + $search_filters[] = '`'.$total['search_inside'][$i].'` LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%')); } } @@ -177,7 +183,7 @@ if (!empty($module_query) && $module_query != 'menu' && $module_query != 'custom // Icona elseif (preg_match('/^icon_(.+?)$/', trim($field), $m)) { - $value = ' '.$r['icon_title_'.$m[1]].''; + $value = ' '.$r['icon_title_'.$m[1]].''; } // Colore del testo diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 17dadff9e..41374d7e7 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -154,7 +154,7 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
- {[ "type": "select", "label": "", "name": "idvettore", "values": "query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Vettore') ORDER BY descrizione ASC", "value": "$idvettore$"" ]} + {[ "type": "select", "label": "", "name": "idvettore", "values": "query=SELECT DISTINCT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE an_tipianagrafiche_anagrafiche.idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Vettore') ORDER BY descrizione ASC", "value": "$idvettore$" ]}
From 82a11b30a33550fd2a86f4d02880c079c3d20123 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 14 Nov 2017 19:39:24 +0100 Subject: [PATCH 06/14] Viste: testa la query senza che si salvi l'errore nella session errors --- modules/viste/edit.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/viste/edit.php b/modules/viste/edit.php index 3937652af..1ebe0dca2 100644 --- a/modules/viste/edit.php +++ b/modules/viste/edit.php @@ -10,10 +10,10 @@ echo ' -
+
@@ -68,6 +68,7 @@ if ($options != '' && $options != 'menu' && $options != 'custom') {
+
@@ -94,12 +95,12 @@ if (!empty($options) && $options != 'custom') {
-
+
'; @@ -340,12 +341,12 @@ if (!empty($options) && $options != 'custom') {
-
+
'; @@ -471,6 +472,7 @@ function testQuery(){ $("#main_loading").fadeOut(); swal("'.tr('Errore').'", "'.tr('Errore durante il test della query!').'", "error"); + session_set ("errors,0", 0, 1); } }) } From 555d936ac498dc06fb1a80beb649f8d8a00d61f0 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 15 Nov 2017 15:26:54 +0100 Subject: [PATCH 07/14] Risoluzione di alcuni bug JS --- assets/src/js/custom.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/src/js/custom.js b/assets/src/js/custom.js index 07f31fb2f..1c5d32ade 100644 --- a/assets/src/js/custom.js +++ b/assets/src/js/custom.js @@ -35,7 +35,7 @@ $(document).ready(function () { }); } //if this isn't a link, prevent the page from being redirected - if (checkElement.is('.treeview-menu') && $(event.target).is('.pull-right-container')) { + if (checkElement.is('.treeview-menu') && $(e.target).is('.pull-right-container')) { e.preventDefault(); } }); diff --git a/package.json b/package.json index 9efc8814f..ea591fc85 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "moment": "^2.18.1", "numeral": "^2.0.6", "parsleyjs": "^2.7.2", - "select2": "^4.0.3", + "select2": "4.0.3", "select2-bootstrap-theme": "^0.1.0-beta.10", "signature_pad": "^2.1.1", "smartwizard": "^4.2.2", From 6ff6dbf314e6f4d4bb3bb34cf78b62e1dc17e41f Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 15 Nov 2017 18:13:04 +0100 Subject: [PATCH 08/14] Revert "Merge branch 'master' of https://github.com/devcode-it/openstamanager" This reverts commit db4b1969c734616caf3533ecb7c4843593592df5, reversing changes made to 82a11b30a33550fd2a86f4d02880c079c3d20123. --- assets/src/js/custom.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/src/js/custom.js b/assets/src/js/custom.js index 1c5d32ade..07f31fb2f 100644 --- a/assets/src/js/custom.js +++ b/assets/src/js/custom.js @@ -35,7 +35,7 @@ $(document).ready(function () { }); } //if this isn't a link, prevent the page from being redirected - if (checkElement.is('.treeview-menu') && $(e.target).is('.pull-right-container')) { + if (checkElement.is('.treeview-menu') && $(event.target).is('.pull-right-container')) { e.preventDefault(); } }); diff --git a/package.json b/package.json index ea591fc85..9efc8814f 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "moment": "^2.18.1", "numeral": "^2.0.6", "parsleyjs": "^2.7.2", - "select2": "4.0.3", + "select2": "^4.0.3", "select2-bootstrap-theme": "^0.1.0-beta.10", "signature_pad": "^2.1.1", "smartwizard": "^4.2.2", From f07a9a77c8e5f8e58812d209d58f0919e6e17dc0 Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 15 Nov 2017 18:13:18 +0100 Subject: [PATCH 09/14] Revert "Revert "Merge branch 'master' of https://github.com/devcode-it/openstamanager"" This reverts commit 6ff6dbf314e6f4d4bb3bb34cf78b62e1dc17e41f. --- assets/src/js/custom.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/src/js/custom.js b/assets/src/js/custom.js index 07f31fb2f..1c5d32ade 100644 --- a/assets/src/js/custom.js +++ b/assets/src/js/custom.js @@ -35,7 +35,7 @@ $(document).ready(function () { }); } //if this isn't a link, prevent the page from being redirected - if (checkElement.is('.treeview-menu') && $(event.target).is('.pull-right-container')) { + if (checkElement.is('.treeview-menu') && $(e.target).is('.pull-right-container')) { e.preventDefault(); } }); diff --git a/package.json b/package.json index 9efc8814f..ea591fc85 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "moment": "^2.18.1", "numeral": "^2.0.6", "parsleyjs": "^2.7.2", - "select2": "^4.0.3", + "select2": "4.0.3", "select2-bootstrap-theme": "^0.1.0-beta.10", "signature_pad": "^2.1.1", "smartwizard": "^4.2.2", From 555344064ca14061cfb7766ca8a8ee906e3b127b Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 15 Nov 2017 18:41:59 +0100 Subject: [PATCH 10/14] Bugfix --- modules/articoli/edit.php | 81 +++++++++++++++++++++------------------ modules/ddt/edit.php | 2 + modules/viste/edit.php | 4 +- update/2_3.sql | 3 ++ 4 files changed, 51 insertions(+), 39 deletions(-) diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index be75afaa1..d6e019956 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -29,7 +29,11 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
+ {[ "type": "text", "label": "", "name": "codice", "required": 1, "value": "$codice$" ]} +
+ {[ "type": "checkbox", "label": "", "name": "attivo", "value": "$attivo$", "help": "", "placeholder": "" ]} +
@@ -45,10 +49,10 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
-
+
{[ "type": "number", "label": "", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta|undefined" ]}
-
+
{[ "type": "checkbox", "label": "", "name": "qta_manuale", "value": 0, "help": "", "placeholder": "" ]} '; + } + ?> + +
+ {[ "type": "checkbox", "label": "", "name": "abilita_serial", "value": "$abilita_serial$", "help": "", "placeholder": "" ]} +
+ +
+ +
-
+
+ {[ "type": "number", "label": "", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "€" ]} +
+
+ + +
+
{[ "type": "number", "label": "", "name": "prezzo_vendita", "value": "$prezzo_vendita$", "icon-after": "€" ]}
{[ "type": "select", "label": "", "name": "idiva_vendita", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC", "value": "$idiva_vendita$", "valore_predefinito": "Iva predefinita" ]}
+ +
+ {[ "type": "number", "label": "", "name": "gg_garanzia", "decimals": 0, "value": "$gg_garanzia$", "icon-after": "GG" ]} +
-
- {[ "type": "checkbox", "label": "", "name": "attivo", "value": "$attivo$", "help": "", "placeholder": "" ]} -
- -
- {[ "type": "checkbox", "label": "", "name": "abilita_serial", "value": "$abilita_serial$", "help": "", "placeholder": "" ]} -
-fetchArray("SELECT id FROM zz_plugins WHERE name='Serial'"); - - echo ' - '; - } -?> -
- -
-
- {[ "type": "number", "label": "", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "€" ]} -
- -
- {[ "type": "number", "label": "", "name": "threshold_qta", "value": "$threshold_qta$", "decimals": "qta" ]} -
- -
- {[ "type": "number", "label": "", "name": "gg_garanzia", "decimals": 0, "value": "$gg_garanzia$" ]} -
+
+ +
-
+ +
{[ "type": "number", "label": "", "name": "peso_lordo", "value": "$peso_lordo$", "icon-after": "KG" ]}
-
+
{[ "type": "number", "label": "", "name": "volume", "value": "$volume$", "icon-after": "M3" ]}
diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 3069073d2..234668d17 100644 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -183,6 +183,8 @@ include $docroot.'/modules/ddt/row-list.php';
+{( "name": "filelist_and_upload", "id_module": "", "id_record": "" )} + - - - fetchArray('SELECT COUNT(*) AS tot FROM ( - SELECT `idarticolo` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id_record).' UNION - SELECT `idarticolo` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id_record).' UNION - SELECT `idarticolo` FROM `or_righe_ordini` WHERE `idarticolo` = '.prepare($id_record).' UNION - SELECT `idarticolo` FROM `mg_articoli_interventi` WHERE `idarticolo` = '.prepare($id_record).' -) AS count'); +//fatture, ddt, preventivi collegati a questo articolo +$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id_record).') UNION +SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id_record).') UNION +SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idarticolo` = '.prepare($id_record).') ORDER BY `data`'); -$tot = $count[0]['tot']; -if ($tot > 0) { + +if (!empty($elementi)) { echo ' -
- '.tr('Ci sono _NUM_ righe di documenti collegate', [ - '_NUM_' => $tot, - ]).'. - '.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').' +
+

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ + '_NUM_' => count($elementi), + '_I_' => (count($elementi)>1) ? tr('i') : tr('o') + ]).':

+
    '; + + foreach ($elementi as $elemento) { + $descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [ + '_DOC_' => $elemento['tipo_documento'], + '_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'], + '_DATE_' => Translator::dateToLocale($elemento['data']), + ]); + + //se non è un preventivo è un ddt o una fattura + //se non è un ddt è una fattura. + if (in_array($elemento['tipo_documento'], ['Preventivo'])) { + $modulo ='Preventivi'; + } else if (!in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto'])) { + $modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto'; + } else { + $modulo = ($elemento['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto'; + } + + $id = $elemento['id']; + + echo ' +
  • '.Modules::link($modulo, $id, $descrizione).'
  • '; + } + + echo ' +
+

'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'

'; } + +?> + + + + \ No newline at end of file diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index 896d1417d..5e804a81e 100644 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -365,19 +365,18 @@ if (!empty($records[0]['idcontratto_prev'])) { }); - - - + fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' -
-

'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [ + div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), - ]).'.

+ '_I_' => (count($fatture)>1) ? tr('i') : tr('o') + ]).':

    '; foreach ($fatture as $fattura) { @@ -396,6 +395,13 @@ if (!empty($fatture)) { echo '
-

'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'

+

'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'

'; } + +?> + + + + + \ No newline at end of file diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 234668d17..38fa11e4a 100644 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -193,20 +193,19 @@ include $docroot.'/modules/ddt/row-list.php'; }); - - - + fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idddt` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' -
-

'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [ - '_NUM_' => count($fatture), - ]).'.

-
    '; + div class="alert alert-warning"> +

    '.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ + '_NUM_' => count($fatture), + '_I_' => (count($fatture)>1) ? tr('i') : tr('o') + ]).':

    +
      '; foreach ($fatture as $fattura) { $descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [ @@ -224,6 +223,12 @@ if (!empty($fatture)) { echo '
    -

    '.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'

    +

    '.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'

'; } + +?> + + + + diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index b5c122108..be7ffe493 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -292,21 +292,19 @@ if (empty($records[0]['firma_file'])) { }); - - - fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idintervento` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' -
-

'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [ + div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), - ]).'.

+ '_I_' => (count($fatture)>1) ? tr('i') : tr('o') + ]).':

    '; foreach ($fatture as $fattura) { @@ -325,6 +323,12 @@ if (!empty($fatture)) { echo '
-

'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'

+

'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'

'; } + +?> + + + + \ No newline at end of file diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index 8b451ef8f..192cc07c7 100644 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -124,20 +124,17 @@ if ($module['name'] == 'Ordini cliente') { {( "name": "filelist_and_upload", "id_module": "", "id_record": "" )} - - - - fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idordine` = '.prepare($id_record).') UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idordine` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($elementi)) { echo ' -
-

'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [ +

+

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($elementi), - ]).'.

+ '_I_' => (count($elementi)>1) ? tr('i') : tr('o') + ]).':

    '; foreach ($elementi as $elemento) { @@ -161,6 +158,12 @@ if (!empty($elementi)) { echo '
-

'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'

+

'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'

'; } + +?> + + + + diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index 9c936ea51..385975312 100644 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -158,19 +158,18 @@ include $docroot.'/modules/preventivi/row-list.php';
- - - + fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' -
-

'.tr('Ci sono _NUM_ documenti collegate a questo elemento', [ + div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), - ]).'.

+ '_I_' => (count($fatture)>1) ? tr('i') : tr('o') + ]).':

    '; foreach ($fatture as $fattura) { @@ -189,6 +188,13 @@ if (!empty($fatture)) { echo '
-

'.tr('Eliminando questo elemento si potrebbero verificare problemi nelle altre sezioni del gestionale!').'

+

'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale.').'

'; } + +?> + + + + + \ No newline at end of file From 30e8dc4f5979147faafb3114b6aa136e20260481 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 16 Nov 2017 17:33:24 +0100 Subject: [PATCH 13/14] Bugfix In fase di creazione ddt da ordine o fattura da ordine non considerava la righe spuntate --- assets/src/css/style.css | 4 ++++ modules/ddt/actions.php | 28 ++++++++++++++-------------- modules/fatture/actions.php | 8 ++++---- modules/fatture/crea_documento.php | 26 +++++++++++++------------- 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index d2c8a2f13..1b5f7805b 100644 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -566,3 +566,7 @@ input.small-width { .pac-container { z-index: 1100 !important; } + +.form-control#blob{ + height: auto; +} \ No newline at end of file diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index f51692fa9..eb12f6dfd 100644 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -220,23 +220,23 @@ switch (post('op')) { $id_record = $dbo->lastInsertedID(); // Lettura di tutte le righe della tabella in arrivo - for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) { + foreach ($post['qta_da_evadere'] AS $idriga=>$value) { // Processo solo le righe da evadere - if ($post['evadere'][$i] == 'on') { - $idrigaordine = post('idriga')[$i]; - $idarticolo = post('idarticolo')[$i]; - $descrizione = post('descrizione')[$i]; + if ($post['evadere'][$idriga] == 'on') { + + $idarticolo = post('idarticolo')[$idriga]; + $descrizione = post('descrizione')[$idriga]; - $qta = $post['qta_da_evadere'][$i]; - $um = post('um')[$i]; - $abilita_serial = post('abilita_serial')[$i]; + $qta = $post['qta_da_evadere'][$idriga]; + $um = post('um')[$idriga]; + $abilita_serial = post('abilita_serial')[$idriga]; - $subtot = $post['subtot'][$i] * $qta; - $sconto = $post['sconto'][$i]; + $subtot = $post['subtot'][$idriga] * $qta; + $sconto = $post['sconto'][$idriga]; $sconto = $sconto * $qta; - $idiva = post('idiva')[$i]; - $iva = $post['iva'][$i] * $qta; + $idiva = post('idiva')[$idriga]; + $iva = $post['iva'][$idriga] * $qta; // Calcolo l'iva indetraibile $q = 'SELECT descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva); @@ -248,13 +248,13 @@ switch (post('op')) { $riga = $dbo->lastInsertedID(); // Aggiornamento seriali dalla riga dell'ordine - $serials = is_array($post['serial'][$i]) ? $post['serial'][$i] : []; + $serials = is_array($post['serial'][$idriga]) ? $post['serial'][$idriga] : []; $serials = array_filter($serials, function ($value) { return !empty($value); }); $dbo->sync('mg_prodotti', ['id_riga_ddt' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]); // Scalo la quantità dall'ordine - $dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine)); + $dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idriga)); // Movimento il magazzino // vendita diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 6128aa512..94115c62d 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -931,10 +931,10 @@ switch (post('op')) { $id_record = $dbo->lastInsertedID(); // Lettura di tutte le righe della tabella in arrivo - for ($i = 0; $i < sizeof($post['qta_da_evadere']); ++$i) { + foreach ($post['qta_da_evadere'] AS $i => $value) { // Processo solo le righe da evadere if ($post['evadere'][$i] == 'on') { - $idrigaordine = post('idriga')[$i]; + $idarticolo = post('idarticolo')[$i]; $descrizione = post('descrizione')[$i]; $qta = post('qta_da_evadere')[$i]; @@ -945,7 +945,7 @@ switch (post('op')) { $sconto = post('sconto')[$i]; $sconto = $sconto * $qta; - $qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.$idrigaordine; + $qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.$i; $rsprc = $dbo->fetchArray($qprc); $sconto_unitario = $rsprc[0]['sconto_unitario']; @@ -984,7 +984,7 @@ switch (post('op')) { } // Scalo la quantità dall'ordine - $dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine)); + $dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($i)); } } diff --git a/modules/fatture/crea_documento.php b/modules/fatture/crea_documento.php index 5c75670a2..bc3d69724 100644 --- a/modules/fatture/crea_documento.php +++ b/modules/fatture/crea_documento.php @@ -77,7 +77,7 @@ $rs = $dbo->fetchArray('SELECT *, (qta - qta_evasa) AS qta_rimanente FROM '.$tab if (!empty($rs)) { echo ' -

'.tr('Seleziona le righe che vuoi inserire nel documento e la quantità').'.

+

'.tr('Seleziona le righe e le relative quantità da inserire nel documento').'.

@@ -119,14 +119,14 @@ if (!empty($rs)) { echo ' - - - - '; + + + + '; // Checkbox - da evadere? echo ' - '; + '; echo nl2br($r['descrizione']); @@ -137,14 +137,14 @@ if (!empty($rs)) { echo ' - +

'.Translator::numberToLocale($r['qta_rimanente']).'

'; // Q.tà da evadere echo ' - {[ "type": "number", "name": "qta_da_evadere[]", "id": "qta_'.$i.'", "required": 1, "value": "'.$r['qta_rimanente'].'", "extra" : "onchange=\"ricalcola_subtotale_riga('.$i.');\"", "decimals": "qta|0" ]} + {[ "type": "number", "name": "qta_da_evadere['.$r['id'].']", "id": "qta_'.$i.'", "required": 1, "value": "'.$r['qta_rimanente'].'", "extra" : "onkeyup=\"ricalcola_subtotale_riga('.$i.');\"", "decimals": "qta|0" ]} '; // Subtotale @@ -154,10 +154,10 @@ if (!empty($rs)) { echo ' - - - - + + + + '.Translator::numberToLocale($subtotale - $sconto + $iva).' €
@@ -171,7 +171,7 @@ if (!empty($rs)) { $values = $dbo->fetchArray('SELECT DISTINCT serial FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')'); echo ' - {[ "type": "select", "name": "serial['.$i.'][]", "id": "serial_'.$i.'", "multiple": 1, "values": "query=SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')", "value": "'.implode(',', array_column($values, 'serial')).'", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]} + {[ "type": "select", "name": "serial['.$i.']['.$r['id'].']", "id": "serial_'.$i.'", "multiple": 1, "values": "query=SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')", "value": "'.implode(',', array_column($values, 'serial')).'", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]} '; } else { echo '-'; From 6b9dae3b9d55b61ec768de1e4182981f6e74da8d Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 16 Nov 2017 18:55:03 +0100 Subject: [PATCH 14/14] Bugfix --- ajax_select.php | 5 ++++- modules/contratti/edit.php | 2 +- modules/ddt/edit.php | 2 +- modules/interventi/ajax_costi.php | 26 +++++++++++++++++++++++--- modules/interventi/ajax_tecnici.php | 4 ++-- modules/interventi/edit.php | 4 +++- modules/preventivi/edit.php | 2 +- update/2_3.sql | 9 ++++----- 8 files changed, 39 insertions(+), 15 deletions(-) diff --git a/ajax_select.php b/ajax_select.php index 126b19500..031fce3f4 100644 --- a/ajax_select.php +++ b/ajax_select.php @@ -57,7 +57,10 @@ if (!function_exists('completeResults')) { switch ($op) { case 'clienti': if (Modules::get('Anagrafiche')['permessi'] != '-') { - $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale"; + + //$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))"; + + $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale"; foreach ($elements as $element) { $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index 5e804a81e..15674eb2b 100644 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -372,7 +372,7 @@ if (!empty($records[0]['idcontratto_prev'])) { $fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' - div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), '_I_' => (count($fatture)>1) ? tr('i') : tr('o') diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 38fa11e4a..b25ff86b9 100644 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -200,7 +200,7 @@ include $docroot.'/modules/ddt/row-list.php'; $fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idddt` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' - div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), '_I_' => (count($fatture)>1) ? tr('i') : tr('o') diff --git a/modules/interventi/ajax_costi.php b/modules/interventi/ajax_costi.php index ff46fe6a5..3978722ec 100644 --- a/modules/interventi/ajax_costi.php +++ b/modules/interventi/ajax_costi.php @@ -3,6 +3,10 @@ include_once __DIR__.'/../../core.php'; include_once __DIR__.'/modutil.php'; +$idiva = get_var('Iva predefinita'); +$rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva)); +($rs_iva[0]['percentuale']>0) ? $hide = '' : $hide = 'hide'; + if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') { $costi = get_costi_intervento($id_record); @@ -50,12 +54,28 @@ if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') { - '.Translator::numberToLocale(-$costi['sconto_globale']).' € + + + + '.tr('Imponibile', [], ['upper' => true]).' + '.Translator::numberToLocale($costi['totale_costo']).' € + '.Translator::numberToLocale($costi['totale_addebito']).' € + '.Translator::numberToLocale($costi['totale']).' € + + + + + '.tr('IVA (_DESC_)', [ _DESC_ => $rs_iva[0]['descrizione']], ['upper' => true]).' + '.Translator::numberToLocale(($costi['totale_costo']/100*$rs_iva[0]['percentuale'])).' € + '.Translator::numberToLocale(($costi['totale_addebito']/100*$rs_iva[0]['percentuale'])).' € + '.Translator::numberToLocale(($costi['totale']/100*$rs_iva[0]['percentuale'])).' € + '.tr('Totale', [], ['upper' => true]).' - '.Translator::numberToLocale($costi['totale_costo']).' € - '.Translator::numberToLocale($costi['totale_addebito']).' € - '.Translator::numberToLocale($costi['totale']).' € + '.Translator::numberToLocale($costi['totale_costo']+($costi['totale_costo']/100*$rs_iva[0]['percentuale'])).' € + '.Translator::numberToLocale($costi['totale_addebito']+($costi['totale_addebito']/100*$rs_iva[0]['percentuale'])).' € + '.Translator::numberToLocale($costi['totale']+($costi['totale']/100*$rs_iva[0]['percentuale'])).' € '; } diff --git a/modules/interventi/ajax_tecnici.php b/modules/interventi/ajax_tecnici.php index 93db8f2c5..a61f39d52 100644 --- a/modules/interventi/ajax_tecnici.php +++ b/modules/interventi/ajax_tecnici.php @@ -111,12 +111,12 @@ if (!empty($rs2)) { echo ' - '; + '; if ($rs[0]['stato'] != 'Fatturato') { // Elenco tipologie di interventi echo ' - {[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione" ]}'; + {[ "type": "select", "name": "idtipointerventot['.$id.']", "value": "'.$r['idtipointervento'].'", "values": "query=SELECT idtipointervento AS id, descrizione, IFNULL((SELECT costo_ore FROM in_tariffe WHERE idtipointervento=in_tipiintervento.idtipointervento AND idtecnico='.prepare($r['idtecnico']).'), 0) AS costo_orario FROM in_tipiintervento ORDER BY descrizione", "class": "", "extra": "" ]}'; } echo ' diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index be7ffe493..35eacba26 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -296,11 +296,13 @@ if (empty($records[0]['firma_file'])) { fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idintervento` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' - div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), '_I_' => (count($fatture)>1) ? tr('i') : tr('o') diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index 385975312..a32aeb5d1 100644 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -165,7 +165,7 @@ include $docroot.'/modules/preventivi/row-list.php'; $fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($fatture)) { echo ' - div class="alert alert-warning"> +

'.tr('_NUM_ altr_I_ document_I_ collegat_I_', [ '_NUM_' => count($fatture), '_I_' => (count($fatture)>1) ? tr('i') : tr('o') diff --git a/update/2_3.sql b/update/2_3.sql index d99472846..378b18b82 100644 --- a/update/2_3.sql +++ b/update/2_3.sql @@ -972,12 +972,11 @@ ALTER TABLE `in_interventi` ADD `deleted` TINYINT NOT NULL DEFAULT '0' AFTER `da -- Fix nella conversione dei listini precedenti UPDATE `mg_listini` SET `prc_guadagno` = - `prc_guadagno`; - -- Aggiunta pagamento di default "Bonifico bancario" INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `idconto_vendite`, `idconto_acquisti`) VALUES (NULL, 'Bonifico bancario', '0', '10', '100', CURRENT_TIMESTAMP, NULL, NULL); --- Per la Dashboard i widgets vanno in alto -UPDATE `zz_widgets` SET `location` = 'controller_top' WHERE `zz_widgets`.`id_module` = 1; +-- Per Dashboard e Articoli i widgets vanno in alto +UPDATE `zz_widgets` SET `location` = 'controller_top' WHERE `zz_widgets`.`id_module` = (SELECT id FROM zz_modules WHERE name = 'Dashboard' ) OR `zz_widgets`.`id_module` = (SELECT id FROM zz_modules WHERE name = 'Articoli' ); --- Per gli Articoli i widgets vanno in alto -UPDATE `zz_widgets` SET `location` = 'controller_top' WHERE `zz_widgets`.`id_module` = 21; +-- Disabilito widgets 'Ordini di servizio da impostare' e 'Rate contrattuali' +UPDATE `zz_widgets` SET `enabled` = '0' WHERE `zz_widgets`.`name` = 'Ordini di servizio da impostare' OR `zz_widgets`.`name` = 'Rate contrattuali'; \ No newline at end of file