diff --git a/CHANGELOG.md b/CHANGELOG.md index eb1692e6d..395322bb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,6 @@ Tutti i maggiori cambiamenti di questo progetto saranno documentati in questo fi Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release. -- [2.4.5 (2019-01-10)](#245-2019-01-10) - - [Aggiunto (Added)](#aggiunto-added) - - [Modificato (Changed)](#modificato-changed) - - [Fixed](#fixed) - [2.4.4 (2018-12-12)](#244-2018-12-12) - [Aggiunto (Added)](#aggiunto-added) - [Fixed](#fixed) @@ -48,33 +44,12 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - [Fixed](#fixed-7) -## 2.4.5 (2019-01-10) - -### Aggiunto (Added) - - - Introduzione dello split payment - - Introduzione dei campi Nome e Cognome per le anagrafiche - - Introduzione della possibilità di non verificare il certificato SSL per gli account email - - Introduzione calcolo del guadagno in fase di aggiunta righe nei documenti - -### Modificato (Changed) - - - Miglioramento della generazione xml per le Fatture Elettroniche - - Miglioramento procedura importazione xml per le Fatture Elettroniche - - Gestite righe di tipo descrizione nelle Fatture Elettroniche - -### Fixed - - - Fix calcolo codice intervento - - Fix dei filtri per la stampa del riepilogo interventi - - Risolti altri bug minori - ## 2.4.4 (2018-12-12) ### Aggiunto (Added) - Controllo sulla presenza di personalizzazioni nel modulo **Aggiornamenti** - - Stati multipli per le Fatture Elettroniche (per ampliamenti futuri) + - Stati multipli per la Fatture Elettroniche (per ampliamenti futuri) ### Fixed diff --git a/assets/src/js/custom.js b/assets/src/js/custom.js index 79bd20a51..3d68bb649 100644 --- a/assets/src/js/custom.js +++ b/assets/src/js/custom.js @@ -56,11 +56,4 @@ $(document).ready(function () { }, 350); }); - // Forza l'evento "blur" nei campi di testo per formattare i numeri con - // jquery inputmask prima del submit - setTimeout( function(){ - $('form').on('submit', function(){ - $('input').trigger('blur'); - }); - }, 1000 ); }); diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 71282b96b..bec55752b 100644 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -39,7 +39,7 @@ if (!$cliente) {
- {[ "type": "text", "label": "", "name": "ragione_sociale", "required": 1, "value": "$ragione_sociale$", "extra": "autocomplete=\"off\"" ]} + {[ "type": "text", "label": "", "name": "ragione_sociale", "required": 1, "value": "$ragione_sociale$" ]}
@@ -54,11 +54,11 @@ if (!$cliente) {
- {[ "type": "text", "label": "", "name": "nome", "required": 0, "value": "$nome$", "extra": "autocomplete=\"off\"" ]} + {[ "type": "text", "label": "", "name": "nome", "required": 0, "value": "$nome$" ]}
- {[ "type": "text", "label": "", "name": "cognome", "required": 0, "value": "$cognome$", "extra": "autocomplete=\"off\"" ]} + {[ "type": "text", "label": "", "name": "cognome", "required": 0, "value": "$cognome$" ]}
@@ -95,7 +95,6 @@ if (!$cliente) {
  • '.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'
  • '.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'
  • @@ -107,11 +106,6 @@ if (!$cliente) { } ?> {[ "type": "text", "label": "", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": , "extra": "", "help": "", "readonly": "sedeLegale->nazione->iso2 != 'IT'); ?>" ]} -======= - $help_text = 'Attenzione: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:
    • Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri
    • Azienda (B2B) - Codice Destinatario, 7 caratteri
    • Privato (B2C) - viene utilizzato il Codice Fiscale
    '.((in_array($id_azienda, $tipi_anagrafica)) ? '

    N.B. non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell\'Agenzia Entrate (SDI)

    ' : '').''; - ?> - {[ "type": "text", "label": "", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": , "extra": "", "help": "", "readonly": "sedeLegale->nazione->iso2 != 'IT'); ?>" ]} ->>>>>>> master
@@ -458,14 +452,7 @@ if (!empty($google)) {
- - - +
@@ -612,7 +599,7 @@ if (!empty($elementi)) { $modulo = 'Contratti'; } elseif (in_array($elemento['tipo_documento'], ['Ordine cliente', 'Ordine fornitore'])) { $modulo = ($elemento['dir'] == 'entrata') ? 'Ordini cliente' : 'Ordini fornitore'; - } elseif (in_array($elemento['tipo_documento'], ['Ddt in uscita', 'Ddt in entrata'])) { + } elseif (in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto'])) { $modulo = ($elemento['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto'; } else { $modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto'; @@ -673,26 +660,23 @@ if (empty($record['deleted_at'])) { }); // Abilito solo ragione sociale oppure solo nome-cognome in base a cosa compilo - $('#nome, #cognome').bind("keyup change", function(e) { + $('#nome, #cognome').keyup(function(){ if ($('#nome').val() == '' && $('#cognome').val() == '' ){ $('#nome, #cognome').prop('disabled', true).prop('required', false); $('#ragione_sociale').prop('disabled', false).prop('required', true); - $('#ragione_sociale').focus(); }else{ $('#nome, #cognome').prop('disabled', false).prop('required', true); $('#ragione_sociale').prop('disabled', true).prop('required', false); } }); - $('#ragione_sociale').bind("keyup change", function(e) { + $('#ragione_sociale').keyup(function(){ if ($('#ragione_sociale').val() == '' ){ $('#nome, #cognome').prop('disabled', false).prop('required', true); $('#ragione_sociale').prop('disabled', true).prop('required', false); - $('#nome').focus(); }else{ $('#nome, #cognome').prop('disabled', true).prop('required', false); $('#ragione_sociale').prop('disabled', false).prop('required', true); - $('#ragione_sociale').focus(); } }); diff --git a/modules/anagrafiche/import.php b/modules/anagrafiche/import.php index 446fe3571..a82907a3d 100644 --- a/modules/anagrafiche/import.php +++ b/modules/anagrafiche/import.php @@ -63,9 +63,7 @@ switch (post('op')) { // Ricerca di eventuale anagrafica corrispondente if (!empty($primary_key)) { - //impedisco di aggiornare la mia anagrafica azienda - if ($dati_anagrafica[$primary_key] != setting('Azienda predefinita')) - $anagrafica = Anagrafica::where($primary_key, '=', $dati_anagrafica[$primary_key])->first(); + $anagrafica = Anagrafica::where($primary_key, '=', $dati_anagrafica[$primary_key])->first(); } if (empty($anagrafica)) { diff --git a/modules/contratti/ajax/select.php b/modules/contratti/ajax/select.php index f2710e169..8c346d6a1 100644 --- a/modules/contratti/ajax/select.php +++ b/modules/contratti/ajax/select.php @@ -4,7 +4,7 @@ include_once __DIR__.'/../../../core.php'; switch ($resource) { case 'contratti': - $query = 'SELECT co_contratti.id AS id, CONCAT("Contratto ", numero, " del ", DATE_FORMAT(data_bozza, "%d/%m/%Y"), " - ", co_contratti.nome, " [", (SELECT `descrizione` FROM `co_staticontratti` WHERE `co_staticontratti`.`id` = `idstato`) , "]") AS descrizione, (SELECT SUM(subtotale) FROM co_righe_contratti WHERE idcontratto=co_contratti.id) AS totale, (SELECT SUM(sconto) FROM co_righe_contratti WHERE idcontratto=co_contratti.id) AS sconto, (SELECT COUNT(id) FROM co_righe_contratti WHERE idcontratto=co_contratti.id) AS n_righe FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id'; + $query = 'SELECT co_contratti.id AS id, CONCAT("Contratto ", numero, " del ", DATE_FORMAT(data_bozza, "%d/%m/%Y"), " - ", nome, " [", (SELECT `descrizione` FROM `co_staticontratti` WHERE `co_staticontratti`.`id` = `idstato`) , "]") AS descrizione, (SELECT SUM(subtotale) FROM co_righe_contratti WHERE idcontratto=co_contratti.id) AS totale, (SELECT SUM(sconto) FROM co_righe_contratti WHERE idcontratto=co_contratti.id) AS sconto, (SELECT COUNT(id) FROM co_righe_contratti WHERE idcontratto=co_contratti.id) AS n_righe FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id'; foreach ($elements as $element) { $filter[] = 'id='.prepare($element); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 5a2297369..433de0ab6 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -878,7 +878,7 @@ switch (post('op')) { // Inserimento riga normale else { - $dbo->query('INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_descrizione, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, sconto_globale, idiva, desc_iva, iva, iva_indetraibile, um, qta, idconto, `order`) values('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($rs_righe[$i]['is_descrizione']).', '.prepare($rs_righe[$i]['descrizione']).', '.prepare($rs_righe[$i]['subtotale']).', '.prepare($rs_righe[$i]['sconto']).', '.prepare($rs_righe[$i]['sconto_unitario']).', '.prepare($rs_righe[$i]['tipo_sconto']).', '.prepare($rs_righe[$i]['sconto_globale']).', '.prepare($rs_righe[$i]['idiva']).', '.prepare($rs_righe[$i]['desc_iva']).', '.prepare($rs_righe[$i]['iva']).', '.prepare($rs_righe[$i]['iva_indetraibile']).', '.prepare($rs_righe[$i]['um']).', '.prepare($rs_righe[$i]['qta']).', '.prepare($idconto).', '.prepare($rs_righe[$i]['order']).')'); + $dbo->query('INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_descrizione, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, sconto_globale, idiva, desc_iva, iva, iva_indetraibile, um, qta, `order`) values('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($rs_righe[$i]['is_descrizione']).', '.prepare($rs_righe[$i]['descrizione']).', '.prepare($rs_righe[$i]['subtotale']).', '.prepare($rs_righe[$i]['sconto']).', '.prepare($rs_righe[$i]['sconto_unitario']).', '.prepare($rs_righe[$i]['tipo_sconto']).', '.prepare($rs_righe[$i]['sconto_globale']).', '.prepare($rs_righe[$i]['idiva']).', '.prepare($rs_righe[$i]['desc_iva']).', '.prepare($rs_righe[$i]['iva']).', '.prepare($rs_righe[$i]['iva_indetraibile']).', '.prepare($rs_righe[$i]['um']).', '.prepare($rs_righe[$i]['qta']).', '.prepare($rs_righe[$i]['order']).')'); } } diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index ea1d73579..bff385852 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -35,16 +35,16 @@ if ($dir == 'entrata') { fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia, id_nazione, tipo FROM an_anagrafiche WHERE idanagrafica='.prepare($record['idanagrafica'])); + $rs2 = $dbo->fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia, id_nazione FROM an_anagrafiche WHERE idanagrafica='.prepare($record['idanagrafica'])); $campi_mancanti = []; - - if ($rs2[0]['codice_fiscale'] == '' and ($rs2[0]['tipo'] == 'Privato' or $rs2[0]['tipo'] == 'Ente pubblico')) { - array_push($campi_mancanti, 'Codice fiscale'); - } - else if ($rs2[0]['piva'] == '') { + + if ($rs2[0]['piva'] == '') { array_push($campi_mancanti, 'Partita IVA'); } - + /*if ($rs2[0]['codice_fiscale'] == '') { + array_push($campi_mancanti, 'Codice fiscale'); + } + */ if ($rs2[0]['citta'] == '') { array_push($campi_mancanti, 'Città'); } diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index e52cf7fd5..9bf4e0937 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -33,17 +33,25 @@ foreach ($righe as $riga) { $riga['sconto'] = abs($riga['sconto']); $riga['iva'] = abs($riga['iva']); - if (empty($riga['is_descrizione'])) { - $riga['descrizione_conto'] = $dbo->fetchOne('SELECT descrizione FROM co_pianodeiconti3 WHERE id = '.prepare($riga['idconto']))['descrizione']; - } - $extra = ''; $ref_modulo = null; $ref_id = null; + // Preventivi + if (!empty($riga['idpreventivo'])) { + $delete = 'unlink_preventivo'; + } + // Contratti + elseif (!empty($riga['idcontratto'])) { + $delete = 'unlink_contratto'; + } + // Intervento + elseif (!empty($riga['idintervento'])) { + $delete = 'unlink_intervento'; + } // Articoli - if ($riga instanceof Articolo) { + elseif ($riga instanceof Articolo) { $ref_modulo = Modules::get('Articoli')['id']; $ref_id = $riga['idarticolo']; @@ -54,30 +62,6 @@ foreach ($righe as $riga) { $extra = ''; $mancanti = 0; } - // Intervento - elseif (!empty($riga['idintervento'])) { - //$ref_modulo = Modules::get('Interventi')['id']; - //$ref_id = $riga['idintervento']; - $delete = 'unlink_intervento'; - } - // Preventivi - elseif (!empty($riga['idpreventivo'])) { - //$ref_modulo = Modules::get('Preventivi')['id']; - //$ref_id = $riga['idpreventivo']; - $delete = 'unlink_preventivo'; - } - // Contratti - elseif (!empty($riga['idcontratto'])) { - //$ref_modulo = Modules::get('Contratti')['id']; - //$ref_id = $riga['idcontratto']; - - $contratto = $dbo->fetchOne('SELECT codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($riga['idcontratto'])); - $riga['codice_cig'] = $contratto['codice_cig']; - $riga['codice_cup'] = $contratto['codice_cup']; - $riga['id_documento_fe'] = $contratto['id_documento_fe']; - - $delete = 'unlink_contratto'; - } // Righe generiche else { $delete = 'unlink_riga'; @@ -95,19 +79,11 @@ 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, - ]); - echo ' '.Modules::link($ref_modulo, $ref_id, $riga['descrizione']).' - '.$extra_riga.''; + '.$riga['descrizione_conto'].''; if (!empty($riga['abilita_serial'])) { if (!empty($mancanti)) { @@ -135,7 +111,7 @@ foreach ($righe as $riga) {
'.Modules::link('Fatture di vendita', $record['ref_documento'], $text, $text); } - $ref = doc_references($riga, $dir, ['iddocumento']); + $ref = doc_references($r, $dir, ['iddocumento']); if (!empty($ref)) { echo '
'.Modules::link($ref['module'], $ref['id'], $ref['description'], $ref['description']); diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 9fca11578..d80c5f4ef 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -141,44 +141,34 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
fetchOne('SELECT codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($record['idcontratto'])); - $record['id_documento_fe'] = $contratto['id_documento_fe']; - $record['codice_cup'] = $contratto['codice_cup']; - $record['codice_cig'] = $contratto['codice_cig']; - } - +// Visualizzo solo se l'attività non è già collegata ad un contratto +if (empty($record['idcontratto'])) { ?>
-

- - -

- +

- {[ "type": "", "label": "", "name": "id_documento_fe", "required": 0, "value": "", "maxlength": 20, "readonly": "", "extra": "" ]} + {[ "type": "text", "label": "", "name": "id_documento_fe", "required": 0, "value": "$id_documento_fe$", "maxlength": 20, "readonly": "" ]}
- {[ "type": "", "label": "", "name": "codice_cig", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]} + {[ "type": "text", "label": "", "name": "codice_cig", "required": 0, "value": "$codice_cig$", "maxlength": 15, "readonly": "" ]}
- {[ "type": "", "label": "", "name": "codice_cup", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]} + {[ "type": "text", "label": "", "name": "codice_cup", "required": 0, "value": "$codice_cup$", "maxlength": 15, "readonly": "" ]}
- +
diff --git a/modules/my_impianti/actions.php b/modules/my_impianti/actions.php index 6f0ce0c57..870271766 100644 --- a/modules/my_impianti/actions.php +++ b/modules/my_impianti/actions.php @@ -77,10 +77,9 @@ switch ($op) { $idanagrafica = post('idanagrafica'); $nome = post('nome'); $idtecnico = post('idtecnico'); - $idsede = post('idsede'); if (!empty($matricola)) { - $dbo->query('INSERT INTO my_impianti(matricola, idanagrafica, nome, data, idtecnico, idsede) VALUES ('.prepare($matricola).', '.prepare($idanagrafica).', '.prepare($nome).', NOW(), '.prepare($idtecnico).', '.prepare($idsede).')'); + $dbo->query('INSERT INTO my_impianti(matricola, idanagrafica, nome, data, idtecnico) VALUES ('.prepare($matricola).', '.prepare($idanagrafica).', '.prepare($nome).', NOW(), '.prepare($idtecnico).')'); $id_record = $dbo->lastInsertedID(); diff --git a/modules/ordini/buttons.php b/modules/ordini/buttons.php index 9681ab6fd..6519ca656 100644 --- a/modules/ordini/buttons.php +++ b/modules/ordini/buttons.php @@ -2,7 +2,7 @@ include_once __DIR__.'/../../core.php'; -if (!in_array($record['stato'], ['Fatturato'])) { +if (!in_array($record['stato'], ['Evaso', 'Fatturato'])) { echo '
@@ -338,10 +338,10 @@ include_once __DIR__.'/../../core.php'; $('#bs-popup #modello_primanota').change(function(){ if ($(this).val()!=''){ - $('#btn_crea_modello').html(' '+''); + $('#btn_crea_modello').text(''); $('#bs-popup #idmastrino').val($(this).val()); }else{ - $('#btn_crea_modello').html(' '+''); + $('#btn_crea_modello').text(''); $('#bs-popup #idmastrino').val(0); } diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 9b49cc249..e37c84d27 100644 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -657,8 +657,7 @@ class FatturaElettronica public function getRighe() { if (empty($this->righe)) { - //AND is_descrizione = 0 - $this->righe = database()->fetchArray('SELECT * FROM `co_righe_documenti` WHERE `sconto_globale` = 0 AND `iddocumento` = '.prepare($this->getDocumento()['id'])); + $this->righe = database()->fetchArray('SELECT * FROM `co_righe_documenti` WHERE `sconto_globale` = 0 AND is_descrizione = 0 AND `iddocumento` = '.prepare($this->getDocumento()['id'])); } return $this->righe; @@ -967,28 +966,15 @@ class FatturaElettronica if (!empty($anagrafica['codice_fiscale'])) { $result['CodiceFiscale'] = $anagrafica['codice_fiscale']; } - - if (!empty($anagrafica['nome']) or !empty($anagrafica['cognome'])){ - - $result['Anagrafica'] = [ - //'Denominazione' => $anagrafica['ragione_sociale'], - 'Nome' => $anagrafica['nome'], - 'Cognome' => $anagrafica['cognome'], - // TODO: 'Titolo' => $anagrafica['ragione_sociale'], - // TODO: CodEORI - ]; - - - }else{ - $result['Anagrafica'] = [ - 'Denominazione' => $anagrafica['ragione_sociale'], - //'Nome' => $anagrafica['nome'], - //'Cognome' => $anagrafica['cognome'], - // TODO: 'Titolo' => $anagrafica['ragione_sociale'], - // TODO: CodEORI - ]; - } - + + $result['Anagrafica'] = [ + 'Denominazione' => $anagrafica['ragione_sociale'], + // TODO: 'Nome' => $azienda['ragione_sociale'], + // TODO: 'Cognome' => $azienda['ragione_sociale'], + // TODO: 'Titolo' => $azienda['ragione_sociale'], + // TODO: CodEORI + ]; + // Informazioni specifiche azienda if ($azienda) { $result['RegimeFiscale'] = setting('Regime Fiscale'); @@ -1206,12 +1192,7 @@ class FatturaElettronica // Importo Totale Documento (2.1.1.9) // Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario / committente -<<<<<<< HEAD $result['ImportoTotaleDocumento'] = $fattura->netto; -======= - $fattura = Modules\Fatture\Fattura::find($documento['id']); - $result['ImportoTotaleDocumento'] = abs($fattura->netto); ->>>>>>> master return $result; } @@ -1405,14 +1386,6 @@ class FatturaElettronica $riga['subtotale'] = abs($riga['subtotale']); $riga['qta'] = abs($riga['qta']); $riga['sconto'] = abs($riga['sconto']); - - //Fix per righe di tipo descrizione, copio idiva dalla prima riga del documento che non è di tipo descrizione, riportando di conseguenza eventuali % e/o nature - if (!empty($riga['is_descrizione'])){ - $riga['idiva'] = $database->fetchOne('SELECT `idiva` FROM `co_righe_documenti` WHERE `is_descrizione` = 0 AND `iddocumento` = '.prepare($documento['id']))['idiva']; - } - - //Fix per qta, deve sempre essere impostata almeno a 1 - $riga['qta'] = (!empty($riga['qta'])) ? $riga['qta'] : 1; $prezzo_unitario = $riga['subtotale'] / $riga['qta']; $prezzo_totale = $riga['subtotale'] - $riga['sconto']; @@ -1488,22 +1461,7 @@ class FatturaElettronica if (!empty($riga['riferimento_amministrazione'])) { $dettaglio['RiferimentoAmministrazione'] = $riga['riferimento_amministrazione']; } - - - // AltriDatiGestionali (2.2.1.16) - Ritenuta ENASARCO - $riga['ritenutaenasarco'] = floatval($riga['ritenutaenasarco']); - if (!empty($riga['ritenutaenasarco'])) { - - $ritenutaenasarco = [ - 'TipoDato' => 'CASSA-PREV', - 'RiferimentoTesto' => 'ENASARCO - TC07', - 'RiferimentoNumero' => $riga['ritenutaenasarco'], - ]; - $dettaglio['AltriDatiGestionali'] = $ritenutaenasarco; - } - - $result[] = [ 'DettaglioLinee' => $dettaglio, ]; @@ -1515,8 +1473,8 @@ class FatturaElettronica foreach ($riepiloghi_percentuale as $riepilogo) { $iva = [ 'AliquotaIVA' => $riepilogo['percentuale'], - 'ImponibileImporto' => abs($riepilogo['totale']), - 'Imposta' => abs($riepilogo['iva']), + 'ImponibileImporto' => $riepilogo['totale'], + 'Imposta' => $riepilogo['iva'], 'EsigibilitaIVA' => $riepilogo['esigibilita'], ]; @@ -1543,8 +1501,8 @@ class FatturaElettronica $iva = [ 'AliquotaIVA' => 0, 'Natura' => $riepilogo['codice_natura_fe'], - 'ImponibileImporto' => abs($riepilogo['totale']), - 'Imposta' => abs($riepilogo['iva']), + 'ImponibileImporto' => $riepilogo['totale'], + 'Imposta' => $riepilogo['iva'], 'EsigibilitaIVA' => $riepilogo['esigibilita'], ]; @@ -1583,7 +1541,7 @@ class FatturaElettronica $pagamento = [ 'ModalitaPagamento' => $co_pagamenti['codice_modalita_pagamento_fe'], 'DataScadenzaPagamento' => $scadenza['scadenza'], - 'ImportoPagamento' => abs($scadenza['da_pagare']), + 'ImportoPagamento' => $scadenza['da_pagare'], ]; if (!empty($documento['idbanca'])) { @@ -1598,10 +1556,12 @@ class FatturaElettronica $pagamento['BIC'] = $co_banche['bic']; } } - - $result[]['DettaglioPagamento'] = $pagamento; } + $result[] = [ + 'DettaglioPagamento' => $pagamento, + ]; + return $result; } diff --git a/plugins/importFE/actions.php b/plugins/importFE/actions.php index 32fd53368..e875fb8e6 100644 --- a/plugins/importFE/actions.php +++ b/plugins/importFE/actions.php @@ -43,7 +43,7 @@ switch (filter('op')) { case 'generate': $fattura_pa = new FatturaElettronica(post('filename')); - $id_record = $fattura_pa->saveFattura(post('pagamento'), post('id_segment'), post('id_tipo') ); + $id_record = $fattura_pa->saveFattura(post('pagamento'), post('id_segment')); $fattura_pa->saveRighe(post('articoli'), post('iva'), post('conto')); $fattura_pa->getFattura()->updateSconto(); diff --git a/plugins/importFE/edit.php b/plugins/importFE/edit.php index 253d20aee..93d0e06c0 100644 --- a/plugins/importFE/edit.php +++ b/plugins/importFE/edit.php @@ -74,7 +74,7 @@ echo '
diff --git a/plugins/importFE/rows.php b/plugins/importFE/rows.php index 7c50a48ec..b8d2ec747 100644 --- a/plugins/importFE/rows.php +++ b/plugins/importFE/rows.php @@ -27,7 +27,6 @@ $citta = $sede['Comune']; $provincia = $sede['Provincia']; echo ' -<<<<<<< HEAD

'. $ragione_sociale.'
@@ -36,89 +35,33 @@ echo ' '.$cap.' '.$citta.' ('.$provincia.')


'; -======= -
-
-

'. - $ragione_sociale.'
- - '.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'
') : '').' - '.(!empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'
') : '').' - '.$cap.' '.$citta.' ('.$provincia.')
-
-

-
'; -echo ' -
-

'.$fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['Numero'].'
- - '.database()->fetchOne('SELECT CONCAT("('.$fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['TipoDocumento'].') ", descrizione) AS descrizione FROM fe_tipi_documento WHERE codice = '.prepare($fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['TipoDocumento']))['descrizione'].' -
'.Translator::dateToLocale($fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['Data']).' -
'.$fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['Divisa'].' -
-

-
-
'; -// Se il blocco DatiPagamento è valorizzato (opzionale) -if (!empty($fattura_pa->getBody()['DatiPagamento'])){ - - $pagamenti = $fattura_pa->getBody()['DatiPagamento']; - - $metodi = $pagamenti['DettaglioPagamento']; - $metodi = isset($metodi[0]) ? $metodi : [$metodi]; - $codice_modalita_pagamento = $metodi[0]['ModalitaPagamento']; - - echo ' -

'.tr('Pagamento').'

- -

'.tr('La fattura importata presenta _NUM_ rat_E_ di pagamento con le seguenti scadenze', [ - '_NUM_' => count($metodi), - '_E_' => ((count($metodi)>1) ? 'e': 'a'), - ]).':

-
    '; - - // Scadenze di pagamento - foreach ($metodi as $metodo) { - - echo ' -
  1. '; - - //DataScadenzaPagamento è un nodo opzionale per il blocco DatiPagamento - if (!empty($metodo['DataScadenzaPagamento'])){ - echo Translator::dateToLocale($metodo['DataScadenzaPagamento']).' '; - } - - echo Translator::numberToLocale($metodo['ImportoPagamento']).' € '; - echo '('.((!empty($metodo['ModalitaPagamento'])) ? database()->fetchOne('SELECT descrizione FROM fe_modalita_pagamento WHERE codice = '.prepare($metodo['ModalitaPagamento']))['descrizione'] : '' ).')'; - - - echo ' -
  2. '; - } - - echo ' -
'; - -} ->>>>>>> master - - -// Tipo del documento -$codice_tipo_documento_fe = (intval(database()->fetchNum('SELECT id FROM co_tipidocumento WHERE codice_tipo_documento_fe = '.prepare($fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['TipoDocumento']).''))) ? $fattura_pa->getBody()['DatiGenerali']['DatiGeneraliDocumento']['TipoDocumento'] : '%'; -$query = 'SELECT id, CONCAT (descrizione, IF((codice_tipo_documento_fe IS NULL), \'\', CONCAT( \' (\', codice_tipo_documento_fe, \')\' ) )) as descrizione FROM co_tipidocumento WHERE dir = \'uscita\' AND codice_tipo_documento_fe LIKE '.prepare($codice_tipo_documento_fe); - -echo ' - {[ "type": "select", "label": "'.tr('Tipo fattura').'", "name": "id_tipo", "required": 1, "values": "query='.$query.'" ]}'; +// Pagamenti +$pagamenti = $fattura_pa->getBody()['DatiPagamento']; +$metodi = $pagamenti['DettaglioPagamento']; +$metodi = isset($metodi[0]) ? $metodi : [$metodi]; // prc '.($pagamenti['CondizioniPagamento'] == 'TP01' ? '!' : '').'= 100 AND -$query = 'SELECT id, CONCAT (descrizione, IF((codice_modalita_pagamento_fe IS NULL), \"\", CONCAT( \" (\", codice_modalita_pagamento_fe, \")\" ) )) as descrizione FROM co_pagamenti'; -if (!empty($codice_modalita_pagamento)) { - $query .= ' WHERE codice_modalita_pagamento_fe = '.prepare($codice_modalita_pagamento); +$query = 'SELECT id, descrizione FROM co_pagamenti WHERE codice_modalita_pagamento_fe = '.prepare($metodi[0]['ModalitaPagamento']).' GROUP BY descrizione ORDER BY descrizione ASC'; + +echo ' +

'.tr('Pagamento').'

+ +

'.tr('La fattura importata presenta _NUM_ rate di pagamento con le seguenti scadenze', [ + '_NUM_' => count($metodi), + ]).':

+
    '; + +// Scadenze di pagamento +foreach ($metodi as $metodo) { + echo ' +
  • '.Translator::dateToLocale($metodo['DataScadenzaPagamento']).'
  • '; } -$query .= ' GROUP BY descrizione ORDER BY descrizione ASC'; - + +echo ' +
'; + echo ' {[ "type": "select", "label": "'.tr('Pagamento').'", "name": "pagamento", "required": 1, "values": "query='.$query.'" ]}'; diff --git a/plugins/importFE/src/FatturaElettronica.php b/plugins/importFE/src/FatturaElettronica.php index d0430e664..b6654ae4d 100644 --- a/plugins/importFE/src/FatturaElettronica.php +++ b/plugins/importFE/src/FatturaElettronica.php @@ -137,10 +137,11 @@ class FatturaElettronica // Informazioni sull'anagrafica $REA = $xml['IscrizioneREA']; if (!empty($REA)) { - if (!empty($REA['Ufficio']) and !empty($REA['NumeroREA'])) { - $anagrafica->codicerea = $REA['Ufficio'].'-'.$REA['NumeroREA']; - } - + + if (!empty($REA['Ufficio']) and !empty($REA['NumeroREA'])) { + $anagrafica->codicerea = $REA['Ufficio'].'-'.$REA['NumeroREA']; + } + if (!empty($REA['CapitaleSociale'])) { $anagrafica->capitale_sociale = $REA['CapitaleSociale']; } @@ -294,28 +295,18 @@ class FatturaElettronica * * @return int */ - public function saveFattura($id_pagamento, $id_sezionale, $id_tipo) + public function saveFattura($id_pagamento, $id_sezionale) { - - - $anagrafica = static::createAnagrafica($this->getHeader()['CedentePrestatore']); + $anagrafica = static::createAnagrafica($this->getHeader()['CedentePrestatore']); $dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']; $data = $dati_generali['Data']; - - //Fix temporaneo per gestire TD02,TD03,TD06 non ancora previsti in OSM - /*if ($dati_generali['TipoDocumento']=='TD02' OR $dati_generali['TipoDocumento']=='TD03' OR $dati_generali['TipoDocumento']=='TD06'){ - $id_tipo = 'TD01'; - } - - $id_tipo = database()->fetchOne('SELECT id FROM co_tipidocumento WHERE codice_tipo_documento_fe = '.prepare($dati_generali['TipoDocumento']))['id'];*/ - $numero_esterno = $dati_generali['Numero']; $progressivo_invio = $this->getHeader()['DatiTrasmissione']['ProgressivoInvio']; - //$descrizione_tipo = empty($this->getBody()['DatiGenerali']['DatiTrasporto']) ? 'Fattura immediata di acquisto' : 'Fattura accompagnatoria di acquisto'; - $tipo = TipoFattura::where('id', $id_tipo)->first(); - + $descrizione_tipo = empty($this->getBody()['DatiGenerali']['DatiTrasporto']) ? 'Fattura immediata di acquisto' : 'Fattura accompagnatoria di acquisto'; + $tipo = TipoFattura::where('descrizione', $descrizione_tipo)->first(); + $fattura = Fattura::build($anagrafica, $tipo, $data, $id_sezionale); $this->fattura = $fattura; @@ -347,14 +338,6 @@ class FatturaElettronica // TODO: salvare in fattura } - $causali = $dati_generali['Causale']; - if (count($causali)>0) { - foreach($causali AS $causale){ - $note .= $causale; - } - $fattura->note = $note; - } - // Bollo $bollo = $dati_generali['DatiBollo']; if (!empty($bollo)) { diff --git a/src/HTMLBuilder/Manager/FileManager.php b/src/HTMLBuilder/Manager/FileManager.php index 68227b6ef..2daed0058 100644 --- a/src/HTMLBuilder/Manager/FileManager.php +++ b/src/HTMLBuilder/Manager/FileManager.php @@ -114,7 +114,7 @@ class FileManager implements ManagerInterface '; } elseif (strtolower($extension) == 'xml') { $result .= ' -
+ '; } else { diff --git a/src/Util/XML.php b/src/Util/XML.php index 04219e289..0feff8f00 100644 --- a/src/Util/XML.php +++ b/src/Util/XML.php @@ -2,8 +2,6 @@ namespace Util; -use UnexpectedValueException; - /** * Classe dedicata all'interpretazione dei file XML. * @@ -21,16 +19,9 @@ class XML public static function read($string) { $content = static::stripP7MData($string); - - libxml_use_internal_errors(true); + $content = static::sanitizeXML($content); $xml = simplexml_load_string($content, 'SimpleXMLElement', LIBXML_NOCDATA); - if ($xml === false) { - $message = libxml_get_last_error()->message; - - throw new UnexpectedValueException($message); - } - $result = json_decode(json_encode($xml), true); return $result; diff --git a/templates/base/settings.php b/templates/base/settings.php index 86ffeaba0..7260fddc8 100644 --- a/templates/base/settings.php +++ b/templates/base/settings.php @@ -12,7 +12,7 @@ $settings = [ ], 'header-height' => 35, 'footer-height' => 5, - 'header-font-size' => 11, + 'header-font-size' => 12, ]; return $settings; diff --git a/templates/fatture/header.php b/templates/fatture/header.php index 5172bac00..874d1b2bb 100644 --- a/templates/fatture/header.php +++ b/templates/fatture/header.php @@ -54,7 +54,7 @@ echo '

'.tr('Banca di appoggio', [], ['upper' => true]).'

-

$appoggiobancario$

+

$appoggiobancario$

diff --git a/templates/info.php b/templates/info.php index 01d66e8da..b291c17d5 100644 --- a/templates/info.php +++ b/templates/info.php @@ -117,7 +117,7 @@ $replaces = array_merge($replaces, [ 'rootdir' => ROOTDIR, 'directory' => Prints::get($id_print)['full_directory'], 'footer' => !empty($footer) ? $footer : '', - 'dicitura_fissa_fattura' => setting('Dicitura fissa fattura').((!empty(setting('OSMCloud Services API Token'))) ? tr(' Documento privo di valenza fiscale dell\'art 21 dpr 633/72.'): ''), + 'dicitura_fissa_fattura' => setting('Dicitura fissa fattura'), ]); unset($replace); diff --git a/templates/ordini/body.php b/templates/ordini/body.php index d82a1bfd3..baa2445bd 100644 --- a/templates/ordini/body.php +++ b/templates/ordini/body.php @@ -34,7 +34,6 @@ echo " // RIGHE PREVENTIVO CON ORDINAMENTO UNICO $righe = $dbo->fetchArray("SELECT *, IFNULL((SELECT `codice` FROM `mg_articoli` WHERE `id` = `or_righe_ordini`.`idarticolo`), '') AS codice_articolo, - IFNULL((SELECT `immagine` FROM `mg_articoli` WHERE `id` = `or_righe_ordini`.`idarticolo`), '') AS immagine_articolo, (SELECT GROUP_CONCAT(`serial` SEPARATOR ', ') FROM `mg_prodotti` WHERE `id_riga_ordine` = `or_righe_ordini`.`id`) AS seriali, (SELECT `percentuale` FROM `co_iva` WHERE `id` = `or_righe_ordini`.`idiva`) AS perc_iva FROM `or_righe_ordini` WHERE idordine=".prepare($id_record).' ORDER BY `order`'); @@ -45,13 +44,7 @@ foreach ($righe as $r) { echo ' - '; - - if (!empty($r['immagine_articolo'])) { - //echo '
'; - } - - echo ' + '.nl2br($r['descrizione']); // Codice articolo diff --git a/templates/riepilogo_interventi/pdfgen.riepilogo_interventi.php b/templates/riepilogo_interventi/pdfgen.riepilogo_interventi.php index f4f7a0efa..9c0f283b0 100644 --- a/templates/riepilogo_interventi/pdfgen.riepilogo_interventi.php +++ b/templates/riepilogo_interventi/pdfgen.riepilogo_interventi.php @@ -18,7 +18,7 @@ if (is_array($_SESSION['module_'.$id_module])) { $field_name = str_replace('search_', '', $field); $field_name = str_replace('__', ' ', $field_name); $field_name = str_replace('-', ' ', $field_name); - array_push($search_filters, '`'.$field_name.'` LIKE "%'.$value.'%"'); + array_push($search_filters, '`'.$field_name.'` LIKE "%'.$field_value.'%"'); } } } diff --git a/update/2_4_3.sql b/update/2_4_3.sql index d84b1c047..0eca9b6bf 100644 --- a/update/2_4_3.sql +++ b/update/2_4_3.sql @@ -35,7 +35,7 @@ ALTER TABLE `co_righe_documenti` ADD `data_inizio_periodo` date, ADD `data_fine_ ALTER TABLE `co_documenti` ADD `tipo_resa` VARCHAR(3); -- Colonna nome impianto -INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default` ) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'MyImpianti'), 'Nome', 'nome', 2, 1, 0, 0, NULL, NULL, 1, 0, 1); +INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default` ) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'MyImpianti'), 'Nome', 'nome', 2, 1, 0, 0, NULL, NULL, 0, 0, 0); -- Colonna causale predefinita INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default` ) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Causali'), 'Predefinita', 'IF(predefined, ''Sì'', ''No'')', 2, 1, 0, 0, NULL, NULL, 0, 0, 0); diff --git a/update/2_4_5.sql b/update/2_4_5.sql index bbe7c74e8..b6188736c 100644 --- a/update/2_4_5.sql +++ b/update/2_4_5.sql @@ -47,34 +47,5 @@ ALTER TABLE `an_anagrafiche` CHANGE `nome_cognome` `nome` VARCHAR(255) NOT NULL; ALTER TABLE `an_anagrafiche` ADD `cognome` VARCHAR(255) NOT NULL AFTER `nome`; -- Colonna Rif. fattura (Prima nota) -INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default` ) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Prima nota'), 'Rif. fattura', '(SELECT numero_esterno FROM co_documenti WHERE id = iddocumento)', 2, 1, 0, 0, NULL, NULL, 1, 0, 0); +INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default` ) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Prima nota'), 'Rif. fattura', 'IF((iddocumento != ''),(SELECT numero_esterno FROM co_documenti WHERE id = iddocumento), ''-'')', 2, 1, 0, 0, NULL, NULL, 1, 0, 0); --- Aumento decimali percentuali delle rate pagamenti a 2 -ALTER TABLE `co_pagamenti` CHANGE `prc` `prc` DECIMAL(5,2) NOT NULL; - --- Ordino gestione documentale per data, nome -UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Categoria, Nome, Data", "query": "SELECT id,(SELECT descrizione FROM zz_documenti_categorie WHERE zz_documenti_categorie.id = idcategoria) AS Categoria, zz_documenti.nome AS Nome, DATE_FORMAT( zz_documenti.`data`, ''%d/%m/%Y'' ) AS `Data` FROM zz_documenti WHERE `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' HAVING 1=1 ORDER BY data, nome"} ]}' WHERE `zz_modules`.`name` = 'Gestione documentale'; - --- Ordino Ddt anche per created_at (nel caso di stessa data e che il cast del numero esterno non sia efficace) -UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` WHERE 1=1 AND `dir` = ''entrata'' AND `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' HAVING 2=2 ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC,`dt_ddt`.created_at DESC' WHERE `zz_modules`.`name` = 'Ddt di vendita'; - -UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `dt_ddt` INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` WHERE 1=1 AND `dir` = ''uscita'' AND `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' HAVING 2=2 ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC, `dt_ddt`.created_at DESC' WHERE `zz_modules`.`id` = 'Ddt di acquisto'; - --- Aggiunti pagamenti mancanti Assegno circolare,Contanti presso Tesoreria, Vaglia cambiario, Bollettino bancario, RID, RID utenze, RID veloce, MAV, Quietanza erario, Giroconto su conti di contabilità speciale, Domiciliazione bancaria, Domiciliazione postale, Bollettino di c/c postale, SEPA Direct Debit, SEPA Direct Debit CORE, SEPA Direct Debit B2B, Trattenuta su somme già riscosse -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Assegno circolare', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP03'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Contanti presso Tesoreria', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP04'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Vaglia cambiario', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP06'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Bollettino bancario', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP07'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'RID', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP09'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'RID utenze', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP10'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'RID veloce', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP11'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'MAV', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP13'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Quietanza erario', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP14'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Giroconto su conti di contabilità speciale', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP15'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Domiciliazione bancaria', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP16'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Domiciliazione postale', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP17'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Bollettino di c/c postale', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP18'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'SEPA Direct Debit', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP19'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'SEPA Direct Debit CORE', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP20'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'SEPA Direct Debit B2B', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP21'); -INSERT INTO `co_pagamenti` (`id`, `descrizione`, `giorno`, `num_giorni`, `prc`, `created_at`, `updated_at`, `idconto_vendite`, `idconto_acquisti`, `codice_modalita_pagamento_fe`) VALUES (NULL, 'Trattenuta su somme già riscosse', '0', '1', '100', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, 'MP22');