diff --git a/modules/pagamenti/add.php b/modules/pagamenti/add.php
index 3be6a6c1d..ab6bb58d4 100755
--- a/modules/pagamenti/add.php
+++ b/modules/pagamenti/add.php
@@ -29,7 +29,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "select", "label": "", "name": "codice_modalita_pagamento_fe", "value": "", "values": "query=SELECT codice as id, CONCAT(codice, ' - ', descrizione) AS descrizione FROM fe_modalita_pagamento", "required": 1 ]}
+ {[ "type": "select", "label": "", "name": "codice_modalita_pagamento_fe", "value": "", "values": "query=SELECT `codice` as id, CONCAT(`codice`, ' - ', `name`) AS descrizione FROM `fe_modalita_pagamento` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`=)", "required": 1 ]}
diff --git a/modules/pagamenti/edit.php b/modules/pagamenti/edit.php
index ddf973710..f7ba52057 100755
--- a/modules/pagamenti/edit.php
+++ b/modules/pagamenti/edit.php
@@ -36,7 +36,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "select", "label": "", "name": "codice_modalita_pagamento_fe", "value": "$codice_modalita_pagamento_fe$", "values": "query=SELECT codice as id, CONCAT(codice, ' - ', descrizione) AS descrizione FROM fe_modalita_pagamento", "required": 1, "help": "" ]}
+ {[ "type": "select", "label": "", "name": "codice_modalita_pagamento_fe", "value": "$codice_modalita_pagamento_fe$", "values": "query=SELECT `codice` as id, CONCAT(`codice`, ' - ', `name`) AS descrizione FROM `fe_modalita_pagamento` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`=)", "required": 1, "help": "" ]}
diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php
index 33fa7dadd..77dcd1856 100755
--- a/plugins/importFE/generate.php
+++ b/plugins/importFE/generate.php
@@ -201,7 +201,7 @@ if (!empty($pagamenti)) {
// Scadenze di pagamento
foreach ($rate as $rata) {
- $descrizione = !empty($rata['ModalitaPagamento']) ? $database->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($rata['ModalitaPagamento']))['descrizione'] : '';
+ $descrizione = !empty($rata['ModalitaPagamento']) ? $database->fetchOne('SELECT `name` FROM `fe_modalita_pagamento` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `codice` = '.prepare($rata['ModalitaPagamento']))['descrizione'] : '';
$data = !empty($rata['DataScadenzaPagamento']) ? FatturaElettronica::parseDate($rata['DataScadenzaPagamento']) : '';
echo '
diff --git a/templates/fatture/footer.php b/templates/fatture/footer.php
index 99f31fea5..9a91ac047 100755
--- a/templates/fatture/footer.php
+++ b/templates/fatture/footer.php
@@ -73,7 +73,7 @@ echo "
$rs2 = $dbo->fetchArray('SELECT * FROM `co_scadenziario` WHERE `iddocumento`='.prepare($id_record).' ORDER BY `scadenza` ASC');
if (!empty($rs2)) {
for ($i = 0; $i < sizeof($rs2); ++$i) {
- $pagamento = $dbo->fetchOne('SELECT `fe_modalita_pagamento`.`descrizione` FROM `co_pagamenti` INNER JOIN `fe_modalita_pagamento` ON `fe_modalita_pagamento`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe` WHERE `co_pagamenti`.`id`='.$rs2[$i]['id_pagamento'])['descrizione'];
+ $pagamento = $dbo->fetchOne('SELECT `fe_modalita_pagamento_lang`.`name` FROM `co_pagamenti` INNER JOIN `fe_modalita_pagamento` ON `fe_modalita_pagamento`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `co_pagamenti`.`id`='.$rs2[$i]['id_pagamento'])['descrizione'];
echo '
diff --git a/update/2_4_55.sql b/update/2_4_55.sql
index a36f9d946..2da332967 100644
--- a/update/2_4_55.sql
+++ b/update/2_4_55.sql
@@ -291,20 +291,6 @@ ALTER TABLE `co_pagamenti`
ALTER TABLE `co_pagamenti_lang` ADD CONSTRAINT `co_pagamenti_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `co_pagamenti`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
--- Allineamento vista Pagamenti
-UPDATE `zz_modules` SET `options` = "
-SELECT
- |select|
-FROM
- `co_pagamenti`
- LEFT JOIN (SELECT `fe_modalita_pagamento`.`codice`, CONCAT(`fe_modalita_pagamento`.`codice`, ' - ', `fe_modalita_pagamento`.`descrizione`) AS tipo FROM `fe_modalita_pagamento`) AS pagamenti ON `pagamenti`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe`
- LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND |lang|)
-WHERE
- 1=1
-GROUP BY
- `co_pagamenti_lang`.`name`
-HAVING
- 2=2" WHERE `name` = 'Pagamenti';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`name`' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'COUNT(`co_pagamenti_lang`.`name`)' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'Rate';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti`.`id`' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'id';
@@ -1149,4 +1135,39 @@ WHERE
1=1 AND `em_newsletters`.`deleted_at` IS NULL
HAVING
2=2" WHERE `name` = 'Newsletter';
-UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_templates_lang`.`name`' WHERE `zz_modules`.`name` = 'Newsletter' AND `zz_views`.`name` = 'Template';
\ 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` = '`em_templates_lang`.`name`' WHERE `zz_modules`.`name` = 'Newsletter' AND `zz_views`.`name` = 'Template';
+
+-- Aggiunta tabella fe_modalita_pagamento_lang
+CREATE TABLE IF NOT EXISTS `fe_modalita_pagamento_lang` (
+ `id` int NOT NULL,
+ `id_lang` int NOT NULL,
+ `id_record` varchar(4) NOT NULL,
+ `name` VARCHAR(255) NOT NULL
+);
+ALTER TABLE `fe_modalita_pagamento_lang`
+ ADD PRIMARY KEY (`id`);
+
+ALTER TABLE `fe_modalita_pagamento_lang`
+ MODIFY `id` int NOT NULL AUTO_INCREMENT;
+
+INSERT INTO `fe_modalita_pagamento_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `codice`, `descrizione` FROM `fe_modalita_pagamento`;
+
+ALTER TABLE `fe_modalita_pagamento`
+ DROP `descrizione`;
+
+ALTER TABLE `fe_modalita_pagamento_lang` ADD CONSTRAINT `fe_modalita_pagamento_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `fe_modalita_pagamento`(`codice`) ON DELETE CASCADE ON UPDATE RESTRICT;
+
+-- Allineamento vista Pagamenti
+UPDATE `zz_modules` SET `options` = "
+SELECT
+ |select|
+FROM
+ `co_pagamenti`
+ LEFT JOIN (SELECT `fe_modalita_pagamento`.`codice`, CONCAT(`fe_modalita_pagamento`.`codice`, ' - ', `fe_modalita_pagamento_lang`.`name`) AS tipo FROM `fe_modalita_pagamento` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento`.`codice` = `fe_modalita_pagamento_lang`.`id_record` AND `fe_modalita_pagamento_lang`.|lang|)) AS pagamenti ON `pagamenti`.`codice` = `co_pagamenti`.`codice_modalita_pagamento_fe`
+ LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.|lang|)
+WHERE
+ 1=1
+GROUP BY
+ `co_pagamenti_lang`.`name`
+HAVING
+ 2=2" WHERE `name` = 'Pagamenti';
\ No newline at end of file
diff --git a/update/tables.php b/update/tables.php
index 6f7d75c03..5c696c254 100755
--- a/update/tables.php
+++ b/update/tables.php
@@ -92,6 +92,7 @@ return [
'em_newsletter_receiver',
'fe_causali_pagamento_ritenuta',
'fe_modalita_pagamento',
+ 'fe_modalita_pagamento_lang',
'fe_natura',
'fe_regime_fiscale',
'fe_stati_documento',
|