Inclusion detection de défaillance

This commit is contained in:
Michael RICOIS 2016-12-15 17:11:33 +01:00
parent 2dc866f460
commit d575ee9f84

View File

@ -2447,17 +2447,17 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
'5510Z', // Hôtels et hébergement similaire
'5520Z', // Hébergement touristique et autre hébergement de co
'5530Z', // Terrains de camping et parcs pour caravanes ou véh
'702A', // Location de logements
'702A', // Location de logements
'6820A', // Location de logements
'6820B', // Location de terrains et d'autres biens immobiliers
'551A', // Hôtels touristiques avec restaurant
'551A', // Hôtels touristiques avec restaurant
'5610A', // Restauration traditionnelle
'741J', // Administration d'entreprises
'741J', // Administration d'entreprises
'7010Z', // Activités des sièges sociaux
'552C', // Exploitation de terrains de camping
'702C', // Location d'autres biens immobiliers
'551C', // Hôtels touristiques sans restaurant
'553A', // Restauration de type traditionnel
'552C', // Exploitation de terrains de camping
'702C', // Location d'autres biens immobiliers
'551C', // Hôtels touristiques sans restaurant
'553A', // Restauration de type traditionnel
);
if (in_array($tabInsee['APE_ENT'], $tabNafTourisme)
|| in_array($tabInsee['APE_ETAB'], $tabNafTourisme)) {
@ -2563,98 +2563,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
));
}
// --- Situation Juridique
if (intval($siren) > 100) {
if ($this->debug) {
file_put_contents('procol.log', "=== Situation Juridique ===\n");
}
$tabProcol = $this->getAnnoncesLegales($siren, 0, 'P', false);
if (count($tabProcol) > 0) {
$tabDates = array();
foreach ($tabProcol as $iProcol => $procol) {
$tabDates[] = $procol['dateJugement'];
}
rsort($tabDates);
$dateProcol = str_replace('-', '', $tabDates[0])*1;
// Plan
if ($this->dureePlan > 0 && date('Ymd') < $this->finPlan) {
if ($this->debug) {
file_put_contents('procol.log', "Plan (PL) : ".$this->dureePlan."-".$this->finPlan."\n", FILE_APPEND);
}
$tabRet['SituationJuridique'] = 'PL';
}
// Plan révolu
elseif ($this->dureePlan > 0 && date('Ymd') >= $this->finPlan) {
if ($this->debug) {
file_put_contents('procol.log', "Plan revolu : ".$this->dureePlan."-".$this->finPlan."\n", FILE_APPEND);
}
$tabRet['SituationJuridique'] = '';
}
// Appel de jugement
elseif ($this->appelJugement) {
$tabRet['SituationJuridique'] = 'PA';
}
// Jugement de cloture après LJ
elseif ($this->SituationCloture) {
if ($this->debug) {
file_put_contents('procol.log', "Cloture (CL) "."\n", FILE_APPEND);
}
$tabRet['SituationJuridique'] = 'CL';
}
// En cours de procédure
else {
if ($this->debug) {
file_put_contents('procol.log', "Procol (P) "."\n", FILE_APPEND);
}
$tabRet['SituationJuridique'] = 'P';
}
// RAZ SituationJuridique si cutoff plus récent que dernière procol
$stmt = $this->conn->executeQuery("SELECT encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate FROM jo.scores_cutoff WHERE siren=$siren");
if ($stmt->rowCount() > 0) {
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
if ($result['scoreSolv'] > 0) {
//Tri des dates de procol
$tabDates = array();
foreach ($tabProcol as $iProcol=>$procol) {
$tabDates[] = $procol['dateJugement'];
}
rsort($tabDates);
$dateProcol = str_replace('-', '', $tabDates[0])*1;
if ($result['dateUpdate'] > $result['dateInsert']) {
$dateMaj = str_replace('-', '', $result['dateUpdate']);
} else {
$dateMaj = str_replace('-', '', $result['dateInsert']);
}
if ($dateProcol <= $dateMaj) {
$tabRet['SituationJuridique'] = '';
}
}
}
} elseif (count($this->getAnnoncesLegales($siren, 0, 'A', false)) > 0) {
$tabRet['SituationJuridique'] = 'A';
} elseif (count($this->getAnnoncesLegales($siren, 0, 'D', false)) > 0) {
$tabRet['SituationJuridique'] = 'D';
}
if ($this->debug) {
file_put_contents('procol.log', "SituationJuridique = ".$tabRet['SituationJuridique']."\n", FILE_APPEND);
}
// Fin Situation Juridique
// Date de dernière mise à jour
$tabAnn = $this->getAnnoncesLegales($siren, 0, '', false, false);
$tabDates=array();
foreach ($tabAnn as $iAnn=>$ann) {
$tabDates[] = $ann['dateInsertionSD'];
}
rsort($tabDates);
$tabRet['dateMajANN'] = Metier_Util_Date::dateT('Y-m-d', 'Y-m-d', $tabDates[0]);
if ($tabRet['dateMajANN'] == '--') {
$tabRet['dateMajANN'] = '';
}
$timer['getAnnoncesLegales']=microtime(true);
}
if (($tabInsee['CJ'] > 0 && $tabInsee['CJ'] < 20
|| $tabInsee['CJ'] > 999 && $tabInsee['CJ'] < 2000) && $tabInsee['DIR_FCT']=='') {
$tabRet['dir1Titre'] = self::$tabFct['PP'];
@ -3168,7 +3076,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
$tabRet['Ville'] = $entrep['commune'];
}
}
$timer['infosRNCS']=microtime(true);
$timer['infosRNCS'] = microtime(true);
} elseif ($siren > 1000) {
// Recherche au RM
$stmt = $this->conn->executeQuery("SELECT siren, actif, numRM, denomination,
@ -3287,7 +3195,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
) {
if ($this->debugtime) {
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MGreffes Avant\n", FILE_APPEND);
$tdeb=microtime(1);
$tdeb = microtime(1);
}
$iGeffes = new Metier_Partenaires_MGreffes($this->iDb);
@ -3295,19 +3203,19 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
$iRncs = new Metier_Partenaires_MRncs($this->iDb);
if ($this->debugtime) {
$duree=round(microtime(1)-$tdeb, 3);
$duree = round(microtime(1)-$tdeb, 3);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MGreffes APRES ($duree s)\n", FILE_APPEND);
}
if ($etabG) {
if ($tabRet['numRC']=='') {
$tabRet['numRC'] = $etabG['NumRC2'];
$tabRet['numRC'] = $etabG['NumRC2'];
}
if ($tabRet['Tribunal']=='') {
$tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']);
$tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']);
}
if (str_replace('-', '', $tabRet['dateImmat'])*1==0) {
$tabRet['dateImmat']= $etabG['DateCreation'];
$tabRet['dateImmat'] = $etabG['DateCreation'];
}
if (str_replace('-', '', $tabRet['dateRad'])*1==0) {
$tabRet['dateRad'] = $etabG['DateRadiation'];
@ -3316,10 +3224,10 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
}
}
if (preg_match('/[A-Z]/i', substr($tabRet['AutreId'], 2, 2)) || $tabRet['AutreId']=='') {
$tabRet['AutreId'] = $etabG['NumRC2'];
$tabRet['AutreId'] = $etabG['NumRC2'];
}
}
$timer['infosInfogreffes']=microtime(true);
$timer['infosInfogreffes'] = microtime(true);
}
// Si il n'y a aucun établissement actif et qu'on est radié au RCS : on part chercher la dernière annonce de Radiation au Bodacc
@ -3328,7 +3236,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
// Il y a au moins une annonce de radiation au Bodacc
if (count($tabRad) > 0) {
if ($tabRet['SituationJuridique'] == '') {
$tabRet['SituationJuridique']='RP';
$tabRet['SituationJuridique'] ='RP';
}
$dateEff = str_replace('-', '', $tabRad[0]['dateEffet'])*1;
$dateJug = str_replace('-', '', $tabRad[0]['dateJugement'])*1;
@ -3439,7 +3347,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
// Numero de Registre du métier si nécessaire
if (($tabRet['FJ']==1100 || $tabRet['FJ']==1300 || $tabRet['FJ']==11 || $tabRet['FJ']==13 || $tabInsee['APRM'] != '')
&& ($tabRet['Dept']=='2A' || $tabRet['Dept']=='2B' || $tabRet['Dept']<98)) {
// Artisan Commerçant OU Artisan en FRANCE
// Artisan Commerçant OU Artisan en FRANCE
$tabRet['NumRM'] = $siren.' RM '.$tabRet['Dept'];
// Ajaccio
if ($tabRet['Dept'] == '2A') {
@ -3453,28 +3361,74 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
}
}
// Recherche des infos boursières
$iBourse = new Metier_Partenaires_MBourse($siren, $this->iDb);
// Recherche des infos boursières
$iBourse = new Metier_Partenaires_MBourse($siren, $this->iDb);
$bourse = $iBourse->getInfosBourse($siren);
$tabRet['Bourse'] = array(
'placeCotation' => $bourse['placeCotation'],
'nombreTitres' => $bourse['nombreTitres'],
'capitalisation' => $bourse['close']*$bourse['nombreTitres'],
'derCoursDate' => $bourse['date'],
'derCoursCloture' => $bourse['close']
);
'placeCotation' => $bourse['placeCotation'],
'nombreTitres' => $bourse['nombreTitres'],
'capitalisation' => $bourse['close']*$bourse['nombreTitres'],
'derCoursDate' => $bourse['date'],
'derCoursCloture' => $bourse['close']
);
$timer['infosBoursieres']=microtime(true);
}
// --- Situation Juridique | Plouf Plouf
if (intval($siren) > 100) {
if ($this->debug) {
file_put_contents('procol.log', "=== Situation Juridique ===\n");
}
$annoncesList = $this->getAnnoncesLegales($siren);
if (count($annonceList) > 0) {
$detect = new Metier_Defaillance_Detect();
$detect->setFJ($tabInsee['CJ']);
$detect->setInseeActif($tabInsee['ACTIF']);
$detect->setEtabActif($nbEtab);
if ($tabRet['numGreffe']*1 > 0) {
$detect->setGreffe(1);
}
$detect->setRcsActif($tabRet['EntActiveRCS']);
if (isset($entrep['numRM'])) {
$detect->setRM(1);
}
$detect->setBilanCloture($val); //@todo : date de cloture
// Parcours des annonces
foreach ($annonceList as $annonce) {
$ann = new stdClass(); // @todo remplir les données, voir les dates
$ann->code = '';
$ann->txt = '';
$ann->date = '';
$detect->parse($ann);
}
// @todo : SituationJuridique => plus haut
$tabRet['SituationJuridique'] = $detect->getSituation();
}
if ($this->debug) {
file_put_contents('procol.log', "SituationJuridique = ".$tabRet['SituationJuridique']."\n", FILE_APPEND);
}
// Fin Situation Juridique
// Date de dernière mise à jour
if (count($annonceList) > 0) {
$annonceLast = end($annonceList);
$tabRet['dateMajANN'] = Metier_Util_Date::dateT('Y-m-d', 'Y-m-d', $annonceLast['dateInsertionSD']);
if ($tabRet['dateMajANN'] == '--') {
$tabRet['dateMajANN'] = '';
}
}
$timer['getAnnoncesLegales'] = microtime(true);
}
// Date de dernière mise à jour
$lastMaj=str_replace('-', '', $tabRet['DateMajINSEE'])*1;
$lastMaj = str_replace('-', '', $tabRet['DateMajINSEE'])*1;
if (str_replace('-', '', $tabRet['DateMajRCS'])*1 > $lastMaj) {
$lastMaj = str_replace('-', '', $tabRet['DateMajRCS'])*1;
}
if (str_replace('-', '', $tabRet['bilanDateMaj'])*1>$lastMaj) {
if (str_replace('-', '', $tabRet['bilanDateMaj'])*1 > $lastMaj) {
$lastMaj = str_replace('-', '', $tabRet['bilanDateMaj'])*1;
}
if (str_replace('-', '', $tabRet['dateMajANN'])*1>$lastMaj) {
if (str_replace('-', '', $tabRet['dateMajANN'])*1 > $lastMaj) {
$lastMaj = str_replace('-', '', $tabRet['dateMajANN'])*1;
}
$tabRet['dateMajIdentite'] = Metier_Util_Date::dateT('Ymd', 'Y-m-d', $lastMaj);