@@ -239,19 +239,19 @@ if ($dir == 'entrata') {
fetchArray("SELECT id FROM zz_plugins WHERE name='Fatturazione Elettronica' AND idmodule_to = ".prepare($id_module));
echo '';
}
// Forzo il passaggio della fattura da Bozza ad Emessa per il corretto calcolo del numero.
elseif ($record['stato'] == 'Bozza') {
- $query .= " WHERE descrizione IN ('Emessa', 'Bozza')";
+ $query .= " WHERE `name` IN ('Emessa', 'Bozza')";
}
-$query .= ' ORDER BY descrizione';
+$query .= ' ORDER BY `name`';
?>
dichiarazione)) {
$descrizione_iva_accettata .= '
';
}
- if ($fattura->stato->descrizione == 'Bozza') {
+ if ($fattura->stato->name == 'Bozza') {
echo '
'.tr("La fattura è collegata ad una dichiarazione d'intento con diponibilità residura pari a _MONEY_.", ['_MONEY_' => moneyFormat($diff)]).'
'.tr('Per collegare una riga alla dichiarazione è sufficiente specificare come IVA
', ['_IVA_' => $descrizione_iva_accettata]).'
diff --git a/modules/fatture/init.php b/modules/fatture/init.php
index 2960a820b..e208f69e8 100755
--- a/modules/fatture/init.php
+++ b/modules/fatture/init.php
@@ -44,7 +44,7 @@ if (isset($id_record)) {
`co_documenti`.`idpagamento`,
`co_documenti`.`id` AS iddocumento,
`co_documenti`.`split_payment` AS split_payment,
- `co_statidocumento`.`descrizione` AS `stato`,
+ `co_statidocumento_lang`.`name` AS `stato`,
`co_tipidocumento`.`descrizione` AS `descrizione_tipo`,
`co_tipidocumento`.`id` AS `idtipodocumento`,
(SELECT `is_fiscale` FROM `zz_segments` WHERE `zz_segments`.`id` = `co_documenti`.`id_segment`) AS is_fiscale,
@@ -53,6 +53,7 @@ if (isset($id_record)) {
(SELECT `descrizione` FROM `dt_causalet` WHERE `id`=`idcausalet`) AS causale_desc
FROM `co_documenti`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento`=`co_statidocumento`.`id`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`
INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento`=`co_pagamenti`.`id`
diff --git a/modules/fatture/modals/confronta_righe.php b/modules/fatture/modals/confronta_righe.php
index 5e5341c97..d9d57a4df 100644
--- a/modules/fatture/modals/confronta_righe.php
+++ b/modules/fatture/modals/confronta_righe.php
@@ -71,19 +71,21 @@ $righe = $dbo->fetchArray(
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
- co_righe_documenti.idarticolo,
- co_righe_documenti.prezzo_unitario,
- DATE(co_righe_documenti.updated_at) AS updated_at
- FROM
- co_documenti
- LEFT JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id
- LEFT JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo
- WHERE
- co_documenti.idanagrafica = '.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo = '.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato")
- GROUP BY
- mg_articoli.id, co_righe_documenti.id
- ORDER BY
- updated_at DESC'
+ `co_righe_documenti`.`idarticolo`,
+ `co_righe_documenti`.`prezzo_unitario`,
+ DATE(`co_righe_documenti`.`updated_at`) AS updated_at
+ FROM
+ `co_documenti`
+ LEFT JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`
+ LEFT JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_documenti`.`idarticolo`
+ INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
+ LEFT JOIN `co_statidocumento_lang` ON `co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).'
+ WHERE
+ `co_documenti`.`idanagrafica` = '.prepare($id_anagrafica).' AND `co_righe_documenti`.`idarticolo` = '.prepare($riga['idarticolo']).' AND `co_statidocumento_lang`.`name` IN ("Emessa", "Pagato", "Parzialmente pagato")
+ GROUP BY
+ `mg_articoli`.`id`, `co_righe_documenti`.`id`
+ ORDER BY
+ `updated_at` DESC'
)[0];
?>
diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php
index bc93536d7..d1b020954 100755
--- a/modules/fatture/modutil.php
+++ b/modules/fatture/modutil.php
@@ -265,13 +265,11 @@ if (!function_exists('aggiungi_movimento')) {
}
// Lettura info fattura
- $query = 'SELECT *, co_documenti.data_competenza, co_documenti.note, co_documenti.idpagamento, co_documenti.id AS iddocumento, co_statidocumento.descrizione AS `stato`, co_tipidocumento.descrizione AS `descrizione_tipo` FROM ((co_documenti LEFT OUTER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id) INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='.prepare($iddocumento);
+ $query = 'SELECT *, `co_documenti`.`data_competenza`, `co_documenti`.`note`, `co_documenti`.`idpagamento`, `co_documenti`.`id` AS iddocumento, `co_statidocumento_lang`.`name` AS `stato`, `co_tipidocumento`.`descrizione` AS descrizione_tipo FROM ((`co_documenti` LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento`=`co_statidocumento`.`id`) INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`) INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `co_documenti`.`id`='.prepare($iddocumento);
+
$rs = $dbo->fetchArray($query);
- $n = sizeof($rs);
$data = $rs[0]['data_competenza'];
- $idanagrafica = $rs[0]['idanagrafica'];
$ragione_sociale = $rs[0]['ragione_sociale'];
- $stato = $rs[0]['stato'];
$idmastrino = get_new_idmastrino();
diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php
index 7323f2f2b..12030fad6 100755
--- a/modules/fatture/src/Fattura.php
+++ b/modules/fatture/src/Fattura.php
@@ -96,7 +96,7 @@ class Fattura extends Document
$database = database();
// Individuazione dello stato predefinito per il documento
- $stato_documento = Stato::where('descrizione', 'Bozza')->first();
+ $stato_documento = (new Stato())->getByName('Bozza')->id_record;
$direzione = $tipo_documento->dir;
// Conto predefinito sulla base del flusso di denaro
@@ -249,7 +249,7 @@ class Fattura extends Document
$this->numero = static::getNextNumero($data, $direzione, $value);
- if ($this->stato->descrizione == 'Bozza') {
+ if ($this->stato->name == 'Bozza') {
$this->numero_esterno = null;
} elseif (!empty($previous)) {
$this->numero_esterno = static::getNextNumeroSecondario($data, $direzione, $value);
@@ -719,7 +719,7 @@ class Fattura extends Document
$new->id_ricevuta_principale = null;
// Spostamento dello stato
- $stato = Stato::where('descrizione', 'Bozza')->first();
+ $stato = (new Stato())->getByName('Bozza')->id_record;
$new->stato()->associate($stato);
return $new;
diff --git a/modules/fatture/src/Stato.php b/modules/fatture/src/Stato.php
index 632f069c5..16c7be4c7 100755
--- a/modules/fatture/src/Stato.php
+++ b/modules/fatture/src/Stato.php
@@ -32,4 +32,34 @@ class Stato extends Model
{
return $this->hasMany(Fattura::class, 'idstatodocumento');
}
+
+ /**
+ * Ritorna l'attributo name dello stato fattura.
+ *
+ * @return string
+ */
+ public function getNameAttribute()
+ {
+ return database()->table($this->table.'_lang')
+ ->select('name')
+ ->where('id_record', '=', $this->id)
+ ->where('id_lang', '=', setting('Lingua'))
+ ->first()->name;
+ }
+
+ /**
+ * Ritorna l'id dello stato fattura a partire dal nome.
+ *
+ * @param string $name il nome da ricercare
+ *
+ * @return \Illuminate\Support\Collection
+ */
+ public function getByName($name)
+ {
+ return database()->table($this->table.'_lang')
+ ->select('id_record')
+ ->where('name', '=', $name)
+ ->where('id_lang', '=', setting('Lingua'))
+ ->first();
+ }
}
diff --git a/modules/interventi/ajax/complete.php b/modules/interventi/ajax/complete.php
index 6d38411ed..4eff5d74c 100644
--- a/modules/interventi/ajax/complete.php
+++ b/modules/interventi/ajax/complete.php
@@ -31,7 +31,7 @@ switch ($op) {
if (!$contratti->isEmpty()) {
foreach ($contratti as $contratto) {
echo '
-
'.$contratto->getReference().' ['.$contratto->stato->descrizione.']: '.dateFormat($contratto->data_accettazione).' - '.dateFormat($contratto->data_conclusione).'';
+
'.$contratto->getReference().' ['.$contratto->stato->name.']: '.dateFormat($contratto->data_accettazione).' - '.dateFormat($contratto->data_conclusione).'';
}
} else {
echo '
diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php
index c20c64048..5180379cb 100755
--- a/modules/interventi/bulk.php
+++ b/modules/interventi/bulk.php
@@ -165,7 +165,7 @@ switch (post('op')) {
if (empty($id_documento)) {
if (!empty($accodare)) {
$where = $raggruppamento == 'sede' ? ' AND idsede_destinazione = '.prepare($intervento['idsede_destinazione']) : '';
- $documento = $dbo->fetchOne('SELECT co_documenti.id FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento INNER JOIN zz_segments ON zz_segments.id = co_documenti.id_segment WHERE co_statidocumento.descrizione = "Bozza" AND co_documenti.idanagrafica = '.prepare($id_anagrafica).' AND co_tipidocumento.id='.prepare($tipo_documento['id']).' AND co_documenti.id_segment = '.prepare($id_segment).$where);
+ $documento = $dbo->fetchOne('SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` LEFT JOIN `co_statidocumenti_lang` ON (`co_statidocumenti`.`id` = `co_statidocumenti_lang`.`id_record` AND `co_statidocumenti_lang`.`id_lang` = "'.prepare(setting('Lingua')).'") INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_documenti`.`id_segment` WHERE `co_statidocumento_lang`.`name` = "Bozza" AND `co_documenti`.`idanagrafica` = '.prepare($id_anagrafica).' AND co_tipidocumento.id='.prepare($tipo_documento['id']).' AND `co_documenti`.`id_segment` = '.prepare($id_segment).$where);
$id_documento = $documento['id'];
$id_documento_cliente[$id_anagrafica] = $id_documento;
diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php
index 0c8dd44da..8381760ed 100755
--- a/modules/interventi/edit.php
+++ b/modules/interventi/edit.php
@@ -858,7 +858,7 @@ $(document).ready(function() {
// Collegamenti diretti
// Fatture collegate a questo intervento
-$elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_statidocumento`.`descrizione` AS stato_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idintervento` = '.prepare($id_record).') ORDER BY `data`');
+$elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_statidocumento_lang`.`name` AS stato_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`idstatodocumento` = `co_documenti`.`idstatodocumento` AND `co_statidocumento_lang`.`lang` = "'.prepare(setting('Lingua')).'") WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idintervento` = '.prepare($id_record).') ORDER BY `data`');
if (!empty($elementi)) {
echo '
diff --git a/modules/interventi/modals/confronta_righe.php b/modules/interventi/modals/confronta_righe.php
index b2e67997a..0c36d6601 100644
--- a/modules/interventi/modals/confronta_righe.php
+++ b/modules/interventi/modals/confronta_righe.php
@@ -71,20 +71,22 @@ $righe = $dbo->fetchArray(
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
- in_righe_interventi.idarticolo,
- co_righe_documenti.prezzo_unitario,
- DATE(co_righe_documenti.updated_at) AS updated_at
- FROM
- co_documenti
- INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id
- INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo
- INNER JOIN in_righe_interventi ON in_righe_interventi.idarticolo = mg_articoli.id
- WHERE
- co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato")
- GROUP BY
- mg_articoli.id, co_righe_documenti.id
- ORDER BY
- updated_at DESC'
+ `in_righe_interventi`.`idarticolo`,
+ `co_righe_documenti`.`prezzo_unitario`,
+ DATE(`co_righe_documenti`.`updated_at`) AS updated_at
+ FROM
+ `co_documenti`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`
+ INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_documenti`.`idarticolo`
+ INNER JOIN `in_righe_interventi` ON `in_righe_interventi`.`idarticolo` = `mg_articoli`.`id`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`idstatodocumento` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`lang` = "'.prepare(setting('Lingua')).'")
+ WHERE
+ `co_documenti`.`idanagrafica` ='.prepare($id_anagrafica).' AND `co_righe_documenti`.`idarticolo` ='.prepare($riga['idarticolo']).' AND `co_statidocumento_lang`.`name` IN ("Emessa", "Pagato", "Parzialmente pagato")
+ GROUP BY
+ `mg_articoli`.`id`, `co_righe_documenti`.`id`
+ ORDER BY
+ `updated_at` DESC'
)[0];
?>
diff --git a/modules/ordini/modals/confronta_righe.php b/modules/ordini/modals/confronta_righe.php
index dcac59ce1..ec12ac8ff 100644
--- a/modules/ordini/modals/confronta_righe.php
+++ b/modules/ordini/modals/confronta_righe.php
@@ -71,20 +71,22 @@ $righe = $dbo->fetchArray(
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
- or_righe_ordini.idarticolo,
- co_righe_documenti.prezzo_unitario,
- DATE(co_righe_documenti.updated_at) AS updated_at
- FROM
- co_documenti
- INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id
- INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo
- INNER JOIN or_righe_ordini ON or_righe_ordini.idarticolo = mg_articoli.id
- WHERE
- co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato")
- GROUP BY
- mg_articoli.id, co_righe_documenti.id
- ORDER BY
- updated_at DESC'
+ `or_righe_ordini`.`idarticolo`,
+ `co_righe_documenti`.`prezzo_unitario`,
+ DATE(`co_righe_documenti`.`updated_at`) AS updated_at
+ FROM
+ `co_documenti`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`
+ INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_documenti`.`idarticolo`
+ INNER JOIN `or_righe_ordini` ON `or_righe_ordini`.`idarticolo` = `mg_articoli`.`id`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`idstatodocumento` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`lang` = "'.prepare(setting('Lingua')).'")
+ WHERE
+ `co_documenti`.`idanagrafica` ='.prepare($id_anagrafica).' AND `co_righe_documenti`.`idarticolo` ='.prepare($riga['idarticolo']).' AND `co_statidocumento_lang`.`name` IN ("Emessa", "Pagato", "Parzialmente pagato")
+ GROUP BY
+ `mg_articoli`.`id`, `co_righe_documenti`.`id`
+ ORDER BY
+ `updated_at` DESC'
)[0];
?>
diff --git a/modules/preventivi/modals/confronta_righe.php b/modules/preventivi/modals/confronta_righe.php
index c1a26d3f0..f76494161 100644
--- a/modules/preventivi/modals/confronta_righe.php
+++ b/modules/preventivi/modals/confronta_righe.php
@@ -69,20 +69,22 @@ $righe = $dbo->fetchArray(
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
- co_righe_preventivi.idarticolo,
- co_righe_documenti.prezzo_unitario,
- DATE(co_righe_documenti.updated_at) AS updated_at
+ `co_righe_preventivi`.`idarticolo`,
+ `co_righe_documenti`.`prezzo_unitario`,
+ DATE(`co_righe_documenti`.`updated_at`) AS updated_at
FROM
- co_documenti
- INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id
- INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo
- INNER JOIN co_righe_preventivi ON co_righe_preventivi.idarticolo = mg_articoli.id
+ `co_documenti`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`
+ INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_documenti`.`idarticolo`
+ INNER JOIN `co_righe_preventivi` ON `co_righe_preventivi`.`idarticolo` = `mg_articoli`.`id`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).')
WHERE
- co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato")
+ `co_documenti`.`idanagrafica` ='.prepare($id_anagrafica).' AND `co_righe_documenti`.`idarticolo` ='.prepare($riga['idarticolo']).' AND `co_statidocumento_lang`.`name` IN ("Emessa", "Pagato", "Parzialmente pagato")
GROUP BY
- mg_articoli.id, co_righe_documenti.id
+ `mg_articoli`.`id`, `co_righe_documenti`.`id`
ORDER BY
- updated_at DESC'
+ `updated_at` DESC'
)[0];
?>
diff --git a/modules/preventivi/src/Preventivo.php b/modules/preventivi/src/Preventivo.php
index 39cbaa8fc..0bd7239cc 100755
--- a/modules/preventivi/src/Preventivo.php
+++ b/modules/preventivi/src/Preventivo.php
@@ -271,7 +271,7 @@ class Preventivo extends Document
$descrizione = $parziale ? 'Parzialmente fatturato' : 'Fatturato';
$codice_intervento = 'FAT';
} else {
- $descrizione = $this->stato->descrizione;
+ $descrizione = $this->stato->name;
$codice_intervento = 'OK';
}
diff --git a/modules/primanota/add.php b/modules/primanota/add.php
index d6fe8c400..f3083031a 100755
--- a/modules/primanota/add.php
+++ b/modules/primanota/add.php
@@ -121,7 +121,7 @@ foreach ($id_documenti as $id_documento) {
$dir = $fattura->direzione;
// Inclusione delle sole fatture in stato Emessa, Parzialmente pagato o Pagato
- if (!in_array($fattura->stato->descrizione, ['Emessa', 'Parzialmente pagato', 'Pagato'])) {
+ if (!in_array($fattura->stato->name, ['Emessa', 'Parzialmente pagato', 'Pagato'])) {
++$counter;
continue;
}
@@ -243,9 +243,9 @@ if ($numero_documenti + $numero_scadenze > 1) {
if (!empty($id_records) && get('origine') == 'fatture' && !empty($counter)) {
$descrizione_stati = [];
- $stati = $database->fetchArray("SELECT * FROM `co_statidocumento` WHERE descrizione IN ('Emessa', 'Parzialmente pagato', 'Pagato') ORDER BY descrizione");
+ $stati = $database->fetchArray("SELECT * FROM `co_statidocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '".prepare(setting('Lingua'))."') WHERE `name` IN ('Emessa', 'Parzialmente pagato', 'Pagato') ORDER BY `name`");
foreach ($stati as $stato) {
- $descrizione_stati[] = '
'.$stato['descrizione'].'';
+ $descrizione_stati[] = '
'.$stato['name'].'';
}
echo '
diff --git a/modules/primanota/src/Mastrino.php b/modules/primanota/src/Mastrino.php
index 001c43544..182e93eba 100755
--- a/modules/primanota/src/Mastrino.php
+++ b/modules/primanota/src/Mastrino.php
@@ -157,7 +157,7 @@ class Mastrino extends Model
$stato = 'Emessa';
}
- $database->query('UPDATE co_documenti SET idstatodocumento = (SELECT id FROM co_statidocumento WHERE descrizione = '.prepare($stato).') WHERE id = '.prepare($id_documento));
+ $database->query('UPDATE `co_documenti` SET `idstatodocumento` = (SELECT `co_statidocumento`.`id` FROM `co_statidocumento` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = "'.prepare(setting('Lingua')).'") WHERE `name` = '.prepare($stato).') WHERE id = '.prepare($id_documento));
}
}
diff --git a/modules/stati_fattura/actions.php b/modules/stati_fattura/actions.php
index 5696979e8..61ea34c93 100644
--- a/modules/stati_fattura/actions.php
+++ b/modules/stati_fattura/actions.php
@@ -22,11 +22,14 @@ include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'update':
$dbo->update('co_statidocumento', [
- 'descrizione' => (count($dbo->fetchArray('SELECT descrizione FROM co_statidocumento WHERE descrizione = '.prepare(post('descrizione')))) > 0) ? $dbo->fetchOne('SELECT descrizione FROM co_statidocumento WHERE id ='.$id_record)['descrizione'] : post('descrizione'),
'icona' => post('icona'),
'colore' => post('colore'),
], ['id' => $id_record]);
+ $dbo->update('co_statidocumento_lang', [
+ 'name' => post('descrizione'),
+ ], ['id_record' => $id_record]);
+
flash()->info(tr('Informazioni salvate correttamente.'));
break;
diff --git a/modules/stati_fattura/init.php b/modules/stati_fattura/init.php
index 7814c62e3..355d92461 100644
--- a/modules/stati_fattura/init.php
+++ b/modules/stati_fattura/init.php
@@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
- $record = $dbo->fetchOne('SELECT * FROM co_statidocumento WHERE id='.prepare($id_record));
+ $record = $dbo->fetchOne('SELECT * FROM `co_statidocumento` LEFT JOIN (`co_statidocumento_lang`) ON (`co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_statidocumento`.`id`='.prepare($id_record));
}
diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php
index 7f68147de..8be46b7fe 100755
--- a/modules/statistiche/edit.php
+++ b/modules/statistiche/edit.php
@@ -176,9 +176,50 @@ function init_calendar(calendar) {
';
// Clienti top
-$clienti = $dbo->fetchArray('SELECT SUM(IF(reversed=1, -(co_righe_documenti.subtotale - co_righe_documenti.sconto), (co_righe_documenti.subtotale - co_righe_documenti.sconto))) AS totale, (SELECT COUNT(*) FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE co_documenti.idanagrafica = an_anagrafiche.idanagrafica AND co_documenti.data BETWEEN '.prepare($start).' AND '.prepare($end)." AND co_tipidocumento.dir='entrata' AND zz_segments.autofatture=0) AS qta, an_anagrafiche.idanagrafica, an_anagrafiche.ragione_sociale FROM co_documenti INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE co_tipidocumento.dir='entrata' AND (co_statidocumento.descrizione = 'Pagato' OR co_statidocumento.descrizione = 'Parzialmente pagato' OR co_statidocumento.descrizione = 'Emessa') AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND zz_segments.autofatture=0 GROUP BY an_anagrafiche.idanagrafica ORDER BY totale DESC LIMIT 20');
+$clienti = $dbo->fetchArray('SELECT
+ SUM(IF(`reversed`=1, - (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`), (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`))) AS totale,
+ (SELECT
+ COUNT(*)
+ FROM
+ `co_documenti`
+ INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
+ INNER JOIN `zz_segments` ON `co_documenti`.`id_segment`=`zz_segments`.`id`
+ WHERE
+ `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` AND `co_documenti`.`data` BETWEEN '.prepare($start).' AND '.prepare($end)." AND `co_tipidocumento`.`dir`='entrata' AND `zz_segments`.`autofatture`=0) AS qta,
+ `an_anagrafiche`.`idanagrafica`,
+ `an_anagrafiche`.`ragione_sociale`
+ FROM
+ `co_documenti`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = ".prepare(setting('Lingua')).")
+ INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id`
+ INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`co_documenti`.`idanagrafica`
+ INNER JOIN `zz_segments` ON `co_documenti`.`id_segment`=`zz_segments`.`id`
+ WHERE
+ `co_tipidocumento`.`dir`='entrata'
+ AND `co_statidocumento_lang`.`name` IN('Pagato', 'Parzialmente pagato', 'Emessa')
+ AND `co_documenti`.`data` BETWEEN ".prepare($start).' AND '.prepare($end).'
+ AND `zz_segments`.`autofatture`=0
+ GROUP BY
+ `an_anagrafiche`.`idanagrafica`
+ ORDER BY
+ `totale` DESC LIMIT 20');
-$totale = $dbo->fetchArray("SELECT SUM(IF(reversed=1, -(co_righe_documenti.subtotale - co_righe_documenti.sconto), (co_righe_documenti.subtotale - co_righe_documenti.sconto))) AS totale FROM co_documenti INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE (co_statidocumento.descrizione = 'Pagato' OR co_statidocumento.descrizione = 'Parzialmente pagato' OR co_statidocumento.descrizione = 'Emessa') AND co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND zz_segments.autofatture=0');
+$totale = $dbo->fetchArray("SELECT
+ SUM(IF(`reversed`=1, -(`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`), (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`))) AS totale
+ FROM
+ `co_documenti`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = ".prepare(setting('Lingua')).")
+ INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id`
+ INNER JOIN `zz_segments` ON `co_documenti`.`id_segment`=`zz_segments`.`id`
+ WHERE
+ `co_statidocumento_lang`.`name` IN ('Pagato', 'Parzialmente pagato', 'Emessa')
+ AND `co_tipidocumento`.`dir`='entrata'
+ AND `co_documenti`.`data` BETWEEN ".prepare($start).' AND '.prepare($end).'
+ AND `zz_segments`.`autofatture`=0');
echo '
@@ -225,9 +266,47 @@ echo '
';
// Articoli più venduti
-$articoli = $dbo->fetchArray("SELECT SUM(IF(reversed=1, -co_righe_documenti.qta, co_righe_documenti.qta)) AS qta, SUM(IF(reversed=1, -(co_righe_documenti.subtotale - co_righe_documenti.sconto), (co_righe_documenti.subtotale - co_righe_documenti.sconto))) AS totale, mg_articoli.id, mg_articoli.codice, mg_articoli.descrizione, mg_articoli.um FROM co_documenti INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE co_tipidocumento.dir='entrata' AND (co_statidocumento.descrizione = 'Pagato' OR co_statidocumento.descrizione = 'Parzialmente pagato' OR co_statidocumento.descrizione = 'Emessa') AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND zz_segments.autofatture=0 GROUP BY co_righe_documenti.idarticolo ORDER BY qta DESC LIMIT 20');
+$articoli = $dbo->fetchArray("SELECT
+ SUM(IF(`reversed`=1, -`co_righe_documenti`.`qta`, `co_righe_documenti`.`qta`)) AS qta,
+ SUM(IF(`reversed`=1, -(`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`), (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`))) AS totale,
+ `mg_articoli`.`id`,
+ `mg_articoli`.`codice`,
+ `mg_articoli`.`descrizione`,
+ `mg_articoli`.`um`
+ FROM
+ `co_documenti`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON `co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '".setting('Lingua')."'
+ INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id`
+ INNER JOIN `mg_articoli` ON `mg_articoli`.`id`=`co_righe_documenti`.`idarticolo`
+ INNER JOIN `zz_segments` ON `co_documenti`.`id_segment`=`zz_segments`.`id`
+ WHERE
+ `co_tipidocumento`.`dir`='entrata'
+ AND `co_statidocumento_lang`.`name` IN ('Pagato', 'Parzialmente pagato', 'Emessa')
+ AND `co_documenti`.`data` BETWEEN ".prepare($start).' AND '.prepare($end).'
+ AND `zz_segments`.`autofatture`=0
+ GROUP BY
+ `co_righe_documenti`.`idarticolo`
+ ORDER BY
+ `qta` DESC LIMIT 20');
-$totale = $dbo->fetchArray("SELECT SUM(IF(reversed=1, -co_righe_documenti.qta, co_righe_documenti.qta)) AS totale_qta, SUM(IF(reversed=1, -(co_righe_documenti.subtotale - co_righe_documenti.sconto), (co_righe_documenti.subtotale - co_righe_documenti.sconto))) AS totale FROM co_documenti INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE co_tipidocumento.dir='entrata' AND (co_statidocumento.descrizione = 'Pagato' OR co_statidocumento.descrizione = 'Parzialmente pagato' OR co_statidocumento.descrizione = 'Emessa') AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND zz_segments.autofatture=0');
+$totale = $dbo->fetchArray("SELECT
+ SUM(IF(`reversed`=1, - `co_righe_documenti`.`qta`, `co_righe_documenti`.`qta`)) AS totale_qta,
+ SUM(IF(`reversed`=1, - (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`), (`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`))) AS totale
+ FROM
+ `co_documenti`
+ INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento`
+ LEFT JOIN `co_statidocumento_lang` ON `co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '".setting('Lingua')."'
+ INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
+ INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id`
+ INNER JOIN `mg_articoli` ON `mg_articoli`.`id`=`co_righe_documenti`.`idarticolo`
+ INNER JOIN `zz_segments` ON `co_documenti`.`id_segment`=`zz_segments`.`id`
+ WHERE
+ `co_tipidocumento`.`dir`='entrata'
+ AND `co_statidocumento_lang`.name IN ('Pagato', 'Parzialmente pagato', 'Emessa')
+ AND `co_documenti`.`data` BETWEEN ".prepare($start).' AND '.prepare($end)."
+ AND `zz_segments`.`autofatture`=0");
echo '
diff --git a/plugins/exportFE/edit.php b/plugins/exportFE/edit.php
index a69d5d108..d6fa6d8e1 100755
--- a/plugins/exportFE/edit.php
+++ b/plugins/exportFE/edit.php
@@ -26,7 +26,7 @@ use Util\XML;
if ($fattura !== null) {
/* Per le PA EC02 e EC01 sono dei stati successivi a NE il quale a sua volta è successivo a RC. EC01 e EC02 sono definiti all'interno della ricevuta di NE che di fatto indica il rifiuto o l'accettazione. */
$stato_fe = $database->fetchOne('SELECT * FROM fe_stati_documento WHERE codice = '.prepare($fattura->codice_stato_fe));
- $abilita_genera = $fattura->stato->descrizione != 'Bozza' && (empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile']));
+ $abilita_genera = $fattura->stato->name != 'Bozza' && (empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile']));
$ricevuta_principale = $fattura->getRicevutaPrincipale();
if (!empty($fattura_pa)) {
diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php
index a2f487edc..99bc58726 100755
--- a/plugins/exportFE/src/FatturaElettronica.php
+++ b/plugins/exportFE/src/FatturaElettronica.php
@@ -67,7 +67,7 @@ class FatturaElettronica
// Controllo sulla possibilità di creare la fattura elettronica
// Posso fatturare ai privati utilizzando il codice fiscale
- if ($this->documento->stato->descrizione == 'Bozza') {
+ if ($this->documento->stato->name == 'Bozza') {
throw new \UnexpectedValueException();
}
}
@@ -424,7 +424,7 @@ class FatturaElettronica
$errors = [];
// Controlli sulla fattura stessa
- if ($fattura->stato->descrizione == 'Bozza') {
+ if ($fattura->stato->name == 'Bozza') {
$missing = [
'state' => tr('Stato ("Emessa")'),
];
diff --git a/plugins/importFE/actions.php b/plugins/importFE/actions.php
index 05e27473c..94bbca60a 100755
--- a/plugins/importFE/actions.php
+++ b/plugins/importFE/actions.php
@@ -148,7 +148,7 @@ switch (filter('op')) {
$fattura_pa->delete();
$fattura = Fattura::find($id_fattura);
$id_autofattura = post('autofattura');
- $new_stato = Stato::where('descrizione', 'Pagato')->first();
+ $new_stato = (new Stato())->getByName('Pagato')->id_record;
if ($fattura->isAutofattura() && !empty($id_autofattura)) {
$autofattura_collegata = Fattura::find($id_autofattura);
diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php
index d36713d2d..de1b9c1ef 100755
--- a/plugins/importFE/generate.php
+++ b/plugins/importFE/generate.php
@@ -255,15 +255,15 @@ echo '
if (!empty($anagrafica)) {
$query = "SELECT
- co_documenti.id,
- CONCAT('Fattura num. ', co_documenti.numero_esterno, ' del ', DATE_FORMAT(co_documenti.data, '%d/%m/%Y')) AS descrizione
- FROM co_documenti
- INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
+ `co_documenti`.`id`,
+ CONCAT('Fattura num. ', `co_documenti`.`numero_esterno`, ' del ', DATE_FORMAT(`co_documenti`.`data`, '%d/%m/%Y')) AS descrizione
+ FROM `co_documenti`
+ INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- co_tipidocumento.dir = 'uscita' AND
- (co_documenti.data BETWEEN NOW() - INTERVAL 1 YEAR AND NOW()) AND
- co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione != 'Bozza') AND
- co_documenti.idanagrafica = ".prepare($anagrafica->id);
+ `co_tipidocumento`.`dir` = 'uscita' AND
+ (`co_documenti`.`data` BETWEEN NOW() - INTERVAL 1 YEAR AND NOW()) AND
+ `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` != 'Bozza') AND
+ `co_documenti`.`idanagrafica` = ".prepare($anagrafica->id);
// Riferimenti ad altre fatture
if (in_array($dati_generali['TipoDocumento'], ['TD04', 'TD05'])) {
@@ -280,16 +280,16 @@ if (!empty($anagrafica)) {
';
} elseif ($is_autofattura) {
$query = "SELECT
- co_documenti.id,
- CONCAT('Fattura num. ', co_documenti.numero_esterno, ' del ', DATE_FORMAT(co_documenti.data, '%d/%m/%Y')) AS descrizione
- FROM co_documenti
- INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
+ `co_documenti`.`id`,
+ CONCAT('Fattura num. ', `co_documenti`.`numero_esterno`, ' del ', DATE_FORMAT(`co_documenti`.`data`, '%d/%m/%Y')) AS descrizione
+ FROM `co_documenti`
+ INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- co_tipidocumento.dir = 'entrata' AND
- co_tipidocumento.codice_tipo_documento_fe IN('TD16', 'TD17', 'TD18', 'TD19', 'TD20', 'TD21', 'TD28') AND
- (co_documenti.data BETWEEN NOW() - INTERVAL 1 YEAR AND NOW()) AND
- co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione != 'Bozza') AND
- co_documenti.idanagrafica = ".prepare($anagrafica->id);
+ `co_tipidocumento`.`dir` = 'entrata' AND
+ `co_tipidocumento`.`codice_tipo_documento_fe` IN('TD16', 'TD17', 'TD18', 'TD19', 'TD20', 'TD21', 'TD28') AND
+ (`co_documenti`.`data` BETWEEN NOW() - INTERVAL 1 YEAR AND NOW()) AND
+ `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` != 'Bozza') AND
+ `co_documenti`.`idanagrafica` = ".prepare($anagrafica->id);
$autofattura_collegata = Fattura::where('progressivo_invio', '=', $fattura_pa->getHeader()['DatiTrasmissione']['ProgressivoInvio'])->first();
diff --git a/plugins/pianificazione_fatturazione/actions.php b/plugins/pianificazione_fatturazione/actions.php
index c42644f4d..0c0d5dac6 100755
--- a/plugins/pianificazione_fatturazione/actions.php
+++ b/plugins/pianificazione_fatturazione/actions.php
@@ -169,7 +169,7 @@ switch ($operazione) {
$tipo = Tipo::find(post('idtipodocumento'));
if (!empty($accodare)) {
- $documento = $dbo->fetchOne('SELECT co_documenti.id FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id WHERE co_statidocumento.descrizione = \'Bozza\' AND idanagrafica = '.prepare($contratto->idanagrafica));
+ $documento = $dbo->fetchOne('SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = "'.prepare(setting('Lingua')).'") WHERE `co_statidocumento`.`name` = \'Bozza\' AND `idanagrafica` = '.prepare($contratto->idanagrafica));
$id_documento = $documento['id'];
}
@@ -219,8 +219,7 @@ switch ($operazione) {
$contratto = $pianificazione->contratto;
if (!empty($accodare)) {
$documento = $dbo->fetchOne(
- 'SELECT co_documenti.id FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id
- WHERE co_statidocumento.descrizione = \'Bozza\' AND idanagrafica = '.prepare($contratto->idanagrafica)
+ 'SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_statidocumento_lang`.`name` = \'Bozza\' AND `idanagrafica` = '.prepare($contratto->idanagrafica)
);
$id_documento = $documento['id'];
diff --git a/plugins/pianificazione_fatturazione/edit.php b/plugins/pianificazione_fatturazione/edit.php
index 75166cdb9..1c35f6d49 100644
--- a/plugins/pianificazione_fatturazione/edit.php
+++ b/plugins/pianificazione_fatturazione/edit.php
@@ -83,7 +83,7 @@ if (!$pianificazioni->isEmpty()) {
'.Modules::link('Fatture di vendita', $fattura->id, tr('Fattura num. _NUM_ del _DATE_', [
'_NUM_' => $fattura->numero_esterno,
'_DATE_' => dateFormat($fattura->data),
- ])).' (
'.$fattura->stato->descrizione.')';
+ ])).' (
'.$fattura->stato->name.')';
} else {
echo '
'.tr('Non ancora fatturato');
diff --git a/plugins/receiptFE/src/Ricevuta.php b/plugins/receiptFE/src/Ricevuta.php
index f48072280..ce535c834 100755
--- a/plugins/receiptFE/src/Ricevuta.php
+++ b/plugins/receiptFE/src/Ricevuta.php
@@ -243,8 +243,8 @@ class Ricevuta
// Correzione eventuale per lo stato della fattura in Bozza
$fattura = $this->getFattura();
- if ($fattura->stato->descrizione == 'Bozza') {
- $stato_emessa = Stato::where('descrizione', 'Emessa')->first();
+ if ($fattura->stato->name == 'Bozza') {
+ $stato_emessa = (new Stato())->getByName('Emessa')->id_record;
$fattura->stato()->associate($stato_emessa);
$fattura->save();
}
diff --git a/plugins/registrazioni/actions.php b/plugins/registrazioni/actions.php
index 09169223d..6c4162669 100644
--- a/plugins/registrazioni/actions.php
+++ b/plugins/registrazioni/actions.php
@@ -42,7 +42,7 @@ switch ($operazione) {
$fattura = Fattura::find($id_record);
- if ($fattura->stato->descrizione != 'Bozza') {
+ if ($fattura->stato->name != 'Bozza') {
$fattura->gestoreMovimenti = new GestoreMovimenti($fattura);
$fattura->gestoreMovimenti->registra();
}
diff --git a/templates/anagrafiche/body.php b/templates/anagrafiche/body.php
index 6c7d30a45..a97c9e043 100755
--- a/templates/anagrafiche/body.php
+++ b/templates/anagrafiche/body.php
@@ -157,7 +157,7 @@ if (!empty($interventi)) {
'.tr('Tipo').': '.$intervento->tipo->descrizione.' |
- '.tr('stato').': '.$intervento->stato->descrizione.' |
+ '.tr('stato').': '.$intervento->stato->name.' |
'.tr('richiesta').': '.$intervento->richiesta.' |
diff --git a/templates/fatturato/init.php b/templates/fatturato/init.php
index f404331b4..b53fad35f 100755
--- a/templates/fatturato/init.php
+++ b/templates/fatturato/init.php
@@ -38,7 +38,7 @@ $raggruppamenti = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = '.prepare($dir).' AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = '.prepare($dir).' AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` = "Bozza" OR `name` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`periodo`
ORDER BY
diff --git a/templates/liquidazione_iva/init.php b/templates/liquidazione_iva/init.php
index c583a54d2..3c1ee7c6d 100644
--- a/templates/liquidazione_iva/init.php
+++ b/templates/liquidazione_iva/init.php
@@ -64,7 +64,7 @@ if (!empty($vendita_banco)) {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
@@ -118,7 +118,7 @@ if (!empty($vendita_banco)) {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
@@ -170,7 +170,7 @@ if (!empty($vendita_banco)) {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($anno_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($anno_precedente_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($anno_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($anno_precedente_end).'
GROUP BY
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
@@ -222,7 +222,7 @@ if (!empty($vendita_banco)) {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($periodo_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($periodo_precedente_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($periodo_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($periodo_precedente_end).'
GROUP BY
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
@@ -267,7 +267,7 @@ else {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -286,7 +286,7 @@ else {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -305,7 +305,7 @@ else {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($anno_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($anno_precedente_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($anno_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($anno_precedente_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY aliquota desc');
@@ -324,7 +324,7 @@ else {
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($periodo_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($periodo_precedente_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($periodo_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($periodo_precedente_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -344,7 +344,7 @@ $iva_vendite_nonesigibile = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 1 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = "entrata" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 1 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -363,7 +363,7 @@ $iva_acquisti_detraibile = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND `co_iva`.`indetraibile` != 100
+ `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `co_documenti`.`split_payment` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND `co_iva`.`indetraibile` != 100
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -382,7 +382,7 @@ $iva_acquisti_nondetraibile = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND `co_iva`.`indetraibile` != 0
+ `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND `co_iva`.`indetraibile` != 0
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -401,7 +401,7 @@ $iva_acquisti = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
+ `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -420,7 +420,7 @@ $iva_acquisti_anno_precedente = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($anno_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($anno_precedente_end).'
+ `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($anno_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($anno_precedente_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
@@ -439,7 +439,7 @@ $iva_acquisti_periodo_precedente = $dbo->fetchArray('
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
WHERE
- `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN(SELECT `id` FROM `co_statidocumento` WHERE `descrizione` = "Bozza" OR `descrizione` = "Annullata") AND `co_documenti`.`data_competenza` >= '.prepare($periodo_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($periodo_precedente_end).'
+ `co_tipidocumento`.`dir` = "uscita" AND `co_righe_documenti`.`is_descrizione` = 0 AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `co_documenti`.`data_competenza` >= '.prepare($periodo_precedente_start).' AND `co_documenti`.`data_competenza` <= '.prepare($periodo_precedente_end).'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
diff --git a/templates/provvigione/init.php b/templates/provvigione/init.php
index f883b6cc5..454a92ac7 100644
--- a/templates/provvigione/init.php
+++ b/templates/provvigione/init.php
@@ -24,23 +24,24 @@ $id_module = $module['id'];
$module_query = '
SELECT
- numero_esterno,
- an_anagrafiche.ragione_sociale,
- SUM(prezzo_unitario*qta) as \'Totale\',
- provvigione_percentuale,
- provvigione
+ `numero_esterno`,
+ `an_anagrafiche`.`ragione_sociale`,
+ SUM(`prezzo_unitario`*`qta`) as \'Totale\',
+ `provvigione_percentuale`,
+ `provvigione`
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 (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
- LEFT JOIN an_anagrafiche as agenti ON agenti.idanagrafica = co_documenti.idagente
- LEFT JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento_lang`.`id_record` = `co_statidocumento`.`id` AND `co_statidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).')
+ LEFT JOIN `an_anagrafiche` as agenti ON `agenti`.`idanagrafica` = `co_documenti`.`idagente`
+ LEFT JOIN `co_righe_documenti` ON `co_righe_documenti`.`iddocumento` = `co_documenti`.`id`
WHERE
- 1=1 AND provvigione > 0
+ 1=1 AND `provvigione` > 0
GROUP BY
- co_documenti.id
+ `co_documenti`.`id`
HAVING
2=2
ORDER BY
@@ -58,15 +59,15 @@ if (!empty(get('date_end'))) {
$date_end = get('date_end');
}
-$module_query = str_replace('1=1', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', $module_query);
+$module_query = str_replace('1=1', '1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` = "Pagato")', $module_query);
if (get('is_emessa') == 'true' && get('is_parz_pagata') == 'true') {
- $module_query = str_replace('1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato" OR descrizione = "Emessa" OR descrizione = "Parzialmente pagato")', $module_query);
+ $module_query = str_replace('1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` = "Pagato")', '1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Pagato", "Emessa", "Parzialmente pagato"))', $module_query);
} elseif (get('is_emessa') == 'true') {
- $module_query = str_replace('1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato" OR descrizione = "Emessa")', $module_query);
+ $module_query = str_replace('1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` = "Pagato")', '1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Pagato", "Emessa"))', $module_query);
} elseif (get('is_parz_pagata') == 'true') {
- $module_query = str_replace('1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato" OR descrizione = "Parzialmente pagato")', $module_query);
+ $module_query = str_replace('1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` = "Pagato")', '1=1 AND `co_documenti`.`idstatodocumento` IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Pagato", "Parzialmente pagato"))', $module_query);
}
-$module_query = str_replace('1=1', '1=1 AND co_documenti.idagente='.prepare($id_record), $module_query);
+$module_query = str_replace('1=1', '1=1 AND `co_documenti`.`idagente`='.prepare($id_record), $module_query);
$records = $dbo->fetchArray($module_query);
diff --git a/templates/registro_iva/init.php b/templates/registro_iva/init.php
index d9d043f03..14725d974 100755
--- a/templates/registro_iva/init.php
+++ b/templates/registro_iva/init.php
@@ -73,7 +73,7 @@ if ((!empty($vendita_banco)) && ($id_sezionale == -1) && ($tipo == 'vendite')) {
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_documenti`.`idanagrafica`
WHERE
- `dir` = '.prepare($dir).' AND `idstatodocumento` NOT IN (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`="Bozza" OR `descrizione`="Annullata") AND `is_descrizione` = 0 AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND '.(($id_sezionale != -1) ? '`co_documenti`.`id_segment` = '.prepare($id_sezionale).'' : '1=1').'
+ `dir` = '.prepare($dir).' AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `is_descrizione` = 0 AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND '.(($id_sezionale != -1) ? '`co_documenti`.`id_segment` = '.prepare($id_sezionale).'' : '1=1').'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
UNION
@@ -130,7 +130,7 @@ FROM
INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_documenti`.`idanagrafica`
WHERE
- `dir` = '.prepare($dir).' AND `idstatodocumento` NOT IN (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`="Bozza" OR `descrizione`="Annullata") AND `is_descrizione` = 0 AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND '.(($id_sezionale != -1) ? '`co_documenti`.`id_segment` = '.prepare($id_sezionale).'' : '1=1').'
+ `dir` = '.prepare($dir).' AND `idstatodocumento` NOT IN (SELECT `id_record` FROM `co_statidocumento_lang` WHERE `name` IN ("Bozza", "Annullata")) AND `is_descrizione` = 0 AND `co_documenti`.`data_competenza` >= '.prepare($date_start).' AND `co_documenti`.`data_competenza` <= '.prepare($date_end).' AND '.(($id_sezionale != -1) ? '`co_documenti`.`id_segment` = '.prepare($id_sezionale).'' : '1=1').'
GROUP BY
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY
diff --git a/templates/riepilogo_interventi/piece.php b/templates/riepilogo_interventi/piece.php
index 2f2fc032d..33322a210 100644
--- a/templates/riepilogo_interventi/piece.php
+++ b/templates/riepilogo_interventi/piece.php
@@ -66,7 +66,7 @@ if (dateFormat($intervento->inizio)) {
}
echo '
'.tr('Cliente').': '.$intervento->anagrafica->ragione_sociale.'
- '.tr('Stato').': '.$intervento->stato->descrizione.'
+ '.tr('Stato').': '.$intervento->stato->name.'
'.tr('Data richiesta').': '.dateFormat($intervento->data_richiesta).'
'.tr('Richiesta').': '.$intervento->richiesta.'
';
if ($intervento->descrizione) {
diff --git a/update/2_4_55.sql b/update/2_4_55.sql
index b4859a2f3..599310975 100644
--- a/update/2_4_55.sql
+++ b/update/2_4_55.sql
@@ -309,33 +309,6 @@ UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_module
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'COUNT(`co_pagamenti_lang`.`name`)' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'Rate';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`id`' WHERE `zz_modules`.`name` = 'Pagamenti' AND `zz_views`.`name` = 'id';
--- Allineamento vista Fatture di vendita
-UPDATE `zz_modules` SET `options` = "
-SELECT
- |select|
-FROM
- `co_documenti`
- LEFT JOIN (SELECT SUM(`totale`) AS `totale`, `iddocumento` FROM `co_movimenti` WHERE `totale` > 0 AND `primanota` = 1 GROUP BY `iddocumento`) AS `primanota` ON `primanota`.`iddocumento` = `co_documenti`.`id`
- LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
- LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
- LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM((`subtotale` - `sconto` + `rivalsainps`) * `co_iva`.`percentuale` / 100) AS `iva` FROM `co_righe_documenti` LEFT JOIN `co_iva` ON `co_iva`.`id` = `co_righe_documenti`.`idiva` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento`
- LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS `descrizione` FROM `co_banche` GROUP BY `co_banche`.`id`) AS `banche` ON `banche`.`id` =`co_documenti`.`id_banca_azienda`
- LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
- LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice`
- LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
- LEFT JOIN (SELECT COUNT(id) as `emails`, `em_emails`.`id_record` FROM `em_emails` INNER JOIN `zz_operations` ON `zz_operations`.`id_email` = `em_emails`.`id` WHERE `id_module` IN(SELECT `id` FROM `zz_modules` WHERE name = 'Fatture di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY `em_emails`.`id_record`) AS `email` ON `email`.`id_record` = `co_documenti`.`id`
- LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
- LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND |lang|)
- LEFT JOIN (SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento` HAVING COUNT(`numero_esterno`) > 1 |date_period(`co_documenti`.`data`)| ) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento`
-WHERE
- 1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)|
-HAVING
- 2=2
-ORDER BY
- `co_documenti`.`data` DESC,
- CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita';
-UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_pagamenti_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'Pagamento';
-
-- Allineamento vista Anagrafiche
UPDATE `zz_modules` SET `options` = "
SELECT
@@ -360,36 +333,6 @@ HAVING
ORDER BY
TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche';
--- Allineamento vista 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 `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
- LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
- LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.|lang|)
- LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`nome`, ' - ', `iban`) AS `descrizione` FROM `co_banche`) AS `banche` ON `banche`.`id` = `co_documenti`.`id_banca_azienda`
- LEFT JOIN (SELECT `iddocumento`, GROUP_CONCAT(`co_pianodeiconti3`.`descrizione`) AS `descrizione` FROM `co_righe_documenti` INNER JOIN `co_pianodeiconti3` ON `co_pianodeiconti3`.`id` = `co_righe_documenti`.`idconto` GROUP BY iddocumento) AS `conti` ON `conti`.`iddocumento` = `co_documenti`.`id`
- LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento`
- LEFT JOIN (SELECT COUNT(`d`.`id`) AS `conteggio`, IF(`d`.`numero_esterno` = '', `d`.`numero`, `d`.`numero_esterno`) AS `numero_documento`, `d`.`idanagrafica` AS `anagrafica`, `d`.`id_segment` FROM `co_documenti` AS `d`
- LEFT JOIN `co_tipidocumento` AS `d_tipo` ON `d`.`idtipodocumento` = `d_tipo`.`id` WHERE 1=1 AND `d_tipo`.`dir` = 'uscita' AND('|period_start|' <= `d`.`data` AND '|period_end|' >= `d`.`data` OR '|period_start|' <= `d`.`data_competenza` AND '|period_end|' >= `d`.`data_competenza`) GROUP BY `d`.`id_segment`, `numero_documento`, `d`.`idanagrafica`) AS `d` ON (`d`.`numero_documento` = IF(`co_documenti`.`numero_esterno` = '',`co_documenti`.`numero`,`co_documenti`.`numero_esterno`) AND `d`.`anagrafica` = `co_documenti`.`idanagrafica` AND `d`.`id_segment` = `co_documenti`.`id_segment`)
-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` )|
-GROUP BY
- `co_documenti`.`id`, `d`.`conteggio`
-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';
-UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'CONCAT(`co_pagamenti`.`codice_modalita_pagamento_fe`, " - ", `co_pagamenti_lang`.`name`)' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = 'Pagamento';
-
-- Allineamento vista Scadenzario
UPDATE `zz_modules` SET `options` = "
SELECT
@@ -491,4 +434,102 @@ UPDATE `zz_modules` SET `options` = 'SELECT\n |select|\nFROM \n `zz_groups` \n L
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Utenti e permessi'), 'N. utenti abilitati', '`utenti_abilitati`.`num`', '3', '1', '0', '0', '0', '', '', '1', '0', '0');
-- Aggiunta colonna N. API abilitate
-INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Utenti e permessi'), 'N. API abilitate', '`api_abilitate`.`num`', '3', '1', '0', '0', '0', '', '', '1', '0', '0');
\ No newline at end of file
+INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Utenti e permessi'), 'N. API abilitate', '`api_abilitate`.`num`', '3', '1', '0', '0', '0', '', '', '1', '0', '0');
+
+-- Aggiunta tabella co_statidocumento_lang
+CREATE TABLE IF NOT EXISTS `co_statidocumento_lang` (
+ `id` int NOT NULL,
+ `id_lang` int NOT NULL,
+ `id_record` int NOT NULL,
+ `name` VARCHAR(255) NOT NULL
+);
+ALTER TABLE `co_statidocumento_lang`
+ ADD PRIMARY KEY (`id`);
+
+ALTER TABLE `co_statidocumento_lang`
+ MODIFY `id` int NOT NULL AUTO_INCREMENT;
+
+INSERT INTO `co_statidocumento_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `co_statidocumento`;
+
+ALTER TABLE `co_statidocumento`
+ DROP `descrizione`;
+
+ALTER TABLE `co_statidocumento` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `co_statidocumento_lang` ADD CONSTRAINT `co_statidocumento_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `co_statidocumento`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
+
+-- Allineamento vista Stati fatture
+UPDATE `zz_modules` SET `options` = "
+SELECT
+ |select|
+FROM
+ `co_statidocumento`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND |lang|)
+WHERE
+ 1=1
+HAVING
+ 2=2" WHERE `name` = 'Stati fatture';
+UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_statidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Stati fatture' AND `zz_views`.`name` = 'Descrizione';
+
+-- Allineamento vista Fatture di vendita
+UPDATE `zz_modules` SET `options` = "
+SELECT
+ |select|
+FROM
+ `co_documenti`
+ LEFT JOIN (SELECT SUM(`totale`) AS `totale`, `iddocumento` FROM `co_movimenti` WHERE `totale` > 0 AND `primanota` = 1 GROUP BY `iddocumento`) AS `primanota` ON `primanota`.`iddocumento` = `co_documenti`.`id`
+ LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
+ LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
+ LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM((`subtotale` - `sconto` + `rivalsainps`) * `co_iva`.`percentuale` / 100) AS `iva` FROM `co_righe_documenti` LEFT JOIN `co_iva` ON `co_iva`.`id` = `co_righe_documenti`.`idiva` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento`
+ LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS `descrizione` FROM `co_banche` GROUP BY `co_banche`.`id`) AS `banche` ON `banche`.`id` =`co_documenti`.`id_banca_azienda`
+ LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
+ LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND co_statidocumento_lang.|lang|)
+ LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice`
+ LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
+ LEFT JOIN (SELECT COUNT(id) as `emails`, `em_emails`.`id_record` FROM `em_emails` INNER JOIN `zz_operations` ON `zz_operations`.`id_email` = `em_emails`.`id` WHERE `id_module` IN(SELECT `id` FROM `zz_modules` WHERE name = 'Fatture di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY `em_emails`.`id_record`) AS `email` ON `email`.`id_record` = `co_documenti`.`id`
+ LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
+ LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND co_pagamenti_lang.|lang|)
+ LEFT JOIN (SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento` HAVING COUNT(`numero_esterno`) > 1 |date_period(`co_documenti`.`data`)| ) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento`
+WHERE
+ 1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)|
+HAVING
+ 2=2
+ORDER BY
+ `co_documenti`.`data` DESC,
+ CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita';
+UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_statidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'icon_title_Stato';
+
+
+-- Allineamento vista 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 `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.|lang|)
+ LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
+ LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
+ LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.|lang|)
+ LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`nome`, ' - ', `iban`) AS `descrizione` FROM `co_banche`) AS `banche` ON `banche`.`id` = `co_documenti`.`id_banca_azienda`
+ LEFT JOIN (SELECT `iddocumento`, GROUP_CONCAT(`co_pianodeiconti3`.`descrizione`) AS `descrizione` FROM `co_righe_documenti` INNER JOIN `co_pianodeiconti3` ON `co_pianodeiconti3`.`id` = `co_righe_documenti`.`idconto` GROUP BY iddocumento) AS `conti` ON `conti`.`iddocumento` = `co_documenti`.`id`
+ LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento`
+ LEFT JOIN (SELECT COUNT(`d`.`id`) AS `conteggio`, IF(`d`.`numero_esterno` = '', `d`.`numero`, `d`.`numero_esterno`) AS `numero_documento`, `d`.`idanagrafica` AS `anagrafica`, `d`.`id_segment` FROM `co_documenti` AS `d`
+ LEFT JOIN `co_tipidocumento` AS `d_tipo` ON `d`.`idtipodocumento` = `d_tipo`.`id` WHERE 1=1 AND `d_tipo`.`dir` = 'uscita' AND('|period_start|' <= `d`.`data` AND '|period_end|' >= `d`.`data` OR '|period_start|' <= `d`.`data_competenza` AND '|period_end|' >= `d`.`data_competenza`) GROUP BY `d`.`id_segment`, `numero_documento`, `d`.`idanagrafica`) AS `d` ON (`d`.`numero_documento` = IF(`co_documenti`.`numero_esterno` = '',`co_documenti`.`numero`,`co_documenti`.`numero_esterno`) AND `d`.`anagrafica` = `co_documenti`.`idanagrafica` AND `d`.`id_segment` = `co_documenti`.`id_segment`)
+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` )|
+GROUP BY
+ `co_documenti`.`id`, `d`.`conteggio`
+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';
+UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_statidocumento_lang`.`name`' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = 'icon_title_Stato';
+
+-- Fix plugin Ddt del cliente
+UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Numero, Data, Descrizione, Qtà\", \"query\": \"SELECT dt_ddt.id, IF(dt_tipiddt.dir = \'entrata\', (SELECT `id` FROM `zz_modules` WHERE `name` = \'Ddt di vendita\'), (SELECT `id` FROM `zz_modules` WHERE `name` = \'Ddt di acquisto\')) AS _link_module_, dt_ddt.id AS _link_record_, IF(dt_ddt.numero_esterno = \'\', dt_ddt.numero, dt_ddt.numero_esterno) AS Numero, DATE_FORMAT(dt_ddt.data, \'%d/%m/%Y\') AS Data, dt_righe_ddt.descrizione AS `Descrizione`, REPLACE(REPLACE(REPLACE(FORMAT(dt_righe_ddt.qta, 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\') AS `Qtà` FROM dt_ddt LEFT JOIN dt_righe_ddt ON dt_ddt.id=dt_righe_ddt.idddt JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE dt_ddt.idanagrafica=|id_parent| HAVING 2=2 ORDER BY dt_ddt.id DESC\"} ]}' WHERE `zz_plugins`.`name` = 'Ddt del cliente';
\ No newline at end of file
diff --git a/update/tables.php b/update/tables.php
index 424469297..01a2519bb 100755
--- a/update/tables.php
+++ b/update/tables.php
@@ -51,6 +51,7 @@ return [
'co_staticontratti',
'co_staticontratti_lang',
'co_statidocumento',
+ 'co_statidocumento_lang'
'co_statipreventivi',
'co_tipidocumento',
'co_tipi_scadenze',