diff --git a/include/common/articolo.php b/include/common/articolo.php
index 03897bd9b..7efe3e6e3 100755
--- a/include/common/articolo.php
+++ b/include/common/articolo.php
@@ -554,6 +554,7 @@ function aggiornaPrezzoArticolo(aggiorna = "") {
}
$("#prezzo_unitario").val(prezzo_previsto).trigger("change");
+ $("#sconto").val(0).trigger("change");
// Aggiornamento automatico di guadagno e margine
if (direzione === "entrata") {
diff --git a/modules/articoli/ajax/complete.php b/modules/articoli/ajax/complete.php
index 491652863..2396d6b17 100755
--- a/modules/articoli/ajax/complete.php
+++ b/modules/articoli/ajax/complete.php
@@ -149,7 +149,7 @@ switch ($resource) {
FROM mg_listini
LEFT JOIN mg_listini_articoli ON mg_listini.id=mg_listini_articoli.id_listino
LEFT JOIN an_anagrafiche ON mg_listini.id=an_anagrafiche.id_listino
- WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione).' |where|';
+ WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND mg_listini.attivo=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione).' |where|';
$query_anagrafica = replace($query, [
'|where|' => ' AND idanagrafica = '.prepare($id_anagrafica),
]);
@@ -160,7 +160,7 @@ switch ($resource) {
'.($prezzi_ivati ? 'prezzo_unitario_ivato' : 'prezzo_unitario').' AS prezzo_unitario_listino_visibile
FROM mg_listini
LEFT JOIN mg_listini_articoli ON mg_listini.id=mg_listini_articoli.id_listino
- WHERE mg_listini.is_sempre_visibile=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione);
+ WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND mg_listini.attivo=1 AND mg_listini.is_sempre_visibile=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione);
$listini_sempre_visibili = $database->fetchArray($query);
// Prezzi scheda articolo
diff --git a/modules/listini_cliente/actions.php b/modules/listini_cliente/actions.php
index c9c016e7c..629c8f5ab 100644
--- a/modules/listini_cliente/actions.php
+++ b/modules/listini_cliente/actions.php
@@ -29,6 +29,7 @@ switch (filter('op')) {
$listino->data_attivazione = post('data_attivazione') ?: null;
$listino->data_scadenza_predefinita = post('data_scadenza_predefinita') ?: null;
$listino->is_sempre_visibile = post('is_sempre_visibile');
+ $listino->attivo = post('attivo');
$listino->note = post('note');
$listino->save();
@@ -41,6 +42,7 @@ switch (filter('op')) {
$listino->data_attivazione = post('data_attivazione') ?: null;
$listino->data_scadenza_predefinita = post('data_scadenza_predefinita') ?: null;
$listino->is_sempre_visibile = post('is_sempre_visibile');
+ $listino->attivo = post('attivo');
$listino->note = post('note');
$listino->save();
@@ -72,10 +74,14 @@ switch (filter('op')) {
break;
case 'delete_articolo':
- $articolo_listino = Articolo::find(post('id'));
- $articolo_listino->delete();
+ $id_righe = (array)post('id');
+
+ foreach ($id_righe as $id_riga) {
+ $articolo_listino = Articolo::find($id_riga);
+ $articolo_listino->delete();
+ }
- flash()->info(tr('Articolo del listino eliminato correttamente!'));
+ flash()->info(tr('Articoli del listino eliminati correttamente!'));
break;
diff --git a/modules/listini_cliente/add.php b/modules/listini_cliente/add.php
index 17226bec8..da3d3fad9 100644
--- a/modules/listini_cliente/add.php
+++ b/modules/listini_cliente/add.php
@@ -25,7 +25,7 @@ echo '
-
+
{[ "type":"text", "label":"'.tr('Nome').'", "name":"nome", "required":"1" ]}
@@ -36,9 +36,15 @@ echo '
{[ "type":"date", "label":"'.tr('Data scadenza default').'", "name":"data_scadenza_predefinita" ]}
+
+
+
+
+ {[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "help": "'.tr('Se impostato il valore sarà sempre visibile sull\'articolo se il listino è attivo e la data di scadenza è ancora valida').'" ]}
+
-
- {[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "help": "'.tr('Se attivo il valore sarà visibile sull\'articolo').'" ]}
+
+ {[ "type":"checkbox", "label":"'.tr('Attivo').'", "name":"attivo", "value": "1" ]}
diff --git a/modules/listini_cliente/edit.php b/modules/listini_cliente/edit.php
index 7d891afd1..aac437355 100644
--- a/modules/listini_cliente/edit.php
+++ b/modules/listini_cliente/edit.php
@@ -31,7 +31,7 @@ echo '
-
+
{[ "type":"text", "label":"'.tr('Nome').'", "name":"nome", "value":"$nome$", "required":"1" ]}
@@ -42,9 +42,15 @@ echo '
{[ "type":"date", "label":"'.tr('Data scadenza default').'", "name":"data_scadenza_predefinita", "value":"$data_scadenza_predefinita$" ]}
+
+
+
+
+ {[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "value":"$is_sempre_visibile$", "help": "'.tr('Se impostato il valore sarà sempre visibile sull\'articolo se il listino è attivo e la data di scadenza è ancora valida').'" ]}
+
-
- {[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "value":"$is_sempre_visibile$", "help": "'.tr('Se attivo il valore sarà visibile sull\'articolo').'" ]}
+
+ {[ "type":"checkbox", "label":"'.tr('Attivo').'", "name":"attivo", "value": "$attivo$" ]}
@@ -69,21 +75,48 @@ echo '
-
+
+
+
+
+
+
+
@@ -195,4 +234,77 @@ echo '
});
}).catch(swal.noop);
}
+
+ $(document).ready(function(){
+ $("input[id^=\'search_\']").keyup(function() {
+ $("#tablelistini tr").each(function(){
+ $(this).show();
+ });
+ $("input[id^=\'search_\']").each(function(){
+ var position = $(this).closest("th").index();
+ var filter = $(this).val().toUpperCase();
+
+ var tr = $("#tablelistini tr");
+ if(filter!=""){
+ for (i = 0; i < tr.length; i++) {
+ td = tr[i].getElementsByTagName("td")[position];
+ if (td) {
+ if (td.innerText.toUpperCase().indexOf(filter) <= -1) {
+ tr[i].style.display = "none";
+ }
+ }
+ }
+ }
+ });
+ if ($("#check_all").is(":checked")) {
+ $("#check_all").trigger("click");
+ $(".check").each(function(){
+ if ($(this).is(":checked")) {
+ $(this).trigger("click");
+ }
+ });
+ }
+ });
+ });
+
+ // Estraggo le righe spuntate
+ function getSelectData() {
+ let data=new Array();
+ $(\'#tablelistini\').find(\'.check:checked\').each(function (){
+ data.push($(this).closest(\'tr\').data(\'id\'));
+ });
+
+ return data;
+ }
+
+ $(".check").on("change", function() {
+ let checked = 0;
+ $(".check").each(function() {
+ if ($(this).is(":checked")) {
+ checked = 1;
+ }
+ });
+
+ if (checked) {
+ $("#elimina_righe").removeClass("disabled");
+ } else {
+ $("#elimina_righe").addClass("disabled");
+ }
+ });
+
+ $("#check_all").click(function(){
+ if( $(this).is(":checked") ){
+ $(".check").each(function(){
+ if( !$(this).is(":checked") ){
+ $(this).trigger("click");
+ }
+ });
+ }else{
+ $(".check").each(function(){
+ if( $(this).is(":checked") ){
+ $(this).trigger("click");
+ }
+ });
+ }
+ });
';
\ No newline at end of file
diff --git a/modules/listini_cliente/modals/manage_articolo.php b/modules/listini_cliente/modals/manage_articolo.php
index 54998e895..a768a3dce 100644
--- a/modules/listini_cliente/modals/manage_articolo.php
+++ b/modules/listini_cliente/modals/manage_articolo.php
@@ -71,4 +71,7 @@ echo '
';
echo '
-';
\ No newline at end of file
+';
\ No newline at end of file
diff --git a/update/2_4_38.sql b/update/2_4_38.sql
index e8a9e81ca..b4e229906 100644
--- a/update/2_4_38.sql
+++ b/update/2_4_38.sql
@@ -4,7 +4,7 @@ ALTER TABLE `an_anagrafiche` CHANGE `idlistino_acquisti` `id_piano_sconto_acquis
ALTER TABLE `an_anagrafiche` CHANGE `idlistino_vendite` `id_piano_sconto_vendite` INT(11) NULL DEFAULT NULL;
ALTER TABLE `an_anagrafiche` ADD `id_listino` INT NOT NULL AFTER `id_piano_sconto_acquisti`;
-CREATE TABLE `mg_listini` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(255) NOT NULL , `data_attivazione` DATE NULL , `data_scadenza_predefinita` DATE NULL , `is_sempre_visibile` BOOLEAN NOT NULL , `note` TEXT NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`));
+CREATE TABLE `mg_listini` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(255) NOT NULL , `data_attivazione` DATE NULL , `data_scadenza_predefinita` DATE NULL , `is_sempre_visibile` BOOLEAN NOT NULL , `attivo` BOOLEAN NOT NULL , `note` TEXT NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`));
CREATE TABLE `mg_listini_articoli` ( `id` INT NOT NULL AUTO_INCREMENT , `id_listino` INT NOT NULL, `id_articolo` INT NOT NULL , `data_scadenza` DATE NOT NULL , `prezzo_unitario` DECIMAL(15,6) NOT NULL , `prezzo_unitario_ivato` DECIMAL(15,6) NOT NULL , `sconto_percentuale` DECIMAL(15,6) NOT NULL , `dir` VARCHAR(20) NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`));
@@ -17,7 +17,9 @@ INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Articoli', '(SELECT COUNT(id) FROM mg_listini_articoli WHERE id_listino=mg_listini.id)', 4, 1, 0, 0, 0, '', '', 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Anagrafiche', '(SELECT COUNT(idanagrafica) FROM an_anagrafiche WHERE id_listino=mg_listini.id)', 5, 1, 0, 0, 0, '', '', 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Ultima modifica', '(SELECT username FROM zz_users WHERE id=(SELECT id_utente FROM zz_operations WHERE id_module=(SELECT id FROM zz_modules WHERE name=\'Listini cliente\') AND id_record=mg_listini.id ORDER BY id DESC LIMIT 0,1))', 6, 1, 0, 0, 0, '', '', 1, 0, 1),
-((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Sempre visibile', 'IF(is_sempre_visibile=0,\'NO\',\'SÌ\')', 7, 1, 0, 0, 0, '', '', 1, 0, 1);
+((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Sempre visibile', 'IF(is_sempre_visibile=0,\'NO\',\'SÌ\')', 7, 1, 0, 0, 0, '', '', 1, 0, 1),
+((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Attivo', 'IF(attivo=0,\'NO\',\'SÌ\')', 7, 1, 0, 0, 0, '', '', 1, 0, 1);
+
UPDATE `zz_plugins` SET `title` = 'Netto clienti', `name` = 'Netto Clienti' WHERE `zz_plugins`.`name` = 'Listino Clienti';
@@ -627,22 +629,22 @@ CREATE TABLE `zz_group_segment` ( `id_gruppo` INT NOT NULL , `id_segment` INT NO
ALTER TABLE `zz_segments` ADD `is_sezionale` TINYINT(1) NOT NULL AFTER `autofatture`;
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Preventivi');
-INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Preventivi'), 'Standard preventivi', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice preventivi'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
+INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Preventivi'), 'Standard preventivi', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice preventivi'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Contratti');
-INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Contratti'), 'Standard contratti', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice contratti'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
+INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Contratti'), 'Standard contratti', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice contratti'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ddt di acquisto');
-INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di acquisto'), 'Standard ddt in entrata', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
+INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di acquisto'), 'Standard ddt in entrata', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ddt di vendita');
-INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di vendita'), 'Standard ddt in uscita', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ddt'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
+INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di vendita'), 'Standard ddt in uscita', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ddt'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente');
-INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente'), 'Standard ordini cliente', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ordine'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
+INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente'), 'Standard ordini cliente', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ordine'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore');
-INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore'), 'Standard ordini fornitore', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
+INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore'), 'Standard ordini fornitore', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Interventi');
UPDATE `zz_segments` SET `predefined` = '1', `is_sezionale` = '1', `name` = 'Standard attività' WHERE `zz_segments`.`name` = 'Tutti' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Interventi');
@@ -777,3 +779,8 @@ HAVING
2=2
ORDER BY
`nome`" WHERE `name` = 'Piani di sconto/maggiorazione';
+
+-- Aggiunti widget listini clienti
+INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES (NULL, 'Listini attivi', 'stats', (SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'controller_top', 'col-md-6', 'SELECT COUNT(mg_listini.id) AS dato FROM mg_listini WHERE 1=1 AND attivo=1 HAVING 2=2', '#4ccc4c', 'fa fa-check', '', '', 'javascript', '', 'Listini attivi', '1', '1', NULL);
+
+INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES (NULL, 'Listini scaduti', 'stats', (SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'controller_top', 'col-md-6', 'SELECT COUNT(mg_listini.id) AS dato FROM mg_listini WHERE 1=1 AND attivo=0 HAVING 2=2', '#c62f2a', 'fa fa-times', '', '', 'javascript', '', 'Listini scaduti', '1', '2', NULL);
\ No newline at end of file