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