1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-23 14:57:46 +01:00
This commit is contained in:
Beppe 2024-08-26 11:27:44 +02:00
commit 9be5d8c9e3
24 changed files with 128 additions and 99 deletions

View File

@ -4,6 +4,7 @@ Tutti i maggiori cambiamenti di questo progetto saranno documentati in questo fi
Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release. Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release.
- [2.5.4 ())](#254-)
- [2.5.3 (2024-08-07)](#253-2024-08-07) - [2.5.3 (2024-08-07)](#253-2024-08-07)
- [2.5.2 (2024-05-31)](#252-2024-05-31) - [2.5.2 (2024-05-31)](#252-2024-05-31)
- [2.5.1 (2024-04-24)](#251-2024-04-24) - [2.5.1 (2024-04-24)](#251-2024-04-24)
@ -69,6 +70,14 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- [2.2 (2016-11-10)](#22-2016-11-10) - [2.2 (2016-11-10)](#22-2016-11-10)
- [2.1 (2015-04-02)](#21-2015-04-02) - [2.1 (2015-04-02)](#21-2015-04-02)
## 2.5.4
### Aggiunto (Added)
### Modificato (Changed)
### Fixed
- Corretta la modifica della descrizione di una riga articolo inserita in un contratto, ddt, attività, ordine e preventivo.
## 2.5.3 (2024-08-07) ## 2.5.3 (2024-08-07)
### Aggiunto (Added) ### Aggiunto (Added)
- Aggiunto il valore delle **Vendite al banco** sul grafico del Fatturato - Aggiunto il valore delle **Vendite al banco** sul grafico del Fatturato

View File

@ -1,6 +1,15 @@
In questo file verranno riassunte le problematiche del gestionale che sono già note alla community. In questo file verranno riassunte le problematiche del gestionale che sono già note alla community.
Le problematiche saranno raggruppate per release e le relative correzioni (se applicabili) saranno riportate sotto la sezione **Soluzione**. Le problematiche saranno raggruppate per release e le relative correzioni (se applicabili) saranno riportate sotto la sezione **Soluzione**.
#### 2.5.3 - 07/08/2024
##### Problemi noti
Non è possibile modificare la descrizione di una riga articolo inserita in un contratto, ddt, attività, ordine e preventivo.
##### Soluzione
https://github.com/devcode-it/openstamanager/commit/b82efb339f8df5da4f2279e25d72904778d2a8d3
#### 2.4.54 - 03/02/2024 #### 2.4.54 - 03/02/2024
##### Problemi noti ##### Problemi noti

View File

@ -50,14 +50,14 @@ $(document).ready(function () {
data = data ? data : []; data = data ? data : [];
// Trasformazione risultati in formato leggibile // Trasformazione risultati in formato leggibile
const results = data.map(function (result) { const results = data.map(result => {
return { const title = result.title;
label: result.badge ? result.badge : '<h4>' + result.title + '</h4>' + result.badges const labels = result.labels.join('').split('<br/>,').join('<br/>');
.join('').split('<br/>,').join('<br/>'), const label = result.label ? result.label : `<h5>${title}</h5><small>${labels}</small>`;
group: result.category, const group = result.category;
link: result.link, const link = result.link;
value: result.title const value = result.title;
} return { label, group, link, value };
}); });
// Rimozione ricerca in corso // Rimozione ricerca in corso
@ -87,8 +87,8 @@ $(document).ready(function () {
}, },
render: function(item, currentValue){ render: function(item, currentValue){
const itemElement = document.createElement("div"); const itemElement = document.createElement("div");
itemElement.innerHTML = item.badge; itemElement.innerHTML = item.label;
// <a href='" + item.link + "' title='Clicca per aprire'><b>" + item.value + "</b><br/>" + item.badge + "</a> // <a href='" + item.link + "' title='Clicca per aprire'><b>" + item.value + "</b><br/>" + item.label + "</a>
return itemElement; return itemElement;
} }
}); });

View File

@ -322,7 +322,7 @@ function impostaCategorieAllegatiDisponibili(gestione, categorie) {
update(results); update(results);
}, },
onSelect: function (item) { onSelect: function (item) {
input.value = item.badge; input.value = item.label;
}, },
}); });
} }

View File

@ -75,8 +75,8 @@ foreach ($modules as $name => $values) {
$settings = [ $settings = [
'php_version' => [ 'php_version' => [
'type' => 'version', 'type' => 'version',
'description' => '8.0.x - 8.3.x', 'description' => '8.1.x - 8.3.x',
'minimum' => '8.0.0', 'minimum' => '8.1.0',
'maximum' => '8.3.99', 'maximum' => '8.3.99',
], ],

View File

@ -184,7 +184,7 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') {
echo ' echo '
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-primary btn-lg dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> '.tr('Azioni di gruppo').' </button> <button class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> '.tr('Azioni di gruppo').' </button>
<div class="dropdown-menu dropdown-menu-right">'; <div class="dropdown-menu dropdown-menu-right">';
foreach ($bulk as $key => $value) { foreach ($bulk as $key => $value) {

View File

@ -90,7 +90,7 @@ $(document).ready(function () {
update(results); update(results);
}, },
onSelect: function (item) { onSelect: function (item) {
input.value = item.badge; input.value = item.label;
}, },
}); });
}); });

View File

@ -862,7 +862,7 @@ if (empty($record['deleted_at'])) {
update(results); update(results);
}, },
onSelect: function (item) { onSelect: function (item) {
input.value = item.badge; input.value = item.label;
}, },
}); });
} }

View File

@ -179,7 +179,7 @@ switch (post('op')) {
$qta = post('qta'); $qta = post('qta');
$articolo->setTranslation('title', post('descrizione')); $articolo->descrizione = post('descrizione');
$articolo->note = post('note'); $articolo->note = post('note');
$articolo->um = post('um') ?: null; $articolo->um = post('um') ?: null;

View File

@ -165,7 +165,7 @@ switch (filter('op')) {
$articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null;
} }
$articolo->setTranslation('title', post('descrizione')); $articolo->descrizione = post('descrizione');
$articolo->note = post('note'); $articolo->note = post('note');
$articolo->um = post('um') ?: null; $articolo->um = post('um') ?: null;

View File

@ -297,7 +297,7 @@ $query .= ' ORDER BY `title`';
<!-- DATI INTESTAZIONE --> <!-- DATI INTESTAZIONE -->
<div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'"> <div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'">
<div class="card-header with-border"> <div class="card-header with-border">
<h3 class="card-title">'.tr('Dati cliente').'</h3> <h3 class="card-title">'.($dir == 'entrata' ? tr('Dati cliente') : tr('Dati fornitore')).'</h3>
<div class="card-tools pull-right"> <div class="card-tools pull-right">
<button type="button" class="btn btn-tool" data-card-widget="collapse"> <button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i> <i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>

View File

@ -132,9 +132,6 @@ class Fattura extends Document
$model->idsede_partenza = $id_sede; $model->idsede_partenza = $id_sede;
} }
// Gestione della marca da bollo predefinita
$model->addebita_bollo = setting('Addebita marca da bollo al cliente');
// Ritenuta contributi predefinita // Ritenuta contributi predefinita
$id_ritenuta_contributi = ($tipo_documento->dir == 'entrata') ? setting('Ritenuta previdenziale predefinita') : null; $id_ritenuta_contributi = ($tipo_documento->dir == 'entrata') ? setting('Ritenuta previdenziale predefinita') : null;
$model->id_ritenuta_contributi = $id_ritenuta_contributi ?: null; $model->id_ritenuta_contributi = $id_ritenuta_contributi ?: null;

View File

@ -521,7 +521,7 @@ switch (post('op')) {
$qta = post('qta'); $qta = post('qta');
$articolo->idsede_partenza = post('idsede_partenza'); $articolo->idsede_partenza = post('idsede_partenza');
$articolo->setTranslation('title', post('descrizione')); $articolo->descrizione = post('descrizione');
$articolo->note = post('note'); $articolo->note = post('note');
$articolo->um = post('um') ?: null; $articolo->um = post('um') ?: null;
$articolo->idimpianto = post('id_impianto') ?: null; $articolo->idimpianto = post('id_impianto') ?: null;

View File

@ -170,7 +170,7 @@ switch (post('op')) {
$articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null;
} }
$articolo->setTranslation('title', post('descrizione')); $articolo->descrizione = post('descrizione');
$articolo->note = post('note'); $articolo->note = post('note');
$articolo->um = post('um') ?: null; $articolo->um = post('um') ?: null;

View File

@ -195,7 +195,7 @@ switch (post('op')) {
$qta = post('qta'); $qta = post('qta');
$articolo->setTranslation('title', post('descrizione')); $articolo->descrizione = post('descrizione');
$articolo->note = post('note'); $articolo->note = post('note');
$articolo->um = post('um') ?: null; $articolo->um = post('um') ?: null;
$articolo->data_evasione = post('data_evasione') ?: null; $articolo->data_evasione = post('data_evasione') ?: null;

View File

@ -197,17 +197,18 @@ switch (filter('op')) {
case 'disabilita-widget': case 'disabilita-widget':
$id = filter('id'); $id = filter('id');
$widget = $database->table('zz_widgets_lang')
->where('id', '=', $id)
->first();
// Abilitazione del widget indicato // Abilitazione del widget indicato
$database->table('zz_widgets') $database->table('zz_widgets')
->where('id', '=', $id) ->where('id', '=', $widget->id_record)
->update(['enabled' => 0]); ->update(['enabled' => 0]);
// Messaggio informativo // Messaggio informativo
$widget = $database->table('zz_widgets')
->where('id', '=', $id)
->first();
flash()->info(tr('Widget "_NAME_" disabilitato!', [ flash()->info(tr('Widget "_NAME_" disabilitato!', [
'_NAME_' => $widget->getTranslation('title'), '_NAME_' => $widget->title,
])); ]));
echo json_encode([]); echo json_encode([]);
@ -223,11 +224,13 @@ switch (filter('op')) {
->update(['enabled' => 1]); ->update(['enabled' => 1]);
// Messaggio informativo // Messaggio informativo
$widget = $database->table('zz_widgets') $widget = $database->table('zz_widgets_lang')
->where('id', '=', $id) ->where('id_record', '=', $id)
->where('id_lang', '=', Models\Locale::getDefault()->id)
->first(); ->first();
flash()->info(tr('Widget "_NAME_" abilitato!', [ flash()->info(tr('Widget "_NAME_" abilitato!', [
'_NAME_' => $widget->getTranslation('title'), '_NAME_' => $widget->title,
])); ]));
echo json_encode([]); echo json_encode([]);

View File

@ -1606,7 +1606,7 @@ class FatturaElettronica implements \Stringable
'ImponibileImporto' => $totale, 'ImponibileImporto' => $totale,
'Imposta' => $imposta, 'Imposta' => $imposta,
'EsigibilitaIVA' => $dati->esigibilita, 'EsigibilitaIVA' => $dati->esigibilita,
'RiferimentoNormativo' => $dati->descrizione, 'RiferimentoNormativo' => $dati->getTranslation('title'),
]; ];
// Con split payment EsigibilitaIVA sempre a S // Con split payment EsigibilitaIVA sempre a S

View File

@ -215,7 +215,7 @@ switch ($operazione) {
$qta = post('qta'); $qta = post('qta');
$articolo->setTranslation('title', post('descrizione')); $articolo->descrizione = post('descrizione');
$articolo->um = post('um') ?: null; $articolo->um = post('um') ?: null;
$articolo->costo_unitario = post('costo_unitario') ?: 0; $articolo->costo_unitario = post('costo_unitario') ?: 0;

View File

@ -1886,7 +1886,7 @@ INSERT INTO `zz_storage_adapters` (`id`, `name`, `class`, `options`, `can_delete
(1, 'Adattatore locale', '\\Modules\\FileAdapters\\Adapters\\LocalAdapter', '{ \"directory\":\"/files\" }', 0, 1, 1, NULL); (1, 'Adattatore locale', '\\Modules\\FileAdapters\\Adapters\\LocalAdapter', '{ \"directory\":\"/files\" }', 0, 1, 1, NULL);
-- Modulo adattatori di archiviazione -- Modulo adattatori di archiviazione
INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES ('Adattatori di archiviazione', 'adattatori_archiviazione', 'SELECT |select| FROM zz_storage_adapters WHERE 1=1 HAVING 2=2', '', 'fa fa-folder', '2.5', '2.5', '2', '36', '1', '1', '0', '0'); INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES ('Adattatori di archiviazione', 'adattatori_archiviazione', 'SELECT |select| FROM zz_storage_adapters WHERE 1=1 HAVING 2=2', '', 'fa fa-folder', '2.5', '2.5', '2', (SELECT id FROM zz_modules m WHERE directory='adattatori_archiviazione'), '1', '1', '0', '0');
INSERT INTO `zz_modules_lang` (`id`, `id_lang`, `id_record`, `name`, `title`) VALUES (NULL, '1', (SELECT id FROM zz_modules WHERE directory='adattatori_archiviazione'), 'Adattatori di archiviazione', 'Adattatori di archiviazione'); INSERT INTO `zz_modules_lang` (`id`, `id_lang`, `id_record`, `name`, `title`) VALUES (NULL, '1', (SELECT id FROM zz_modules WHERE directory='adattatori_archiviazione'), 'Adattatori di archiviazione', 'Adattatori di archiviazione');
-- Viste modulo adattatori di archiviazione -- Viste modulo adattatori di archiviazione

View File

@ -429,7 +429,7 @@ ALTER TABLE `my_impianti` ADD `id_marca` INT NULL AFTER `idanagrafica`;
ALTER TABLE `my_impianti` ADD `id_modello` INT NULL AFTER `id_marca`; ALTER TABLE `my_impianti` ADD `id_modello` INT NULL AFTER `id_marca`;
-- Modulo Marche impianto -- Modulo Marche impianto
INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES ('Marche impianti', 'impianti_marche', 'SELECT |select| FROM `my_impianti_marche` WHERE 1=1 HAVING 2=2', '', 'fa fa-angle-right', '2.5.1', '2.5.1', '2', '30', '1', '1', '0', '0'); INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES ('Marche impianti', 'impianti_marche', 'SELECT |select| FROM `my_impianti_marche` WHERE 1=1 HAVING 2=2', '', 'fa fa-angle-right', '2.5.1', '2.5.1', '2', (SELECT `id` FROM `zz_modules` `m` WHERE `name`='Impianti'), '1', '1', '0', '0');
INSERT INTO `zz_modules_lang` (`id_lang`, `id_record`, `title`) VALUES ('1', (SELECT MAX(id) FROM `zz_modules`), 'Marche impianti'); INSERT INTO `zz_modules_lang` (`id_lang`, `id_record`, `title`) VALUES ('1', (SELECT MAX(id) FROM `zz_modules`), 'Marche impianti');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`) VALUES INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`) VALUES
@ -633,29 +633,6 @@ UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_module
-- Allineamento vista Newsletter -- Allineamento vista Newsletter
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates_lang`.`title`' WHERE `zz_modules`.`name` = 'Newsletter' AND `zz_views`.`name` = 'Template'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates_lang`.`title`' WHERE `zz_modules`.`name` = 'Newsletter' AND `zz_views`.`name` = 'Template';
-- Allineamento vista Ordini cliente
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`or_ordini`
INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id`
INNER JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN (SELECT `idordine`, SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `or_righe_ordini` GROUP BY `idordine`) AS righe ON `or_ordini`.`id` = `righe`.`idordine`
LEFT JOIN (SELECT `idordine`, MIN(`data_evasione`) AS `data_evasione` FROM `or_righe_ordini` WHERE (`qta` - `qta_evasa`)>0 GROUP BY `idordine`) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine`
INNER JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine`
LEFT JOIN `or_statiordine_lang` ON (`or_statiordine`.`id` = `or_statiordine_lang`.`id_record` AND `or_statiordine_lang`.|lang|)
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idordine` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\Ordini\\Ordine' GROUP BY original_document_id) AS `fattura` ON `fattura`.`idordine` = `or_ordini`.`id`
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'DDT ', `dt_ddt`.`numero_esterno` SEPARATOR ', ') AS `info`, `dt_righe_ddt`.`original_document_id` AS `idddt` FROM `dt_ddt` INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id`=`dt_righe_ddt`.`idddt` WHERE `original_document_type`='Modules\\Ordini\\Ordine' GROUP BY original_document_id) AS `ddt` ON `ddt`.`idddt`=`or_ordini`.`id`
LEFT JOIN (SELECT COUNT(`id`) as emails, `em_emails`.`id_record` FROM `em_emails` INNER JOIN `zz_operations` ON `zz_operations`.`id_email` = `em_emails`.`id` WHERE `id_module` IN (SELECT `id` FROM `zz_modules` WHERE `name` = 'Ordini cliente' AND `zz_operations`.`op` = 'send-email' GROUP BY `em_emails`.`id_record`) AND `zz_operations`.`op` = 'send-email' GROUP BY id_record) AS email ON `email`.`id_record` = `or_ordini`.`id`
WHERE
1=1 |segment(`or_ordini`.`id_segment`)| AND `dir` = 'entrata' |date_period(`or_ordini`.`data`)|
HAVING
2=2
ORDER BY
`data` DESC,
CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `zz_modules`.`name` = 'Ordini cliente';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`or_statiordine_lang`.`title`' WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_views`.`name` = 'icon_title_Stato'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`or_statiordine_lang`.`title`' WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_views`.`name` = 'icon_title_Stato';
-- Allineamento vista Ordini fornitore -- Allineamento vista Ordini fornitore

View File

@ -9,14 +9,3 @@ $has_name = database()->columnExists('zz_groups', 'name');
if ($has_name && $has_nome) { if ($has_name && $has_nome) {
$database->query('ALTER TABLE `zz_groups` DROP `name`'); $database->query('ALTER TABLE `zz_groups` DROP `name`');
} }
// File e cartelle deprecate
$files = [
'modules/interventi/src/API/v1/Articoli.php',
];
foreach ($files as $key => $value) {
$files[$key] = realpath(base_dir().'/'.$value);
}
delete($files);

View File

@ -136,28 +136,4 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES
(1, (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name`='Giacenze sedi') AND `name` = 'Valore'), 'Valore'); (1, (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name`='Giacenze sedi') AND `name` = 'Valore'), 'Valore');
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = "Addebita marca da bollo al cliente" DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = "Addebita marca da bollo al cliente";
-- Aggiunta API per DDT
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
(NULL, 'v1', 'delete', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'update', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'create', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'retrieve', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'delete', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1'),
(NULL, 'v1', 'update', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1'),
(NULL, 'v1', 'create', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1'),
(NULL, 'v1', 'retrieve', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1');
-- Modifica API righe interventi
UPDATE `zz_api_resources` SET `resource` = 'righe_intervento', `class` = 'Modules\\Interventi\\API\\v1\\Righe' WHERE `zz_api_resources`.`resource` = 'articoli_intervento';
UPDATE `zz_api_resources` SET `resource` = 'riga_intervento', `class` = 'Modules\\Interventi\\API\\v1\\Righe' WHERE `zz_api_resources`.`resource` = 'articolo_intervento';
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
(NULL, 'v1', 'update', 'riga_intervento', 'Modules\\Interventi\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'delete', 'riga_intervento', 'Modules\\Interventi\\API\\v1\\Righe', '1');
-- Gestione mappa in plugin attività
INSERT INTO `zz_plugins` (`id`, `name`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Mostra su mappa', (SELECT `id` FROM `zz_modules` WHERE `name`= 'Interventi'), (SELECT `id` FROM `zz_modules` WHERE `name`= 'Interventi'), 'tab_main', 'mappa.php', '1', '0', '0', '', '', NULL, NULL, '', '');
INSERT INTO `zz_plugins_lang` (`id`, `id_lang`, `id_record`, `title`) VALUES (NULL, '1', (SELECT `zz_plugins`.`id` FROM `zz_plugins` WHERE `zz_plugins`.`name`='Mostra su mappa'), 'Mostra su mappa');

14
update/2_5_4.php Normal file
View File

@ -0,0 +1,14 @@
<?php
include_once __DIR__.'/core.php';
// File e cartelle deprecate
$files = [
'modules/interventi/src/API/v1/Articoli.php',
];
foreach ($files as $key => $value) {
$files[$key] = realpath(base_dir().'/'.$value);
}
delete($files);

55
update/2_5_4.sql Normal file
View File

@ -0,0 +1,55 @@
-- Aggiunta API per DDT
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
(NULL, 'v1', 'delete', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'update', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'create', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'retrieve', 'righe_ddt', 'Modules\\DDT\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'delete', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1'),
(NULL, 'v1', 'update', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1'),
(NULL, 'v1', 'create', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1'),
(NULL, 'v1', 'retrieve', 'ddt', 'Modules\\DDT\\API\\v1\\DDTS', '1');
-- Modifica API righe interventi
UPDATE `zz_api_resources` SET `resource` = 'righe_intervento', `class` = 'Modules\\Interventi\\API\\v1\\Righe' WHERE `zz_api_resources`.`resource` = 'articoli_intervento';
UPDATE `zz_api_resources` SET `resource` = 'riga_intervento', `class` = 'Modules\\Interventi\\API\\v1\\Righe' WHERE `zz_api_resources`.`resource` = 'articolo_intervento';
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
(NULL, 'v1', 'update', 'riga_intervento', 'Modules\\Interventi\\API\\v1\\Righe', '1'),
(NULL, 'v1', 'delete', 'riga_intervento', 'Modules\\Interventi\\API\\v1\\Righe', '1');
-- Gestione mappa in plugin attività
INSERT INTO `zz_plugins` (`id`, `name`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Mostra su mappa', (SELECT `id` FROM `zz_modules` WHERE `name`= 'Interventi'), (SELECT `id` FROM `zz_modules` WHERE `name`= 'Interventi'), 'tab_main', 'mappa.php', '1', '0', '0', '', '', NULL, NULL, '', '');
INSERT INTO `zz_plugins_lang` (`id`, `id_lang`, `id_record`, `title`) VALUES (NULL, '1', (SELECT `zz_plugins`.`id` FROM `zz_plugins` WHERE `zz_plugins`.`name`='Mostra su mappa'), 'Mostra su mappa');
-- Aggiunta colonna Agente in Ordini cliente
SELECT @id_module := `id` FROM `zz_modules` WHERE `name` = 'Ordini cliente';
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `avg`, `default`) VALUES
(@id_module, 'Agente', 'agente.ragione_sociale', 15, 1, 0, 0, 0, '', '', 0, 0, 0, 0);
INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES
(1, (SELECT `id` FROM `zz_views` WHERE `name` = 'Agente' AND `id_module` = @id_module), 'Agente');
-- Allineamento vista Ordini cliente
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`or_ordini`
INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id`
INNER JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `an_anagrafiche` AS agente ON `or_ordini`.`idagente` = `agente`.`idanagrafica`
LEFT JOIN (SELECT `idordine`, SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `or_righe_ordini` GROUP BY `idordine`) AS righe ON `or_ordini`.`id` = `righe`.`idordine`
LEFT JOIN (SELECT `idordine`, MIN(`data_evasione`) AS `data_evasione` FROM `or_righe_ordini` WHERE (`qta` - `qta_evasa`)>0 GROUP BY `idordine`) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine`
INNER JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine`
LEFT JOIN `or_statiordine_lang` ON (`or_statiordine`.`id` = `or_statiordine_lang`.`id_record` AND `or_statiordine_lang`.|lang|)
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idordine` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\Ordini\Ordine' GROUP BY original_document_id) AS `fattura` ON `fattura`.`idordine` = `or_ordini`.`id`
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'DDT ', `dt_ddt`.`numero_esterno` SEPARATOR ', ') AS `info`, `dt_righe_ddt`.`original_document_id` AS `idddt` FROM `dt_ddt` INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id`=`dt_righe_ddt`.`idddt` WHERE `original_document_type`='Modules\Ordini\Ordine' GROUP BY original_document_id) AS `ddt` ON `ddt`.`idddt`=`or_ordini`.`id`
LEFT JOIN (SELECT COUNT(`id`) as emails, `em_emails`.`id_record` FROM `em_emails` INNER JOIN `zz_operations` ON `zz_operations`.`id_email` = `em_emails`.`id` WHERE `id_module` IN (SELECT `id` FROM `zz_modules` WHERE `name` = 'Ordini cliente' AND `zz_operations`.`op` = 'send-email' GROUP BY `em_emails`.`id_record`) AND `zz_operations`.`op` = 'send-email' GROUP BY id_record) AS email ON `email`.`id_record` = `or_ordini`.`id`
WHERE
1=1 |segment(`or_ordini`.`id_segment`)| AND `dir` = 'entrata' |date_period(`or_ordini`.`data`)|
HAVING
2=2
ORDER BY
`data` DESC,
CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `zz_modules`.`name` = 'Ordini cliente';