From 760b594e7091b53d859125597c4de90aa1aeaf16 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Tue, 27 Feb 2024 09:59:44 +0100 Subject: [PATCH] Aggiunta tabella dt_aspettobeni_lang --- modules/beni/actions.php | 31 ++++++----------- modules/beni/ajax/select.php | 6 ++-- modules/beni/edit.php | 2 +- modules/beni/init.php | 2 +- plugins/exportFE/src/FatturaElettronica.php | 2 +- templates/ddt/init.php | 2 +- templates/fatture/init.php | 3 +- update/2_4_55.sql | 38 ++++++++++++++++++++- update/tables.php | 1 + 9 files changed, 58 insertions(+), 29 deletions(-) diff --git a/modules/beni/actions.php b/modules/beni/actions.php index 488550ed8..dbbc231ed 100755 --- a/modules/beni/actions.php +++ b/modules/beni/actions.php @@ -23,49 +23,40 @@ switch (post('op')) { case 'update': $descrizione = post('descrizione'); - if ($dbo->fetchNum('SELECT * FROM `dt_aspettobeni` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) { - $dbo->query('UPDATE `dt_aspettobeni` SET `descrizione`='.prepare($descrizione).' WHERE `id`='.prepare($id_record)); + if ($dbo->fetchNum('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`lang`='.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione).' AND `dt_aspettobeni`.`id`!='.prepare($id_record)) == 0) { + $dbo->query('UPDATE `dt_aspettobeni_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record)).' AND `lang`='.prepare(setting('Lingua')); flash()->info(tr('Salvataggio completato.')); } else { - flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [ - '_TYPE_' => 'bene', - ])); + flash()->error(tr("E' già presente un aspetto beni con questa descrizione.")); } - break; case 'add': $descrizione = post('descrizione'); - if ($dbo->fetchNum('SELECT * FROM `dt_aspettobeni` WHERE `descrizione`='.prepare($descrizione)) == 0) { - $dbo->query('INSERT INTO `dt_aspettobeni` (`descrizione`) VALUES ('.prepare($descrizione).')'); - + if ($dbo->fetchNum('SELECT * FROM `dt_aspettobeni_lang` WHERE `name`='.prepare($descrizione)) == 0) { + $dbo->query('INSERT INTO `dt_aspettobeni` (`created_at`) VALUES (NOW())'); $id_record = $dbo->lastInsertedID(); + $dbo->query('INSERT INTO `dt_aspettobeni_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')'); + if (isAjaxRequest()) { echo json_encode(['id' => $id_record, 'text' => $descrizione]); } - flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ - '_TYPE_' => 'bene', - ])); + flash()->info(tr('Aggiunto nuovo Aspetto beni.')); } else { - flash()->error(tr("E' già presente una tipologia di _TYPE_ con la stessa descrizione", [ - '_TYPE_' => 'bene', - ])); + flash()->error(tr("E' già presente un aspetto beni con questa descrizione.")); } break; case 'delete': - $documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idaspettobeni='.prepare($id_record).' - UNION SELECT id FROM co_documenti WHERE idaspettobeni='.prepare($id_record)); + $documenti = $dbo->fetchNum('SELECT `id` FROM `dt_ddt` WHERE `idaspettobeni`='.prepare($id_record).' UNION SELECT `id` FROM `co_documenti` WHERE `idaspettobeni`='.prepare($id_record)); if (isset($id_record) && empty($documenti)) { $dbo->query('DELETE FROM `dt_aspettobeni` WHERE `id`='.prepare($id_record)); - flash()->info(tr('Tipologia di _TYPE_ eliminata con successo.', [ - '_TYPE_' => 'bene', - ])); + flash()->info(tr('Aspetto beni eliminato con successo.')); } else { flash()->error(tr('Sono presenti dei documenti collegati a questo aspetto beni.')); } diff --git a/modules/beni/ajax/select.php b/modules/beni/ajax/select.php index e13b81f43..f428b0845 100755 --- a/modules/beni/ajax/select.php +++ b/modules/beni/ajax/select.php @@ -21,14 +21,14 @@ include_once __DIR__.'/../../../core.php'; switch ($resource) { case 'aspetto-beni': - $query = 'SELECT id, descrizione FROM dt_aspettobeni |where| ORDER BY descrizione ASC'; + $query = 'SELECT `dt_aspettobeni`.`id`, `dt_aspettobeni_lang`.`name` as descrizione FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(setting('Lingua')).') |where| ORDER BY `name` ASC'; foreach ($elements as $element) { - $filter[] = 'id='.prepare($element); + $filter[] = '`dt_aspettobeni`.`id`='.prepare($element); } if (!empty($search)) { - $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); + $search_fields[] = '`name` LIKE '.prepare('%'.$search.'%'); } break; diff --git a/modules/beni/edit.php b/modules/beni/edit.php index 4c755b70e..7a1405aee 100755 --- a/modules/beni/edit.php +++ b/modules/beni/edit.php @@ -34,7 +34,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]} + {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$name$" ]}
diff --git a/modules/beni/init.php b/modules/beni/init.php index f9d9eb060..9c1383f6c 100755 --- a/modules/beni/init.php +++ b/modules/beni/init.php @@ -20,5 +20,5 @@ include_once __DIR__.'/../../core.php'; if (isset($id_record)) { - $record = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` WHERE id='.prepare($id_record)); + $record = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `dt_aspettobeni`.`id`='.prepare($id_record)); } diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 8e745ab0a..d1364ab13 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -1075,7 +1075,7 @@ class FatturaElettronica $database = database(); $causale = $database->fetchOne('SELECT descrizione FROM dt_causalet WHERE id = '.prepare($documento['idcausalet']))['descrizione']; - $aspetto = $database->fetchOne('SELECT descrizione FROM dt_aspettobeni WHERE id = '.prepare($documento['idaspettobeni']))['descrizione']; + $aspetto = $database->fetchOne('SELECT `name` FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `dt_aspettobeni`.`id` = '.prepare($documento['idaspettobeni']))['name']; $result = []; diff --git a/templates/ddt/init.php b/templates/ddt/init.php index 83b50ca61..b6831a2fb 100755 --- a/templates/ddt/init.php +++ b/templates/ddt/init.php @@ -35,7 +35,7 @@ $id_azienda = setting('Azienda predefinita'); $pagamento = Pagamento::find($documento['idpagamento']); $causale = $dbo->fetchOne('SELECT * FROM dt_causalet WHERE id = '.prepare($documento['idcausalet'])); $porto = $dbo->fetchOne('SELECT * FROM dt_porto WHERE id = '.prepare($documento['idporto'])); -$aspetto_beni = $dbo->fetchOne('SELECT * FROM dt_aspettobeni WHERE id = '.prepare($documento['idaspettobeni'])); +$aspetto_beni = $dbo->fetchOne('SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `dt_aspettobeni`.`id` = '.prepare($documento['idaspettobeni'])); $spedizione = $dbo->fetchOne('SELECT * FROM dt_spedizione WHERE id = '.prepare($documento['idspedizione'])); $vettore = $dbo->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare($documento['idvettore'])); diff --git a/templates/fatture/init.php b/templates/fatture/init.php index 36ebc62d9..dd03e500d 100755 --- a/templates/fatture/init.php +++ b/templates/fatture/init.php @@ -36,7 +36,7 @@ $record = $dbo->fetchOne('SELECT *, `co_pagamenti_lang`.`name` AS pagamento, `dt_causalet`.`descrizione` AS causalet, `dt_porto`.`descrizione` AS porto, - `dt_aspettobeni`.`descrizione` AS aspettobeni, + `dt_aspettobeni_lang`.`name` AS aspettobeni, `dt_spedizione`.`descrizione` AS spedizione, `vettore`.`ragione_sociale` AS vettore, `co_banche`.`id` AS id_banca, @@ -57,6 +57,7 @@ FROM LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `co_documenti`.`idcausalet` LEFT JOIN `dt_porto` ON `dt_porto`.`id` = `co_documenti`.`idporto` LEFT JOIN `dt_aspettobeni` ON `dt_aspettobeni`.`id` = `co_documenti`.`idaspettobeni` + LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni_lang`.`id_record` = `dt_aspettobeni`.`id` AND `dt_aspettobeni_lang`.`id_lang` = '.prepare(setting('Lingua')).') LEFT JOIN `dt_spedizione` ON `dt_spedizione`.`id` = `co_documenti`.`idspedizione` WHERE `co_documenti`.`id`='.prepare($id_record)); diff --git a/update/2_4_55.sql b/update/2_4_55.sql index a62fb4ff6..c10fd2f24 100644 --- a/update/2_4_55.sql +++ b/update/2_4_55.sql @@ -799,4 +799,40 @@ WHERE HAVING 2=2" WHERE `name` = 'Categorie documenti'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`do_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Categorie documenti' AND `zz_views`.`name` = 'Descrizione'; -UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`do_categorie`.`id`' WHERE `zz_modules`.`name` = 'Categorie documenti' AND `zz_views`.`name` = 'id'; \ No newline at end of file +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`do_categorie`.`id`' WHERE `zz_modules`.`name` = 'Categorie documenti' AND `zz_views`.`name` = 'id'; + +-- Aggiunta tabella dt_aspettobeni_lang +CREATE TABLE IF NOT EXISTS `dt_aspettobeni_lang` ( + `id` int NOT NULL, + `id_lang` int NOT NULL, + `id_record` int NOT NULL, + `name` VARCHAR(255) NOT NULL +); +ALTER TABLE `dt_aspettobeni_lang` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `dt_aspettobeni_lang` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +INSERT INTO `dt_aspettobeni_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `dt_aspettobeni`; + +ALTER TABLE `dt_aspettobeni` + DROP `descrizione`; + +ALTER TABLE `dt_aspettobeni` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT; + +ALTER TABLE `dt_aspettobeni_lang` ADD CONSTRAINT `dt_aspettobeni_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `dt_aspettobeni`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; + +-- Allineamento vista Aspetto beni +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `dt_aspettobeni` + LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni_lang`.`id_record` = `dt_aspettobeni`.`id` AND `dt_aspettobeni_lang`.`id_lang` = |lang|) +WHERE + 1=1 +HAVING + 2=2" WHERE `name` = 'Aspetto beni'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_aspettobeni_lang`.`name`' WHERE `zz_modules`.`name` = 'Aspetto beni' AND `zz_views`.`name` = 'Descrizione'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_aspettobeni`.`id`' WHERE `zz_modules`.`name` = 'Aspetto beni' AND `zz_views`.`name` = 'id'; \ No newline at end of file diff --git a/update/tables.php b/update/tables.php index 50a00ebf1..a52185845 100755 --- a/update/tables.php +++ b/update/tables.php @@ -63,6 +63,7 @@ return [ 'do_documenti', 'do_permessi', 'dt_aspettobeni', + 'dt_aspettobeni_lang', 'dt_causalet', 'dt_ddt', 'dt_porto',