sendMail('production@scores-decisions.com','ylenaour@scores-decisions.com',"ERREUR FATALE, le cache ratio n'est pas à jour !",date('Y/m/d - H:i:s')." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !");
die(date('Y/m/d - H:i:s')." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !".EOL);
}
/** On vérifie que le programme de MAJ du cache n'a pas été modifié **/
elseif(date('YmdHis',filectime($pathMetier.'/scores/classMRatios.php'))>date('YmdHis',filectime($pathMetier.'/tmp/configMRatios.php')))// Le fichier de cache est déprécié
die(date('Y/m/d - H:i:s')." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (programme modifié). Relancer à l'option -c !".EOL);
$nbRows=$iDb->select('jo.bilans','DISTINCT siren',"siren>100 AND dateInsert>='$lastUpdate' AND typeBilan IN ('N','',' ','A','B') ORDER BY dateInsert DESC",false,MYSQL_ASSOC,true);
sendMail('production@scores-decisions.com','ylenaour@scores-decisions.com',"Calcul des ratios : Attention bilan de Banque ou Assurance","Siren $siren, bilan $naf4".EOL.print_r($tabBilans));
}
foreach($tabFormulesas$f=>$formule){
foreach($tabRatiosas$i=>$R){
if($f==0)$b++;
$id=$formule['id'];
// Si on n'est pas une banque/assurance, on ne calcul pas les ratios 700 à 799
//echo "Le ratio n°$id est non significatif (".$R[$id].") pour le siren $siren et l'année $annee !".EOL;
continue;
/** Si c'est un ratio EUR, on le passe en K€ **/
if($formule['unite']=='EUR')$mt=$R[$id]/1000;
else$mt=$R[$id];
/** On vérifie les bornes MIN et MAX **/
if($formule['min']<>''&&$mt<$formule['min']){
echo"Ratio n°$id, borne Mini non nulle (".$formule['min'].") et le montant est inférieur : $mt<".$formule['min']." pour le siren $siren et l'année $annee".EOL;
echo"Ratio n°$id, borne Maxi non nulle (".$formule['max'].") et le montant est supérieur : $mt>".$formule['max']." pour le siren $siren et l'année $annee".EOL;
continue;
}//else
//echo "Ratio n°$id compris entre bornes ".$formule['min']." < $mt < ".$formule['max']." pour le siren $siren et l'année $annee".EOL;
/** Lecture des chiffres existants dans la table ratios_secteurs **/
$tabTmp=$iDb2->select('ratios_secteurs',
'montant, nombre, id, naf4, naf5, annee',
"id=$id AND naf4='$naf4' AND naf5='$naf5' AND annee=$annee",
false,MYSQL_ASSOC);
if(count($tabTmp)>0){
$mt2=$mt+$tabTmp[0]['montant'];
$nb2=$tabTmp[0]['nombre']+1;
}else{
$mt2=$mt;
$nb2=1;
}
$tabUpdate=array('montant'=>$mt2,
'nombre'=>$nb2,
);
if(!$iDb2->update('ratios_secteurs',$tabUpdate,"id=$id AND naf4='$naf4' AND naf5='$naf5' AND annee=$annee")||$iDb2->getAffectedRows()==0){// getAffectedRows ajouté le 14 mai 2009
echodate('Y/m/d - H:i:s')." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
}
}
}
$iDb2->delete('ratios_tmp',"siren=$siren");
if(mysql_errno()>0)echodate('Y/m/d - H:i:s').' - ERREUR SQL lors de la suppression des informations temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
}
echodate('Y/m/d - H:i:s')." - Les ratios ont été mis à jour ; suppression des informations temporaires.".EOL;
$iDb2->query('DROP TABLE IF EXISTS jo.ratios_tmp;');
die(date('Y/m/d - H:i:s')." - Fin du programme.".EOL);