Evaluation : Suppression variables global mais problème de performance avec double requetes sur les postes des bilans
This commit is contained in:
parent
db609fa9b7
commit
22e6344d05
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
$tva=19.6;
|
$tva=20.0;
|
||||||
|
|
||||||
/** Donne le taux d'inflation pour une année donnée **/
|
/** Donne le taux d'inflation pour une année donnée **/
|
||||||
function getInflation($annee) {
|
function getInflation($annee) {
|
||||||
@ -12,12 +12,15 @@ function getTxRendement($annee) {
|
|||||||
if (isset($tabTxRendObli[$annee])) return $tabInfla[$annee];
|
if (isset($tabTxRendObli[$annee])) return $tabInfla[$annee];
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculRatios($tabBilans, $tabIdentite, $accesPartenaire) {
|
function calculRatios($tabBilans, $tabIdentite, $accesPartenaire)
|
||||||
global $tva, $mBil, $tabBilan, $efftr;
|
{
|
||||||
$numBil=0;
|
global $tva, $mBil, $efftr;
|
||||||
$numBilType=array();
|
$numBil = 0;
|
||||||
foreach ($tabBilans as $millesime=>$bil) {
|
$numBilType = array();
|
||||||
$tabTmp=@$mBil->getBilan(substr($millesime,-10), substr($millesime,0,1), @$bil['ref'], $accesPartenaire, $nbRatiosMax=5);
|
$nbRatiosMax = 5;
|
||||||
|
foreach ($tabBilans as $millesime => $bil)
|
||||||
|
{
|
||||||
|
$tabTmp = $mBil->getBilan(substr($millesime,-10), substr($millesime,0,1), @$bil['ref'], $accesPartenaire);
|
||||||
$numBilType[substr($millesime,0,1)]++;
|
$numBilType[substr($millesime,0,1)]++;
|
||||||
if (substr($millesime,0,1)=='S') {
|
if (substr($millesime,0,1)=='S') {
|
||||||
if ($numBilType['S']>$nbRatiosMax) continue;
|
if ($numBilType['S']>$nbRatiosMax) continue;
|
||||||
|
@ -596,7 +596,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
global $tabFormules;
|
global $tabFormules;
|
||||||
global $tabFormulesRatios;
|
global $tabFormulesRatios;
|
||||||
global $mBil;
|
global $mBil;
|
||||||
global $tabBilan;
|
|
||||||
global $efftr;
|
global $efftr;
|
||||||
global $tabRatiosInfos;
|
global $tabRatiosInfos;
|
||||||
|
|
||||||
@ -625,7 +624,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
* Récupération des informations identitaire
|
* Récupération des informations identitaire
|
||||||
*/
|
*/
|
||||||
$tabIdentite=$iInsee->getIdentiteEntreprise($siren, $nic, 0, false, $accesDist);
|
$tabIdentite=$iInsee->getIdentiteEntreprise($siren, $nic, 0, false, $accesDist);
|
||||||
$tabBilan=array();
|
|
||||||
$timer['identite']=microtime(true);
|
$timer['identite']=microtime(true);
|
||||||
|
|
||||||
if (empty($tabIdentite)) {
|
if (empty($tabIdentite)) {
|
||||||
@ -653,7 +651,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
$tabRatiosInfos[$tmpFormule['id']]=array('unite' => $tmpFormule['unite']);
|
$tabRatiosInfos[$tmpFormule['id']]=array('unite' => $tmpFormule['unite']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$tabRatiosSecteurs = $tabBilansR = $tabRatios2 = $tabRatiosEvol = array();
|
$tabRatiosSecteurs = $tabRatios2 = $tabRatiosEvol = array();
|
||||||
|
|
||||||
$NIC=substr($tabIdentite['SiretSiege'],-5);
|
$NIC=substr($tabIdentite['SiretSiege'],-5);
|
||||||
$SIREN=$siren;
|
$SIREN=$siren;
|
||||||
@ -933,49 +931,41 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
$DCREN_AA=substr($dateCrea,0,4);
|
$DCREN_AA=substr($dateCrea,0,4);
|
||||||
$AGE=$classWdate->nbMoisEntre($dateCrea, date('Ymd'));
|
$AGE=$classWdate->nbMoisEntre($dateCrea, date('Ymd'));
|
||||||
|
|
||||||
/** Elements provenant des ratios :
|
$tabBilan = $tabBil = array();
|
||||||
** @todo Problème sur les comptes consolides avec R et Rs **
|
|
||||||
$i2=0;
|
|
||||||
foreach ($tabRatios as $i=>$Rtmp) {
|
|
||||||
if ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
|
|
||||||
|| ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
|
|
||||||
)
|
|
||||||
$i2++;
|
|
||||||
// $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]);
|
|
||||||
elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
|
|
||||||
|| ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
|
|
||||||
$i2=$i2+2;
|
|
||||||
$i2++
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bilan - Liste des bilans
|
* Bilan - Liste des bilans
|
||||||
*/
|
*/
|
||||||
$mBil = new MBilans($siren, $iDb);
|
$mBil = new MBilans($siren, $iDb);
|
||||||
$tabBilans = $mBil->listeBilans($accesDist);
|
$tabBilans = $mBil->listeBilans($accesDist);
|
||||||
$NBBILAN = count($tabBilans);
|
$NBBILAN = count($tabBilans);
|
||||||
|
if ($NBBILAN > 0)
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Postes des bilans
|
||||||
|
*/
|
||||||
|
foreach ($tabBilans as $millesime => $item)
|
||||||
|
{
|
||||||
|
if(in_array($item['typeBilan'], array('S', 'N')))
|
||||||
|
{
|
||||||
|
$tabBilan[] = $mBil->getBilan(substr($millesime,-10), substr($millesime,0,1), '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calcul des ratios
|
* Calcul des ratios
|
||||||
*/
|
*/
|
||||||
$tabBilan=$tabBil=array();
|
$tabRatios = calculRatios($tabBilans, $tabIdentite, $accesDist);
|
||||||
if ($NBBILAN>0) $tabRatios = calculRatios($tabBilans, $tabIdentite, $accesDist);
|
}
|
||||||
$timer['ratios']=microtime(true);
|
$timer['ratios']=microtime(true);
|
||||||
|
|
||||||
// Tableau des années de bilans
|
// Tableau des années de bilans
|
||||||
$tabAnnees=array();
|
$tabAnnees = array();
|
||||||
// Tableau d'infos sur les bilans
|
// Tableau d'infos sur les bilans
|
||||||
$i2=0;
|
$i2=0;
|
||||||
if (count($tabRatios)>0) {
|
if (count($tabRatios)>0)
|
||||||
foreach ($tabRatios as $i=>$Rtmp) {
|
{
|
||||||
$tabBilansR[$i]=array(
|
foreach ($tabRatios as $i=>$Rtmp)
|
||||||
'dateCloture' => $tabBilan[$i]['DATE_CLOTURE'],
|
{
|
||||||
'duree' => $tabBilan[$i]['DUREE_MOIS'],
|
|
||||||
'devise' => $tabBilan[$i]['MONNAIE'],
|
|
||||||
'type' => $tabBilan[$i]['CONSOLIDE'],
|
|
||||||
'unite' => 'U',
|
|
||||||
);
|
|
||||||
if (substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900){
|
if (substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900){
|
||||||
$tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4);
|
$tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4);
|
||||||
}
|
}
|
||||||
@ -1041,8 +1031,8 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
$MARCHE=$MARCHEp=$MARCHEVOL=$MARCHEPART=$MARCHEPARTp=$MARCHEPARTEVOL='';
|
$MARCHE=$MARCHEp=$MARCHEVOL=$MARCHEPART=$MARCHEPARTp=$MARCHEPARTEVOL='';
|
||||||
$MARCHESAL=$MARCHESALp=$MARCHENBENT=$MARCHENBENTp='';
|
$MARCHESAL=$MARCHESALp=$MARCHENBENT=$MARCHENBENTp='';
|
||||||
$tabRatiosSecteurs=$Rtot=array();
|
$tabRatiosSecteurs=$Rtot=array();
|
||||||
if (count($tabAnnees)>0) {
|
if (count($tabAnnees)>0)
|
||||||
|
{
|
||||||
if (strlen($naf)>4) $strNaf=" AND naf5='$naf' ";
|
if (strlen($naf)>4) $strNaf=" AND naf5='$naf' ";
|
||||||
else $strNaf=" AND naf4='$naf' ";
|
else $strNaf=" AND naf4='$naf' ";
|
||||||
if (count($tabAnnees)>2) $strAnnees='AND annee BETWEEN '.$tabAnnees[2].' AND '.$tabAnnees[0];
|
if (count($tabAnnees)>2) $strAnnees='AND annee BETWEEN '.$tabAnnees[2].' AND '.$tabAnnees[0];
|
||||||
@ -1153,22 +1143,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
|
|
||||||
$timer['regression']=microtime(true);
|
$timer['regression']=microtime(true);
|
||||||
|
|
||||||
/** Bilan des collectivités **/
|
|
||||||
/*if ($FJUR==7210) {
|
|
||||||
$lstCom=$iDb->select(
|
|
||||||
'bilansM14',
|
|
||||||
'millesime, dep, com, depA, siren, sirenValide, depLib, comLib, popLeg, popInf, fiscalite, popFisc, R01a, R01b, R01c, R02a, R02b, R02c, R02d, R02e, R03a, R03b, R03c, R03d, R03e, R04a, R04b, R04c, R04d, R04e, R05a, R05b, R05c, R06a, R06b, R06c, R06d, R06e, R07a, R07b, R07c, R07d, R07e, R08a, R08b, R08c, R08d, R08e, R09a, R09b, R09c, R09d, R09e, R10a, R10b, R10c, R10d, R10e, R11a, R11b, R11c, R12a, R12b, R12c, R13a, R13b, R13c, R13d, R13e, R14a, R14b, R14c, R14d, R14e, R15a, R15b, R15c, R15d, R15e, R16a, R16b, R16c, R16d, R16e, R17a, R17b, R17c, R18a, R18b, R18c, R18d, R18e, R19a, R19b, R19c, R19d, R19e, R20a, R20b, R20c, R20d, R20e, R21a, R21b, R21c, R21d, R21e, R22a, R22b, R22c, R23a, R23b, R23c, R24a, R24b, R24c, R25a, R25b, R25c, R26a, R26b, R26c, R26d, R26e, R27a, R27b, R27c, R27d, R27e, R28a, R28b, R28c, R28d, R28e, R29a, R29b, R29c, R29d, R29e, R30a, R30b, R30c, R30d, R30e, R31a, R31b, R31c, R31d, R31e, R32a, R32b, R32c, R33a, R33b, R33c, R33d, R33e, R33f, R34a, R34b, R34c, R34d, R34e, R34f, R35a, R35b, R35c, R35d, R35e, R35f, R36a, R36b, R36c, R36d, R36e, R36f, R37a, R37b, R37c, R37d, R37e, R37f, R38a, R38b, R38c, R38d, R38e, R39a, R39b, R39c, R39d, R39e, R40a, R40b, R40c, R40d, R40e, R41a, R41b, R41c, R41d, R41e, R42a, R42b, R42c, R42d, R42e, R43a, R43b, R43c, R43d, R43e, R44a, R44b, R44c, dateInsert',
|
|
||||||
"siren=$siren ORDER BY millesime DESC LIMIT 0,5", false, MYSQL_ASSOC);
|
|
||||||
foreach ($lstCom as $i=>$tabCom) {
|
|
||||||
$tabRatios[]=convertZones('R', $tabCom);
|
|
||||||
}
|
|
||||||
$R=$tabRatios[0];
|
|
||||||
$Rp=$tabRatios[1];
|
|
||||||
$Rp2=$tabRatios[2];
|
|
||||||
$Rp3=$tabRatios[3];
|
|
||||||
$Rp4=$tabRatios[4];
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// Elements provenant des bilans
|
// Elements provenant des bilans
|
||||||
$EFFBILAN=$tabBilan[0]['YP'];
|
$EFFBILAN=$tabBilan[0]['YP'];
|
||||||
$nm=$nbMoisBilCumul=$tabBilan[0]['DUREE_MOIS'];
|
$nm=$nbMoisBilCumul=$tabBilan[0]['DUREE_MOIS'];
|
||||||
@ -2015,7 +1989,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
$timer['participations']=microtime(true);
|
$timer['participations']=microtime(true);
|
||||||
|
|
||||||
$tabBil=array();
|
$tabBil=array();
|
||||||
if ($NBBILAN==0)
|
if ($NBBILAN == 0)
|
||||||
{
|
{
|
||||||
$noteSolvabilite=round($noteStructure)*5; // La note finale est sur 100
|
$noteSolvabilite=round($noteStructure)*5; // La note finale est sur 100
|
||||||
/** Pas de bilan mais capital elevé **/
|
/** Pas de bilan mais capital elevé **/
|
||||||
@ -2035,38 +2009,32 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$numBil=0;//sleep(1);
|
$numBil = $i = 0;
|
||||||
|
foreach ($tabBilan as $item)
|
||||||
for ($i=0; isset($tabBilan[$i]); $i++)
|
|
||||||
{
|
{
|
||||||
|
$i++;
|
||||||
//if (substr($millesime,0,1)=='S') {
|
if ($item['CONSOLIDE']=='S')
|
||||||
// @todo attention au type de bilan S en N et banque assu consolidé !!!
|
{
|
||||||
|
$tabTmp=$mBil->bilanSimplifie2Normal($item);
|
||||||
if ($tabBilan[$i]['CONSOLIDE']=='S') {
|
$tabBilan[$i] = array_merge($tabTmp, $item);
|
||||||
$tabTmp=$mBil->bilanSimplifie2Normal($tabBilan[$i]);
|
|
||||||
$tabBilan[$i]=array_merge($tabTmp, $tabBilan[$i]);
|
|
||||||
$numBil++;
|
$numBil++;
|
||||||
} elseif ($tabBilan[$i]['CONSOLIDE']=='N')
|
}
|
||||||
|
elseif ($item['CONSOLIDE']=='N')
|
||||||
|
{
|
||||||
$numBil++;
|
$numBil++;
|
||||||
else {
|
}
|
||||||
/** On ignore les bilans Assurance, Banques et Consolidés **/
|
else
|
||||||
/*if ($tabBilan[$i]['CONSOLIDE']=='C' && $scoreAltman=='') {
|
{
|
||||||
$icotation = new ICotation($tabBilan[$i], true);
|
|
||||||
$scoreAltman=round($icotation->scoreAltman(),2);
|
|
||||||
}*/
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ($numBil>2) break;
|
if ($numBil>2) break;
|
||||||
|
|
||||||
unset($icotation);
|
$icotation = new ICotation($item, true);
|
||||||
|
|
||||||
$icotation = new ICotation($tabBilan[$i], true);
|
|
||||||
$secteur=$icotation->getSecteurActivite($isolv->getNaf4($naf));
|
$secteur=$icotation->getSecteurActivite($isolv->getNaf4($naf));
|
||||||
$libSecteur=$icotation->tabLibActivite[$secteur];
|
$libSecteur=$icotation->tabLibActivite[$secteur];
|
||||||
$chiffeAffaire=$icotation->calculChiffreAffaires($isolv->getNaf4($naf));
|
$chiffeAffaire=$icotation->calculChiffreAffaires($isolv->getNaf4($naf));
|
||||||
$tabBil[$i]=array(
|
$tabBil[$i] = array(
|
||||||
'Millesime'=>$tabBilan[$i]['DATE_CLOTURE'],
|
'Millesime'=>$item['DATE_CLOTURE'],
|
||||||
'FraisPerso'=>$icotation->calculFraisPersonnel(),
|
'FraisPerso'=>$icotation->calculFraisPersonnel(),
|
||||||
'CA'=>$chiffeAffaire,
|
'CA'=>$chiffeAffaire,
|
||||||
'EBE'=>$icotation->calculEBE(),
|
'EBE'=>$icotation->calculEBE(),
|
||||||
@ -2229,14 +2197,14 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Structure Score Financier", $strNote);
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Structure Score Financier", $strNote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
$noteSolvabilitePre=$noteSD;
|
$noteSolvabilitePre=$noteSD;
|
||||||
$noteFinPre=$noteMoy;
|
$noteFinPre=$noteMoy;
|
||||||
if ($noteSolvabilite>$noteSolvabilitePre) $tendance='Haussière';
|
if ($noteSolvabilite>$noteSolvabilitePre) $tendance='Haussière';
|
||||||
elseif ($noteSolvabilite==$noteSolvabilitePre) $tendance='Stable';
|
elseif ($noteSolvabilite==$noteSolvabilitePre) $tendance='Stable';
|
||||||
else $tendance='Baissière';
|
else $tendance='Baissière';
|
||||||
}
|
}
|
||||||
//Note financière Solvabilite = $icotation->scoreD($naf)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cas de présence unique de bilan Banque ou Assurance qui ne sont pas géré financièrement
|
// Cas de présence unique de bilan Banque ou Assurance qui ne sont pas géré financièrement
|
||||||
@ -2264,7 +2232,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
(substr($tabIdentite['DateCreaEn'],0,4)*1+2)<date('Y') && // L'entreprise à plus de 2 ans
|
(substr($tabIdentite['DateCreaEn'],0,4)*1+2)<date('Y') && // L'entreprise à plus de 2 ans
|
||||||
$FJURPUB ) { // et est soumise à publication
|
$FJURPUB ) { // et est soumise à publication
|
||||||
$SCORECONF-=20;
|
$SCORECONF-=20;
|
||||||
//$tabCommentaires['neg'][]=prepareString("L'entreprise ne respecte pas ses obligations de publication régulière de ses bilans.");
|
|
||||||
}
|
}
|
||||||
if (!$tabIdentite['TvaAttribue']) { // Entreprise sans numéro de TVA
|
if (!$tabIdentite['TvaAttribue']) { // Entreprise sans numéro de TVA
|
||||||
$TVAINTRA=false;
|
$TVAINTRA=false;
|
||||||
@ -2774,7 +2741,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
|
|||||||
// Encours estimé = CA Estimé / 72
|
// Encours estimé = CA Estimé / 72
|
||||||
if ($CAESTIME>0) $encoursEstime=$CAESTIME/36;
|
if ($CAESTIME>0) $encoursEstime=$CAESTIME/36;
|
||||||
}
|
}
|
||||||
// debugLog('I', "INDISCORE A $encoursIni $encoursEstime $encours", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
||||||
|
|
||||||
/** Plafond des encours en fonction de la note / 100
|
/** Plafond des encours en fonction de la note / 100
|
||||||
**/
|
**/
|
||||||
|
Loading…
Reference in New Issue
Block a user