diff --git a/ajax_dataload.php b/ajax_dataload.php index af1e598ab..e42e13fec 100755 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -114,8 +114,8 @@ if (!empty($query)) { if (!empty($r['_bg_'])) { if (preg_match('/-light$/', $r['_bg_'])) { - $column['data-background'] = substr($r['_bg_'], 0, -6); // Remove the "-light" suffix from the word - }else{ + $column['data-background'] = substr($r['_bg_'], 0, -6); // Remove the "-light" suffix from the word + } else { $column['data-background'] = $r['_bg_']; } } diff --git a/include/common/importa.php b/include/common/importa.php index 0224a5996..a4b919365 100755 --- a/include/common/importa.php +++ b/include/common/importa.php @@ -17,6 +17,7 @@ * along with this program. If not, see . */ +use Modules\Fatture\Stato; use Plugins\ListinoFornitori\DettaglioFornitore; // Inizializzazione @@ -88,7 +89,7 @@ if (!empty($options['create_document'])) { // Opzioni aggiuntive per le Fatture if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) { - $stato_predefinito = $database->fetchOne("SELECT id FROM co_statidocumento WHERE descrizione = 'Bozza'"); + $stato_predefinito = (new Stato())->getByName('Bozza')->id_record; if (!empty($options['reversed'])) { $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [ @@ -109,7 +110,7 @@ if (!empty($options['create_document'])) { echo '
- {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM co_statidocumento WHERE descrizione IN (\'Emessa\', \'Bozza\')", "value": "'.$stato_predefinito['id'].'"]} + {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=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\', \'Bozza\')", "value": "'.$stato_predefinito['id'].'"]}
diff --git a/include/init/update.php b/include/init/update.php index a9bf0f8a1..e6d6a8e1c 100755 --- a/include/init/update.php +++ b/include/init/update.php @@ -98,7 +98,7 @@ if (filter('action') == 'do_update') { // Istruzioni per la prima installazione if ($_GET['firstuse'] == 'true') { echo ' -

'.tr("Si consiglia di rimuovere i permessi di scrittura dal file _FILE_", [ +

'.tr('Si consiglia di rimuovere i permessi di scrittura dal file _FILE_', [ '_FILE_' => 'config.inc.php', ]).'.

'; } diff --git a/lib/util.php b/lib/util.php index 1b3336505..db0a503f2 100755 --- a/lib/util.php +++ b/lib/util.php @@ -462,15 +462,15 @@ if (!function_exists('color_inverse')) { } } else { switch ($start_colour) { - case 'black': - return 'white'; - case 'blue': - return 'white'; - case 'purple': - return 'white'; - // Aggiungere altri casi per colori specifici - default: - return '#000'; // Se il colore non è specificato, restituisce il colore originale + case 'black': + return 'white'; + case 'blue': + return 'white'; + case 'purple': + return 'white'; + // Aggiungere altri casi per colori specifici + default: + return '#000'; // Se il colore non è specificato, restituisce il colore originale } } } diff --git a/modules/contratti/modals/confronta_righe.php b/modules/contratti/modals/confronta_righe.php index d0342c09c..52f7439f7 100644 --- a/modules/contratti/modals/confronta_righe.php +++ b/modules/contratti/modals/confronta_righe.php @@ -70,20 +70,22 @@ $righe = $dbo->fetchArray( $ultimo_prezzo_vendita = $dbo->fetchArray( 'SELECT - co_righe_contratti.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_contratti ON co_righe_contratti.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' + `co_righe_contratti`.`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_contratti` ON `co_righe_contratti`.`idarticolo` = `mg_articoli`.`id` + 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/ddt/modals/confronta_righe.php b/modules/ddt/modals/confronta_righe.php index cc67613ba..103c3a9c8 100644 --- a/modules/ddt/modals/confronta_righe.php +++ b/modules/ddt/modals/confronta_righe.php @@ -71,20 +71,22 @@ $righe = $dbo->fetchArray( $ultimo_prezzo_vendita = $dbo->fetchArray( 'SELECT - dt_righe_ddt.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 dt_righe_ddt ON dt_righe_ddt.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' + `dt_righe_ddt`.`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 `dt_righe_ddt` ON `dt_righe_ddt`.`idarticolo` = `mg_articoli`.`id` + 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/actions.php b/modules/fatture/actions.php index 34f8aad84..7bf2ccac9 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -102,14 +102,15 @@ switch ($op) { $data_fattura_precedente = $dbo->fetchOne(' SELECT - MAX(DATA) AS datamax + MAX(`data`) AS datamax 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 zz_segments ON zz_segments.id = co_documenti.id_segment + `co_documenti` + INNER JOIN `co_statidocumento` ON `co_statidocumento`.`id` = `co_documenti`.`idstatodocumento` + LEFT JOIN `co_statidocumento_lang` ON (`co_statidocumento`.`id` = `co_statidocumento_lang`.`id_record` AND `co_statidocumento_lang`.`id_lang` = '.setting('Lingua').') + INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_documenti`.`id_segment` WHERE - co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment); + `co_statidocumento_lang`.`name` = "Emessa" AND `co_tipidocumento`.`dir`="entrata" AND `co_documenti`.`id_segment`='.$fattura->id_segment); if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->descrizione == 'Emessa') && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) { $fattura->data = $data_fattura_precedente['datamax']; @@ -311,7 +312,7 @@ switch ($op) { // Elenco fatture in stato Bozza per il cliente case 'fatture_bozza': $id_anagrafica = post('id_anagrafica'); - $stato = Stato::where('descrizione', 'Bozza')->first(); + $stato = (new Stato())->getByName('Bozza')->id_record; $fatture = Fattura::vendita() ->where('idanagrafica', $id_anagrafica) @@ -330,8 +331,8 @@ switch ($op) { // Elenco fatture Scadute per il cliente case 'fatture_scadute': $id_anagrafica = post('id_anagrafica'); - $stato1 = Stato::where('descrizione', 'Emessa')->first(); - $stato2 = Stato::where('descrizione', 'Parzialmente pagato')->first(); + $stato1 = (new Stato())->getByName('Emessa')->id_record; + $stato2 = (new Stato())->getByName('Parzialmente pagato')->id_record; $fatture = Fattura::vendita() ->select('*', 'co_documenti.id AS id', 'co_documenti.data AS data') @@ -404,10 +405,10 @@ switch ($op) { case 'reopen': if (!empty($id_record)) { - $stato = Stato::where('descrizione', 'Bozza')->first(); + $stato = (new Stato())->getByName('Bozza')->id_record; $fattura->stato()->associate($stato); $fattura->save(); - $stato = Stato::where('descrizione', 'Emessa')->first(); + $stato = (new Stato())->getByName('Emessa')->id_record; $fattura->stato()->associate($stato); $fattura->save(); flash()->info(tr('Fattura riaperta!')); diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index d7d13fff9..4b66930b4 100755 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -28,11 +28,10 @@ use Modules\Fatture\Stato; use Plugins\ExportFE\FatturaElettronica; use Plugins\ExportFE\Interaction; use Plugins\ReceiptFE\Ricevuta; -use Util\XML; use Util\Zip; $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); -$stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id']; +$stato_emessa = (new Stato())->getByName('Emessa')->id_record; $is_fiscale = $dbo->selectOne('zz_segments', 'is_fiscale', ['id' => $_SESSION['module_'.$id_module]])['is_fiscale']; switch (post('op')) { @@ -185,7 +184,7 @@ switch (post('op')) { } // Selezione delle fatture da esportare - $fatture = $dbo->fetchArray('SELECT co_documenti.id, numero_esterno, data, ragione_sociale, co_tipidocumento.descrizione, co_tipidocumento.dir FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id WHERE co_documenti.id IN('.implode(',', $id_records).')'); + $fatture = $dbo->fetchArray('SELECT `co_documenti`.`id`, `numero_esterno`, `data`, `ragione_sociale`, `co_tipidocumento`.`descrizione`, `co_tipidocumento`.`dir` FROM `co_documenti` INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento`=`co_statidocumento`.`id` WHERE `co_documenti`.`id` IN('.implode(',', $id_records).')'); $failed = []; $added = 0; @@ -263,7 +262,7 @@ switch (post('op')) { } // Selezione delle fatture da esportare - $fatture = $dbo->fetchArray('SELECT co_documenti.id, numero_esterno, data, ragione_sociale, co_tipidocumento.descrizione, co_tipidocumento.dir FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_statidocumento ON co_documenti.idstatodocumento=co_statidocumento.id WHERE co_documenti.id IN('.implode(',', $id_records).')'); + $fatture = $dbo->fetchArray('SELECT `co_documenti`.`id`, `numero_esterno`, `data`, `ragione_sociale`, `co_tipidocumento`.`descrizione`, `co_tipidocumento`.`dir` FROM `co_documenti` INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento`=`co_statidocumento`.`id` WHERE `co_documenti`.`id` IN('.implode(',', $id_records).')'); $failed = []; $added = 0; @@ -463,7 +462,7 @@ switch (post('op')) { case 'change-stato': $list = []; - $new_stato = Stato::where('descrizione', 'Emessa')->first(); + $new_stato = (new Stato())->getByName('Emessa')->id_record; $fatture = Fattura::vendita() ->whereIn('id', $id_records) ->orderBy('data') @@ -477,14 +476,15 @@ switch (post('op')) { $data_fattura_precedente = $dbo->fetchOne(' SELECT - MAX(DATA) AS datamax + MAX(`data`) AS datamax 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 zz_segments ON zz_segments.id = co_documenti.id_segment + `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_documenti`.`idstatodocumento` AND `co_statidocumento_lang`.`id_lang` = '.setting('Lingua').') + INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_documenti`.`id_segment` WHERE - co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment); + `co_statidocumento_lang`.`name` = "Emessa" AND `co_tipidocumento`.`dir`="entrata" AND `co_documenti`.`id_segment`='.$fattura->id_segment); if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) { $fattura->data = $data_fattura_precedente['datamax']; @@ -576,7 +576,7 @@ switch (post('op')) { $documento = Fattura::find($id); ++$count; - if ($documento->stato->descrizione == 'Bozza') { + if ($documento->stato->name == 'Bozza') { $documento->id_segment = post('id_segment'); $documento->save(); ++$n_doc; diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 03d70c6cd..a4be140b9 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -153,7 +153,7 @@ if (!empty($fattura->ref_documento) && $fattura->isNota()) { } // Ricordo che si sta emettendo una fattura conto terzi -if ($dir == 'entrata' && $fattura->stato->descrizione == 'Bozza') { +if ($dir == 'entrata' && $fattura->stato->name == 'Bozza') { if ($fattura->is_fattura_conto_terzi) { echo '
@@ -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 .= '
  • '.Aliquota::find($iva_accettata->id)->name.'
  • '; } - 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_
    ', ['_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..b804ef176 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/Gestori/Movimenti.php b/modules/fatture/src/Gestori/Movimenti.php index b67912afe..62629e689 100644 --- a/modules/fatture/src/Gestori/Movimenti.php +++ b/modules/fatture/src/Gestori/Movimenti.php @@ -233,21 +233,21 @@ class Movimenti $totale_dare += $dare; $totale_avere += $avere; - + // Nell'ultimo conto del mastrino inserisco l'eventuale differenza per evitare sbilanci nel totale $aggiustamento_dare = 0; $aggiustamento_avere = 0; - if ($i++ == count($movimenti) -1) { + if ($i++ == count($movimenti) - 1) { if ($element['dare']) { - $aggiustamento_dare -= round( $totale_dare - $totale_avere, 6 ); + $aggiustamento_dare -= round($totale_dare - $totale_avere, 6); } elseif ($element['avere']) { - $aggiustamento_avere -= round( $totale_avere - $totale_dare, 6 ); + $aggiustamento_avere -= round($totale_avere - $totale_dare, 6); } } $movimento = Movimento::build($mastrino, $element['id_conto'], $this->fattura); - $movimento->setTotale((float)$avere + $aggiustamento_avere, (float)$dare + $aggiustamento_dare); + $movimento->setTotale((float) $avere + $aggiustamento_avere, (float) $dare + $aggiustamento_dare); $movimento->save(); } } 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..e3ee97740 100755 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -97,17 +97,16 @@ switch (post('op')) { $where = ''; $query = 'SELECT *, IFNULL((SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id), in_interventi.data_richiesta) AS data, in_statiintervento.descrizione AS stato, in_interventi.codice AS codice_intervento FROM in_interventi INNER JOIN in_statiintervento ON in_interventi.idstatointervento=in_statiintervento.idstatointervento WHERE in_statiintervento.is_fatturabile=1 AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id IN ('.implode(',', $id_records).')'; - // Se non è attiva la relativa impostazione considero solo interventi non collegati a contratti, ordini o preventivi (default) if (!setting('Permetti fatturazione delle attività collegate a contratti')) { $where = ' AND in_interventi.id_contratto IS NULL'; - - $num_interventi_collegati_a_contratti = $dbo->fetchArray($query.' '.'AND in_interventi.id_contratto IS NOT NULL'); - if (count($num_interventi_collegati_a_contratti) >0){ + $num_interventi_collegati_a_contratti = $dbo->fetchArray($query.' AND in_interventi.id_contratto IS NOT NULL'); + + if (count($num_interventi_collegati_a_contratti) > 0) { flash()->warning(tr('_NUM_ interventi collegati a contratti non sono stati fatturati. Puoi procedere alla fatturazione abilitando la relativa impostazione: _SETTING_', [ - '_NUM_' => count($num_interventi_collegati_a_contratti), - '_SETTING_' => Modules::link('Impostazioni', null, tr('Permetti fatturazione delle attività collegate a contratti'), true, null, true, null, "&search=Permetti fatturazione delle attività collegate a contratti"), + '_NUM_' => count($num_interventi_collegati_a_contratti), + '_SETTING_' => Modules::link('Impostazioni', null, tr('Permetti fatturazione delle attività collegate a contratti'), true, null, true, null, '&search=Permetti fatturazione delle attività collegate a contratti'), ])); } } @@ -115,38 +114,30 @@ switch (post('op')) { if (!setting('Permetti fatturazione delle attività collegate a ordini')) { $where .= ' AND in_interventi.id_ordine IS NULL'; - $num_interventi_collegati_a_ordini = $dbo->fetchArray($query.' '.'AND in_interventi.id_ordine IS NOT NULL'); + $num_interventi_collegati_a_ordini = $dbo->fetchArray($query.' AND in_interventi.id_ordine IS NOT NULL'); - if (count($num_interventi_collegati_a_ordini) >0){ + if (count($num_interventi_collegati_a_ordini) > 0) { flash()->warning(tr('_NUM_ interventi collegati a ordini non sono stati fatturati. Puoi procedere alla fatturazione abilitando la relativa impostazione: _SETTING_', [ - '_NUM_' => count($num_interventi_collegati_a_ordini), - '_SETTING_' => Modules::link('Impostazioni', null, tr('Permetti fatturazione delle attività collegate a ordini'), true, null, true, null, "&search=Permetti fatturazione delle attività collegate a ordini"), + '_NUM_' => count($num_interventi_collegati_a_ordini), + '_SETTING_' => Modules::link('Impostazioni', null, tr('Permetti fatturazione delle attività collegate a ordini'), true, null, true, null, '&search=Permetti fatturazione delle attività collegate a ordini'), ])); } - - } if (!setting('Permetti fatturazione delle attività collegate a preventivi')) { $where .= ' AND in_interventi.id_preventivo IS NULL'; - $num_interventi_collegati_a_preventivi = $dbo->fetchArray($query.' '.'AND in_interventi.id_preventivo IS NOT NULL'); + $num_interventi_collegati_a_preventivi = $dbo->fetchArray($query.' AND in_interventi.id_preventivo IS NOT NULL'); - if (count($num_interventi_collegati_a_preventivi) >0){ + if (count($num_interventi_collegati_a_preventivi) > 0) { flash()->warning(tr('_NUM_ interventi collegati a preventivi non sono stati fatturati. Puoi procedere alla fatturazione abilitando la relativa impostazione: _SETTING_', [ - '_NUM_' => count($num_interventi_collegati_a_preventivi), - '_SETTING_' => Modules::link('Impostazioni', null, tr('Permetti fatturazione delle attività collegate a preventivi'), true, null, true, null, "&search=Permetti fatturazione delle attività collegate a preventivi"), + '_NUM_' => count($num_interventi_collegati_a_preventivi), + '_SETTING_' => Modules::link('Impostazioni', null, tr('Permetti fatturazione delle attività collegate a preventivi'), true, null, true, null, '&search=Permetti fatturazione delle attività collegate a preventivi'), ])); } } $interventi = $dbo->fetchArray($query.' '.$where); - - - - - - // Lettura righe selezionate foreach ($interventi as $intervento) { if (!empty($intervento['idclientefinale'])) { @@ -165,7 +156,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..5c7b535f9 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/src/HTMLBuilder/Manager/FileManager.php b/src/HTMLBuilder/Manager/FileManager.php index eeb8956e0..57c22a668 100755 --- a/src/HTMLBuilder/Manager/FileManager.php +++ b/src/HTMLBuilder/Manager/FileManager.php @@ -151,7 +151,7 @@ class FileManager implements ManagerInterface '.$file->name.' - ('.$file->extension.')'.((!empty($file->size)) ? ' ('.FileSystem::formatBytes($file->size).')' : '').' '.(((setting('Logo stampe') == $file->filename) || (setting('Filigrana stampe') == $file->filename)) ? '✔️' : '').''.' + ('.$file->extension.')'.((!empty($file->size)) ? ' ('.FileSystem::formatBytes($file->size).')' : '').' '.(((setting('Logo stampe') == $file->filename) || (setting('Filigrana stampe') == $file->filename)) ? '✔️' : '').''.' '.timestampFormat($file['created_at']).' 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..f93d1ea7a 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 @@ -411,7 +354,8 @@ HAVING ORDER BY `scadenza` ASC" WHERE `name` = 'Scadenzario'; 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` = 'Scadenzario' AND `zz_views`.`name` = 'Tipo di pagamento'; - +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'; +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 acquisto' AND `zz_views`.`name` = 'Pagamento'; -- Fix per file sql di update aggiornato dopo rilascio 2.4.35 UPDATE `zz_modules` SET `icon` = 'fa fa-exchange' WHERE `zz_modules`.`name` = 'Causali movimenti'; @@ -491,4 +435,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..90e19ed20 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',