From b16f3d0b4f41a6c59ddd7695d9978c948d232f6f Mon Sep 17 00:00:00 2001 From: valentina Date: Mon, 21 Oct 2024 13:43:47 +0200 Subject: [PATCH] refactor: aggiunta tipi documento nella tabella fe_tipi_documento e allineamento codice --- modules/segmenti/ajax/select.php | 25 +++++++++++++++++++++---- modules/tipi_documento/edit.php | 2 +- update/2_5_6.sql | 12 ++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/modules/segmenti/ajax/select.php b/modules/segmenti/ajax/select.php index 4f8c7d9f5..a57bc9430 100644 --- a/modules/segmenti/ajax/select.php +++ b/modules/segmenti/ajax/select.php @@ -18,6 +18,7 @@ */ include_once __DIR__.'/../../../core.php'; +use Modules\Segmenti\Segmento; switch ($resource) { case 'segmenti': @@ -27,6 +28,9 @@ switch ($resource) { $is_sezionale = $superselect['is_sezionale']; $for_fe = $superselect['for_fe']; $escludi_id = $superselect['escludi_id']; + $tipo = $dbo->fetchOne('SELECT * FROM fe_tipi_documento WHERE codice = '.prepare($superselect['tipo'])); + $predefined_accredito = Segmento::where('predefined_accredito', 1)->where('id_module', $id_module)->first(); + $predefined_addebito = Segmento::where('predefined_addebito', 1)->where('id_module', $id_module)->first(); if (isset($id_module)) { $query = 'SELECT `zz_segments`.`id`, `zz_segments_lang`.`title` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` |where| ORDER BY `title` ASC'; @@ -34,19 +38,19 @@ switch ($resource) { $where[] = '`zz_segments`.`id_module` = '.prepare($id_module); $where[] = '`zz_group_segment`.`id_gruppo` = '.prepare($user->idgruppo); - if ($is_fiscale != null) { + if ($is_fiscale) { $where[] = '`zz_segments`.`is_fiscale` = '.prepare($is_fiscale); } - if ($is_sezionale != null) { + if ($is_sezionale) { $where[] = '`zz_segments`.`is_sezionale` = '.prepare($is_sezionale); } - if ($for_fe != null) { + if ($for_fe) { $where[] = '`zz_segments`.`for_fe` = '.prepare($for_fe); } - if ($escludi_id != null) { + if ($escludi_id) { $where[] = '`zz_segments`.`id` != '.prepare($escludi_id); } @@ -54,9 +58,22 @@ switch ($resource) { $filter[] = '`zz_segments`.`id`='.prepare($element); } + if ($tipo['is_autofattura']) { + $where[] = '`zz_segments`.`autofatture` = 1'; + } + + if ($tipo['is_nota_credito'] && $predefined_accredito) { + $where[] = '`zz_segments`.`predefined_accredito` = 1'; + } + + if ($tipo['is_nota_debito'] && $predefined_addebito) { + $where[] = '`zz_segments`.`predefined_addebito` = 1'; + } + if (!empty($search)) { $search_fields[] = '`zz_segments_lang`.`title` LIKE '.prepare('%'.$search.'%'); } + } break; diff --git a/modules/tipi_documento/edit.php b/modules/tipi_documento/edit.php index cd02d906b..fa0769fd3 100644 --- a/modules/tipi_documento/edit.php +++ b/modules/tipi_documento/edit.php @@ -59,7 +59,7 @@ $id_module_vendite = Module::where('name', 'Fatture di vendita')->first()->id; echo '
- {[ "type": "select", "label": "'.tr('Sezionale predefinito').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $record['dir'] == 'entrata' ? $id_module_vendite : $id_module_acquisti, 'is_sezionale' => 1]).', "value": "$id_segment$" ]} + {[ "type": "select", "label": "'.tr('Sezionale predefinito').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $record['dir'] == 'entrata' ? $id_module_vendite : $id_module_acquisti, 'is_sezionale' => 1, 'tipo' => $record['codice_tipo_documento_fe']]).', "value": "$id_segment$" ]}
diff --git a/update/2_5_6.sql b/update/2_5_6.sql index adc96a0ee..7c3b40cb2 100644 --- a/update/2_5_6.sql +++ b/update/2_5_6.sql @@ -25,3 +25,15 @@ INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES -- Rimozione impostazioni deprecate per sezionale predefinito autofatture DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Sezionale per autofatture di vendita'; DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Sezionale per autofatture di acquisto'; + +-- Aggiunta flag is_autofattura, is_nota_debito e is_nota_credito in fe_tipi_documento +ALTER TABLE `fe_tipi_documento` ADD `is_autofattura` INT NOT NULL DEFAULT '0' AFTER `name`, ADD `is_nota_credito` INT NOT NULL DEFAULT '0' AFTER `is_autofattura`, ADD `is_nota_debito` INT NOT NULL DEFAULT '0' AFTER `is_nota_credito`; +UPDATE `fe_tipi_documento` SET `is_nota_credito` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD04'; +UPDATE `fe_tipi_documento` SET `is_nota_debito` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD05'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD16'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD17'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD18'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD19'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD20'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD21'; +UPDATE `fe_tipi_documento` SET `is_autofattura` = 1 WHERE `fe_tipi_documento`.`codice` = 'TD28'; \ No newline at end of file