From 1dda24dbe95bf82714cd44a835404ec2721059ca Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 24 Jan 2019 20:31:01 +0100 Subject: [PATCH] Aggiunto id documento codice cig e codice cup per preventivi --- modules/contratti/actions.php | 26 +++++++++++++-- modules/contratti/edit.php | 2 +- modules/fatture/row-list.php | 24 ++++++++------ modules/preventivi/actions.php | 8 +++++ modules/preventivi/buttons.php | 36 ++++++++++++--------- modules/preventivi/edit.php | 23 +++++++++++++ modules/preventivi/init.php | 2 +- plugins/exportFE/src/FatturaElettronica.php | 18 ++++++++--- update/2_4_6.sql | 11 ++++++- 9 files changed, 117 insertions(+), 33 deletions(-) diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 496e8e9f2..f876017ba 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -58,11 +58,33 @@ switch (post('op')) { $costo_orario = post('costo_orario'); $costo_km = post('costo_km'); $costo_diritto_chiamata = post('costo_diritto_chiamata'); - + + $id_documento_fe = post('id_documento_fe'); $codice_cig = post('codice_cig'); $codice_cup = post('codice_cup'); + - $query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idsede='.prepare($idsede).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', id_documento_fe='.prepare(post('id_documento_fe')).', codice_cig='.prepare($codice_cig).', codice_cup='.prepare($codice_cup).' WHERE id='.prepare($id_record); + $query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', + idsede='.prepare($idsede).', + idstato='.prepare($idstato).', + nome='.prepare($nome).', + idagente='.prepare($idagente).', + idpagamento='.prepare($idpagamento).', + numero='.prepare($numero).', + budget='.prepare($budget).', + idreferente='.prepare($idreferente).', + validita='.prepare($validita).', + data_bozza='.prepare($data_bozza).', + data_accettazione='.prepare($data_accettazione).', + data_rifiuto='.prepare($data_rifiuto).', + data_conclusione='.prepare($data_conclusione).', + rinnovabile='.prepare($rinnovabile).', + giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', + esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', + id_documento_fe='.prepare($id_documento_fe).', + codice_cig='.prepare($codice_cig).', + codice_cup='.prepare($codice_cup).' WHERE id='.prepare($id_record); + // costo_diritto_chiamata='.prepare($costo_diritto_chiamata).', ore_lavoro='.prepare($ore_lavoro).', costo_orario='.prepare($costo_orario).', costo_km='.prepare($costo_km).' $dbo->query($query); diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index ccc70cb2e..b524a2b1c 100644 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -133,7 +133,7 @@ if ($record['stato'] == 'Emessa') { - +

diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 75e44c56e..4736d33f2 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -59,19 +59,23 @@ foreach ($righe as $riga) { //$ref_modulo = Modules::get('Interventi')['id']; //$ref_id = $riga['idintervento']; - $intervento = $dbo->fetchOne('SELECT codice_cig,codice_cup,id_documento_fe FROM in_interventi WHERE id = '.prepare($riga['idintervento'])); $riga['codice_cig'] = $intervento['codice_cig']; $riga['codice_cup'] = $intervento['codice_cup']; $riga['id_documento_fe'] = $intervento['id_documento_fe']; - $delete = 'unlink_intervento'; } // Preventivi elseif (!empty($riga['idpreventivo'])) { //$ref_modulo = Modules::get('Preventivi')['id']; //$ref_id = $riga['idpreventivo']; + + $preventivo = $dbo->fetchOne('SELECT codice_cig,codice_cup,id_documento_fe FROM co_preventivi WHERE id = '.prepare($riga['idpreventivo'])); + $riga['codice_cig'] = $preventivo['codice_cig']; + $riga['codice_cup'] = $preventivo['codice_cup']; + $riga['id_documento_fe'] = $preventivo['id_documento_fe']; + $delete = 'unlink_preventivo'; } // Contratti @@ -104,12 +108,14 @@ foreach ($righe as $riga) { } $extra_riga = ''; - $extra_riga = tr('_DESCRIZIONE_CONTO_ _CODICE_CIG_ _CODICE_CUP_ _ID_DOCUMENTO_', [ - '_DESCRIZIONE_CONTO_' => $riga['descrizione_conto'] ?: null, - '_CODICE_CIG_' => $riga['codice_cig'] ? '
CIG: '.$riga['codice_cig'] : null, - '_CODICE_CUP_' => $riga['codice_cup'] ? '
CUP: '.$riga['codice_cup'] : null, - '_ID_DOCUMENTO_' => $riga['id_documento_fe'] ? '
DOC: '.$riga['id_documento_fe'] : null, - ]); + if (!$riga['is_descrizione']){ + $extra_riga = tr('_DESCRIZIONE_CONTO_ _ID_DOCUMENTO_ _CODICE_CIG_ _CODICE_CUP_ ', [ + '_DESCRIZIONE_CONTO_' => $riga['descrizione_conto'] ?: null, + '_CODICE_CIG_' => $riga['codice_cig'] ? ',CIG: '.$riga['codice_cig'] : null, + '_CODICE_CUP_' => $riga['codice_cup'] ? ',CUP: '.$riga['codice_cup'] : null, + '_ID_DOCUMENTO_' => $riga['id_documento_fe'] ? ' - DOC: '.$riga['id_documento_fe'] : null, + ]); + } echo ' @@ -209,7 +215,7 @@ foreach ($righe as $riga) { if (!$riga instanceof Descrizione) { echo ' '.Translator::numberToLocale($riga->iva).' € -
'.$riga->desc_iva.''; +
'.$riga->desc_iva.''; } echo ' diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index c81bd183c..d06e61878 100644 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -59,6 +59,11 @@ switch (post('op')) { // $costo_km = post('costo_km'); $idiva = post('idiva'); + + $id_documento_fe = post('id_documento_fe'); + $codice_cig = post('codice_cig'); + $codice_cup = post('codice_cup'); + $query = 'UPDATE co_preventivi SET idstato='.prepare($idstato).','. ' nome='.prepare($nome).','. @@ -77,6 +82,9 @@ switch (post('op')) { ' descrizione='.prepare($descrizione).','. ' tipo_sconto_globale='.prepare($tipo_sconto).','. ' sconto_globale='.prepare($sconto).','. + ' id_documento_fe='.prepare($id_documento_fe).','. + ' codice_cig='.prepare($codice_cig).','. + ' codice_cup='.prepare($codice_cup).','. ' validita='.prepare($validita).','. ' idtipointervento='.prepare($idtipointervento).','. ' idiva='.prepare($idiva).' WHERE id='.prepare($id_record); diff --git a/modules/preventivi/buttons.php b/modules/preventivi/buttons.php index 2b9d88934..3ee1ece93 100644 --- a/modules/preventivi/buttons.php +++ b/modules/preventivi/buttons.php @@ -6,26 +6,32 @@ echo' '; if (!in_array($record['stato'], ['Bozza', 'Rifiutato', 'In attesa di conferma'])) { - echo ' - '; + $disabled = ''; } else { echo ' '; + $disabled = 'disabled'; } + +// crea ordine +echo ' +'; + + //duplica preventivo echo '
diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index 6b0e384b4..c0b259aa9 100644 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -117,6 +117,29 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
+ + +
+
+

+
+ +
+
+
+ {[ "type": "text", "label": "", "help": "Obbligatorio per valorizzare CIG/CUP. È possible inserire:
  • N. determina
  • RDO
  • Ordine MEPA
'); ?>","name": "id_documento_fe", "required": 0, "value": "$id_documento_fe$", "maxlength": 20 ]} +
+ +
+ {[ "type": "text", "label": "", "name": "codice_cig", "required": 0, "value": "$codice_cig$", "maxlength": 15 ]} +
+ +
+ {[ "type": "text", "label": "", "name": "codice_cup", "required": 0, "value": "$codice_cup$", "maxlength": 15 ]} +
+
+
+
diff --git a/modules/preventivi/init.php b/modules/preventivi/init.php index 093fdb046..38b49ee06 100644 --- a/modules/preventivi/init.php +++ b/modules/preventivi/init.php @@ -5,5 +5,5 @@ include_once __DIR__.'/../../core.php'; if (isset($id_record)) { $preventivo = Modules\Preventivi\Preventivo::with('stato')->find($id_record); - $record = $dbo->fetchOne('SELECT *, (SELECT descrizione FROM co_statipreventivi WHERE id=idstato) AS stato FROM co_preventivi WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module)); + $record = $dbo->fetchOne('SELECT *, (SELECT tipo FROM an_anagrafiche WHERE idanagrafica = co_preventivi.idanagrafica) AS tipo_anagrafica, (SELECT descrizione FROM co_statipreventivi WHERE id=idstato) AS stato FROM co_preventivi WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module)); } diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 443a0f224..61ca4a493 100644 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -120,12 +120,14 @@ class FatturaElettronica $database = database(); $contratti = $database->fetchArray('SELECT `id_documento_fe`, `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'); + + $preventivi = $database->fetchArray('SELECT `id_documento_fe`, `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'); $interventi = $database->fetchArray('SELECT `id_documento_fe`, `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'); $ordini = $database->fetchArray('SELECT `id_documento_fe`, `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'); - $this->contratti = array_merge($contratti, $interventi, $ordini); + $this->contratti = array_merge($contratti, $preventivi, $interventi, $ordini); } return $this->contratti; @@ -880,15 +882,23 @@ class FatturaElettronica //2.2.1.3 if (!empty($riga['idarticolo'])) { + + $tipo_codice = $database->fetchOne('SELECT `mg_categorie`.`nome` FROM `mg_categorie` INNER JOIN `mg_articoli` ON `mg_categorie`.`id` = `mg_articoli`.`id_categoria` WHERE `mg_articoli`.`id` = '.prepare($riga['idarticolo']))['nome']; + $codice_articolo = [ - 'CodiceTipo' => 'OSM', + 'CodiceTipo' => ($tipo_codice) ? : 'OSM', 'CodiceValore' => $database->fetchOne('SELECT `codice` FROM `mg_articoli` WHERE `id` = '.prepare($riga['idarticolo']))['codice'], ]; $dettaglio['CodiceArticolo'] = $codice_articolo; } - - $dettaglio['Descrizione'] = $riga['descrizione']; + + //Non ammesso ’ + //$descrizione = html_entity_decode($riga['descrizione'], ENT_HTML5, 'UTF-8'); + $descrizione = str_replace(">", " ", $riga['descrizione']); + $descrizione = str_replace("…", "...", $descrizione); + + $dettaglio['Descrizione'] = str_replace("’", " ", $descrizione); $dettaglio['Quantita'] = $riga['qta']; if (!empty($riga['um'])) { diff --git a/update/2_4_6.sql b/update/2_4_6.sql index f2051c185..653bf0fa3 100644 --- a/update/2_4_6.sql +++ b/update/2_4_6.sql @@ -35,4 +35,13 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, ` ALTER TABLE `zz_settings` ADD `help` VARCHAR(255) NOT NULL AFTER `order`; -- Aggiunto help per impostazione tipo cassa -UPDATE `zz_settings` SET `help` = 'Definisce il tipo della rivalsa' WHERE `zz_settings`.`nome` = 'Tipo Cassa'; \ No newline at end of file +UPDATE `zz_settings` SET `help` = 'Definisce il tipo della rivalsa' WHERE `zz_settings`.`nome` = 'Tipo Cassa'; + +-- Aggiorno indirizzo a cui inviare le FE +UPDATE `zz_emails` SET `cc` = 'sdi24@pec.fatturapa.it' WHERE `zz_emails`.`name` = 'PEC' AND `zz_emails`.`cc` = 'sdi01@pec.fatturapa.it'; + +-- Aggiunto id documento codice cig e codice cup per preventivi +ALTER TABLE `co_preventivi` ADD `codice_cig` VARCHAR(15) AFTER `master_revision`, ADD `codice_cup` VARCHAR(15) AFTER `codice_cig`, ADD `id_documento_fe` VARCHAR(20) AFTER `codice_cup`; + +-- Migliorata visualizzazione impostazione +UPDATE `zz_settings` SET `tipo` = 'query=SELECT codice AS id, CONCAT_WS(\' - \', codice, descrizione) AS descrizione FROM fe_causali_pagamento_ritenuta' WHERE `zz_settings`.`nome` = 'Causale ritenuta d\'acconto'; \ No newline at end of file