diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php
index 8820de286..3b0291751 100644
--- a/modules/ddt/actions.php
+++ b/modules/ddt/actions.php
@@ -88,6 +88,11 @@ switch (post('op')) {
'bollo' => 0,
'rivalsainps' => 0,
'ritenutaacconto' => 0,
+
+ 'id_documento_fe' => post('id_documento_fe'),
+ 'codice_cup' => post('codice_cup'),
+ 'codice_cig' => post('codice_cig'),
+ 'num_item' => post('num_item'),
], ['id' => $id_record]);
$query = 'SELECT descrizione FROM dt_statiddt WHERE id='.prepare($idstatoddt);
@@ -222,6 +227,12 @@ switch (post('op')) {
$ddt = DDT::build($ordine->anagrafica, $tipo, post('data'));
$ddt->idpagamento = $ordine->idpagamento;
+
+ $ddt->id_documento_fe = $ordine->id_documento_fe;
+ $ddt->codice_cup = $ordine->codice_cup;
+ $ddt->codice_cig = $ordine->codice_cig;
+ $ddt->num_item = $ordine->num_item;
+
$ddt->save();
$id_record = $ddt->id;
diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php
index ec19fffae..bfdd3ec65 100644
--- a/modules/ddt/edit.php
+++ b/modules/ddt/edit.php
@@ -204,8 +204,35 @@ $_SESSION['superselect']['idsede_destinazione'] = $record['idsede_destinazione']
-
+
+
+
+
+
+
+
+
+
+ {[ "type": "text", "label": "", "name": "id_documento_fe", "required": 0, "help": "Obbligatorio per valorizzare CIG/CUP. È possible inserire:
- N. determina
- RDO
- Ordine MEPA
'); ?>", "value": "$id_documento_fe$", "maxlength": 20, "readonly": "" ]}
+
+
+
+ {[ "type": "text", "label": "", "name": "num_item", "required": 0, "value": "$num_item$", "maxlength": 15, "readonly": "" ]}
+
+
+
+
+ {[ "type": "text", "label": "", "name": "codice_cig", "required": 0, "value": "$codice_cig$", "maxlength": 15, "readonly": "" ]}
+
+
+
+ {[ "type": "text", "label": "", "name": "codice_cup", "required": 0, "value": "$codice_cup$", "maxlength": 15, "readonly": "" ]}
+
+
+
+
+
diff --git a/modules/ddt/init.php b/modules/ddt/init.php
index 18dce8823..56cdc2302 100644
--- a/modules/ddt/init.php
+++ b/modules/ddt/init.php
@@ -14,11 +14,12 @@ if (isset($id_record)) {
$ddt = DDT::with('tipo', 'stato')->find($id_record);
$record = $dbo->fetchOne('SELECT *, dt_ddt.note, dt_ddt.idpagamento, dt_ddt.id AS idddt, dt_statiddt.descrizione AS `stato`, dt_tipiddt.descrizione AS `descrizione_tipodoc`,
+ (SELECT tipo FROM an_anagrafiche WHERE idanagrafica = dt_ddt.idanagrafica) AS tipo_anagrafica,
(SELECT completato FROM dt_statiddt WHERE dt_statiddt.id=dt_ddt.idstatoddt) AS flag_completato
FROM dt_ddt
- LEFT OUTER JOIN dt_statiddt ON dt_ddt.idstatoddt=dt_statiddt.id
- INNER JOIN an_anagrafiche ON dt_ddt.idanagrafica=an_anagrafiche.idanagrafica
- INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt=dt_tipiddt.id
+ LEFT OUTER JOIN dt_statiddt ON dt_ddt.idstatoddt=dt_statiddt.id
+ INNER JOIN an_anagrafiche ON dt_ddt.idanagrafica=an_anagrafiche.idanagrafica
+ INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt=dt_tipiddt.id
WHERE dt_ddt.id='.prepare($id_record));
if (!empty($record)) {
diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php
index 8369125c1..c93ad0bad 100644
--- a/modules/ordini/actions.php
+++ b/modules/ordini/actions.php
@@ -366,6 +366,12 @@ switch (post('op')) {
$ordine = Ordine::build($preventivo->anagrafica, $tipo, post('data'));
$ordine->idpagamento = $preventivo->idpagamento;
+
+ $ordine->id_documento_fe = $preventivo->id_documento_fe;
+ $ordine->codice_cup = $preventivo->codice_cup;
+ $ordine->codice_cig = $preventivo->codice_cig;
+ $ordine->num_item = $preventivo->num_item;
+
$ordine->save();
$id_record = $ordine->id;
diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php
index 0e4ded6d9..f87ca2a20 100644
--- a/plugins/exportFE/src/FatturaElettronica.php
+++ b/plugins/exportFE/src/FatturaElettronica.php
@@ -120,11 +120,11 @@ class FatturaElettronica
$documento = $this->getDocumento();
$database = database();
- $contratti = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `co_contratti` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idcontratto` = `co_contratti`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL');
+ $contratti = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `co_contratti` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idcontratto` = `co_contratti`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL AND `co_righe_documenti`.`idordine` = 0');
- $preventivi = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `co_preventivi` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idpreventivo` = `co_preventivi`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL');
+ $preventivi = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `co_preventivi` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idpreventivo` = `co_preventivi`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL AND `co_righe_documenti`.`idordine` = 0');
- $interventi = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `in_interventi` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idintervento` = `in_interventi`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL');
+ $interventi = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `in_interventi` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idintervento` = `in_interventi`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL AND `co_righe_documenti`.`idcontratto` = 0 AND `co_righe_documenti`.`idpreventivo` = 0');
$dati_aggiuntivi = $documento->dati_aggiuntivi_fe;
$dati = $dati_aggiuntivi['dati_contratto'] ?: [];
@@ -146,12 +146,14 @@ class FatturaElettronica
$documento = $this->getDocumento();
$database = database();
- $ordini = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `or_ordini` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idordine` = `or_ordini`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL');
+ $ordini = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `or_ordini` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idordine` = `or_ordini`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL AND `co_righe_documenti`.`idddt` = 0');
+
+ $ddt = $database->fetchArray('SELECT `id_documento_fe` AS id_documento, `num_item`, `codice_cig`, `codice_cup` FROM `dt_ddt` INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idddt` = `dt_ddt`.`id` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND `id_documento_fe` IS NOT NULL');
$dati_aggiuntivi = $documento->dati_aggiuntivi_fe;
$dati = $dati_aggiuntivi['dati_ordine'] ?: [];
- $this->ordini = array_merge($ordini, $dati);
+ $this->ordini = array_merge($ordini, $ddt, $dati);
}
return $this->ordini;
diff --git a/update/2_4_11.sql b/update/2_4_11.sql
index 7c61ad21a..d727664ce 100644
--- a/update/2_4_11.sql
+++ b/update/2_4_11.sql
@@ -119,3 +119,6 @@ DELETE FROM `zz_settings` WHERE `nome` = 'apilayer API key for Email';
-- Fatture pro-forma di acquisto
INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pattern`, `is_fiscale`) VALUES (NULL, '15', 'Fatture pro-forma', '1=1', 'WHR', 'PRO-###', '1');
+
+-- Aggiunto codice cig e codice cup per ddt
+ALTER TABLE `dt_ddt` ADD `codice_cig` VARCHAR(15), ADD `codice_cup` VARCHAR(15) AFTER `codice_cig`, ADD `id_documento_fe` VARCHAR(20) AFTER `codice_cup`,ADD `num_item` VARCHAR(15) AFTER `id_documento_fe`;