This commit is contained in:
loviuz 2024-02-08 09:31:08 +01:00
commit 068e0cd102
40 changed files with 588 additions and 459 deletions

View File

@ -119,6 +119,7 @@ function initCKEditor(input) {
filebrowserUploadMethod: 'form',
fullPage: (input.hasAttribute('use_full_ckeditor')) ? true : false,
allowedContent: (input.hasAttribute('use_full_ckeditor')) ? true : false,
versionCheck: false,
extraPlugins: 'scayt,textwatcher,autocomplete,textmatch,emoji',
skin: 'moono-lisa',
});

View File

@ -21,14 +21,17 @@ $skip_permissions = true;
include_once __DIR__.'/core.php';
use Carbon\Carbon;
use Illuminate\Database\QueryException;
$op = filter('op');
$microsoft = null;
try {
$microsoft = $dbo->selectOne('zz_oauth2', '*', ['nome' => 'Microsoft', 'enabled' => 1, 'is_login' => 1]);
} catch (Exception $e) {
if ($dbo->isConnected()) {
try {
$microsoft = $dbo->selectOne('zz_oauth2', '*', ['nome' => 'Microsoft', 'enabled' => 1, 'is_login' => 1]);
} catch (QueryException $e) {
}
}
// LOGIN

View File

@ -193,9 +193,8 @@ class Anagrafica extends Model
public function isTipo($type)
{
return $this->tipi()->get()->search(function ($item, $key) use ($type) {
return (TipoAnagrafica::find($item->id))->name == $type;
return TipoAnagrafica::find($item->id)->name == $type;
}) !== false;
}
public function delete()

View File

@ -21,8 +21,8 @@ namespace Modules\Anagrafiche\Import;
use Importer\CSVImporter;
use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Tipo;
use Modules\Anagrafiche\Nazione;
use Modules\Anagrafiche\Tipo;
/**
* Struttura per la gestione delle operazioni di importazione (da CSV) delle Anagrafiche.
@ -253,7 +253,7 @@ class CSV extends CSVImporter
$tipi_selezionati = explode(',', $record['tipologia']);
foreach ($tipi_selezionati as $tipo) {
$id_tipo = (new Tipo)->getByName($tipo)->id_record;
$id_tipo = (new Tipo())->getByName($tipo)->id_record;
// Creo il tipo anagrafica se non esiste
if (empty($id_tipo)) {
@ -264,7 +264,7 @@ class CSV extends CSVImporter
'name' => $tipo,
])['id'];
$id_tipo = (new Tipo)->getByName($tipo)->id_record;
$id_tipo = (new Tipo())->getByName($tipo)->id_record;
}
$tipologie[] = $id_tipo;

View File

@ -69,12 +69,12 @@ switch ($resource) {
if ($usare_iva_anagrafica) {
$query .= '
IFNULL(`iva_anagrafica`.`id`, IFNULL(`iva_articolo`.`id`, `iva_predefinita`.`id`)) AS idiva_vendita,
IFNULL(`iva_anagrafica`.`descrizione`, IFNULL(`iva_articolo`.`descrizione`, `iva_predefinita`.`descrizione`)) AS iva_vendita,
IFNULL(`iva_anagrafica_lang`.`name`, IFNULL(`iva_articolo_lang`.`name`, `iva_predefinita_lang`.`name`)) AS iva_vendita,
IFNULL(`iva_anagrafica`.`percentuale`, IFNULL(`iva_articolo`.`percentuale`, `iva_predefinita`.`percentuale`)) AS percentuale,';
} else {
$query .= '
IFNULL(`iva_articolo`.`id`, `iva_predefinita`.`id`) AS idiva_vendita,
IFNULL(`iva_articolo`.`descrizione`, `iva_predefinita`.`descrizione`) AS iva_vendita,
IFNULL(`iva_articolo_lang`.`name`, `iva_predefinita_lang`.`name`) AS iva_vendita,
IFNULL(`iva_articolo`.`percentuale`, `iva_predefinita`.`percentuale`) AS percentuale,';
}
@ -113,11 +113,14 @@ switch ($resource) {
LEFT JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir`='uscita' GROUP BY `co_righe_documenti`.`idarticolo`) AS righe
ON `righe`.`id`=`mg_articoli`.`id`
LEFT JOIN `co_iva` AS iva_articolo ON `iva_articolo`.`id` = `mg_articoli`.`idiva_vendita`
LEFT JOIN `co_iva` AS `iva_predefinita` ON `iva_predefinita`.`id` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = 'Iva predefinita')";
LEFT JOIN `co_iva_lang` AS iva_articolo_lang on (`iva_articolo`.`id` = `iva_articolo_lang`.`id_record` AND `iva_articolo_lang`.`id_lang` = ".prepare(setting('Lingua')).")
LEFT JOIN `co_iva` AS `iva_predefinita` ON `iva_predefinita`.`id` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = 'Iva predefinita')
LEFT JOIN `co_iva_lang` AS iva_predefinita_lang on (`iva_predefinita`.`id` = `iva_predefinita_lang`.`id_record` AND `iva_predefinita_lang`.`id_lang` = ".prepare(setting('Lingua')).')';
if ($usare_iva_anagrafica) {
$query .= '
LEFT JOIN `co_iva` AS iva_anagrafica ON `iva_anagrafica`.`id` = (SELECT `idiva_vendite` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($superselect['idanagrafica']).')';
LEFT JOIN `co_iva` AS iva_anagrafica ON `iva_anagrafica`.`id` = (SELECT `idiva_vendite` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($superselect['idanagrafica']).')
LEFT JOIN `co_iva_lang` AS iva_anagrafica_lang on (`iva_anagrafica`.`id` = `iva_anagrafica_lang`.`id_record` AND `iva_anagrafica_lang`.`id_lang` = '.prepare(setting('Lingua')).')';
}
if ($idagente) {

View File

@ -465,7 +465,7 @@ class CSV extends CSVImporter
}
if ($dettagli['dir']) {
$tipo = (new Tipo)->getByName($dettagli['dir'])->id_record;
$tipo = (new Tipo())->getByName($dettagli['dir'])->id_record;
$tipi = $anagrafica->tipi->pluck('id')->toArray();
$tipi[] = $tipo;

View File

@ -3,7 +3,26 @@
include_once __DIR__.'/../../core.php';
// Elenco articoli caricati sull'automezzo
$rs2 = $dbo->fetchArray('SELECT mg_movimenti.idsede AS id, mg_articoli.codice AS codice, idarticolo, SUM(mg_movimenti.qta) AS qta_automezzo, mg_articoli.qta AS qta_magazzino, mg_articoli.descrizione, mg_articoli.prezzo_vendita, (SELECT percentuale FROM co_iva WHERE id=mg_articoli.idiva_vendita) AS prciva_vendita FROM mg_movimenti INNER JOIN mg_articoli ON mg_movimenti.idarticolo=mg_articoli.id WHERE mg_movimenti.idsede='.prepare($id_record).' GROUP BY idarticolo HAVING qta_automezzo>0 ORDER BY mg_articoli.descrizione');
$rs2 = $dbo->fetchArray('SELECT
`mg_movimenti`.`idsede` AS id,
`mg_articoli`.`codice` AS codice,
`idarticolo`,
SUM(`mg_movimenti`.`qta`) AS qta_automezzo,
`mg_articoli`.`qta` AS qta_magazzino,
`mg_articoli`.`descrizione`,
`mg_articoli`.`prezzo_vendita`,
(SELECT `percentuale` FROM `co_iva` LEFT JOIN `co_iva_lang` ON ( `co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = "'.prepare(setting('Lingua')).'") WHERE `co_iva`.`id`=`mg_articoli`.`idiva_vendita`) AS prciva_vendita
FROM
`mg_movimenti`
INNER JOIN `mg_articoli` ON `mg_movimenti`.`idarticolo`=`mg_articoli`.`id`
WHERE
`mg_movimenti`.`idsede`='.prepare($id_record).'
GROUP BY
`idarticolo`
HAVING
`qta_automezzo`>0
ORDER BY
`mg_articoli`.`descrizione`');
if (!empty($rs2)) {
echo '

View File

@ -20,6 +20,7 @@
include_once __DIR__.'/../../core.php';
use Modules\DDT\DDT;
use Modules\IVA\Aliquota;
use Util\Generator;
/*
@ -163,7 +164,7 @@ if (!function_exists('ricalcola_costiagg_ddt')) {
$rivalsainps = $totale_imponibile / 100 * $rs[0]['percentuale'];
// Leggo l'iva predefinita per calcolare l'iva aggiuntiva sulla rivalsa inps
$qi = "SELECT percentuale FROM co_iva WHERE id='".setting('Iva predefinita')."'";
$qi = Aliquota::find(setting('Iva predefinita'))->percentuale;
$rsi = $dbo->fetchArray($qi);
$iva_rivalsainps = $rivalsainps / 100 * $rsi[0]['percentuale'];

View File

@ -885,16 +885,16 @@ switch ($op) {
$iva = Aliquota::find(setting('Iva predefinita'));
$imponibile = $database->table('co_righe_documenti')
->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva')
->where('co_righe_documenti.iddocumento', $fattura->id)
->whereIn('co_iva.codice_natura_fe', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9'])
->sum('subtotale');
->join('`co_iva`', '`co_iva`.`id`', '=', '`co_righe_documenti`.`idiva`')
->where('`co_righe_documenti`.`iddocumento`', $fattura->id)
->whereIn('`co_iva`.`codice_natura_fe`', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9'])
->sum('`subtotale`');
$sconto = $database->table('co_righe_documenti')
->join('co_iva', 'co_iva.id', '=', 'co_righe_documenti.idiva')
->where('co_righe_documenti.iddocumento', $fattura->id)
->whereIn('co_iva.codice_natura_fe', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9'])
->sum('sconto');
->join('`co_iva`', '`co_iva`.`id`', '=', '`co_righe_documenti`.`idiva`')
->where('`co_righe_documenti`.`iddocumento`', $fattura->id)
->whereIn('`co_iva`.`codice_natura_fe`', ['N2', 'N2.1', 'N2.2', 'N3', 'N3.1', 'N3.2', 'N3.3', 'N3.4', 'N3.5', 'N3.6', 'N6', 'N6.1', 'N6.2', 'N6.3', 'N6.4', 'N6.5', 'N6.6', 'N6.7', 'N6.8', 'N6.9'])
->sum('`sconto`');
$totale_imponibile = setting('Utilizza prezzi di vendita comprensivi di IVA') ? ($imponibile - $sconto) + (($imponibile - $sconto) * $iva->percentuale / 100) : ($imponibile - $sconto);
$totale_imponibile = $fattura->tipo->reversed == 1 ? -$totale_imponibile : $totale_imponibile;
@ -916,7 +916,7 @@ switch ($op) {
// Aggiunta tipologia cliente se necessario
if (!$anagrafica->isTipo('Cliente')) {
$tipo_cliente = (new TipoAnagrafica)->getByName('Cliente')->id_record;
$tipo_cliente = (new TipoAnagrafica())->getByName('Cliente')->id_record;
$tipi = $anagrafica->tipi->pluck('id')->toArray();
$tipi[] = $tipo_cliente;
@ -1044,7 +1044,7 @@ switch ($op) {
if (in_array($idtipodocumento, $tipologie)) {
// Aggiunta tipologia cliente se necessario
if (!$azienda->isTipo('Cliente')) {
$tipo_cliente = (new TipoAnagrafica)->getByName('Cliente')->id_record;
$tipo_cliente = (new TipoAnagrafica())->getByName('Cliente')->id_record;
$tipi = $azienda->tipi->pluck('id')->toArray();
$tipi[] = $tipo_cliente;

View File

@ -180,7 +180,7 @@ if ($dir == 'entrata') {
$interventi_collegati = $fattura->getDocumentiCollegati()[Intervento::class];
if (!empty($interventi_collegati)) {
foreach ($interventi_collegati as $intervento) {
$fine_intervento = $intervento->fine ?: $intervento->data_richiesta;
$fine_intervento = $intervento->fine;
$fine_intervento = new Carbon($fine_intervento);
if ($fine_intervento->diffInDays($data_fattura, false) < 0) {
@ -706,7 +706,7 @@ echo '
if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
$ive_accettate = $dbo->table('co_iva')->where('codice_natura_fe', 'N3.5')->get();
foreach ($ive_accettate as $iva_accettata) {
$descrizione_iva_accettata .= '<li>'.$iva_accettata->descrizione.'</li>';
$descrizione_iva_accettata .= '<li>'.Aliquota::find($iva_accettata->id)->name.'</li>';
}
if ($fattura->stato->descrizione == 'Bozza') {

View File

@ -18,6 +18,7 @@
*/
use Modules\Fatture\Fattura;
use Modules\IVA\Aliquota;
use Util\Generator;
/*
@ -209,21 +210,21 @@ if (!function_exists('aggiungi_movimento')) {
// Calcolo l'iva della rivalsa inps
$iva_rivalsainps = 0;
$rsr = $dbo->fetchArray('SELECT idiva, rivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento));
$rsr = $dbo->fetchArray('SELECT `idiva`, `rivalsainps` FROM `co_righe_documenti` WHERE `iddocumento`='.prepare($iddocumento));
for ($r = 0; $r < sizeof($rsr); ++$r) {
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare($rsr[$r]['idiva']);
$qi = Aliquota::find(prepare($rsr[$r]['idiva']))->percentuale;
$rsi = $dbo->fetchArray($qi);
$iva_rivalsainps += $rsr[$r]['rivalsainps'] / 100 * $rsi[0]['percentuale'];
}
// Lettura iva indetraibile fattura
$query = 'SELECT SUM(iva_indetraibile) AS iva_indetraibile FROM co_righe_documenti GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento);
$query = 'SELECT SUM(`iva_indetraibile`) AS iva_indetraibile FROM `co_righe_documenti` GROUP BY `iddocumento` HAVING `iddocumento`='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
$iva_indetraibile_fattura = $is_nota ? -$rs[0]['iva_indetraibile'] : $rs[0]['iva_indetraibile'];
// Lettura iva delle righe in fattura
$query = 'SELECT iva FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento);
$query = 'SELECT `iva` FROM `co_righe_documenti` WHERE `iddocumento`='.prepare($iddocumento);
$rs = $dbo->fetchArray($query);
$iva_fattura = sum(array_column($rs, 'iva'), null) + $iva_rivalsainps - $iva_indetraibile_fattura;
$iva_fattura = $is_nota ? -$iva_fattura : $iva_fattura;

View File

@ -516,7 +516,7 @@ switch (post('op')) {
$impianto = Impianto::find($id_impianto);
if (!empty($impianto)) {
// Data di inizio dell'intervento (data_richiesta in caso di assenza di sessioni)
$data_registrazione = $intervento->inizio ?: $intervento->data_richiesta;
$data_registrazione = $intervento->inizio;
// Creazione in base alla quantità
for ($q = 0; $q < $articolo->qta; ++$q) {

View File

@ -29,6 +29,7 @@ use Modules\Fatture\Fattura;
use Modules\Interventi\Components\Riga as RigaIntervento;
use Modules\Interventi\Components\Sessione;
use Modules\Interventi\Intervento;
use Modules\IVA\Aliquota;
use Util\Generator;
use Util\Ini;
@ -70,7 +71,7 @@ if (!function_exists('link_componente_to_articolo')) {
$intervento = Intervento::find($id_intervento);
// Data di inizio dell'intervento (data_richiesta in caso di assenza di sessioni)
$data = $intervento->inizio ?: $intervento->data_richiesta;
$data = $intervento->inizio;
// Se l'articolo aggiunto è collegato a un componente, aggiungo il componente all'impianto selezionato
$componente_articolo = $dbo->fetchOne('SELECT componente_filename, contenuto FROM mg_articoli WHERE id = '.prepare($id_articolo));
@ -213,7 +214,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->prezzo_unitario = $sessione->prezzo_orario;
$riga->costo_unitario = $sessione->prezzo_ore_unitario_tecnico;
// Calcolo lo sconto unitario della sessione in base all'impostazione sui prezzi ivati
$iva = $dbo->table('co_iva')->where('id', $id_iva)->first();
$iva = Aliquota::find($sessione->id_iva);
if ($sessione->tipo_sconto == 'UNT' && setting('Utilizza prezzi di vendita comprensivi di IVA')) {
$sconto_unitario = $sessione->sconto_unitario + (($sessione->sconto_unitario * $iva->percentuale) / 100);
} else {

View File

@ -175,10 +175,10 @@ class CSV extends CSVImporter
// Verifica il tecnico e inserisce la sessione
$anagrafica_t = Anagrafica::where('ragione_sociale', $record['tecnico'])->first();
$tipo = $database->fetchOne('SELECT `idtipoanagrafica` FROM `an_tipianagrafiche_anagrafiche` WHERE `idanagrafica` = '.prepare($anagrafica_t['idanagrafica']));
$tecnico = (new TipoAnagrafica)->getByName('Tecnico')->id_record;
$tecnico = (new TipoAnagrafica())->getByName('Tecnico')->id_record;
if ($tipo = $tecnico) {
$anagrafica_t['tipo'] = Tipoanagrafica::find($tecnico);
$anagrafica_t['tipo'] = TipoAnagrafica::find($tecnico);
}
if (!empty($record['data']) && !empty($record['ora_inizio']) && !empty($record['tecnico'])) {

View File

@ -102,7 +102,7 @@ class Intervento extends Document
$this->info['inizio'] = $sessioni->min('orario_inizio');
}
return $this->info['inizio'];
return $this->info['inizio'] ?: $this->data_richiesta;
}
public function getFineAttribute()
@ -113,7 +113,7 @@ class Intervento extends Document
$this->info['fine'] = $sessioni->max('orario_fine');
}
return $this->info['fine'];
return $this->info['fine'] ?: $this->data_richiesta;
}
public function getModuleAttribute()

View File

@ -27,12 +27,11 @@ switch (filter('op')) {
$esente = post('esente');
$percentuale = empty($esente) ? post('percentuale') : 0;
if ($dbo->fetchNum('SELECT * FROM `co_iva` WHERE (`descrizione` = '.prepare($descrizione).' AND `codice` = '.prepare($codice).') AND `id` != '.prepare($id_record)) == 0) {
if ($dbo->fetchNum('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE (`name` = '.prepare($descrizione).' AND `codice` = '.prepare($codice).') AND `co_iva`.`id` != '.prepare($id_record)) == 0) {
$codice_natura = post('codice_natura_fe') ?: null;
$esigibilita = post('esigibilita');
$dbo->update('co_iva', [
'descrizione' => $descrizione,
'esente' => $esente,
'percentuale' => $percentuale,
'indetraibile' => post('indetraibile'),
@ -42,6 +41,10 @@ switch (filter('op')) {
'esigibilita' => $esigibilita,
], ['id' => $id_record]);
$dbo->update('co_iva_lang', [
'name' => $descrizione,
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
// Messaggio di avvertenza
if ((stripos('N6', (string) $codice_natura) === 0) && $esigibilita == 'S') {
flash()->warning(tr('Combinazione di natura IVA _TYPE_ ed esigibilità non compatibile', [
@ -66,9 +69,8 @@ switch (filter('op')) {
$esigibilita = post('esigibilita');
$indetraibile = post('indetraibile');
if ($dbo->fetchNum('SELECT * FROM `co_iva` WHERE `descrizione` = '.prepare($descrizione).' AND `codice` = '.prepare($codice)) == 0) {
if ($dbo->fetchNum('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name` = '.prepare($descrizione).' AND `codice` = '.prepare($codice)) == 0) {
$dbo->insert('co_iva', [
'descrizione' => $descrizione,
'esente' => $esente,
'codice' => $codice,
'codice_natura_fe' => $codice_natura,
@ -78,6 +80,12 @@ switch (filter('op')) {
]);
$id_record = $dbo->lastInsertedID();
$dbo->insert('co_iva_lang', [
'id_record' => $id_record,
'name' => $descrizione,
'id_lang' => setting('Lingua'),
]);
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'IVA',
]));

View File

@ -25,24 +25,24 @@ switch ($resource) {
* - split_payment
*/
case 'iva':
$query = 'SELECT id, IF( codice_natura_fe IS NULL, IF(codice IS NULL, descrizione, CONCAT(codice, " - ", descrizione)), CONCAT( IF(codice IS NULL, descrizione, CONCAT(codice, " - ", descrizione)), " (", codice_natura_fe, ")" ) ) AS descrizione, percentuale FROM co_iva |where| ORDER BY descrizione ASC';
$query = 'SELECT `co_iva`.`id`, IF( `codice_natura_fe` IS NULL, IF(`codice` IS NULL, `name`, CONCAT(`codice`, " - ", `name`)), CONCAT( IF(`codice` IS NULL, `name`, CONCAT(`codice`, " - ", `name`)), " (", `codice_natura_fe`, ")" ) ) AS descrizione, `percentuale` FROM co_iva LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') |where| ORDER BY `descrizione` ASC';
foreach ($elements as $element) {
$filter[] = 'id='.prepare($element);
$filter[] = '`co_iva`.`id`='.prepare($element);
}
if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'codice LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'codice_natura_fe LIKE '.prepare('%'.$search.'%');
$search_fields[] = '`descrizione` LIKE '.prepare('%'.$search.'%');
$search_fields[] = '`codice` LIKE '.prepare('%'.$search.'%');
$search_fields[] = '`codice_natura_fe` LIKE '.prepare('%'.$search.'%');
}
if (empty($filter)) {
$where[] = 'deleted_at IS NULL';
$where[] = '`deleted_at` IS NULL';
// se sto valorizzando un documento con lo split payment impedisco la selezione delle aliquote iva con natura N6.X (reverse charge)
if (isset($superselect['split_payment']) and !empty($superselect['split_payment'])) {
$where[] = '(codice_natura_fe IS NULL OR codice_natura_fe NOT LIKE "N6%")';
$where[] = '(`codice_natura_fe` IS NULL OR `codice_natura_fe` NOT LIKE "N6%")';
}
}

View File

@ -21,7 +21,7 @@ include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'delete-bulk':
$count_iva = $dbo->fetchNum('SELECT id FROM `co_iva` WHERE deleted_at IS NOT NULL');
$count_iva = $dbo->fetchNum('SELECT `id` FROM `co_iva` WHERE `deleted_at` IS NOT NULL');
foreach ($id_records as $id) {
$res = $dbo->fetchNum('SELECT `co_righe_documenti`.`id` FROM `co_righe_documenti` WHERE `co_righe_documenti`.`idiva`='.prepare($id).
' UNION SELECT `co_righe_preventivi`.`id` FROM `co_righe_preventivi` WHERE `co_righe_preventivi`.`idiva` = '.prepare($id).
@ -32,10 +32,10 @@ switch (post('op')) {
' UNION SELECT `an_anagrafiche`.`idanagrafica` AS `id` FROM `an_anagrafiche` WHERE `an_anagrafiche`.`idiva_vendite` = '.prepare($id).' OR `an_anagrafiche`.`idiva_acquisti` = '.prepare($id));
if (empty($res)) {
$dbo->query('UPDATE `co_iva` SET deleted_at = NOW() WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('UPDATE `co_iva` SET `deleted_at` = NOW() WHERE `id` = '.prepare($id).Modules::getAdditionalsQuery($id_module));
}
}
$count_iva = $dbo->fetchNum('SELECT id FROM `co_iva` WHERE deleted_at IS NOT NULL') - $count_iva;
$count_iva = $dbo->fetchNum('SELECT `id` FROM `co_iva` WHERE `deleted_at` IS NOT NULL') - $count_iva;
if ($count_iva > 0) {
$msg = tr('_NUM_ tipologi_A_ iva eliminat_A_.', [

View File

@ -64,7 +64,7 @@ if ($res) {
</div>
<div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]}
</div>
</div>

View File

@ -20,5 +20,5 @@
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM `co_iva` WHERE id='.prepare($id_record));
$record = $dbo->fetchOne('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_iva`.`id`='.prepare($id_record));
}

View File

@ -27,4 +27,34 @@ class Aliquota extends Model
use SimpleModelTrait;
protected $table = 'co_iva';
/**
* Ritorna l'attributo name dell'aliquota IVA.
*
* @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 dell'aliquota IVA.
*
* @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();
}
}

View File

@ -20,6 +20,7 @@
include_once __DIR__.'/../../core.php';
use Modules\Interventi\Intervento;
use Modules\IVA\Aliquota;
use Modules\Ordini\Ordine;
/*
@ -199,7 +200,7 @@ if (!function_exists('ricalcola_costiagg_ordine')) {
}
// Leggo l'iva predefinita per calcolare l'iva aggiuntiva sulla rivalsa inps
$qi = 'SELECT percentuale FROM co_iva WHERE id='.prepare(setting('Iva predefinita'));
$qi = Aliquota::find(prepare(setting('Iva predefinita')))->percentuale;
$rsi = $dbo->fetchArray($qi);
$iva_rivalsainps = $rivalsainps / 100 * $rsi[0]['percentuale'];

View File

@ -96,7 +96,7 @@ class CSV extends CSVImporter
if (empty($anagrafica)) {
$anagrafica = Anagrafica::build($record['ragione_sociale']);
$tipo_cliente = (new TipoAnagrafica)->getByName('Cliente')->id_record;
$tipo_cliente = (new TipoAnagrafica())->getByName('Cliente')->id_record;
$anagrafica->tipologie = [$tipo_cliente];
$anagrafica->save();
}

View File

@ -21,7 +21,7 @@ echo '
</tr>';
foreach ($righe as $riga) {
$rs = $dbo->fetchArray('SELECT percentuale FROM co_iva WHERE id='.$riga['idiva']);
$rs = $dbo->fetchArray('SELECT `percentuale` FROM `co_iva` WHERE `id`='.$riga['idiva']);
$iva = ($riga['subtotale'] * $rs[0]['percentuale']) / 100;
echo '

View File

@ -439,7 +439,7 @@ class FatturaElettronica
}
// Natura obbligatoria per iva con esenzione
$iva = $database->fetchArray('SELECT * FROM `co_iva` WHERE `id` IN (SELECT idiva FROM co_righe_documenti WHERE iddocumento = '.prepare($fattura->id).') AND esente = 1');
$iva = $database->fetchArray('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_iva`.`id` IN (SELECT `idiva` FROM `co_righe_documenti` WHERE `iddocumento` = '.prepare($fattura->id).') AND `esente` = 1');
$fields = [
'codice_natura_fe' => 'Natura IVA',
];
@ -973,7 +973,7 @@ class FatturaElettronica
// Cassa Previdenziale (Rivalsa) (2.1.1.7)
if (!empty($id_rivalsainps)) {
$iva = database()->fetchOne('SELECT `percentuale`, `codice_natura_fe` FROM `co_iva` WHERE `id` = '.prepare($aliquota_iva_rivalsainps));
$percentuale = database()->fetchOne('SELECT percentuale FROM co_rivalse WHERE id = '.prepare($id_rivalsainps))['percentuale'];
$percentuale = database()->fetchOne('SELECT `percentuale` FROM `co_rivalse` WHERE `id` = '.prepare($id_rivalsainps))['percentuale'];
$dati_cassa = [
'TipoCassa' => setting('Tipo Cassa Previdenziale'),

View File

@ -326,7 +326,7 @@ echo '
</div>
<div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Creazione seriali').'", "name": "flag_crea_seriali", "value": '.setting('Creazione seriali in import FE').', "help": "'.tr('Nel caso di righe contenenti serial, il gestionale procede alla registrazione del serial').'" ]}
{[ "type": "checkbox", "label": "'.tr('Creazione seriali').'", "name": "flag_crea_seriali", "value": "'.setting('Creazione seriali in import FE').'", "help": "'.tr('Nel caso di righe contenenti serial, il gestionale procede alla registrazione del serial').'" ]}
</div>';
$ritenuta = $dati_generali['DatiRitenuta'];
@ -399,11 +399,11 @@ if (!empty($righe)) {
}
foreach ($righe as $key => $riga) {
$query = "SELECT id, IF(codice IS NULL, descrizione, CONCAT(codice, ' - ', descrizione)) AS descrizione FROM co_iva WHERE deleted_at IS NULL AND percentuale = ".prepare($riga['AliquotaIVA']);
$query = "SELECT `co_iva`.`id`, IF(`codice` IS NULL, `name`, CONCAT(`codice`, ' - ', `name`)) AS descrizione FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = ".prepare(setting('Lingua')).') WHERE `deleted_at` IS NULL AND `percentuale` = '.prepare($riga['AliquotaIVA']);
$start_query = $query;
if (!empty($riga['Natura'])) {
$query .= ' AND codice_natura_fe = '.prepare($riga['Natura']);
$query .= ' AND `codice_natura_fe` = '.prepare($riga['Natura']);
// Fallback per natura iva mancante
if (empty($dbo->fetchArray($query))) {
@ -411,7 +411,7 @@ if (!empty($righe)) {
}
}
$query .= ' ORDER BY descrizione ASC';
$query .= ' ORDER BY `descrizione` ASC';
// Visualizzazione codici articoli
$codici = $riga['CodiceArticolo'] ?: [];

View File

@ -223,7 +223,7 @@ class FatturaElettronica
// Se non trovo l'anagrafica tra i fornitori, provo a ricercarla anche tra i clienti
if (empty($anagrafica)) {
$type = 'Cliente';
$anagrafica = Anagrafica::where('tipo', $type);
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
@ -261,7 +261,7 @@ class FatturaElettronica
$info = $this->getAnagrafe();
$anagrafica = Anagrafica::build($info['ragione_sociale'], $info['nome'], $info['cognome'], [
(new TipoAnagrafica)->getByName($type)->id_record
(new TipoAnagrafica())->getByName($type)->id_record,
]);
if (!empty($info['partita_iva'])) {
@ -350,7 +350,11 @@ class FatturaElettronica
if (empty($banca_fornitore)) {
$anagrafica = $fattura->anagrafica;
$nome = $info_pagamento['IstitutoFinanziario'] ?: 'Banca di '.$anagrafica->ragione_sociale;
$banca_fornitore = Banca::build($anagrafica, $nome, $info_pagamento['IBAN'], $info_pagamento['BIC'] ?: '');
try {
$banca_fornitore = Banca::build($anagrafica, $nome, $info_pagamento['IBAN'], $info_pagamento['BIC'] ?: '');
} catch (\UnexpectedValueException $e) {
flash()->error(tr("Errore durante la creazione della banca: verificare la correttezza dei dati").'.');
}
}
}

View File

@ -293,7 +293,7 @@ class FatturaOrdinaria extends FatturaElettronica
$obj->ritenuta_contributi = $ritenuta_contributi;
// Inserisco la ritenuta se è specificata nella riga o se non è specificata nella riga ma è presente in Dati ritenuta (quindi comprende tutte le righe)
if (!empty($riga['Ritenuta']) || $info['ritenuta_norighe'] == true || $info['rivalsa_norighe'] == true ) {
if (!empty($riga['Ritenuta']) || $info['ritenuta_norighe'] == true || $info['rivalsa_norighe'] == true) {
$obj->id_ritenuta_acconto = $id_ritenuta_acconto;
$obj->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
$obj->id_rivalsa_inps = $id_rivalsa;
@ -453,7 +453,7 @@ class FatturaOrdinaria extends FatturaElettronica
$diff = round(abs($fattura->totale_imponibile) - abs($totale_righe + $tot_arr), 2);
$diff_tot = round($fattura->totale_imponibile + $fattura->rivalsa_inps - $totale_imp + $tot_arr, 2);
$iva_arrotondamento = database()->fetchOne('SELECT * FROM co_iva WHERE percentuale=0 AND deleted_at IS NULL');
$iva_arrotondamento = database()->fetchOne('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang` = '.prepare(setting('Lingua')).') WHERE `percentuale`=0 AND `deleted_at` IS NULL');
if (($diff != 0 && $diff != $diff_tot) || (($diff_tot != $diff) && !$diff_iva) || $diff_iva) {
if ($diff != 0 && $diff != $diff_tot) {

View File

@ -74,7 +74,7 @@ elseif ($anagrafica->isTipo('Tecnico')) {
$interventi = Intervento::whereIn('id', array_column($interventi, 'id'))->get();
$totale_interventi = $interventi->sum('totale_imponibile');
if ($sessioni){
if ($sessioni) {
$sessioni = Sessione::whereIn('id', array_column($sessioni, 'id'))->get();
$totale_ore_lavorate = $sessioni->sum('ore');
}

View File

@ -30,11 +30,11 @@ class AliquoteIva extends AppResource
public function getModifiedRecords($last_sync_at)
{
$query = 'SELECT co_iva.id, co_iva.updated_at FROM co_iva WHERE deleted_at IS NULL';
$query = 'SELECT `co_iva`.`id`, `co_iva`.`updated_at` FROM `co_iva` WHERE `deleted_at` IS NULL';
// Filtro per data
if ($last_sync_at) {
$query .= ' AND co_iva.updated_at > '.prepare($last_sync_at);
$query .= ' AND `co_iva`.`updated_at` > '.prepare($last_sync_at);
}
$records = database()->fetchArray($query);
@ -45,11 +45,14 @@ class AliquoteIva extends AppResource
public function retrieveRecord($id)
{
// Gestione della visualizzazione dei dettagli del record
$query = 'SELECT co_iva.id,
co_iva.descrizione,
co_iva.percentuale
FROM co_iva
WHERE co_iva.id = '.prepare($id);
$query = 'SELECT `co_iva`.`id`,
`co_iva_lang`.`name` as descrizione,
`co_iva`.`percentuale`
FROM
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
WHERE
`co_iva`.`id` = '.prepare($id);
$record = database()->fetchOne($query);

View File

@ -46,7 +46,7 @@ class ControlloClienti extends Resource implements RetrieveInterface
// Aggiunta tipologia Cliente se non presente nell'anagrafica trovata
if (!empty($cliente) && !$cliente->isTipo('Cliente')) {
$tipo_cliente = (new Tipo)->getByName('Cliente')->id_record;
$tipo_cliente = (new Tipo())->getByName('Cliente')->id_record;
$tipi = $cliente->tipi->pluck('id')->toArray();
$tipi[] = $tipo_cliente;

View File

@ -149,8 +149,6 @@ class FieldManager implements ManagerInterface
}
$query .= ' AND `zz_fields`.`name` = '.prepare($name);
$query .= ' AND `top` = '.((isset($options['position']) && $options['position'] == 'top') ? 1 : 0).' ORDER BY `order`';
$results = $database->fetchArray($query);
return $results[0]['value'];

View File

@ -146,10 +146,10 @@ class EmailNotification extends PHPMailer implements NotificationInterface
// Conferma di lettura
if (!empty($mail->read_notify)) {
$this->ConfirmReadingTo = $mail->From;
$this->AddCustomHeader('X-Confirm-Reading-To: '.$mail->From);
$this->AddCustomHeader('Return-Receipt-To: '.$mail->From);
$this->AddCustomHeader('Disposition-Notification-To: '.$mail->From);
$this->ConfirmReadingTo = $this->From;
$this->AddCustomHeader('X-Confirm-Reading-To: '.$this->From);
$this->AddCustomHeader('Return-Receipt-To: '.$this->From);
$this->AddCustomHeader('Disposition-Notification-To: '.$this->From);
}
// Reply To

View File

@ -28,33 +28,34 @@ $endTM = date('Y-m-d', $data_carico).' 23:59:59';
$query = "
SELECT
mg_movimenti.data,
an_sedi.targa,
an_sedi.nome,
mg_articoli.codice,
mg_articoli.prezzo_vendita,
co_iva.percentuale AS 'iva',
(SELECT mg_categorie.nome FROM mg_categorie WHERE mg_categorie.id=mg_articoli.id_sottocategoria) AS subcategoria,
(SELECT mg_articoli.descrizione FROM mg_articoli WHERE mg_articoli.id=mg_movimenti.idarticolo) AS 'descrizione',
IF( mg_movimenti.movimento LIKE '%Scarico%', mg_movimenti.qta*(-1), mg_movimenti.qta) AS qta,
mg_movimenti.idutente,
zz_users.username,
mg_articoli.um,
zz_groups.nome as 'gruppo'
`mg_movimenti`.`data`,
`an_sedi`.`targa`,
`an_sedi`.`nome`,
`mg_articoli`.`codice`,
`mg_articoli`.`prezzo_vendita`,
`co_iva`.`percentuale` AS 'iva',
(SELECT `mg_categorie`.`nome` FROM `mg_categorie` WHERE `mg_categorie`.`id`=`mg_articoli`.`id_sottocategoria`) AS subcategoria,
(SELECT `mg_articoli`.`descrizione` FROM `mg_articoli` WHERE `mg_articoli`.`id`=`mg_movimenti`.`idarticolo`) AS 'descrizione',
IF( `mg_movimenti`.`movimento` LIKE '%Scarico%', `mg_movimenti`.`qta`*(-1), `mg_movimenti`.`qta`) AS qta,
`mg_movimenti`.`idutente`,
`zz_users`.`username`,
`mg_articoli`.`um`,
`zz_groups`.`nome` as 'gruppo'
FROM
mg_movimenti
INNER JOIN mg_articoli ON mg_movimenti.idarticolo=mg_articoli.id
INNER JOIN co_iva ON mg_articoli.idiva_vendita = co_iva.id
INNER JOIN zz_users ON mg_movimenti.idutente=zz_users.id
INNER JOIN zz_groups ON zz_users.idgruppo=zz_groups.id
INNER JOIN an_sedi ON mg_movimenti.idsede=an_sedi.id
`mg_movimenti`
INNER JOIN `mg_articoli` ON `mg_movimenti`.`idarticolo`=`mg_articoli`.`id`
INNER JOIN `co_iva` ON `mg_articoli`.`idiva_vendita` = `co_iva`.`id`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = ".prepare(setting('Lingua')).')
INNER JOIN `zz_users` ON `mg_movimenti`.`idutente`=`zz_users`.`id`
INNER JOIN `zz_groups` ON `zz_users`.`idgruppo`=`zz_groups`.`id`
INNER JOIN `an_sedi` ON `mg_movimenti`.`idsede`=`an_sedi`.`id`
WHERE
(mg_movimenti.idsede > 0) AND (mg_movimenti.idintervento IS NULL) AND
((mg_movimenti.data BETWEEN ".prepare($startTM).' AND '.prepare($endTM).") AND (zz_groups.nome IN ('Titolari', 'Amministratori')))";
(`mg_movimenti`.`idsede` > 0) AND (`mg_movimenti`.`idintervento` IS NULL) AND
((`mg_movimenti`.`data` BETWEEN '.prepare($startTM).' AND '.prepare($endTM).") AND (`zz_groups`.`nome` IN ('Titolari', 'Amministratori')))";
$query .= ' AND (an_sedi.targa LIKE '.prepare('%'.$search_targa.'%').') AND (an_sedi.nome LIKE '.prepare('%'.$search_nome.'%').') ';
$query .= ' ORDER BY an_sedi.targa, mg_articoli.descrizione';
$query .= ' AND (`an_sedi`.`targa` LIKE '.prepare('%'.$search_targa.'%').') AND (`an_sedi`.`nome` LIKE '.prepare('%'.$search_nome.'%').') ';
$query .= ' ORDER BY `an_sedi`.`targa`, `mg_articoli`.`descrizione`';
$rs = $dbo->fetchArray($query);
$totrows = sizeof($rs);
$azienda = $dbo->fetchOne('SELECT * FROM an_anagrafiche WHERE idanagrafica='.prepare(setting('Azienda predefinita')));
$azienda = $dbo->fetchOne('SELECT * FROM `an_anagrafiche` WHERE `idanagrafica`='.prepare(setting('Azienda predefinita')));

View File

@ -27,18 +27,19 @@ $date_end = $_SESSION['period_end'];
$raggruppamenti = $dbo->fetchArray('
SELECT
data_competenza,
DATE_FORMAT(data_competenza, \'%m-%Y\') AS periodo,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS imponibile
`data_competenza`,
DATE_FORMAT(`data_competenza`, \'%m-%Y\') AS periodo,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS imponibile
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
periodo
`periodo`
ORDER BY
periodo ASC');
`periodo` ASC');

View File

@ -220,7 +220,7 @@ echo '
</table>';
// Aggiungo diciture particolari per l'anagrafica cliente
$dicitura = $dbo->fetchOne('SELECT diciturafissafattura AS dicitura FROM an_anagrafiche WHERE idanagrafica = '.prepare($id_cliente));
$dicitura = $dbo->fetchOne('SELECT `diciturafissafattura` AS dicitura FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($id_cliente));
if (!empty($dicitura['dicitura'])) {
echo '
@ -231,7 +231,7 @@ if (!empty($dicitura['dicitura'])) {
// Aggiungo diciture per condizioni iva particolari
foreach ($v_iva as $key => $value) {
$dicitura = $dbo->fetchOne('SELECT dicitura FROM co_iva WHERE descrizione = '.prepare($key));
$dicitura = $dbo->fetchOne('SELECT `dicitura` FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name` = '.prepare($key));
if (!empty($dicitura['dicitura'])) {
echo '

View File

@ -42,392 +42,404 @@ $maggiorazione = 0;
if (!empty($vendita_banco)) {
$iva_vendite_esigibile = $dbo->fetchArray('
SELECT
id,
cod_iva,
aliquota,
descrizione,
SUM(iva) AS iva,
SUM(subtotale) AS subtotale
`id`,
`cod_iva`,
`aliquota`,
`descrizione`,
SUM(`iva`) AS iva,
SUM(`subtotale`) AS subtotale
FROM
(
SELECT
co_documenti.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_documenti`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
cod_iva, aliquota, descrizione, co_documenti.id
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
SELECT
vb_venditabanco.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM(vb_righe_venditabanco.iva) AS iva,
`vb_venditabanco`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM(`vb_righe_venditabanco`.`iva`) AS iva,
SUM(
vb_righe_venditabanco.subtotale - vb_righe_venditabanco.sconto
`vb_righe_venditabanco`.`subtotale` - `vb_righe_venditabanco`.`sconto`
) AS subtotale
FROM
co_iva
INNER JOIN vb_righe_venditabanco ON vb_righe_venditabanco.idiva = co_iva.id
INNER JOIN vb_venditabanco ON vb_venditabanco.id = vb_righe_venditabanco.idvendita
INNER JOIN vb_stati_vendita ON vb_venditabanco.idstato = vb_stati_vendita.id
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `vb_righe_venditabanco` ON `vb_righe_venditabanco`.`idiva` = `co_iva`.`id`
INNER JOIN `vb_venditabanco` ON `vb_venditabanco`.`id` = `vb_righe_venditabanco`.`idvendita`
INNER JOIN `vb_stati_vendita` ON `vb_venditabanco`.`idstato` = `vb_stati_vendita`.`id`
WHERE
vb_venditabanco.data >= '.prepare($date_start).' AND vb_venditabanco.data <= '.prepare($date_end).' AND vb_righe_venditabanco.is_descrizione = 0 AND vb_stati_vendita.descrizione = "Pagato"
`vb_venditabanco`.`data` >= '.prepare($date_start).' AND `vb_venditabanco`.`data` <= '.prepare($date_end).' AND `vb_righe_venditabanco`.`is_descrizione` = 0 AND `vb_stati_vendita`.`descrizione` = "Pagato"
GROUP BY
cod_iva, aliquota, descrizione, vb_venditabanco.id
`cod_iva`, `aliquota`, `descrizione`, `vb_venditabanco`.`id`
) AS tabella
GROUP BY
cod_iva,
aliquota,
descrizione,
id');
`cod_iva`,
`aliquota`,
`descrizione`,
`id`');
$iva_vendite = $dbo->fetchArray('
SELECT
id,
cod_iva,
aliquota,
descrizione,
SUM(iva) AS iva,
SUM(subtotale) AS subtotale
`id`,
`cod_iva`,
`aliquota`,
`descrizione`,
SUM(`iva`) AS iva,
SUM(`subtotale`) AS subtotale
FROM
(
SELECT
co_documenti.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_documenti`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = co_iva.id
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` 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).'
GROUP BY
cod_iva, aliquota, descrizione, co_documenti.id
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
SELECT
vb_venditabanco.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM(vb_righe_venditabanco.iva) AS iva,
SUM(
vb_righe_venditabanco.subtotale - vb_righe_venditabanco.sconto
) AS subtotale
`vb_venditabanco`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM(`vb_righe_venditabanco`.`iva`) AS iva,
SUM(`vb_righe_venditabanco`.`subtotale` - `vb_righe_venditabanco`.`sconto`) AS subtotale
FROM
co_iva
INNER JOIN vb_righe_venditabanco ON vb_righe_venditabanco.idiva = co_iva.id
INNER JOIN vb_venditabanco ON vb_venditabanco.id = vb_righe_venditabanco.idvendita
INNER JOIN vb_stati_vendita ON vb_venditabanco.idstato = vb_stati_vendita.id
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `vb_righe_venditabanco` ON `vb_righe_venditabanco`.`idiva` = `co_iva`.`id`
INNER JOIN `vb_venditabanco` ON `vb_venditabanco`.`id` = `vb_righe_venditabanco`.`idvendita`
INNER JOIN `vb_stati_vendita` ON `vb_venditabanco`.`idstato` = `vb_stati_vendita`.`id`
WHERE
vb_venditabanco.data >= '.prepare($date_start).' AND vb_venditabanco.data <= '.prepare($date_end).' AND vb_righe_venditabanco.is_descrizione = 0 AND vb_stati_vendita.descrizione = "Pagato"
`vb_venditabanco`.`data` >= '.prepare($date_start).' AND `vb_venditabanco`.`data` <= '.prepare($date_end).' AND `vb_righe_venditabanco`.`is_descrizione` = 0 AND `vb_stati_vendita`.`descrizione` = "Pagato"
GROUP BY
cod_iva, aliquota, descrizione, vb_venditabanco.id
`cod_iva`, `aliquota`, `descrizione`, `vb_venditabanco`.`id`
) AS tabella
GROUP BY
cod_iva,
aliquota,
descrizione,
id');
`cod_iva`,
`aliquota`,
`descrizione`,
`id`');
$iva_vendite_anno_precedente = $dbo->fetchArray('
SELECT
id,
cod_iva,
aliquota,
descrizione,
SUM(iva) AS iva,
SUM(subtotale) AS subtotale
`id`,
`cod_iva`,
`aliquota`,
`descrizione`,
SUM(`iva`) AS iva,
SUM(`subtotale`) AS subtotale
FROM
(
SELECT
co_documenti.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_documenti`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
cod_iva, aliquota, descrizione, co_documenti.id
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
SELECT
vb_venditabanco.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM(vb_righe_venditabanco.iva) AS iva,
SUM(
vb_righe_venditabanco.subtotale - vb_righe_venditabanco.sconto
) AS subtotale
`vb_venditabanco`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM(`vb_righe_venditabanco`.`iva`) AS iva,
SUM(`vb_righe_venditabanco`.`subtotale` - `vb_righe_venditabanco`.`sconto`) AS subtotale
FROM
co_iva
INNER JOIN vb_righe_venditabanco ON vb_righe_venditabanco.idiva = co_iva.id
INNER JOIN vb_venditabanco ON vb_venditabanco.id = vb_righe_venditabanco.idvendita
INNER JOIN vb_stati_vendita ON vb_venditabanco.idstato = vb_stati_vendita.id
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `vb_righe_venditabanco` ON `vb_righe_venditabanco`.`idiva` = `co_iva`.`id`
INNER JOIN `vb_venditabanco` ON `vb_venditabanco`.`id` = `vb_righe_venditabanco`.`idvendita`
INNER JOIN `vb_stati_vendita` ON `vb_venditabanco`.`idstato` = `vb_stati_vendita`.`id`
WHERE
vb_venditabanco.data >= '.prepare($anno_precedente_start).' AND vb_venditabanco.data <= '.prepare($anno_precedente_end).' AND vb_righe_venditabanco.is_descrizione = 0 AND vb_stati_vendita.descrizione = "Pagato"
`vb_venditabanco`.`data` >= '.prepare($anno_precedente_start).' AND `vb_venditabanco`.`data` <= '.prepare($anno_precedente_end).' AND `vb_righe_venditabanco`.`is_descrizione` = 0 AND `vb_stati_vendita`.`descrizione` = "Pagato"
GROUP BY
cod_iva, aliquota, descrizione, vb_venditabanco.id
`cod_iva`, `aliquota`, `descrizione`, `vb_venditabanco`.`id`
) AS tabella
GROUP BY
cod_iva,
aliquota,
descrizione,
id');
`cod_iva`,
`aliquota`,
`descrizione`,
`id`');
$iva_vendite_periodo_precedente = $dbo->fetchArray('
SELECT
id,
cod_iva,
aliquota,
descrizione,
SUM(iva) AS iva,
SUM(subtotale) AS subtotale
`id`,
`cod_iva`,
`aliquota`,
`descrizione`,
SUM(`iva`) AS iva,
SUM(`subtotale`) AS subtotale
FROM
(
SELECT
co_documenti.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_documenti`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
cod_iva, aliquota, descrizione, co_documenti.id
`cod_iva`, `aliquota`, `descrizione`, `co_documenti`.`id`
UNION
SELECT
vb_venditabanco.id AS id,
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM(vb_righe_venditabanco.iva) AS iva,
SUM(
vb_righe_venditabanco.subtotale - vb_righe_venditabanco.sconto
) AS subtotale
`vb_venditabanco`.`id` AS id,
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM(`vb_righe_venditabanco`.`iva`) AS iva,
SUM(`vb_righe_venditabanco`.`subtotale` - `vb_righe_venditabanco`.`sconto`) AS subtotale
FROM
co_iva
INNER JOIN vb_righe_venditabanco ON vb_righe_venditabanco.idiva = co_iva.id
INNER JOIN vb_venditabanco ON vb_venditabanco.id = vb_righe_venditabanco.idvendita
INNER JOIN vb_stati_vendita ON vb_venditabanco.idstato = vb_stati_vendita.id
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `vb_righe_venditabanco` ON `vb_righe_venditabanco`.`idiva` = `co_iva`.`id`
INNER JOIN `vb_venditabanco` ON `vb_venditabanco`.`id` = `vb_righe_venditabanco`.`idvendita`
INNER JOIN `vb_stati_vendita` ON `vb_venditabanco`.`idstato` = `vb_stati_vendita`.`id`
WHERE
vb_venditabanco.data >= '.prepare($periodo_precedente_start).' AND vb_venditabanco.data <= '.prepare($periodo_precedente_end).' AND vb_righe_venditabanco.is_descrizione = 0 AND vb_stati_vendita.descrizione = "Pagato"
`vb_venditabanco`.`data` >= '.prepare($periodo_precedente_start).' AND `vb_venditabanco`.`data` <= '.prepare($periodo_precedente_end).' AND `vb_righe_venditabanco`.`is_descrizione` = 0 AND `vb_stati_vendita`.`descrizione` = "Pagato"
GROUP BY
cod_iva, aliquota, descrizione, vb_venditabanco.id
`cod_iva`, `aliquota`, `descrizione`, `vb_venditabanco`.`id`
) AS tabella
GROUP BY
cod_iva,
aliquota,
descrizione,
id');
`cod_iva`,
`aliquota`,
`descrizione`,
`id`');
}
// calcolo IVA solo su fatture
else {
$iva_vendite_esigibile = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_vendite = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_vendite_anno_precedente = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY aliquota desc');
$iva_vendite_periodo_precedente = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
}
$iva_vendite_nonesigibile = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_acquisti_detraibile = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_acquisti_nondetraibile = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *indetraibile/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *`indetraibile`/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_acquisti = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_acquisti_anno_precedente = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');
$iva_acquisti_periodo_precedente = $dbo->fetchArray('
SELECT
co_iva.codice_natura_fe AS cod_iva,
co_iva.percentuale AS aliquota,
co_iva.descrizione AS descrizione,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale
`co_iva`.`codice_natura_fe` AS cod_iva,
`co_iva`.`percentuale` AS aliquota,
`co_iva_lang`.`name` AS descrizione,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
SUM((`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto` + `co_righe_documenti`.`rivalsainps`) *(IF(`co_tipidocumento`.`reversed` = 0,1,-1))) AS subtotale
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
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` 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).'
GROUP BY
co_iva.id, co_documenti.id
ORDER BY aliquota desc');
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY `aliquota` desc');

View File

@ -36,107 +36,110 @@ $v_totale = [];
if ((!empty($vendita_banco)) && ($id_sezionale == -1) && ($tipo == 'vendite')) {
$query = '
SELECT
data_registrazione,
numero_esterno,
data,
codice_tipo_documento_fe,
percentuale,
descrizione,
id,
numero,
SUM(subtotale) as subtotale,
SUM(totale) as totale,
SUM(iva) AS iva,
ragione_sociale,
codice_anagrafica
`data_registrazione`,
`numero_esterno`,
`data`,
`codice_tipo_documento_fe`,
`percentuale`,
`descrizione`,
`id`,
`numero`,
SUM(`subtotale`) as subtotale,
SUM(`totale`) as totale,
SUM(`iva`) AS iva,
`ragione_sociale`,
`codice_anagrafica`
FROM
(
SELECT
co_documenti.data_registrazione,
co_documenti.numero_esterno,
co_documenti.data,
co_tipidocumento.codice_tipo_documento_fe,
co_iva.percentuale,
co_iva.descrizione,
co_documenti.id AS id,
IF(numero = "", numero_esterno, numero) AS numero,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps)*(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS subtotale,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps+iva+co_righe_documenti.rivalsainps * percentuale/100)*(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS totale,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
an_anagrafiche.ragione_sociale,
an_anagrafiche.codice AS codice_anagrafica
`co_documenti`.`data_registrazione`,
`co_documenti`.`numero_esterno`,
`co_documenti`.`data`,
`co_tipidocumento`.`codice_tipo_documento_fe`,
`co_iva`.`percentuale`,
`co_iva_lang`.`name` as descrizione,
`co_documenti`.`id` AS id,
IF(`numero` = "", `numero_esterno`, `numero`) AS numero,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`)*(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS subtotale,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`+`iva`+`co_righe_documenti`.`rivalsainps` * `percentuale`/100)*(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS totale,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
`an_anagrafiche`.`ragione_sociale`,
`an_anagrafiche`.`codice` AS codice_anagrafica
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = co_documenti.idanagrafica
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
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` 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').'
GROUP BY
co_iva.id, co_documenti.id
`co_iva`.`id`, `co_documenti`.`id`
UNION
SELECT
vb_venditabanco.data as data_registrazione,
vb_venditabanco.numero as numero_esterno,
vb_venditabanco.data as data,
`vb_venditabanco`.`data` as data_registrazione,
`vb_venditabanco`.`numero` as numero_esterno,
`vb_venditabanco`.`data` as data,
"Vendita al banco" as codice_tipo_documento_fe,
co_iva.percentuale,
co_iva.descrizione,
vb_venditabanco.id AS id,
vb_venditabanco.numero AS numero,
SUM(vb_righe_venditabanco.subtotale) as subtotale,
SUM(subtotale - sconto + iva) as totale,
SUM(iva) as iva,
an_anagrafiche.ragione_sociale,
an_anagrafiche.codice AS codice_anagrafica
FROM co_iva
INNER JOIN vb_righe_venditabanco ON vb_righe_venditabanco.idiva = co_iva.id
INNER JOIN vb_venditabanco ON vb_venditabanco.id = vb_righe_venditabanco.idvendita
INNER JOIN vb_stati_vendita ON vb_venditabanco.idstato = vb_stati_vendita.id
LEFT JOIN in_interventi ON vb_righe_venditabanco.idintervento = in_interventi.id
LEFT JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = in_interventi.idanagrafica
`co_iva`.`percentuale`,
`co_iva_lang`.`name` as descrizione,
`vb_venditabanco`.`id` AS id,
`vb_venditabanco`.`numero` AS numero,
SUM(`vb_righe_venditabanco`.`subtotale`) as subtotale,
SUM(`subtotale`-`sconto` + `iva`) as totale,
SUM(`iva`) as iva,
`an_anagrafiche`.`ragione_sociale`,
`an_anagrafiche`.`codice` AS codice_anagrafica
FROM `co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `vb_righe_venditabanco` ON `vb_righe_venditabanco`.`idiva` = `co_iva`.`id`
INNER JOIN `vb_venditabanco` ON `vb_venditabanco`.`id` = `vb_righe_venditabanco`.`idvendita`
INNER JOIN `vb_stati_vendita` ON `vb_venditabanco`.`idstato` = `vb_stati_vendita`.`id`
LEFT JOIN `in_interventi` ON `vb_righe_venditabanco`.`idintervento` = `in_interventi`.`id`
LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `in_interventi`.`idanagrafica`
WHERE
vb_venditabanco.data >= '.prepare($date_start).' AND vb_venditabanco.data <= '.prepare($date_end).' AND vb_stati_vendita.descrizione = "Pagato"
`vb_venditabanco`.`data` >= '.prepare($date_start).' AND `vb_venditabanco`.`data` <= '.prepare($date_end).' AND `vb_stati_vendita`.`descrizione` = "Pagato"
GROUP BY
co_iva.id, id, an_anagrafiche.idanagrafica
`co_iva`.`id`, `id`, `an_anagrafiche`.`idanagrafica`
) AS tabella
GROUP BY
iva, id, data_registrazione, data, numero_esterno, codice_tipo_documento_fe, percentuale, descrizione, numero, ragione_sociale, codice_anagrafica
ORDER BY CAST(numero_esterno AS UNSIGNED)';
`iva`, `id`, `data_registrazione`, `data`, `numero_esterno`, `codice_tipo_documento_fe`, `percentuale`, `descrizione`, `numero`, `ragione_sociale`, `codice_anagrafica`
ORDER BY CAST(`numero_esterno` AS UNSIGNED)';
} else {
$query = '
SELECT
co_documenti.data_registrazione,
co_documenti.numero_esterno,
co_documenti.data,
co_tipidocumento.codice_tipo_documento_fe,
co_iva.percentuale,
co_iva.descrizione,
co_documenti.id AS id,
IF(numero = "", numero_esterno, numero) AS numero,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps)*(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS subtotale,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps+iva+co_righe_documenti.rivalsainps * percentuale/100)*(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS totale,
SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva,
an_anagrafiche.ragione_sociale,
an_anagrafiche.codice AS codice_anagrafica
`co_documenti`.`data_registrazione`,
`co_documenti`.`numero_esterno`,
`co_documenti`.`data`,
`co_tipidocumento`.`codice_tipo_documento_fe`,
`co_iva`.`percentuale`,
`co_iva_lang`.`name` as descrizione,
`co_documenti`.`id` AS id,
IF(`numero` = "", `numero_esterno`, `numero`) AS numero,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`)*(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS subtotale,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`+`iva`+`co_righe_documenti`.`rivalsainps` * `percentuale`/100)*(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS totale,
SUM((`subtotale`-`sconto`+`co_righe_documenti`.`rivalsainps`) *`percentuale`/100 *(100-`indetraibile`)/100 *(IF(`co_tipidocumento`.`reversed` = 0, 1,-1 ))) AS iva,
`an_anagrafiche`.`ragione_sociale`,
`an_anagrafiche`.`codice` AS codice_anagrafica
FROM
co_iva
INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id
INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento
INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = co_documenti.idanagrafica
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).')
INNER JOIN `co_righe_documenti` ON `co_righe_documenti`.`idiva` = `co_iva`.`id`
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
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` 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').'
GROUP BY
co_iva.id, co_documenti.id
`co_iva`.`id`, `co_documenti`.`id`
ORDER BY
CAST( IF(dir="entrata", co_documenti.numero_esterno, co_documenti.numero) AS UNSIGNED)';
CAST( IF(`dir`="entrata", `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED)';
}
$records = $dbo->fetchArray($query);
if (empty(get('notdefinitiva'))) {
$page = $dbo->fetchOne('SELECT first_page FROM co_stampecontabili WHERE dir='.prepare(filter('dir')).' AND date_start='.prepare(filter('date_start')).' AND date_end='.prepare(filter('date_end')))['first_page'];
$page = $dbo->fetchOne('SELECT `first_page` FROM `co_stampecontabili` WHERE `dir`='.prepare(filter('dir')).' AND `date_start`='.prepare(filter('date_start')).' AND `date_end`='.prepare(filter('date_end')))['first_page'];
}
// Sostituzioni specifiche

View File

@ -253,4 +253,43 @@ HAVING
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche_lang`.`name`' WHERE `zz_modules`.`name` = 'Tipi di anagrafiche' AND `zz_views`.`name` = 'Descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche`.`id`' WHERE `zz_modules`.`name` = 'Tipi di anagrafiche' AND `zz_views`.`name` = 'id';
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `idtipoanagrafica` = (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON(`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record`) WHERE `name` = \'Azienda\') AND `deleted_at` IS NULL' WHERE `zz_settings`.`nome` = 'Azienda predefinita';
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `idtipoanagrafica` = (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON(`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record`) WHERE `name` = \'Azienda\') AND `deleted_at` IS NULL' WHERE `zz_settings`.`nome` = 'Azienda predefinita';
-- Aggiunta tabella co_iva_lang
CREATE TABLE IF NOT EXISTS `co_iva_lang` (
`id` int NOT NULL,
`id_lang` int NOT NULL,
`id_record` int NOT NULL,
`name` VARCHAR(255) NOT NULL
);
ALTER TABLE `co_iva_lang`
ADD PRIMARY KEY (`id`);
ALTER TABLE `co_iva_lang`
MODIFY `id` int NOT NULL AUTO_INCREMENT;
INSERT INTO `co_iva_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `co_iva`;
ALTER TABLE `co_iva`
DROP `descrizione`;
ALTER TABLE `co_iva_lang` ADD CONSTRAINT `co_iva_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `co_iva`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Anagrafiche
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`co_iva`
LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND |lang|)
WHERE
1=1 AND `deleted_at` IS NULL
HAVING
2=2" WHERE `name` = 'IVA';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_iva_lang`.`name`' WHERE `zz_modules`.`name` = 'IVA' AND `zz_views`.`name` = 'descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_iva`.`id`' WHERE `zz_modules`.`name` = 'IVA' AND `zz_views`.`name` = 'id';
SELECT @codice := MAX(CAST(codice AS UNSIGNED))+1 FROM co_iva WHERE deleted_at IS NULL;
UPDATE co_iva SET codice = @codice WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Art.9 c.1 DPR 633/1972');
UPDATE co_iva SET codice = @codice+1 WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Non imp. art.72 DPR 633/1972');
UPDATE co_iva SET codice = @codice+2 WHERE id = (SELECT id_record FROM co_iva_lang WHERE name = 'Art. 71 DPR 633/1972');

View File

@ -28,6 +28,7 @@ return [
'co_contratti_tipiintervento',
'co_documenti',
'co_iva',
'co_iva_lang',
'co_movimenti',
'co_movimenti_modelli',
'co_fatturazione_contratti',