This commit is contained in:
Michael RICOIS 2016-09-26 11:43:02 +02:00
parent c30a0668b9
commit 03539ead8c
4 changed files with 66 additions and 41 deletions

View File

@ -556,7 +556,7 @@ class Metier_Partenaires_MBilans
// --- Recherche des infos du bilan précédent
$ret = $this->iDb->select('jo.bilans',
'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes',
"siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice BETWEEN '".$cloturePreDateSql."-01' AND '".$cloturePreDateSql."-31' ORDER BY dateExercice DESC LIMIT 0,1", true);
"siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice BETWEEN '".$cloturePreDateSql."01' AND '".$cloturePreDateSql."31' ORDER BY dateExercice DESC LIMIT 0,1", true);
if (count($ret) > 0) {
$bilanPre = $ret[0];
$tabBilan['DATE_CLOTURE_PRE'] = $bilanPre['dateExercice']; // SSAAMMJJ

View File

@ -1076,22 +1076,26 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
// Utilisation d'un index texte à cause du webservice
foreach ($Ritem as $Ridx => $Rmont) {
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']))) ) {
$Rmont = (($tabRatios[$i][$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]);
$Rdiffmont = $tabRatios[$i][$Ridx]-$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+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']))) ) {
$Rmont = 0;
if (abs($tabRatios[$i+1][$Ridx]) > 0) {
$Rmont = (($tabRatios[$i][$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]);
}
$Rdiffmont = $tabRatios[$i][$Ridx]-$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']))) ) {
$Rmont = (($tabRatios[$i][$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]);
$Rdiffmont = $tabRatios[$i][$Ridx]-$tabRatios[$i+1][$Ridx];
} else {
|| ($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']!=$tabBilan[$i]['DATE_CLOTURE']))) ) {
$Rmont = 0;
if (abs($tabRatios[$i+2][$Ridx]) > 0) {
$Rmont = (($tabRatios[$i][$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]);
}
$Rdiffmont = $tabRatios[$i][$Ridx]-$tabRatios[$i+1][$Ridx];
}
else {
$Rmont = 'NS';
$Rdiffmont = 'NS';
}
@ -3166,20 +3170,26 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$timer['risquesArret']=microtime(true);
/** Liste des établissements polluants **/
$sirenDeb=$siren.'00000';
$sirenFin=$siren.'99999';
$tabTmp=$iDb->select(
/*$sirenDeb = $siren.'00000';
$sirenFin = $siren.'99999';
$tabTmp = $iDb->select(
'pollutions.iREP_etablissements e, pollutions.iREP_rejets_etablissements r',
'e.codecommune, e.nom, e.codesiret, e.idetab, r.idrejet, r.coderejet, r.libellerejet, r.codeouvragedepollution, r.codeentitehydro, r.nomstep, r.nommilieu',
"e.codesiret BETWEEN $sirenDeb AND $sirenFin AND e.idetab=r.idetab GROUP BY e.codesiret, r.libellerejet LIMIT 0,50", INDISCORE_DEBUG, MYSQL_ASSOC);
"e.codesiret BETWEEN $sirenDeb AND $sirenFin AND e.idetab=r.idetab GROUP BY e.codesiret, r.libellerejet LIMIT 0,50", true, MYSQL_ASSOC);
// Nombre d'établissements concernés: neutraliser si >= 10
$RISQUEACT_NB=count($tabTmp);
$RISQUEACT=array();
foreach ($tabTmp as $iTmp=>$tabArret) {
$RISQUEACT[]=$tabArret['libellerejet']; // Libellé risque lié à la l'activité de l'un des etablissements "l'entreprise à au moins l'un de ses établissements figurant au registre francais des émissions polluantes" (AIR, EAU ou et SOL)
}
$RISQUEACT=array_unique($RISQUEACT);
$RISQUEACT=implode(', ', $RISQUEACT);
$RISQUEACT_NB = count($tabTmp);
$RISQUEACT = array();
if ($RISQUEACT_NB > 0) {
file_put_contents('test.log', print_r($tabTmp,1));
foreach ($tabTmp as $iTmp => $tabArret) {
// Libellé risque lié à la l'activité de l'un des etablissements
// "l'entreprise à au moins l'un de ses établissements figurant au registre francais des émissions polluantes"
// (AIR, EAU ou et SOL)
$RISQUEACT[] = $tabArret['libellerejet'];
}
$RISQUEACT = array_unique($RISQUEACT);
$RISQUEACT = implode(', ', $RISQUEACT);
}*/
$timer['risquesPollu']=microtime(true);
/** Bassin hydro : Le ou les libellés des bassins hydrographiques concernés
@ -3266,7 +3276,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$MARCHEPUBLICDER_MT=false; // Montant
$MARCHEPUBLICDER_ANNEE=0; // Année du dernier marché public remporté
$MARCHEPUBLICDER_DATE=0; // Date du dernier marché public remporté
$ret=$iInsee->getAnnoncesBoamp($siren);
$ret = $iInsee->getAnnoncesBoamp($siren);
if (count($ret)>0) {
foreach ($ret as $i=>$mp) {
if (substr($mp['id'],0,1)=='A' || $mp['BodaccCode']=='BOMP C') {
@ -3348,7 +3358,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
AND v.codeCommune LIKE '$codeCommuneInsee'
AND v.Bodacc_Date_Parution>='$ya2ans'
AND v.VenteMt>1 AND v.VenteDev='EUR' $filtreCAEff
GROUP BY v.id)b");
GROUP BY v.id)b", INDISCORE_DEBUG);
if (count($ret)>0) {
while($ret=$iDb->fetch(MYSQL_ASSOC)) {
$VENTEMAX_MT = $VENTEMAX_VILLE_MT = $VENTEMAX_VILLE_EU = $ret['vtMax']; // Plus grand montant de vente annonce VC niveau "ville"
@ -3357,6 +3367,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$VENTE_NB = $VENTE_VILLE_NB = $ret['vtNb']; // Nombre de ventes dans le niveau statistique "ville" dans les 24 derniers mois
}
}
// Par département
$DEPARTEMENT=$iInsee->getDepartement($tabIdentite['Dept']);
$DEPARTEMENT_DE=$iInsee->getDepartement($tabIdentite['Dept'], true);
@ -3368,7 +3379,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
AND v.codeCommune LIKE '".$tabIdentite['Dept']."%'
AND v.Bodacc_Date_Parution>='$ya2ans'
AND v.VenteMt>1 AND v.VenteDev='EUR' $filtreCAEff
GROUP BY v.id)b");
GROUP BY v.id)b", INDISCORE_DEBUG);
while($ret=$iDb->fetch(MYSQL_ASSOC)) {
$VENTEMAX_DEP_MT = $VENTEMAX_DEP_EU = $ret['vtMax']; // Plus grand montant de vente annonce VC niveau "ville"
$VENTEMOY_DEP_MT = $VENTEMOY_DEP_EU = $ret['vtMoy'];
@ -3383,7 +3394,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
WHERE v.nafEn LIKE '$APEENT'
AND v.Bodacc_Date_Parution>='$ya2ans'
AND v.VenteMt>1 AND v.VenteDev='EUR' $filtreCAEff
GROUP BY v.id)b");
GROUP BY v.id)b", INDISCORE_DEBUG);
while($ret=$iDb->fetch(MYSQL_ASSOC)) {
$VENTEMAX_FRA_MT = $VENTEMAX_FRA_EU = $ret['vtMax']; // Plus grand montant de vente annonce VC niveau "ville"
$VENTEMOY_FRA_MT = $VENTEMOY_FRA_EU = $ret['vtMoy'];

View File

@ -541,14 +541,14 @@ class Metier_Sfr_Scoring
$this->ValInseeActif = $identite['Actif'];
//Age de l'entreprise en mois
if ( !empty($identite['DateCreaEn']) && $identite['DateCreaEn']!='0000-00-00 00:00:00' ) {
if ( !empty($identite['DateCreaEn']) && $identite['DateCreaEn'] != 0 ) {
$dateC = DateTime::createFromFormat('Y-m-d', $identite['DateCreaEn']);
$dateC = DateTime::createFromFormat('Ymd', $identite['DateCreaEn']);
$dateNow = new DateTime();
$interval = $dateNow->diff($dateC);
$this->ValInseeAge = $interval->format('%y') * 12 + $interval->format('%m');
} elseif ( !empty($identite['dateImmat']) && $identite['dateImmat']!='0000-00-00 00:00:00' ) {
} elseif ( !empty($identite['dateImmat']) && $identite['dateImmat'] != '0000-00-00 00:00:00' ) {
$dateC = DateTime::createFromFormat('Y-m-d', $identite['dateImmat']);
$dateNow = new DateTime();

View File

@ -1,6 +1,12 @@
<?php
class Metier_Util_PdoLib
{
/**
*
* @var \PDO
*/
protected $conn = false;
/**
* Connection PDO
* Note : Transition avant de faire les librairies Metier PSR-4
@ -36,10 +42,10 @@ class Metier_Util_PdoLib
";port=".(isset($config['port']) ? $config['port'] : '3306').
";dbname=".$config['dbname'].
";charset=".(isset($config['charset']) ? $config['charset'] : 'utf8');
if (array_key_exists('user', $config)) {
$user = $config['user'];
if (array_key_exists('username', $config)) {
$user = $config['username'];
}
if (array_key_exists('paswword', $config)) {
if (array_key_exists('password', $config)) {
$password = $config['password'];
}
if (array_key_exists('options', $config)) {
@ -49,12 +55,20 @@ class Metier_Util_PdoLib
// Try to load PDO
try {
$conn = new PDO($dsn, $user, $password, $options);
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->conn = new PDO($dsn, $user, $password, $options);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
return false;
echo $e->getMessage();
$this->conn = false;
}
}
return $conn;
/**
* Get connection
* @return PDO
*/
public function getConnection()
{
return $this->conn;
}
}