1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-23 06:47:40 +01:00

Aggiunta scelta iva su materiale e altre spese nell'intervento

This commit is contained in:
Bacca97 2018-03-19 18:11:51 +01:00
parent e6e0675e20
commit 0a0c24663e
10 changed files with 144 additions and 25 deletions

View File

@ -404,7 +404,7 @@ switch (post('op')) {
// Collego in fattura eventuali articoli collegati all'intervento // Collego in fattura eventuali articoli collegati all'intervento
$rs2 = $dbo->fetchArray('SELECT mg_articoli_interventi.*, idarticolo FROM mg_articoli_interventi INNER JOIN mg_articoli ON mg_articoli_interventi.idarticolo=mg_articoli.id WHERE idintervento='.prepare($idintervento).' AND (idintervento NOT IN(SELECT idintervento FROM co_righe_preventivi WHERE idpreventivo IN(SELECT idpreventivo FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).')) AND idintervento NOT IN(SELECT idintervento FROM co_righe_contratti WHERE idcontratto IN(SELECT idcontratto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).')) )'); $rs2 = $dbo->fetchArray('SELECT mg_articoli_interventi.*, idarticolo FROM mg_articoli_interventi INNER JOIN mg_articoli ON mg_articoli_interventi.idarticolo=mg_articoli.id WHERE idintervento='.prepare($idintervento).' AND (idintervento NOT IN(SELECT idintervento FROM co_righe_preventivi WHERE idpreventivo IN(SELECT idpreventivo FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).')) AND idintervento NOT IN(SELECT idintervento FROM co_righe_contratti WHERE idcontratto IN(SELECT idcontratto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).')) )');
for ($i = 0; $i < sizeof($rs2); ++$i) { for ($i = 0; $i < sizeof($rs2); ++$i) {
$riga = add_articolo_infattura($id_record, $rs2[$i]['idarticolo'], $rs2[$i]['descrizione'], $idiva, $rs2[$i]['qta'], $rs2[$i]['prezzo_vendita'] * $rs2[$i]['qta'], $rs2[$i]['sconto'], $rs2[$i]['sconto_unitario'], $rs2[$i]['tipo_sconto'], $idintervento, 0, $rs2[$i]['um']); $riga = add_articolo_infattura($id_record, $rs2[$i]['idarticolo'], $rs2[$i]['descrizione'], $rs2[$i]['idiva'], $rs2[$i]['qta'], $rs2[$i]['prezzo_vendita'] * $rs2[$i]['qta'], $rs2[$i]['sconto'], $rs2[$i]['sconto_unitario'], $rs2[$i]['tipo_sconto'], $idintervento, 0, $rs2[$i]['um']);
// Lettura lotto, serial, altro dalla riga dell'ordine // Lettura lotto, serial, altro dalla riga dell'ordine
$dbo->query('INSERT INTO mg_prodotti (id_riga_documento, id_articolo, dir, serial, lotto, altro) SELECT '.prepare($riga).', '.prepare($rs2[$i]['idarticolo']).', '.prepare($dir).', serial, lotto, altro FROM mg_prodotti AS t WHERE id_riga_intervento='.prepare($rs2[$i]['id'])); $dbo->query('INSERT INTO mg_prodotti (id_riga_documento, id_articolo, dir, serial, lotto, altro) SELECT '.prepare($riga).', '.prepare($rs2[$i]['idarticolo']).', '.prepare($dir).', serial, lotto, altro FROM mg_prodotti AS t WHERE id_riga_intervento='.prepare($rs2[$i]['id']));
@ -416,7 +416,7 @@ switch (post('op')) {
if (sizeof($rsr) > 0) { if (sizeof($rsr) > 0) {
for ($i = 0; $i < sizeof($rsr); ++$i) { for ($i = 0; $i < sizeof($rsr); ++$i) {
// Calcolo iva // Calcolo iva
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva); $query = 'SELECT * FROM co_iva WHERE id='.prepare($rsr[$i]['idiva']);
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
$desc_iva = $rs[0]['descrizione']; $desc_iva = $rs[0]['descrizione'];

View File

@ -402,6 +402,7 @@ switch (post('op')) {
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$qta = post('qta'); $qta = post('qta');
$um = post('um'); $um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita'); $prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto'); $prezzo_acquisto = post('prezzo_acquisto');
@ -409,8 +410,14 @@ switch (post('op')) {
$tipo_sconto = $post['tipo_sconto']; $tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario; $sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta; $sconto = $sconto * $qta;
//Calcolo iva
$rs_iva = $dbo->fetchArray("SELECT * FROM co_iva WHERE id=".prepare($idiva)."");
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita*$qta)-$sconto)*$rs_iva[0]['percentuale']/100;
$dbo->query('INSERT INTO in_righe_interventi(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idintervento) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($id_record).')'); $dbo->query('INSERT INTO in_righe_interventi(descrizione, qta, um, prezzo_vendita, prezzo_acquisto, idiva, desc_iva, iva, sconto, sconto_unitario, tipo_sconto, idintervento) VALUES ('.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($id_record).')');
break; break;
@ -419,6 +426,7 @@ switch (post('op')) {
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$qta = post('qta'); $qta = post('qta');
$um = post('um'); $um = post('um');
$idiva = post('idiva');
$prezzo_vendita = post('prezzo_vendita'); $prezzo_vendita = post('prezzo_vendita');
$prezzo_acquisto = post('prezzo_acquisto'); $prezzo_acquisto = post('prezzo_acquisto');
@ -426,6 +434,12 @@ switch (post('op')) {
$tipo_sconto = $post['tipo_sconto']; $tipo_sconto = $post['tipo_sconto'];
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario; $sconto = ($tipo_sconto == 'PRC') ? ($prezzo_vendita * $sconto_unitario) / 100 : $sconto_unitario;
$sconto = $sconto * $qta; $sconto = $sconto * $qta;
//Calcolo iva
$rs_iva = $dbo->fetchArray("SELECT * FROM co_iva WHERE id=".prepare($idiva)."");
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita*$qta)-$sconto)*$rs_iva[0]['percentuale']/100;
$dbo->query('UPDATE in_righe_interventi SET '. $dbo->query('UPDATE in_righe_interventi SET '.
' descrizione='.prepare($descrizione).','. ' descrizione='.prepare($descrizione).','.
@ -433,6 +447,9 @@ switch (post('op')) {
' um='.prepare($um).','. ' um='.prepare($um).','.
' prezzo_vendita='.prepare($prezzo_vendita).','. ' prezzo_vendita='.prepare($prezzo_vendita).','.
' prezzo_acquisto='.prepare($prezzo_acquisto).','. ' prezzo_acquisto='.prepare($prezzo_acquisto).','.
' idiva='.prepare($idiva).','.
' desc_iva='.prepare($desc_iva).','.
' iva='.prepare($iva).','.
' sconto='.prepare($sconto).','. ' sconto='.prepare($sconto).','.
' sconto_unitario='.prepare($sconto_unitario).','. ' sconto_unitario='.prepare($sconto_unitario).','.
' tipo_sconto='.prepare($tipo_sconto). ' tipo_sconto='.prepare($tipo_sconto).
@ -487,6 +504,7 @@ switch (post('op')) {
$qta = post('qta'); $qta = post('qta');
$um = post('um'); $um = post('um');
$prezzo_vendita = post('prezzo_vendita'); $prezzo_vendita = post('prezzo_vendita');
$idiva = post('idiva');
$sconto_unitario = $post['sconto']; $sconto_unitario = $post['sconto'];
$tipo_sconto = $post['tipo_sconto']; $tipo_sconto = $post['tipo_sconto'];
@ -501,9 +519,15 @@ switch (post('op')) {
$rsart = $dbo->fetchArray('SELECT abilita_serial, prezzo_acquisto FROM mg_articoli WHERE id='.prepare($idarticolo)); $rsart = $dbo->fetchArray('SELECT abilita_serial, prezzo_acquisto FROM mg_articoli WHERE id='.prepare($idarticolo));
$prezzo_acquisto = $rsart[0]['prezzo_acquisto']; $prezzo_acquisto = $rsart[0]['prezzo_acquisto'];
//Calcolo iva
$rs_iva = $dbo->fetchArray("SELECT * FROM co_iva WHERE id=".prepare($idiva)."");
$desc_iva = $rs_iva[0]['descrizione'];
$iva = (($prezzo_vendita*$qta)-$sconto)*$rs_iva[0]['percentuale']/100;
// Aggiunto il collegamento fra l'articolo e l'intervento // Aggiunto il collegamento fra l'articolo e l'intervento
$idriga = $dbo->query('INSERT INTO mg_articoli_interventi(idarticolo, idintervento, idimpianto, idautomezzo, descrizione, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idiva_vendita, qta, um, abilita_serial) VALUES ('.prepare($idarticolo).', '.prepare($id_record).', '.(empty($idimpianto) ? 'NULL' : prepare($idimpianto)).', '.prepare($idautomezzo).', '.prepare($descrizione).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', (SELECT idiva_vendita FROM mg_articoli WHERE id='.prepare($idarticolo).'), '.prepare($qta).', '.prepare($um).', '.prepare($rsart[0]['abilita_serial']).')'); $idriga = $dbo->query('INSERT INTO mg_articoli_interventi(idarticolo, idintervento, idimpianto, idautomezzo, descrizione, prezzo_vendita, prezzo_acquisto, sconto, sconto_unitario, tipo_sconto, idiva, desc_iva, iva, qta, um, abilita_serial) VALUES ('.prepare($idarticolo).', '.prepare($id_record).', '.(empty($idimpianto) ? 'NULL' : prepare($idimpianto)).', '.prepare($idautomezzo).', '.prepare($descrizione).', '.prepare($prezzo_vendita).', '.prepare($prezzo_acquisto).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($qta).', '.prepare($um).', '.prepare($rsart[0]['abilita_serial']).')');
if (!empty($serials)) { if (!empty($serials)) {
if ($old_qta > $qta) { if ($old_qta > $qta) {

View File

@ -50,7 +50,8 @@ if (empty($idriga)) {
$descrizione = $rsr[0]['descrizione']; $descrizione = $rsr[0]['descrizione'];
$qta = $rsr[0]['qta']; $qta = $rsr[0]['qta'];
$um = $rsr[0]['um']; $um = $rsr[0]['um'];
$idiva = $rsr[0]['idiva'];
$prezzo_vendita = $rsr[0]['prezzo_vendita']; $prezzo_vendita = $rsr[0]['prezzo_vendita'];
$sconto_unitario = $rsr[0]['sconto_unitario']; $sconto_unitario = $rsr[0]['sconto_unitario'];
@ -111,17 +112,23 @@ echo '
{[ "type": "select", "label": "'.tr('Impianto su cui installare').'", "name": "idimpianto", "value": "'.$idimpianto.'", "ajax-source": "impianti" ]} {[ "type": "select", "label": "'.tr('Impianto su cui installare').'", "name": "idimpianto", "value": "'.$idimpianto.'", "ajax-source": "impianti" ]}
</div> </div>
</div>'; </div>';
// Iva
echo '
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
</div>';
// Prezzo di vendita // Prezzo di vendita
echo ' echo '
<div class="row"> <div class="col-md-4">
<div class="col-md-6">
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "&euro;" ]} {[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "&euro;" ]}
</div>'; </div>';
// Sconto // Sconto
echo ' echo '
<div class="col-md-6"> <div class="col-md-4">
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc|'.$tipo_sconto.'", "value": "'.$sconto_unitario.'" ]} {[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc|'.$tipo_sconto.'", "value": "'.$sconto_unitario.'" ]}
</div> </div>
</div>'; </div>';
@ -165,6 +172,7 @@ echo '
$("#prezzo_vendita").val($data.prezzo_vendita); $("#prezzo_vendita").val($data.prezzo_vendita);
$("#descrizione_articolo").val($data.descrizione); $("#descrizione_articolo").val($data.descrizione);
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
$("#um").selectSetNew($data.um, $data.um); $("#um").selectSetNew($data.um, $data.um);
}else{ }else{
$("#prezzi_articolo button").addClass("disabled"); $("#prezzi_articolo button").addClass("disabled");

View File

@ -35,9 +35,10 @@ if (empty($idriga)) {
$descrizione = $rsr[0]['descrizione']; $descrizione = $rsr[0]['descrizione'];
$qta = $rsr[0]['qta']; $qta = $rsr[0]['qta'];
$um = $rsr[0]['um']; $um = $rsr[0]['um'];
$idiva = $rsr[0]['idiva'];
$prezzo_vendita = $rsr[0]['prezzo_vendita']; $prezzo_vendita = $rsr[0]['prezzo_vendita'];
$prezzo_acquisto = $rsr[0]['prezzo_acquisto']; $prezzo_acquisto = $rsr[0]['prezzo_acquisto'];
$sconto_unitario = $rsr[0]['sconto_unitario']; $sconto_unitario = $rsr[0]['sconto_unitario'];
$tipo_sconto = $rsr[0]['tipo_sconto']; $tipo_sconto = $rsr[0]['tipo_sconto'];
} }
@ -70,6 +71,12 @@ echo '
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]} {[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
</div>';
// Iva
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
</div> </div>
</div>'; </div>';

View File

@ -22,7 +22,8 @@ if (!empty($rs)) {
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') { if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
echo ' echo '
<th width="15%">'.tr('Prezzo di vendita').'</th> <th width="15%">'.tr('Prezzo di vendita').'</th>
<th width="15%">'.tr('Subtotale').'</th>'; <th width="10%">'.tr('Iva').'</th>
<th width="15%">'.tr('Imponibile').'</th>';
} }
if ( !$records[0]['flg_completato'] ) { if ( !$records[0]['flg_completato'] ) {
@ -97,6 +98,12 @@ if (!empty($rs)) {
</span>'; </span>';
} }
echo '
</td>';
echo '
<td class="text-right">
<span>'.Translator::numberToLocale($r['iva']).'</span> &euro;';
echo ' echo '
</td>'; </td>';

View File

@ -76,22 +76,22 @@ if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
<th>'.tr('Imponibile', [], ['upper' => true]).'</th> <th>'.tr('Imponibile', [], ['upper' => true]).'</th>
<td class="text-right">'.Translator::numberToLocale($costi['totale_costo']).' &euro;</td> <td class="text-right">'.Translator::numberToLocale($costi['totale_costo']).' &euro;</td>
<td class="text-right">'.Translator::numberToLocale($costi['totale_addebito']).' &euro;</td> <td class="text-right">'.Translator::numberToLocale($costi['totale_addebito']).' &euro;</td>
<td class="text-right">'.Translator::numberToLocale($costi['totale']).' &euro;</td> <td class="text-right">'.Translator::numberToLocale($costi['totale_scontato']).' &euro;</td>
</tr> </tr>
<tr class='.$hide.' > <tr class='.$hide.' >
<th>'.tr('IVA (_DESC_)', [ _DESC_ => $rs_iva[0]['descrizione']], ['upper' => true]).'</th> <th>'.tr('IVA', [], ['upper' => true]).'</th>
<td class="text-right">'.Translator::numberToLocale(($costi['totale_costo']/100*$rs_iva[0]['percentuale'])).' &euro;</td> <td class="text-right">'.Translator::numberToLocale($costi['iva_costo']).' &euro;</td>
<td class="text-right">'.Translator::numberToLocale(($costi['totale_addebito']/100*$rs_iva[0]['percentuale'])).' &euro;</td> <td class="text-right">'.Translator::numberToLocale($costi['iva_addebito']).' &euro;</td>
<td class="text-right">'.Translator::numberToLocale(($costi['totale']/100*$rs_iva[0]['percentuale'])).' &euro;</td> <td class="text-right">'.Translator::numberToLocale($costi['iva_totale']).' &euro;</td>
</tr> </tr>
<tr> <tr>
<th>'.tr('Totale', [], ['upper' => true]).'</th> <th>'.tr('Totale', [], ['upper' => true]).'</th>
<th class="text-right">'.Translator::numberToLocale($costi['totale_costo']+($costi['totale_costo']/100*$rs_iva[0]['percentuale'])).' &euro;</th> <th class="text-right">'.Translator::numberToLocale($costi['totaleivato_costo']).' &euro;</th>
<th class="text-right">'.Translator::numberToLocale($costi['totale_addebito']+($costi['totale_addebito']/100*$rs_iva[0]['percentuale'])).' &euro;</th> <th class="text-right">'.Translator::numberToLocale($costi['totaleivato_addebito']).' &euro;</th>
<th class="text-right">'.Translator::numberToLocale($costi['totale']+($costi['totale']/100*$rs_iva[0]['percentuale'])).' &euro;</th> <th class="text-right">'.Translator::numberToLocale($costi['totale']).' &euro;</th>
</tr> </tr>
</table>'; </table>';
} }

View File

@ -16,6 +16,7 @@ if (count($rs2) > 0) {
if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') { if (Auth::admin() || $_SESSION['gruppo'] != 'Tecnici') {
echo ' echo '
<th width="15%">'.tr('Prezzo di vendita').'</th> <th width="15%">'.tr('Prezzo di vendita').'</th>
<th width="10%">'.tr('Iva').'</th>
<th width="15%">'.tr('Subtotale').'</th>'; <th width="15%">'.tr('Subtotale').'</th>';
} }
@ -64,6 +65,12 @@ if (count($rs2) > 0) {
</span>'; </span>';
} }
echo '
</td>';
echo '
<td class="text-right">
<span>'.Translator::numberToLocale($r['iva']).'</span> &euro;';
echo ' echo '
</td>'; </td>';

View File

@ -161,6 +161,9 @@ function get_costi_intervento($id_intervento)
$dbo = Database::getConnection(); $dbo = Database::getConnection();
$decimals = Settings::get('Cifre decimali per importi'); $decimals = Settings::get('Cifre decimali per importi');
$idiva = get_var('Iva predefinita');
$rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
$tecnici = $dbo->fetchArray('SELECT $tecnici = $dbo->fetchArray('SELECT
COALESCE(SUM( COALESCE(SUM(
@ -204,7 +207,10 @@ function get_costi_intervento($id_intervento)
), 0) AS ricambi_addebito, ), 0) AS ricambi_addebito,
COALESCE(SUM( COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.') ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS ricambi_scontato ), 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)); FROM mg_articoli_interventi WHERE idintervento='.prepare($id_intervento));
@ -217,7 +223,10 @@ function get_costi_intervento($id_intervento)
), 0) AS altro_addebito, ), 0) AS altro_addebito,
COALESCE(SUM( COALESCE(SUM(
ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.') ROUND(prezzo_vendita, '.$decimals.') * ROUND(qta, '.$decimals.') - ROUND(sconto, '.$decimals.')
), 0) AS altro_scontato ), 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)); FROM in_righe_interventi WHERE idintervento='.prepare($id_intervento));
@ -246,13 +255,63 @@ function get_costi_intervento($id_intervento)
$result['ricambi_scontato'], $result['ricambi_scontato'],
$result['altro_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 // Calcolo dello sconto incondizionato
$sconto = $dbo->fetchArray('SELECT sconto_globale, tipo_sconto_globale FROM in_interventi WHERE id='.prepare($id_intervento))[0]; $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'] = ($sconto['tipo_sconto_globale'] == 'PRC') ? $result['totale'] * $sconto['sconto_globale'] / 100 : $sconto['sconto_globale'];
$result['sconto_globale'] = round($result['sconto_globale'], $decimals); $result['sconto_globale'] = round($result['sconto_globale'], $decimals);
$result['totale'] = sum($result['totale_scontato'], -$result['sconto_globale']); $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; return $result;
} }

View File

@ -176,7 +176,7 @@ echo '
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">
<div class="row"> <div class="row">
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
{[ "type": "select", "name": "matricole[]", "multiple": 1, "value": "'.implode(',', $impianti).'", "values": "query=SELECT my_impianti.id, CONCAT(matricola, \' - \', nome) AS descrizione, CONCAT(nomesede, IF(my_impianti.citta IS NULL OR my_impianti.citta = \'\', \'\', CONCAT(\' (\', my_impianti.citta, \')\'))) AS optgroup FROM my_impianti JOIN (SELECT id, nomesede, citta FROM an_sedi UNION SELECT 0, \'Sede legale\', \'\') AS t ON t.id = my_impianti.idsede WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' ORDER BY idsede ASC, matricola ASC", "extra": "'.$readonly.'" ]} {[ "type": "select", "name": "matricole[]", "multiple": 1, "value": "'.implode(',', $impianti).'", "values": "query=SELECT my_impianti.id, CONCAT(matricola, \' - \', nome) AS descrizione, CONCAT(nomesede, IF(citta IS NULL OR citta = \'\', \'\', CONCAT(\' (\', citta, \')\'))) AS optgroup FROM my_impianti JOIN (SELECT id, nomesede, citta FROM an_sedi UNION SELECT 0 AS id, \'Sede legale\' AS nomesede, \'\' AS citta) AS t ON t.id = my_impianti.idsede WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' ORDER BY idsede ASC, matricola ASC", "extra": "'.$readonly.'" ]}
</div> </div>
</div> </div>
<br><br> <br><br>

View File

@ -1,2 +1,9 @@
-- Lo stato 'FAT' è da considerarsi completato -- Lo stato 'FAT' è da considerarsi completato
UPDATE `in_statiintervento` SET `completato` = '1' WHERE `in_statiintervento`.`idstatointervento` = 'FAT'; UPDATE `in_statiintervento` SET `completato` = '1' WHERE `in_statiintervento`.`idstatointervento` = 'FAT';
-- Nuovi campi per iva su righe 'Materiale utilizzato' in interventi
ALTER TABLE `mg_articoli_interventi` CHANGE `idiva_vendita` `idiva` INT(11) NOT NULL;
ALTER TABLE `mg_articoli_interventi` ADD `desc_iva` VARCHAR(255) NOT NULL AFTER `idiva`, ADD `iva` DECIMAL(12,4) NOT NULL AFTER `desc_iva`;
-- Nuovi campi per iva su righe 'Altre spese' in interventi
ALTER TABLE `in_righe_interventi` ADD `idiva` INT(11) NOT NULL AFTER `prezzo_acquisto`, ADD `desc_iva` VARCHAR(255) NOT NULL AFTER `idiva`, ADD `iva` DECIMAL(12,4) NOT NULL AFTER `desc_iva`;