From 15b2f843cb637453a8b9e6263d3a6fdc8160f283 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 30 Jul 2020 20:06:33 +0200 Subject: [PATCH] Aggiunta data competenza nel filtro temporale per le fatture di acquisto Allineo per i movimenti relativi alle fatture di vendita, la data del movimento con la data del documento Allineo per le fatture di vendita, la data_competenza con data emissione del documento Elimino data_documento per co_documenti --- modules/fatture/edit.php | 4 ++-- modules/fatture/modutil.php | 18 +++++++++--------- modules/primanota/src/Movimento.php | 1 - update/2_4_17.sql | 26 ++++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 update/2_4_17.sql diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 3ea577dd8..99ac9c185 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -172,9 +172,9 @@ elseif ($record['stato'] == 'Bozza') {
> {[ "type": "date", "label": "", "name": "data_registrazione", "required": 0, "value": "$data_registrazione$", "help": "" ]}
- +
> - {[ "type": "date", "label": "", "name": "data_competenza", "required": 1, "value": "$data_competenza$", "min-date": "$data_registrazione$", "help": "" ]} + {[ "type": "date", "class":"data_competenza)data)) ? 'unblockable' : '' ?>", "label": "", "name": "data_competenza", "required": 1, "value": "$data_competenza$", "min-date": "$data_registrazione$", "help": "" ]}
diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index a6bbc2116..d4427abee 100755 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -258,7 +258,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) $importo_cliente = sum($importo_cliente, -$iva_fattura, 2); } - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($importo_cliente + $totale_bolli) * $segno_mov1_cliente).', '.prepare($primanota).' )'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($importo_cliente + $totale_bolli) * $segno_mov1_cliente).', '.prepare($primanota).' )'; $dbo->query($query2); // 2) Aggiungo il totale sul conto dei ricavi/spese scelto @@ -269,7 +269,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) // Retrocompatibilità $idconto_riga = !empty($riga['idconto']) ? $riga['idconto'] : $idconto; - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_riga).', '.prepare($riga['imponibile'] * $segno_mov2_ricavivendite).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_riga).', '.prepare($riga['imponibile'] * $segno_mov2_ricavivendite).', '.prepare($primanota).')'; $dbo->query($query2); } @@ -279,7 +279,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) $descrizione_conto_iva = ($dir == 'entrata') ? 'Iva su vendite' : 'Iva su acquisti'; $idconto_iva = setting('Conto per '.$descrizione_conto_iva); - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva).', '.prepare($iva_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva).', '.prepare($iva_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; $dbo->query($query2); } @@ -287,7 +287,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) if ($iva_indetraibile_fattura != 0 && !$split_payment) { $idconto_iva2 = setting('Conto per Iva indetraibile'); - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva2).', '.prepare($iva_indetraibile_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva2).', '.prepare($iva_indetraibile_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; $dbo->query($query2); } @@ -296,7 +296,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) if ($totale_rivalsainps != 0) { $idconto_inps = setting('Conto per Erario c/INPS'); - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_inps).', '.prepare($totale_rivalsainps * $segno_mov4_inps).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_inps).', '.prepare($totale_rivalsainps * $segno_mov4_inps).', '.prepare($primanota).')'; $dbo->query($query2); } @@ -306,11 +306,11 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) $idconto_ritenutaacconto = setting("Conto per Erario c/ritenute d'acconto"); // DARE nel conto ritenuta - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaacconto).', '.prepare($totale_ritenutaacconto * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaacconto).', '.prepare($totale_ritenutaacconto * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; $dbo->query($query2); // AVERE nel riepilogativo clienti - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutaacconto * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutaacconto * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')'; $dbo->query($query2); } @@ -320,11 +320,11 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0) $idconto_ritenutaenasarco = setting('Conto per Erario c/enasarco'); // DARE nel conto ritenuta - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaenasarco).', '.prepare($totale_ritenutacontributi * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaenasarco).', '.prepare($totale_ritenutacontributi * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; $dbo->query($query2); // AVERE nel riepilogativo clienti - $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutacontributi * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')'; + $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutacontributi * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')'; $dbo->query($query2); } } diff --git a/modules/primanota/src/Movimento.php b/modules/primanota/src/Movimento.php index c5e09b8bf..3919960cd 100755 --- a/modules/primanota/src/Movimento.php +++ b/modules/primanota/src/Movimento.php @@ -30,7 +30,6 @@ class Movimento extends Model $documento = $scadenza ? $scadenza->documento : null; if (!empty($documento)) { - $model->data_documento = $documento->data; $model->iddocumento = $documento->id; $model->idanagrafica = $documento->idanagrafica; } diff --git a/update/2_4_17.sql b/update/2_4_17.sql new file mode 100644 index 000000000..5b8c5b5cd --- /dev/null +++ b/update/2_4_17.sql @@ -0,0 +1,26 @@ +-- Aggiunta data competenza nel filtro temporale per le fatture di acquisto +UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_documenti` + LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN ( + SELECT `iddocumento`, + SUM(`subtotale` - `sconto`) AS `totale_imponibile`, + SUM(`subtotale` - `sconto` + `iva`) AS `totale` + FROM `co_righe_documenti` + GROUP BY `iddocumento` + ) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento` +WHERE 1=1 AND `dir` = \'uscita\' |segment(`co_documenti`.`id_segment`)||date_period(custom, \'|period_start|\' <= `co_documenti`.`data` AND \'|period_end|\' >= `co_documenti`.`data`, \'|period_start|\' <= `co_documenti`.`data_competenza` AND \'|period_end|\' >= `co_documenti`.`data_competenza` )| +HAVING 2=2 +ORDER BY `co_documenti`.`data` DESC, CAST(IF(`co_documenti`.`numero` = \'\', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC' WHERE `name` = 'Fatture di acquisto'; + + +-- Allineo per i movimenti relativi alle fatture di vendita, la data del movimento con la data del documento +UPDATE `co_movimenti` SET `co_movimenti`.`data` = `co_movimenti`.`data_documento` WHERE `iddocumento` IN (SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` WHERE `co_tipidocumento`.`dir` = 'entrata' ); + +-- Allineo per le fatture di vendita, la data_competenza con data emissione del documento +UPDATE `co_documenti` SET `co_documenti`.`data_competenza` = `co_documenti`.`data` WHERE `co_documenti`.`idtipodocumento` IN (SELECT `co_tipidocumento`.`id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir` = 'entrata'); + + +-- Elimino data_documento per co_documenti +ALTER TABLE `co_movimenti` DROP `data_documento`; \ No newline at end of file