Fix aggiornamento 2.4.9

This commit is contained in:
Thomas Zilio 2019-07-12 17:03:14 +02:00
parent d43d9f19b3
commit 651c02eeb9
1 changed files with 162 additions and 1 deletions

View File

@ -1,7 +1,168 @@
<?php
include_once DOCROOT.'/modules/fatture/modutil.php';
include_once DOCROOT.'/modules/interventi/modutil.php';
function get_costi_intervento($id_intervento)
{
$dbo = database();
$decimals = setting('Cifre decimali per importi');
$idiva = setting('Iva predefinita');
$rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
$tecnici = $dbo->fetchArray('SELECT
COALESCE(SUM(
ROUND(prezzo_ore_unitario_tecnico*ore, '.$decimals.')
), 0) AS manodopera_costo,
COALESCE(SUM(
ROUND(prezzo_ore_unitario*ore, '.$decimals.')
), 0) AS manodopera_addebito,
COALESCE(SUM(
ROUND(prezzo_ore_unitario*ore, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS manodopera_scontato,
COALESCE(SUM(
ROUND(prezzo_dirittochiamata_tecnico, '.$decimals.')
), 0) AS dirittochiamata_costo,
COALESCE(SUM(
ROUND(prezzo_dirittochiamata, '.$decimals.')
), 0) AS dirittochiamata_addebito,
COALESCE(SUM(
ROUND(prezzo_dirittochiamata, '.$decimals.')
), 0) AS dirittochiamata_scontato,
COALESCE(SUM(
ROUND(prezzo_km_consuntivo_tecnico, '.$decimals.')
), 0) AS viaggio_costo,
COALESCE(SUM(
ROUND(prezzo_km_consuntivo, '.$decimals.')
), 0) viaggio_addebito,
COALESCE(SUM(
ROUND(prezzo_km_consuntivo, '.$decimals.') - ROUND(scontokm, '.$decimals.')
), 0) AS viaggio_scontato
FROM in_interventi_tecnici WHERE idintervento='.prepare($id_intervento));
$articoli = $dbo->fetchArray('SELECT
COALESCE(SUM(
ROUND(prezzo_acquisto, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS ricambi_costo,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS ricambi_addebito,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS ricambi_scontato,
ROUND(
(SELECT percentuale FROM co_iva WHERE co_iva.id=mg_articoli_interventi.idiva), '.$decimals.'
) AS ricambi_iva
FROM mg_articoli_interventi WHERE idintervento='.prepare($id_intervento));
$altro = $dbo->fetchArray('SELECT
COALESCE(SUM(
ROUND(prezzo_acquisto, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS altro_costo,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.')
), 0) AS altro_addebito,
COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS altro_scontato,
ROUND(
(SELECT percentuale FROM co_iva WHERE co_iva.id=in_righe_interventi.idiva), '.$decimals.'
) AS altro_iva
FROM in_righe_interventi WHERE idintervento='.prepare($id_intervento));
$result = array_merge($tecnici[0], $articoli[0], $altro[0]);
$result['totale_costo'] = sum([
$result['manodopera_costo'],
$result['dirittochiamata_costo'],
$result['viaggio_costo'],
$result['ricambi_costo'],
$result['altro_costo'],
]);
$result['totale_addebito'] = sum([
$result['manodopera_addebito'],
$result['dirittochiamata_addebito'],
$result['viaggio_addebito'],
$result['ricambi_addebito'],
$result['altro_addebito'],
]);
$result['totale_scontato'] = sum([
$result['manodopera_scontato'],
$result['dirittochiamata_scontato'],
$result['viaggio_scontato'],
$result['ricambi_scontato'],
$result['altro_scontato'],
]);
$result['iva_costo'] = sum([
$result['manodopera_costo'] * $rs_iva[0]['percentuale'] / 100,
$result['dirittochiamata_costo'] * $rs_iva[0]['percentuale'] / 100,
$result['viaggio_costo'] * $rs_iva[0]['percentuale'] / 100,
$result['ricambi_costo'] * $result['ricambi_iva'] / 100,
$result['altro_costo'] * $result['altro_iva'] / 100,
]);
$result['iva_addebito'] = sum([
$result['manodopera_addebito'] * $rs_iva[0]['percentuale'] / 100,
$result['dirittochiamata_addebito'] * $rs_iva[0]['percentuale'] / 100,
$result['viaggio_addebito'] * $rs_iva[0]['percentuale'] / 100,
$result['ricambi_addebito'] * $result['ricambi_iva'] / 100,
$result['altro_addebito'] * $result['altro_iva'] / 100,
]);
$result['iva_totale'] = sum([
$result['manodopera_scontato'] * $rs_iva[0]['percentuale'] / 100,
$result['dirittochiamata_scontato'] * $rs_iva[0]['percentuale'] / 100,
$result['viaggio_scontato'] * $rs_iva[0]['percentuale'] / 100,
$result['ricambi_scontato'] * $result['ricambi_iva'] / 100,
$result['altro_scontato'] * $result['altro_iva'] / 100,
]);
$result['totaleivato_costo'] = sum([
$result['manodopera_costo'] + ($result['manodopera_costo'] * $rs_iva[0]['percentuale'] / 100),
$result['dirittochiamata_costo'] + ($result['dirittochiamata_costo'] * $rs_iva[0]['percentuale'] / 100),
$result['viaggio_costo'] + ($result['viaggio_costo'] * $rs_iva[0]['percentuale'] / 100),
$result['ricambi_costo'] + ($result['ricambi_costo'] * $result['ricambi_iva'] / 100),
$result['altro_costo'] + ($result['altro_costo'] * $result['altro_iva'] / 100),
]);
$result['totaleivato_addebito'] = sum([
$result['manodopera_addebito'] + ($result['manodopera_addebito'] * $rs_iva[0]['percentuale'] / 100),
$result['dirittochiamata_addebito'] + ($result['dirittochiamata_addebito'] * $rs_iva[0]['percentuale'] / 100),
$result['viaggio_addebito'] + ($result['viaggio_addebito'] * $rs_iva[0]['percentuale'] / 100),
$result['ricambi_addebito'] + ($result['ricambi_addebito'] * $result['ricambi_iva'] / 100),
$result['altro_addebito'] + ($result['altro_addebito'] * $result['altro_iva'] / 100),
]);
$result['totale'] = sum([
$result['manodopera_scontato'] + ($result['manodopera_scontato'] * $rs_iva[0]['percentuale'] / 100),
$result['dirittochiamata_scontato'] + ($result['dirittochiamata_scontato'] * $rs_iva[0]['percentuale'] / 100),
$result['viaggio_scontato'] + ($result['viaggio_scontato'] * $rs_iva[0]['percentuale'] / 100),
$result['ricambi_scontato'] + ($result['ricambi_scontato'] * $result['ricambi_iva'] / 100),
$result['altro_scontato'] + ($result['altro_scontato'] * $result['altro_iva'] / 100),
]);
// Calcolo dello sconto incondizionato
$sconto = $dbo->fetchArray('SELECT sconto_globale, tipo_sconto_globale FROM in_interventi WHERE id='.prepare($id_intervento))[0];
$result['sconto_globale'] = ($sconto['tipo_sconto_globale'] == 'PRC') ? $result['totale_scontato'] * $sconto['sconto_globale'] / 100 : $sconto['sconto_globale'];
$result['sconto_globale'] = round($result['sconto_globale'], $decimals);
$result['totale_scontato'] = sum($result['totale_scontato'], -$result['sconto_globale']);
$result['iva_totale'] = sum($result['iva_totale'], -($result['sconto_globale'] * $rs_iva[0]['percentuale'] / 100));
$result['totale'] = sum($result['totale'], -($result['sconto_globale'] + ($result['sconto_globale'] * $rs_iva[0]['percentuale'] / 100)));
return $result;
}
// Aggiornamento sconti incodizionati per Interventi
$id_iva = setting('Iva predefinita');