// Verifico se nell'ordine c'è già questo articolo allo stesso prezzo unitario
$rs=$dbo->fetchArray('SELECT id, qta FROM co_righe_preventivi WHERE idarticolo='.prepare($idarticolo).' AND idpreventivo='.prepare($idpreventivo).' AND lotto='.prepare($lotto).' AND serial='.prepare($serial).' AND altro='.prepare($altro));
// Inserisco la riga nell'ordine: se nell'ordine c'è già questo articolo incremento la quantità...
if(sizeof($rs)>0){
$dbo->query('UPDATE co_righe_preventivi SET qta=qta+'.$qta.', subtotale=subtotale+'.$prezzo.' WHERE id='.prepare($rs[0]['id']));
}
// ...altrimenti inserisco la scorta nell'ordine da zero
else{
$dbo->query('INSERT INTO co_righe_preventivi(idpreventivo, idarticolo, idiva, iva, iva_indetraibile, descrizione, subtotale, um, qta, lotto, serial, altro, `order`) VALUES ('.prepare($idpreventivo).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($um).', '.prepare($qta).', '.prepare($lotto).', '.prepare($serial).', '.prepare($altro).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_preventivi AS t WHERE idpreventivo='.prepare($idpreventivo).'))');
//Leggo la marca da bollo se c'è e se il netto a pagare supera la soglia
$bolli=str_replace(',','.',$bolli);
$bolli=floatval($bolli);
if($dir=='uscita'){
}else{
$bolli=str_replace(',','.',get_var('Importo marca da bollo'));
if(abs($bolli)>0&&abs($netto_a_pagare)>abs(get_var("Soglia minima per l'applicazione della marca da bollo"))){
$marca_da_bollo=str_replace(',','.',$bolli);
}else{
$marca_da_bollo=0.00;
}
//Se l'importo è negativo può essere una nota di accredito, quindi cambio segno alla marca da bollo
if($netto_a_pagare<0){
$marca_da_bollo*=-1;
}
}
//$dbo->query("UPDATE or_ordini SET ritenutaacconto='$ritenutaacconto', bollo='$marca_da_bollo' WHERE id='$idordine'");
}else{
//$dbo->query("UPDATE or_ordini SET ritenutaacconto='0', bollo='0', sconto='0', rivalsainps='0' WHERE id='$idordine'");
}
}
functionget_imponibile_preventivo($idpreventivo)
{
global$dbo;
$query='SELECT SUM(co_righe_preventivi.subtotale - co_righe_preventivi.sconto) AS imponibile FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo);
$rs=$dbo->fetchArray($query);
return$rs[0]['imponibile'];
}
/**
*Restituiscelostatodell'ordineinbaseallerighe.
*/
functionget_stato_preventivo($idpreventivo)
{
global$dbo;
$rs=$dbo->fetchArray('SELECT SUM(qta) AS qta, SUM(qta_evasa) AS qta_evasa FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$rs=$dbo->fetchArray('SELECT SUM(subtotale) AS totale FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$totale_articoli=$rs[0]['totale'];
$rs=$dbo->fetchArray('SELECT SUM(sconto*qta) AS totale FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$totale_sconto=$rs[0]['totale'];
$rs=$dbo->fetchArray('SELECT SUM(iva) AS totale FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo));
$totale_iva=$rs[0]['totale'];
//Totale costo ore, km e diritto di chiamata
//$rs = $dbo->fetchArray("SELECT SUM(costo_orario*ore_lavoro + costo_diritto_chiamata) AS totale FROM co_preventivi GROUP BY id HAVING id=\"".$idpreventivo."\"");
//$totale_lavoro = $rs[0]['totale'];
//Aggiorno il budget su co_preventivi
$dbo->query('UPDATE co_preventivi SET budget='.prepare(($totale_articoli-$totale_sconto)+$totale_iva).' WHERE id='.prepare($idpreventivo));