Maj gestion des événements de cloture

This commit is contained in:
Michael RICOIS 2016-02-25 12:52:44 +00:00
parent d35016f2f8
commit 8841d85d16
3 changed files with 178 additions and 169 deletions

View File

@ -73,6 +73,10 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
protected $AnnoncesPosition = 0; protected $AnnoncesPosition = 0;
protected $AnnoncesNb = 20; protected $AnnoncesNb = 20;
protected $SituationCloture = false;
protected $Identite;
/** /**
* *
*/ */
@ -2129,6 +2133,9 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
'EPCI' => $tabInsee['EPCI'], 'EPCI' => $tabInsee['EPCI'],
); );
// Set Identite pour les autres méthodes
$this->Identite = $tabRet;
// Estimation du Chiffre d'affaires // Estimation du Chiffre d'affaires
$cj1 = substr($tabInsee['CJ'],0,1)*1; $cj1 = substr($tabInsee['CJ'],0,1)*1;
if ($tabRet['TrancheCA']*1==0 && $tabRet['AnneeTCA']*1==0 && $tabInsee['ACTIF']==1 && $tabInsee['CJ']<>1800 && $tabInsee['CJ']<>1900 && $cj1<>7 && $cj1<>8 && $cj1<>9) { if ($tabRet['TrancheCA']*1==0 && $tabRet['AnneeTCA']*1==0 && $tabInsee['ACTIF']==1 && $tabInsee['CJ']<>1800 && $tabInsee['CJ']<>1900 && $cj1<>7 && $cj1<>8 && $cj1<>9) {
@ -2251,7 +2258,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
// --- Situation Juridique // --- Situation Juridique
if (intval($siren) > 100) { if (intval($siren) > 100) {
if ($this->debug) file_put_contents('procol.log', " === Situation Juridique ===\n"); if ($this->debug) file_put_contents('procol.log', "=== Situation Juridique ===\n");
$tabProcol = $this->getAnnoncesLegales($siren, 0, 'P', false); $tabProcol = $this->getAnnoncesLegales($siren, 0, 'P', false);
if ( count($tabProcol) > 0 ) { if ( count($tabProcol) > 0 ) {
$tabDates = array(); $tabDates = array();
@ -2274,11 +2281,18 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
elseif ($this->appelJugement) { elseif ($this->appelJugement) {
$tabRet['SituationJuridique'] = 'PA'; $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 // En cours de procédure
else { else {
if ($this->debug) file_put_contents('procol.log', "Procol (P) "."\n", FILE_APPEND); if ($this->debug) file_put_contents('procol.log', "Procol (P) "."\n", FILE_APPEND);
$tabRet['SituationJuridique'] = 'P'; $tabRet['SituationJuridique'] = 'P';
} }
// RAZ SituationJuridique si cutoff plus récent que dernière procol
$tabTmp = $this->iDb->select('jo.scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", false, MYSQL_ASSOC); $tabTmp = $this->iDb->select('jo.scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", false, MYSQL_ASSOC);
if( count($tabTmp) > 0 ) { if( count($tabTmp) > 0 ) {
if ($tabTmp[0]['scoreSolv'] > 0) { if ($tabTmp[0]['scoreSolv'] > 0) {
@ -2289,12 +2303,12 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
} }
rsort($tabDates); rsort($tabDates);
$dateProcol = str_replace('-','',$tabDates[0])*1; $dateProcol = str_replace('-','',$tabDates[0])*1;
if($tabTmp[0]['dateUpdate']>$tabTmp[0]['dateInsert']) { if($tabTmp[0]['dateUpdate'] > $tabTmp[0]['dateInsert']) {
$dateMaj=str_replace('-','',$tabTmp[0]['dateUpdate']); $dateMaj = str_replace('-','',$tabTmp[0]['dateUpdate']);
} else { } else {
$dateMaj=str_replace('-','',$tabTmp[0]['dateInsert']); $dateMaj = str_replace('-','',$tabTmp[0]['dateInsert']);
} }
if ($dateProcol<=$dateMaj) { if ($dateProcol <= $dateMaj) {
$tabRet['SituationJuridique']=''; $tabRet['SituationJuridique']='';
} }
} }
@ -3394,11 +3408,12 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
if ($type == 'bodacc') { if ($type == 'bodacc') {
// Procédure collective // Procédure collective
if ($rubrique=='P' || $rubrique=='PH') { if ($rubrique=='P' || $rubrique=='PH') {
$where = " AND d.Rubrique='procol' AND d.typeEven NOT LIKE '%1005%' $where = " AND d.Rubrique='procol'
AND d.typeEven NOT LIKE '%1010%' AND d.typeEven NOT LIKE '%1005%'
AND d.typeEven NOT LIKE '%1050%' AND d.typeEven NOT LIKE '%1010%'
AND d.typeEven NOT LIKE '%1055%' AND d.typeEven NOT LIKE '%1050%'
AND d.typeEven NOT LIKE '%1550%' "; AND d.typeEven NOT LIKE '%1055%'
AND d.typeEven NOT LIKE '%1550%' ";
} }
// Dissolution de la société // Dissolution de la société
elseif ($rubrique=='D') { elseif ($rubrique=='D') {
@ -4047,7 +4062,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
$this->finPlan = $classWDate->period2Days($this->debutPlan, $this->dureePlan.' mois'); $this->finPlan = $classWDate->period2Days($this->debutPlan, $this->dureePlan.' mois');
} }
} }
} }
protected function getAnnoncesLegalesBodacc($count = false) protected function getAnnoncesLegalesBodacc($count = false)
@ -4271,7 +4285,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
if ($this->AnnoncesLegalesVisu) { if ($this->AnnoncesLegalesVisu) {
$unionDate = 'a.dateJugement AS unionDate'; $unionDate = 'a.dateJugement AS unionDate';
} else { } else {
$unionDate = 'a.dateJugemen AS unionDate'; $unionDate = 'a.dateJugement AS unionDate';
} }
$sql = "SELECT $sql = "SELECT
a.id AS id, a.id AS id,
@ -4388,7 +4402,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
$siren = intval($siren); $siren = intval($siren);
$tabRet = array(); $tabRet = array();
$this->dureePlan = 0; // Par défaut, on ne trouve aucune durée de plan $this->dureePlan = 0; // Par défaut, on ne trouve aucune durée de plan
$visualisation = $this->AnnoncesLegalesVisu;
$classWDate = new WDate(); $classWDate = new WDate();
@ -4439,7 +4452,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
$sqlHistoWhere = "e.E1GSIR=$siren"; $sqlHistoWhere = "e.E1GSIR=$siren";
$sqlHistoWhere.= $sqlHistoRubrique; $sqlHistoWhere.= $sqlHistoRubrique;
$sqlHistoWhere.= " AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231"; $sqlHistoWhere.= " AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231";
$sqlHistoWhere.= " GROUP BY e.ANBASE ORDER BY e.DATE DESC"; $sqlHistoWhere.= " GROUP BY e.ANBASE";
$sqlHisto = $this->getAnnoncesLegalesHisto()." WHERE ".$sqlHistoWhere; $sqlHisto = $this->getAnnoncesLegalesHisto()." WHERE ".$sqlHistoWhere;
} }
@ -4451,54 +4464,59 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
$sqlAnnonceWhere.= " AND a.tribunal=t.triCode AND a.dateSuppr=0"; $sqlAnnonceWhere.= " AND a.tribunal=t.triCode AND a.dateSuppr=0";
// --- Ne pas utiliser les annonces si la procédure à plus de 4 mois // --- Ne pas utiliser les annonces si la procédure à plus de 4 mois
$sqlAnnonceWhere.= " AND a.dateJugement > DATE_SUB(NOW(), INTERVAL 24 MONTH)"; $sqlAnnonceWhere.= " AND a.dateJugement > DATE_SUB(NOW(), INTERVAL 24 MONTH)";
$sqlAnnonceWhere.= " GROUP BY a.siren, a.dateJugement, a.typeEven ORDER BY a.dateJugement DESC"; $sqlAnnonceWhere.= " GROUP BY a.siren, a.dateJugement, a.typeEven";
$sqlAnnonce = $this->getAnnoncesLegalesAnnonce()." WHERE ".$sqlAnnonceWhere; $sqlAnnonce = $this->getAnnoncesLegalesAnnonce()." WHERE ".$sqlAnnonceWhere;
} }
// --- SQL Union // --- SQL Union
$sql = "SELECT * FROM ( (".$sqlBodacc.") "; $sql = "SELECT * FROM ( (".$sqlBodacc.") ";
if (!empty($sqlHisto)) { if (!empty($sqlHisto)) {
$sql.= "UNION ALL (".$sqlHisto.") "; $sql.= " UNION ALL (".$sqlHisto.") ";
} }
if (!empty($sqlAnnonce)) { if (!empty($sqlAnnonce)) {
$sql.= "UNION ALL (".$sqlAnnonce.") "; $sql.= " UNION ALL (".$sqlAnnonce.") ";
} }
// Gestion des événements à date
// --- Gestion des événements à date
if ($this->companyEvenDateStop != null ) { if ($this->companyEvenDateStop != null ) {
$sql.= ") results WHERE unionDate < '".$this->companyEvenDateStop."' ORDER BY unionDate DESC"; $sql.= ") results WHERE unionDate < '".$this->companyEvenDateStop."'";
} else { } else {
$sql.= ") results ORDER BY unionDate DESC"; $sql.= ") results";
}
// --- Gestion de l'ordre de tri
if ($this->AnnoncesLegalesVisu) {
$sql.= " ORDER BY unionDate DESC";
} else {
$sql.= " ORDER BY unionDate ASC, FIELD(SourceTable, 'histo', 'annonce', 'bodacc')";
} }
} }
$annonceResult = $this->iDb->query($sql); $annonceResult = $this->iDb->query($sql);
// --- Traitement des resultats // --- Traitement des resultats
if (count($annonceResult)>0) { if (count($annonceResult) > 0) {
// --- Identite Light de l'entité // --- Identite Light de l'entité
$tabId = $this->getIdentiteLight($siren); if ($this->Identite === null) {
$fj = $tabId['FJ']; $this->Identite = $this->getIdentiteLight($siren);
}
// --- Parcours des annonces
foreach ($annonceResult as $ann) { foreach ($annonceResult as $ann) {
// --- Formatage bodacc // --- Formatage bodacc
if ($ann['SourceTable'] == 'bodacc') { if ($ann['SourceTable'] == 'bodacc') {
$tabEven = explode(';', $ann['typeEven']); $tabEven = explode(';', $ann['typeEven']);
$tabRetEven = array(); $tabRetEven = array();
// --- Annonce rubrique insertion // --- Annonce rubrique insertion
if ($ann['typeAnnonce']<>'Insertion') { if ($ann['typeAnnonce']!='Insertion') {
// --- Sélection des événements // --- Sélection des événements
foreach ($tabEven as $even) { foreach ($tabEven as $even) {
if (intval($even)!=0) { if (intval($even) != 0) {
$tabRetEven[] = array( $tabRetEven[] = array(
'CodeEven' => $even, 'CodeEven' => $even,
'LibEven' => $this->iBodacc->getEvenement($even) 'LibEven' => $this->iBodacc->getEvenement($even)
); );
} }
} }
//Libellé générique // Libellé générique
$tabRetEven[] = array( $tabRetEven[] = array(
'CodeEven' => '0000', 'CodeEven' => '0000',
'LibEven' => $ann['typeAnnonce']." de l'annonce du ".$classWDate->dateT('Y-m-d','d/m/Y',$ann['corrBodacc_Date_Parution']) 'LibEven' => $ann['typeAnnonce']." de l'annonce du ".$classWDate->dateT('Y-m-d','d/m/Y',$ann['corrBodacc_Date_Parution'])
@ -4506,7 +4524,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
} }
// --- Annonce autre rubrique // --- Annonce autre rubrique
else { else {
if (trim($ann['typeEven'])<>'') { if (trim($ann['typeEven'])!='') {
foreach ($tabEven as $even) { foreach ($tabEven as $even) {
if ( intval($even)!=0 ) { if ( intval($even)!=0 ) {
$tabRetEven[] = array( $tabRetEven[] = array(
@ -4516,26 +4534,26 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
} }
} }
// --- Detection plan // --- Detection plan
if ($visualisation === false) { if ($this->AnnoncesLegalesVisu === false) {
$this->getAnnoncesLegalesPlan('bodacc', $fj, $ann); $this->getAnnoncesLegalesPlan('bodacc', $this->Identite['FJ'], $ann);
} }
} else { } else {
switch ($ann['Rubrique']) { switch ($ann['Rubrique']) {
case 'mmd': $codeEven='2313'; $libEven='Modification(s) diverse(s)'; break; case 'mmd': $codeEven='2313'; $libEven = "Modification(s) diverse(s)"; break;
case 'comptes': $codeEven='3999'; $libEven='Dépôt des comptes'; break; case 'comptes': $codeEven='3999'; $libEven = "Dépôt des comptes"; break;
case 'creations': $codeEven='4999'; $libEven='Création d\'entreprise'; break; case 'creations': $codeEven='4999'; $libEven = "Création d'entreprise"; break;
case 'procol': $codeEven='1999'; $libEven='Procédure collective'; break; case 'procol': $codeEven='1999'; $libEven = "Procédure collective"; break;
case 'radiations': $codeEven='6700'; $libEven='Radiation'; break; case 'radiations': $codeEven='6700'; $libEven = "Radiation"; break;
case 'ventes': $codeEven='5999'; $libEven='Vente/Cession'; break; case 'ventes': $codeEven='5999'; $libEven = "Vente/Cession"; break;
default: $codeEven='0000'; $libEven=$ann['Rubrique']; break; default: $codeEven='0000'; $libEven = $ann['Rubrique']; break;
} }
$tabRetEven[]=array('CodeEven'=>$codeEven,'LibEven'=>$libEven); $tabRetEven[]=array('CodeEven'=>$codeEven,'LibEven'=>$libEven);
} }
} }
$dateCes=str_replace('-','', $ann['dateCessationActivite'])*1; $dateCes = str_replace('-','', $ann['dateCessationActivite'])*1;
$dateDeb=str_replace('-','', $ann['dateDebutActivite'])*1; $dateDeb = str_replace('-','', $ann['dateDebutActivite'])*1;
$dateEff=str_replace('-','', $ann['dateEffet'])*1; $dateEff = str_replace('-','', $ann['dateEffet'])*1;
if ($dateCes>0) { if ($dateCes>0) {
$dateEffet=$ann['dateCessationActivite']; $dateEffet=$ann['dateCessationActivite'];
} elseif ($dateDeb>0) { } elseif ($dateDeb>0) {
@ -4580,11 +4598,8 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
'deleted' => $ann['deleted'], 'deleted' => $ann['deleted'],
'texteAnnonce' => $ann['annonce'], 'texteAnnonce' => $ann['annonce'],
); );
$tabRet[] = $retFormat; $tabRet[] = $retFormat;
} }
// --- Formattage Histo // --- Formattage Histo
elseif ($ann['SourceTable'] == 'histo') { elseif ($ann['SourceTable'] == 'histo') {
@ -4622,8 +4637,8 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
); );
// --- Detection plan // --- Detection plan
if ($visualisation === false) { if ($this->AnnoncesLegalesVisu === false) {
$this->getAnnoncesLegalesPlan('histo', $fj, $ann); $this->getAnnoncesLegalesPlan('histo', $this->Identite['FJ'], $ann);
} }
} }
@ -4635,11 +4650,11 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches)) { if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches)) {
$capital=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1; $capital=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1;
if (substr(strtoupper($matches[2]),0,3)=='EUR') if (substr(strtoupper($matches[2]),0,3)=='EUR')
$capitalDev='EUR'; $capitalDev = 'EUR';
elseif (substr(strtoupper($matches[2]),0,3)=='LIV') elseif (substr(strtoupper($matches[2]),0,3)=='LIV')
$capitalDev='GBP'; $capitalDev = 'GBP';
else else
$capitalDev='FRF'; $capitalDev = 'FRF';
} else } else
$capital=$capitalDev=''; $capital=$capitalDev='';
// Recherche de la forme juridique // Recherche de la forme juridique
@ -4676,16 +4691,11 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
'evenements' => $tabEvens, 'evenements' => $tabEvens,
'texteAnnonce' => $ann['NOANN'].' - '.$ann['annonceTxt'], 'texteAnnonce' => $ann['NOANN'].' - '.$ann['annonceTxt'],
); );
$tabRet[] = $retFormat; $tabRet[] = $retFormat;
} }
// --- Formattage Annonce // --- Formattage Annonce
elseif ($ann['SourceTable'] == 'annonce') { elseif ($ann['SourceTable'] == 'annonce') {
$rubriqueRet = ''; $rubriqueRet = '';
$tabInter = array( $tabInter = array(
'A' => 'Administrateur judiciaire', 'A' => 'Administrateur judiciaire',
'M' => 'Mandataire judiciaire', 'M' => 'Mandataire judiciaire',
@ -4711,10 +4721,10 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
/** Ajout des informations identitaires pour les annonces collecte avant Décembre 2008 **/ /** Ajout des informations identitaires pour les annonces collecte avant Décembre 2008 **/
if ( trim($ann['raisonSociale'])=='' || trim($ann['adresse'])=='' if ( trim($ann['raisonSociale'])=='' || trim($ann['adresse'])==''
|| trim($ann['codePostal'])=='' || trim($ann['ville'])=='') { || trim($ann['codePostal'])=='' || trim($ann['ville'])=='') {
$ann['raisonSociale'] = $tabId['Nom']; $ann['raisonSociale'] = $this->Identite['Nom'];
$ann['adresse'] = $tabId['Adresse']; $ann['adresse'] = $this->Identite['Adresse'];
$ann['codePostal'] = $tabId['CP']; $ann['codePostal'] = $this->Identite['CP'];
$ann['ville'] = $tabId['Ville']; $ann['ville'] = $this->Identite['Ville'];
} }
$adresse.=ucfirst(strtolower($ann['adresse'])).', '; $adresse.=ucfirst(strtolower($ann['adresse'])).', ';
@ -4825,8 +4835,8 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
} }
// --- Detection plan // --- Detection plan
if ($visualisation === false) { if ($this->AnnoncesLegalesVisu === false) {
$this->getAnnoncesLegalesPlan('annonce', $fj, $ann); $this->getAnnoncesLegalesPlan('annonce', $this->Identite['FJ'], $ann);
} }
$strVente=''; $strVente='';
@ -4887,29 +4897,31 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
if ($depotComptes) { if ($depotComptes) {
$retFormat['dateEffet'] = $ann['dateEffetFinP']; $retFormat['dateEffet'] = $ann['dateEffetFinP'];
} }
$tabRet[] = $retFormat; $tabRet[] = $retFormat;
} }
} // --- Fin du parcours des annonces } // --- Fin du parcours des annonces
// --- Effacement procol // --- Effacement procol
if ($visualisation === false) { if ($this->AnnoncesLegalesVisu === false) {
// --- Si il y a des annonces // --- Si il y a des annonces
if (count($tabRet) > 0) { if (count($tabRet) > 0) {
$tabJugements = array(); $tabJugements = array();
// --- Liste des jugements principaux - Trier ante-chronologique par date de publication $TopEvenCloture = false;
// --- Liste des jugements principaux - Tri chronologique par date de jugement
foreach ($tabRet as $i => $ann) { foreach ($tabRet as $i => $ann) {
$item = new stdClass(); $item = new stdClass();
$item->date = str_replace('-','', $ann['dateJugement']); $item->date = str_replace('-','', $ann['dateJugement']);
$item->dateISO8601 = $ann['dateJugement']; $item->dateISO8601 = $ann['dateJugement'];
$item->code = $ann['evenements'][0]['CodeEven']; $item->code = $ann['evenements'][0]['CodeEven'];
$tabJugements[] = $item; $tabJugements[] = $item;
// Dernier evenement de procol // Detection TopDepart Cloture
if ($i == 0) { if (in_array($item->code, array(1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1311,1312,1313,1314,1417))) {
$evenProcolLastDate = $item->date; $TopEvenCloture = true;
$evenProcolLast = $item->code;
} }
// Dernier Evenement de Procol
$evenProcolLastDate = $item->date;
$evenProcolLast = $item->code;
if ($this->debug) file_put_contents('procol.log', "Parcours Even : $evenProcolLastDate - $evenProcolLast ($TopEvenCloture)\n", FILE_APPEND);
} }
// --- Gestions des conditions pour l'affichage de l'indicateur procédure collectives // --- Gestions des conditions pour l'affichage de l'indicateur procédure collectives
if ($rubrique=='P') { if ($rubrique=='P') {
@ -4918,7 +4930,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
if ($this->dureePlan > 0) { if ($this->dureePlan > 0) {
if ($this->debug) file_put_contents('procol.log', "=== Vérification Elimination du plan === \n", FILE_APPEND); if ($this->debug) file_put_contents('procol.log', "=== Vérification Elimination du plan === \n", FILE_APPEND);
// Tableau chronologique des dates de jugement => code jugement // Tableau chronologique des dates de jugement => code jugement
krsort($tabJugements);
foreach ($tabJugements as $i => $j) { foreach ($tabJugements as $i => $j) {
if ($this->debug) file_put_contents('procol.log', $j->date.'>'.$this->debutPlan.', Jugement='.$j->code."\n", FILE_APPEND); if ($this->debug) file_put_contents('procol.log', $j->date.'>'.$this->debutPlan.', Jugement='.$j->code."\n", FILE_APPEND);
// Si plan suivi de SV, RJ, LJ ou clôture alors pas de plan // Si plan suivi de SV, RJ, LJ ou clôture alors pas de plan
@ -4938,75 +4949,86 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
} }
if ($this->debug) file_put_contents('procol.log', "Durée du plan : ".$this->dureePlan."\n", FILE_APPEND); if ($this->debug) file_put_contents('procol.log', "Durée du plan : ".$this->dureePlan."\n", FILE_APPEND);
} }
// --- Evenements effaçant l'indicateur P dans Situation Juridique
if ($this->debug) file_put_contents('procol.log', "=== Traitement effacement procol ===\n", FILE_APPEND); // --- Gestion de la cloture
$tabNoProcol = array(); if (substr($this->Identite['FJ'],0,1) != 1 && $TopEvenCloture && in_array($evenProcolLast, array(1502,1503))) {
$tmp = $this->iDb->select('jo.tabEvenements', 'codEven, affProcol', 'affProcol>0', false, MYSQL_ASSOC); if ($this->debug) file_put_contents('procol.log', "=== Cloture ===\n", FILE_APPEND);
foreach ($tmp as $tmp2) { if ($this->debug) file_put_contents('procol.log', "Cloture après procédure\n", FILE_APPEND);
$tabNoProcol[$tmp2['codEven']] = $tmp2['affProcol']; $this->SituationCloture = true;
} } else {
if (array_key_exists($evenProcolLast, $tabNoProcol)) { // --- Evenements effaçant l'indicateur P dans Situation Juridique
if ($this->debug) file_put_contents('procol.log', "Vérification Effacement procol : $evenProcolLast\n", FILE_APPEND); if ($this->debug) file_put_contents('procol.log', "=== Traitement effacement procol ===\n", FILE_APPEND);
switch ($tabNoProcol[$evenProcolLast]) { $tabNoProcol = array();
// PAS DE MENTION DE LA PROCOL $tmp = $this->iDb->select('jo.tabEvenements', 'codEven, affProcol', 'affProcol>0', false, MYSQL_ASSOC);
case 1: foreach ($tmp as $tmp2) {
if ($this->debug) file_put_contents('procol.log', "affProcol = 1\n", FILE_APPEND); $tabNoProcol[$tmp2['codEven']] = $tmp2['affProcol'];
$tabRet = array(); }
break; if (array_key_exists($evenProcolLast, $tabNoProcol)) {
// Ne pas mentionner la procol si CJ=1xxx OU si actif et CJ!=9xxx et even de plus d'un mois if ($this->debug) file_put_contents('procol.log', "Vérification Effacement procol : $evenProcolLast\n", FILE_APPEND);
case 2: switch ($tabNoProcol[$evenProcolLast]) {
if (substr($tabId['FJ'],0,1)*1==1) { // PAS DE MENTION DE LA PROCOL
if ($this->debug) file_put_contents('procol.log', "affProcol = 2\n", FILE_APPEND); case 1:
if ($this->debug) file_put_contents('procol.log', "affProcol = 1\n", FILE_APPEND);
$tabRet = array(); $tabRet = array();
} elseif ($tabId['Actif']*1 > 0 && substr($tabId['FJ'],0,1)*1 != 9) { break;
if ($this->debug) file_put_contents('procol.log', "affProcol = 2", FILE_APPEND); // Ne pas mentionner la procol si CJ=1xxx OU si actif et CJ!=9xxx et even de plus d'un mois
$maxLatence = date('Ymd',mktime(0,0,0, case 2:
substr($evenProcolLastDate,4,2)*1+1, if (substr($this->Identite['FJ'],0,1)*1==1) {
substr($evenProcolLastDate,6,2), if ($this->debug) file_put_contents('procol.log', "affProcol = 2\n", FILE_APPEND);
substr($evenProcolLastDate,0,4))); $tabRet = array();
if (date('Ymd') > $maxLatence) { } elseif ($this->Identite['Actif']*1 > 0 && substr($this->Identite['FJ'],0,1)*1 != 9) {
if ($this->debug) file_put_contents('procol.log', "affProcol = 2\n", FILE_APPEND);
$maxLatence = date('Ymd',mktime(0,0,0,
substr($evenProcolLastDate,4,2)*1+1,
substr($evenProcolLastDate,6,2),
substr($evenProcolLastDate,0,4)));
if (date('Ymd') > $maxLatence) {
$tabRet = array();
}
}
break;
// Pas Procol si actif RCS
case 3:
if ($this->Identite['Actif']*1>0) {
if ($this->debug) file_put_contents('procol.log', "affProcol = 3\n", FILE_APPEND);
$tabRet = array(); $tabRet = array();
} }
} break;
break; // Le dernier jugement est un appel => Procol Suspendu
// Pas Procol si actif RCS case 4:
case 3: if ($this->debug) file_put_contents('procol.log', "affProcol = 4\n", FILE_APPEND);
if ($tabId['Actif']*1>0) { $this->appelJugement = true;
if ($this->debug) file_put_contents('procol.log', "affProcol = 3\n", FILE_APPEND); break;
$tabRet = array();
}
break;
// Le dernier jugement est un appel => Procol Suspendu
case 4:
if ($this->debug) file_put_contents('procol.log', "affProcol = 4\n", FILE_APPEND);
$this->appelJugement = true;
break;
}
}
// --- Procédure trop ancienne plus de 12 ans et actif
$dateTropAncienne = (date('Ymd')*1)-120000;
if ($evenProcolLastDate < $dateTropAncienne && $tabId['Actif']*1 > 0) {
$derPr = $classWDate->dateT('Ymd','d/m/Y', $evenProcolLastDate);
$tabRet = array();
if ($this->debug) file_put_contents('procol.log', "Procédure trop ancienne plus de 12 ans et actif\n", FILE_APPEND);
}
// --- En Procol mais présence d'une annonce de cloture ou LJ avec Bilan publié ultérieurement
elseif ( in_array($evenProcolLast, array(1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1311,1312,1313))
|| in_array($evenProcolLast, array(1500,1501,1502,1503,1504))) {
$mBil = new Metier_Partenaires_MBilans($siren, $this->iDb);
$tabBilans = $mBil->listeBilans($accesDist);
$derExercice = 0;
foreach ($tabBilans as $idx => $bilan) {
if ($bilan['dateExercice'] > $derExercice) {
$derExercice = $bilan['dateExercice'];
} }
} }
if ($derExercice > $evenProcolDateLast) {
if ($this->debug) file_put_contents('procol.log', "En Procol mais présence d'une annonce de cloture ou LJ avec Bilan publié ultérieurement\n", FILE_APPEND); // --- Procédure trop ancienne plus de 12 ans et actif
$derEx = $classWDate->dateT('Ymd', 'd/m/Y', $derExercice); $dateTropAncienne = (date('Ymd')*1)-120000;
$derPr = $classWDate->dateT('Ymd', 'd/m/Y', $evenProcolDateLast); if ($evenProcolLastDate < $dateTropAncienne && $this->Identite['Actif']*1 > 0) {
$derPr = $classWDate->dateT('Ymd','d/m/Y', $evenProcolLastDate);
$tabRet = array(); $tabRet = array();
if ($this->debug) file_put_contents('procol.log', "Procédure trop ancienne plus de 12 ans et actif\n", FILE_APPEND);
}
// --- En Procol mais présence d'une annonce de cloture ou LJ avec Bilan publié ultérieurement
elseif ( in_array($evenProcolLast, array(
1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1311,1312,1313,
1500,1501,1502,1503,1504
)) ) {
$mBil = new Metier_Partenaires_MBilans($siren, $this->iDb);
$tabBilans = $mBil->listeBilans($accesDist);
$derExercice = 0;
foreach ($tabBilans as $idx => $bilan) {
if ($bilan['dateExercice'] > $derExercice) {
$derExercice = $bilan['dateExercice'];
}
}
if ($derExercice > $evenProcolLastDate) {
if ($this->debug) file_put_contents('procol.log', "En Procol mais présence d'une annonce de cloture ou LJ avec Bilan publié ultérieurement\n", FILE_APPEND);
if ($this->debug) file_put_contents('procol.log', "$derExercice > $evenProcolLastDate\n", FILE_APPEND);
$derEx = $classWDate->dateT('Ymd', 'd/m/Y', $derExercice);
$derPr = $classWDate->dateT('Ymd', 'd/m/Y', $evenProcolLastDate);
$tabRet = array();
}
} }
} }
} }

View File

@ -1,12 +1,4 @@
<?php <?php
if ( !function_exists('htmlspecialchars_decode') )
{
function htmlspecialchars_decode($text)
{
return strtr($text, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
}
}
require_once 'framework/common/curl.php'; require_once 'framework/common/curl.php';
function supprDecimales($dec) { function supprDecimales($dec) {
@ -1216,24 +1208,5 @@ The text version of the service also accepts a list of lat/lng for the parameter
} }
} }
if ( !function_exists('json_decode') ){
function json_decode($content, $assoc=false){
require_once 'Services/JSON.php';
if ( $assoc ){
$json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
} else {
$json = new Services_JSON;
}
return $json->decode($content);
}
}
if ( !function_exists('json_encode') ){
function json_encode($content){
require_once 'Services/JSON.php';
$json = new Services_JSON;
return $json->encode($content);
}
}
?> ?>

View File

@ -1900,12 +1900,22 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
} }
} }
} }
} else { }
// --- Ni P, Ni PL
else {
$tabProCol = $iInsee->annoncesFilter($companyAnnonces, 'PH'); $tabProCol = $iInsee->annoncesFilter($companyAnnonces, 'PH');
if (count($tabProCol)>0) $ANNONCEPCHISTO=true; if (count($tabProCol) > 0) {
else $ANNONCEPCHISTO=false; $ANNONCEPCHISTO = true;
if ($tabIdentite['Actif']==0) $ELIMINE=true; }
else $ELIMINE=false; else {
$ANNONCEPCHISTO = false;
}
if ($tabIdentite['Actif'] == 0) {
$ELIMINE = true;
}
else {
$ELIMINE = false;
}
} }
/** Annonces d'Homologation **/ /** Annonces d'Homologation **/
@ -2761,6 +2771,9 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if ($tabIdentite['SituationJuridique']=='P') { if ($tabIdentite['SituationJuridique']=='P') {
$noteSolvabilite = $SCORECONF = $SCOREDIRI = 0; $noteSolvabilite = $SCORECONF = $SCOREDIRI = 0;
$analyseConf = "L'entreprise est en procédure collective"; $analyseConf = "L'entreprise est en procédure collective";
} elseif ($tabIdentite['SituationJuridique']=='CL') {
$noteSolvabilite = $SCORECONF = $SCOREDIRI = 0;
$analyseConf = "Cloture après la procédure";
} elseif ($tabIdentite['SituationJuridique']=='D') { } elseif ($tabIdentite['SituationJuridique']=='D') {
$noteSolvabilite = $SCORECONF = $SCOREDIRI = 0; $noteSolvabilite = $SCORECONF = $SCOREDIRI = 0;
$analyseConf = "L'entreprise est dissoute"; $analyseConf = "L'entreprise est dissoute";
@ -2963,8 +2976,9 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$libEncours='Aucun risque de défaillance sur les administrations ou institutions.'; $libEncours='Aucun risque de défaillance sur les administrations ou institutions.';
break; break;
} }
} else { }
// Encours à 0 car score < 40 // Encours à 0 car score < 40
else {
$ENCOURSCALC=$ENCOURS; $ENCOURSCALC=$ENCOURS;
$ENCOURS=0; $ENCOURS=0;
$libEncours='Aucun encours conseillé par rapport à notre évaluation.'; $libEncours='Aucun encours conseillé par rapport à notre évaluation.';