-- Miglioramento della cache interna CREATE TABLE IF NOT EXISTS `zz_tasks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `class` TEXT NOT NULL, `expression` VARCHAR(255) NOT NULL, `next_execution_at` timestamp NULL, `last_executed_at` timestamp NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; CREATE TABLE IF NOT EXISTS `zz_tasks_logs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_task` int(11), `level` VARCHAR(255) NOT NULL, `message` TEXT NOT NULL, `context` TEXT NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`id_task`) REFERENCES `zz_tasks`(`id`) ) ENGINE=InnoDB; INSERT INTO `zz_cache` (`id`, `name`, `content`, `valid_time`, `expire_at`) VALUES (NULL, 'Ultima esecuzione del cron', '', '1 month', NULL), (NULL, 'ID del cron', '', '1 month', NULL), (NULL, 'Cron in esecuzione', '', '1 month', NULL), (NULL, 'Disabilita cron', '', '1 month', NULL); INSERT INTO `zz_tasks` (`id`, `name`, `class`, `expression`, `last_executed_at`) VALUES (NULL, 'Backup automatico', 'Modules\\Backups\\BackupTask', '0 1 * * *', NULL); DELETE FROM `zz_hooks` WHERE `class` = 'Modules\\Backups\\BackupHook'; -- Modifica dei Listini in Piani di sconto/rincaro UPDATE `zz_modules` SET `title` = 'Piani di sconto/rincaro' WHERE `name` = 'Listini'; -- Aggiunto supporto ai prezzi per Articoli specifici per Anagrafica e range di quantità CREATE TABLE IF NOT EXISTS `mg_prezzi_articoli` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_articolo` int(11) NOT NULL, `id_anagrafica` int(11), `minimo` DECIMAL(15,6), `massimo` DECIMAL(15,6), `prezzo_unitario` DECIMAL(15,6) NOT NULL, `prezzo_unitario_ivato` DECIMAL(15,6) NOT NULL, `dir` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`id_articolo`) REFERENCES `mg_articoli`(`id`), FOREIGN KEY (`id_anagrafica`) REFERENCES `an_anagrafiche`(`idanagrafica`) ) 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'); -- Aggiunta risorse API dedicate alle task in cron INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES (NULL, 'v1', 'retrieve', 'cron-logs', 'API\\Common\\Task', '1'), (NULL, 'v1', 'create', 'cron-restart', 'API\\Common\\Task', '1'); -- Fix visualizzazione modulo Causali movimenti UPDATE `zz_views` SET `query` = 'CONCAT(UCASE(LEFT(tipo_movimento, 1)), SUBSTRING(tipo_movimento, 2))', `name` = 'Tipo' WHERE `zz_views`.`name` = 'Movimento di carico' AND id_module = (SELECT id FROM zz_modules WHERE name = 'Causali movimenti'); -- Aggiornamento versione API services UPDATE `zz_settings` SET `valore` = 'v3' WHERE `nome` = 'OSMCloud Services API Version'; -- Aggiunto collegamento con allegato per impostare la ricevuta principale ALTER TABLE `co_documenti` ADD `id_ricevuta_principale` INT(11); UPDATE `co_documenti` SET `co_documenti`.`id_ricevuta_principale` = ( SELECT `zz_files`.`id` FROM `zz_files` WHERE `zz_files`.`id_module` = ( SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name` = 'Fatture di vendita' ) AND `zz_files`.`id_record` = `co_documenti`.`id` AND `zz_files`.`name` LIKE 'Ricevuta%' ORDER BY `zz_files`.`created_at` LIMIT 1 ); ALTER TABLE `fe_stati_documento` ADD `is_generabile` BOOLEAN DEFAULT FALSE, ADD `is_inviabile` BOOLEAN DEFAULT FALSE, ADD `tipo` varchar(255) NOT NULL; UPDATE `fe_stati_documento` SET `is_generabile` = '1', `is_inviabile` = '1' WHERE `codice` = 'ERVAL'; UPDATE `fe_stati_documento` SET `is_generabile` = '1', `is_inviabile` = '1' WHERE `codice` = 'ERR'; UPDATE `fe_stati_documento` SET `is_generabile` = '1', `is_inviabile` = '1' WHERE `codice` = 'GEN'; UPDATE `fe_stati_documento` SET `is_generabile` = '1' WHERE `codice` = 'NS'; UPDATE `fe_stati_documento` SET `is_generabile` = '1' WHERE `codice` = 'EC02'; UPDATE `fe_stati_documento` SET `tipo` = 'danger'; UPDATE `fe_stati_documento` SET `tipo` = 'warning' WHERE `codice` IN ('ERVAL', 'MC', 'WAIT', 'NE'); UPDATE `fe_stati_documento` SET `tipo` = 'success' WHERE `codice` IN ('EC01', 'RC'); UPDATE `fe_stati_documento` SET `tipo` = 'info' WHERE `codice` IN ('GEN');