$strError

"; if(isset($sql_query) && !empty($sql_query)) { echo "$strSQLQuery:

$sql_query

"; } if(empty($error)) echo $strMySQLSaid.mysql_error(); else echo $strMySQLSaid.$error; echo "
$strBack"; exit ; } /*********************************************************************************** * AggiornaRecordTabellaAmmontareVariOrdini: esegue l'aggiornamento di un singolo * record nella tabella individuato dal parametro passato $idOrdine. L'aggiornamento * viene eseguito ricalcolando i dati relativi al singolo ordine in quanto ci sono * vari momenti in la modifica di alcuni dati DEVE provocare l'aggiornamento di un * singolo record nella tabella oppure l'aggiornamento di tutta la tabella. * * parametri: * idOrdine = -1 => parametro da NON considerare * idordine != -1 => parametro da considerare; * * idAgente = -1 => parametro da NON considerare * idAgente != -1 => parametro da considerare * *********************************************************************************/ function AggiornaTabellaAmmontareVariOrdini($idOrdine, $anno, $idAgente) { $db = new FC_SQL ; $arrImpOrdini = CreaArrayAmmontareOrdini() ; // in public.php $where = " 1 = 1 " ; if ($idOrdine != -1) $where .= " and O.IdOrdini = $idOrdine" ; if ($idAgente != -1) $where .= " and O.IdAgente = $idAgente" ; $q = " select O.*, F.Provvigione as PercentualeAgenzia, case when (O.ImportoNC > 0) then (O.ImportoNC / 1.2) else 0 end as valNC, case when (AFP.percentuale <> 0) then AFP.percentuale else A.percentuale end as Percentuale from ordini O inner join agenti A on A.idagenti = O.idagente inner join fornitori F on F.idfornitori = O.idfornitore left join ageforper AFP on AFP.idagente = A.idagenti and AFP.idfornitore = O.idfornitore and AFP.Anno = $anno where $where and O.Anno = $anno " ; debug (0, $q) ; list($n, $d) = $db->RecuperaDati($q) ; if ($n > 0) { $idOrdine = $d['IdOrdini'][0] ; $importo = $arrImpOrdini[$idOrdine]['SenzaIva'] ; $importoConIva = $arrImpOrdini[$idOrdine]['ConIva'] ; $sconto1 = ($importo * $d['Sconto1'][0] / 100) ; $sconto1ConIva = ($importoConIva * $d['Sconto1'][0] / 100) ; $subtotp1 = $importo - $sconto1 ; $subtotp1ConIva = $importoConIva - $sconto1ConIva ; $sconto2 = ($subtotp1 * $d['Sconto2'][0] / 100) ; $sconto2ConIva = ($subtotp1ConIva * $d['Sconto2'][0] / 100) ; $subtotp2ConIva = $subtotp1ConIva - $sconto2ConIva ; $sconto3ConIva = ($subtotp2ConIva * $d['Sconto3'][0] / 100) ; $subtotp3ConIva = $subtotp2ConIva - $sconto3ConIva ; $sconti = $sconto1 + $sconto2 ; $scontiConIva = $sconto1ConIva + $sconto2ConIva + $sconto3ConIva; $ammontareConIva = $importoConIva - $scontiConIva - $d['valNC'][0] ; $baseprov = $importo - $sconti - $d['valNC'][0] ; $percentuale = $d['Percentuale'][0] ; $ammprov = ($baseprov * $percentuale / 100 ) ; $perProvvAgenzia = $d['PercentualeAgenzia'][0] ; $ammProvAgenzia = ($baseprov * $perProvvAgenzia / 100 ) ; $arrVal[$idOrdine] = array('AmmontareOrdineSenzaIva' => $importo, 'AmmontareOrdineConIva' => $ammontareConIva, 'ScontiFineProvv' => $sconti, 'BaseProvv' => $baseprov, 'percentualeProvAgente' => $percentuale, 'AmmontareProvvAgente' => $ammprov, 'percentualeProvAgenzia' => $perProvvAgenzia, 'AmmontareProvvAgenzia' => $ammProvAgenzia) ; /*** * A questo punto aggiorno la tabella AmmontareVariOrdine ***/ @reset($arrVal) ; foreach($arrVal as $arrSingOrdine => $idordine) // while (list($idordine, $arrSingOrdine) = each($arrVal)) { $v1 = $arrSingOrdine['AmmontareOrdineSenzaIva'] ; $v2 = $arrSingOrdine['AmmontareOrdineConIva'] ; $v3 = $arrSingOrdine['ScontiFineProvv'] ; $v4 = $arrSingOrdine['BaseProvv'] ; $v5 = $arrSingOrdine['percentualeProvAgente'] ; $v6 = $arrSingOrdine['AmmontareProvvAgente'] ; $v7 = $arrSingOrdine['percentualeProvAgenzia'] ; $v8 = $arrSingOrdine['AmmontareProvvAgenzia'] ; if ($v1 > 0) { $query = " update AmmontareVariOrdini set AmmontareOrdineSenzaIva = $v1, AmmontareOrdineConIva = $v2, ScontiFineProvvigioni = $v3, BaseProvvigionale = $v4, PercentualeProvvAgente = $v5, AmmontareProvvAgente = $v6, PercentualeProvvAgenzia = $v7, AmmontareProvvAgenzia = $v8 where Anno = $anno and IdOrdine = $idordine " ; $db->EseguiQuery($query) ; } } } return true ; } ?>