$nbRows=$iDb->select('siren_uniques_bodacc','siren','sirenTrouve=0 AND siren NOT IN (SELECT DISTINCT siren FROM jo.etablissements) AND (TO_DAYS(NOW())-TO_DAYS(dateUpdate)>180 OR TO_DAYS(NOW())-TO_DAYS(dateUpdate) IS NULL)',false,MYSQL_ASSOC,true);
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;
sendMail('production@scores-decisions.com','ylenaour@scores-decisions.com',"ERREUR FATALE, le cache ratio n'est pas <20> jour !",date('Y/m/d - H:i:s')." - ERREUR FATALE : Le cache des calculs de ratio n'est pas <20> jour (nouvelles formules ?). Relancer <20> l'option -c !");
die(date('Y/m/d - H:i:s')." - ERREUR FATALE : Le cache des calculs de ratio n'est pas <20> jour (nouvelles formules ?). Relancer <20> l'option -c !".EOL);
}
/** On v<>rifie que le programme de MAJ du cache n'a pas <20>t<EFBFBD> modifi<66> **/
elseif(date('YmdHis',filectime(INCLUDE_PATH.'scores/classMRatios.php'))>date('YmdHis',filectime(INCLUDE_PATH.'tmp/configMRatios.php')))// Le fichier de cache est d<>pr<70>ci<63>
die(date('Y/m/d - H:i:s')." - ERREUR FATALE : Le cache des calculs de ratio n'est pas <20> jour (programme modifi<66>). Relancer <20> l'option -c !".EOL);
echodate('Y/m/d - H:i:s')." - Il reste $nbRows entreprises pour lesquels il faut mettre <20> jour les ratios secteurs...".EOL;
}else{
/** On met en table temporaire les siren en cas de plantage du script **/
$modeSuite=false;
$nbRows=$iDb->select('bilans','DISTINCT siren',"siren>100 AND dateInsert>='$lastUpdate' AND typeBilan IN ('N','',' ','A','B') ORDER BY dateInsert DESC",false,MYSQL_ASSOC,true);
echodate('Y/m/d - H:i:s')." - Il y a $nbRows entreprises avec nouveaux bilans pour calcul des ratios secteurs...".EOL;
$iDb2->query('DROP TABLE IF EXISTS ratios_tmp;');
if(mysql_errno()>0)echodate('Y/m/d - H:i:s').' - ERREUR SQL lors de la cr<63>ation de la table temporaires, n<>'.mysql_errno().' : '.mysql_error().EOL;
$strSQL="CREATE TABLE IF NOT EXISTS ratios_tmp ( siren int(9) unsigned zerofill NOT NULL, lastUpdate bigint(14) unsigned zerofill NOT NULL, PRIMARY KEY(siren) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
$iDb2->query($strSQL);
if(mysql_errno()>0)echodate('Y/m/d - H:i:s').' - ERREUR SQL lors de la cr<63>ation de la table temporaires, n<>'.mysql_errno().' : '.mysql_error().EOL;
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 <20> 799
//echo "Le ratio n<>$id est non significatif (".$R[$id].") pour le siren $siren et l'ann<6E>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<6E>rieur : $mt<".$formule['min']." pour le siren $siren et l'ann<6E>e $annee".EOL;
echo"Ratio n<>$id, borne Maxi non nulle (".$formule['max'].") et le montant est sup<75>rieur : $mt>".$formule['max']." pour le siren $siren et l'ann<6E>e $annee".EOL;
continue;
}//else
//echo "Ratio n<>$id compris entre bornes ".$formule['min']." < $mt < ".$formule['max']." pour le siren $siren et l'ann<6E>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<75> le 14 mai 2009
echodate('Y/m/d - H:i:s')." - $k entreprises ($pct %) dont les ratios ont <20>t<EFBFBD> calcul<75>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 <20>t<EFBFBD> mis <20> 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);