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`;