Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
068e0cd102
|
@ -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',
|
||||
});
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 '
|
||||
|
|
|
@ -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'];
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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') {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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'])) {
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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',
|
||||
]));
|
||||
|
|
|
@ -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%")';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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_.', [
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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'];
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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 '
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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'] ?: [];
|
||||
|
|
|
@ -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").'.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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'];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')));
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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 '
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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');
|
|
@ -28,6 +28,7 @@ return [
|
|||
'co_contratti_tipiintervento',
|
||||
'co_documenti',
|
||||
'co_iva',
|
||||
'co_iva_lang',
|
||||
'co_movimenti',
|
||||
'co_movimenti_modelli',
|
||||
'co_fatturazione_contratti',
|
||||
|
|
Loading…
Reference in New Issue