From 8841d85d162b6e3b011814c576bfcdab9d8c3b3a Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Thu, 25 Feb 2016 12:52:44 +0000 Subject: [PATCH] =?UTF-8?q?Maj=20gestion=20des=20=C3=A9v=C3=A9nements=20de?= =?UTF-8?q?=20cloture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/Metier/Insee/MInsee.php | 292 +++++++++++++++------------- library/Metier/Partenaires/MMap.php | 27 --- library/Metier/Scores/MScores.php | 28 ++- 3 files changed, 178 insertions(+), 169 deletions(-) diff --git a/library/Metier/Insee/MInsee.php b/library/Metier/Insee/MInsee.php index cc43c4e5..db0aba25 100644 --- a/library/Metier/Insee/MInsee.php +++ b/library/Metier/Insee/MInsee.php @@ -73,6 +73,10 @@ class Metier_Insee_MInsee extends Metier_Insee_Table protected $AnnoncesPosition = 0; protected $AnnoncesNb = 20; + protected $SituationCloture = false; + + protected $Identite; + /** * */ @@ -2129,6 +2133,9 @@ class Metier_Insee_MInsee extends Metier_Insee_Table 'EPCI' => $tabInsee['EPCI'], ); + // Set Identite pour les autres méthodes + $this->Identite = $tabRet; + // Estimation du Chiffre d'affaires $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) { @@ -2251,7 +2258,7 @@ 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"); + if ($this->debug) file_put_contents('procol.log', "=== Situation Juridique ===\n"); $tabProcol = $this->getAnnoncesLegales($siren, 0, 'P', false); if ( count($tabProcol) > 0 ) { $tabDates = array(); @@ -2274,11 +2281,18 @@ class Metier_Insee_MInsee extends Metier_Insee_Table 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 $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 ($tabTmp[0]['scoreSolv'] > 0) { @@ -2289,12 +2303,12 @@ class Metier_Insee_MInsee extends Metier_Insee_Table } rsort($tabDates); $dateProcol = str_replace('-','',$tabDates[0])*1; - if($tabTmp[0]['dateUpdate']>$tabTmp[0]['dateInsert']) { - $dateMaj=str_replace('-','',$tabTmp[0]['dateUpdate']); + if($tabTmp[0]['dateUpdate'] > $tabTmp[0]['dateInsert']) { + $dateMaj = str_replace('-','',$tabTmp[0]['dateUpdate']); } else { - $dateMaj=str_replace('-','',$tabTmp[0]['dateInsert']); + $dateMaj = str_replace('-','',$tabTmp[0]['dateInsert']); } - if ($dateProcol<=$dateMaj) { + if ($dateProcol <= $dateMaj) { $tabRet['SituationJuridique']=''; } } @@ -3394,11 +3408,12 @@ class Metier_Insee_MInsee extends Metier_Insee_Table if ($type == 'bodacc') { // Procédure collective if ($rubrique=='P' || $rubrique=='PH') { - $where = " AND d.Rubrique='procol' AND d.typeEven NOT LIKE '%1005%' - AND d.typeEven NOT LIKE '%1010%' - AND d.typeEven NOT LIKE '%1050%' - AND d.typeEven NOT LIKE '%1055%' - AND d.typeEven NOT LIKE '%1550%' "; + $where = " AND d.Rubrique='procol' + AND d.typeEven NOT LIKE '%1005%' + AND d.typeEven NOT LIKE '%1010%' + AND d.typeEven NOT LIKE '%1050%' + AND d.typeEven NOT LIKE '%1055%' + AND d.typeEven NOT LIKE '%1550%' "; } // Dissolution de la société elseif ($rubrique=='D') { @@ -4047,7 +4062,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table $this->finPlan = $classWDate->period2Days($this->debutPlan, $this->dureePlan.' mois'); } } - } protected function getAnnoncesLegalesBodacc($count = false) @@ -4271,7 +4285,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table if ($this->AnnoncesLegalesVisu) { $unionDate = 'a.dateJugement AS unionDate'; } else { - $unionDate = 'a.dateJugemen AS unionDate'; + $unionDate = 'a.dateJugement AS unionDate'; } $sql = "SELECT a.id AS id, @@ -4388,7 +4402,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table $siren = intval($siren); $tabRet = array(); $this->dureePlan = 0; // Par défaut, on ne trouve aucune durée de plan - $visualisation = $this->AnnoncesLegalesVisu; $classWDate = new WDate(); @@ -4439,7 +4452,7 @@ class Metier_Insee_MInsee extends Metier_Insee_Table $sqlHistoWhere = "e.E1GSIR=$siren"; $sqlHistoWhere.= $sqlHistoRubrique; $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; } @@ -4451,54 +4464,59 @@ class Metier_Insee_MInsee extends Metier_Insee_Table $sqlAnnonceWhere.= " AND a.tribunal=t.triCode AND a.dateSuppr=0"; // --- Ne pas utiliser les annonces si la procédure à plus de 4 mois $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; } // --- SQL Union $sql = "SELECT * FROM ( (".$sqlBodacc.") "; if (!empty($sqlHisto)) { - $sql.= "UNION ALL (".$sqlHisto.") "; + $sql.= " UNION ALL (".$sqlHisto.") "; } 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 ) { - $sql.= ") results WHERE unionDate < '".$this->companyEvenDateStop."' ORDER BY unionDate DESC"; + $sql.= ") results WHERE unionDate < '".$this->companyEvenDateStop."'"; } 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); // --- Traitement des resultats - if (count($annonceResult)>0) { - + if (count($annonceResult) > 0) { // --- Identite Light de l'entité - $tabId = $this->getIdentiteLight($siren); - $fj = $tabId['FJ']; - + if ($this->Identite === null) { + $this->Identite = $this->getIdentiteLight($siren); + } + // --- Parcours des annonces foreach ($annonceResult as $ann) { - // --- Formatage bodacc if ($ann['SourceTable'] == 'bodacc') { - $tabEven = explode(';', $ann['typeEven']); $tabRetEven = array(); - // --- Annonce rubrique insertion - if ($ann['typeAnnonce']<>'Insertion') { + if ($ann['typeAnnonce']!='Insertion') { // --- Sélection des événements foreach ($tabEven as $even) { - if (intval($even)!=0) { + if (intval($even) != 0) { $tabRetEven[] = array( 'CodeEven' => $even, 'LibEven' => $this->iBodacc->getEvenement($even) ); } } - //Libellé générique + // Libellé générique $tabRetEven[] = array( 'CodeEven' => '0000', '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 else { - if (trim($ann['typeEven'])<>'') { + if (trim($ann['typeEven'])!='') { foreach ($tabEven as $even) { if ( intval($even)!=0 ) { $tabRetEven[] = array( @@ -4516,26 +4534,26 @@ class Metier_Insee_MInsee extends Metier_Insee_Table } } // --- Detection plan - if ($visualisation === false) { - $this->getAnnoncesLegalesPlan('bodacc', $fj, $ann); + if ($this->AnnoncesLegalesVisu === false) { + $this->getAnnoncesLegalesPlan('bodacc', $this->Identite['FJ'], $ann); } } else { switch ($ann['Rubrique']) { - case 'mmd': $codeEven='2313'; $libEven='Modification(s) diverse(s)'; break; - case 'comptes': $codeEven='3999'; $libEven='Dépôt des comptes'; break; - case 'creations': $codeEven='4999'; $libEven='Création d\'entreprise'; break; - case 'procol': $codeEven='1999'; $libEven='Procédure collective'; break; - case 'radiations': $codeEven='6700'; $libEven='Radiation'; break; - case 'ventes': $codeEven='5999'; $libEven='Vente/Cession'; break; - default: $codeEven='0000'; $libEven=$ann['Rubrique']; break; + case 'mmd': $codeEven='2313'; $libEven = "Modification(s) diverse(s)"; break; + case 'comptes': $codeEven='3999'; $libEven = "Dépôt des comptes"; break; + case 'creations': $codeEven='4999'; $libEven = "Création d'entreprise"; break; + case 'procol': $codeEven='1999'; $libEven = "Procédure collective"; break; + case 'radiations': $codeEven='6700'; $libEven = "Radiation"; break; + case 'ventes': $codeEven='5999'; $libEven = "Vente/Cession"; break; + default: $codeEven='0000'; $libEven = $ann['Rubrique']; break; } $tabRetEven[]=array('CodeEven'=>$codeEven,'LibEven'=>$libEven); } } - $dateCes=str_replace('-','', $ann['dateCessationActivite'])*1; - $dateDeb=str_replace('-','', $ann['dateDebutActivite'])*1; - $dateEff=str_replace('-','', $ann['dateEffet'])*1; + $dateCes = str_replace('-','', $ann['dateCessationActivite'])*1; + $dateDeb = str_replace('-','', $ann['dateDebutActivite'])*1; + $dateEff = str_replace('-','', $ann['dateEffet'])*1; if ($dateCes>0) { $dateEffet=$ann['dateCessationActivite']; } elseif ($dateDeb>0) { @@ -4580,11 +4598,8 @@ class Metier_Insee_MInsee extends Metier_Insee_Table 'deleted' => $ann['deleted'], 'texteAnnonce' => $ann['annonce'], ); - $tabRet[] = $retFormat; - } - // --- Formattage Histo elseif ($ann['SourceTable'] == 'histo') { @@ -4622,8 +4637,8 @@ class Metier_Insee_MInsee extends Metier_Insee_Table ); // --- Detection plan - if ($visualisation === false) { - $this->getAnnoncesLegalesPlan('histo', $fj, $ann); + if ($this->AnnoncesLegalesVisu === false) { + $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)) { $capital=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1; if (substr(strtoupper($matches[2]),0,3)=='EUR') - $capitalDev='EUR'; + $capitalDev = 'EUR'; elseif (substr(strtoupper($matches[2]),0,3)=='LIV') - $capitalDev='GBP'; + $capitalDev = 'GBP'; else - $capitalDev='FRF'; + $capitalDev = 'FRF'; } else $capital=$capitalDev=''; // Recherche de la forme juridique @@ -4676,16 +4691,11 @@ class Metier_Insee_MInsee extends Metier_Insee_Table 'evenements' => $tabEvens, 'texteAnnonce' => $ann['NOANN'].' - '.$ann['annonceTxt'], ); - $tabRet[] = $retFormat; - } - // --- Formattage Annonce elseif ($ann['SourceTable'] == 'annonce') { - $rubriqueRet = ''; - $tabInter = array( 'A' => 'Administrateur 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 **/ if ( trim($ann['raisonSociale'])=='' || trim($ann['adresse'])=='' || trim($ann['codePostal'])=='' || trim($ann['ville'])=='') { - $ann['raisonSociale'] = $tabId['Nom']; - $ann['adresse'] = $tabId['Adresse']; - $ann['codePostal'] = $tabId['CP']; - $ann['ville'] = $tabId['Ville']; + $ann['raisonSociale'] = $this->Identite['Nom']; + $ann['adresse'] = $this->Identite['Adresse']; + $ann['codePostal'] = $this->Identite['CP']; + $ann['ville'] = $this->Identite['Ville']; } $adresse.=ucfirst(strtolower($ann['adresse'])).', '; @@ -4825,8 +4835,8 @@ class Metier_Insee_MInsee extends Metier_Insee_Table } // --- Detection plan - if ($visualisation === false) { - $this->getAnnoncesLegalesPlan('annonce', $fj, $ann); + if ($this->AnnoncesLegalesVisu === false) { + $this->getAnnoncesLegalesPlan('annonce', $this->Identite['FJ'], $ann); } $strVente=''; @@ -4887,29 +4897,31 @@ class Metier_Insee_MInsee extends Metier_Insee_Table if ($depotComptes) { $retFormat['dateEffet'] = $ann['dateEffetFinP']; } - $tabRet[] = $retFormat; } - } // --- Fin du parcours des annonces // --- Effacement procol - if ($visualisation === false) { + if ($this->AnnoncesLegalesVisu === false) { // --- Si il y a des annonces if (count($tabRet) > 0) { $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) { $item = new stdClass(); $item->date = str_replace('-','', $ann['dateJugement']); $item->dateISO8601 = $ann['dateJugement']; $item->code = $ann['evenements'][0]['CodeEven']; $tabJugements[] = $item; - // Dernier evenement de procol - if ($i == 0) { - $evenProcolLastDate = $item->date; - $evenProcolLast = $item->code; + // Detection TopDepart Cloture + if (in_array($item->code, array(1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1311,1312,1313,1314,1417))) { + $TopEvenCloture = true; } + // 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 if ($rubrique=='P') { @@ -4918,7 +4930,6 @@ class Metier_Insee_MInsee extends Metier_Insee_Table if ($this->dureePlan > 0) { if ($this->debug) file_put_contents('procol.log', "=== Vérification Elimination du plan === \n", FILE_APPEND); // Tableau chronologique des dates de jugement => code jugement - krsort($tabJugements); foreach ($tabJugements as $i => $j) { 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 @@ -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); } - // --- Evenements effaçant l'indicateur P dans Situation Juridique - if ($this->debug) file_put_contents('procol.log', "=== Traitement effacement procol ===\n", FILE_APPEND); - $tabNoProcol = array(); - $tmp = $this->iDb->select('jo.tabEvenements', 'codEven, affProcol', 'affProcol>0', false, MYSQL_ASSOC); - foreach ($tmp as $tmp2) { - $tabNoProcol[$tmp2['codEven']] = $tmp2['affProcol']; - } - if (array_key_exists($evenProcolLast, $tabNoProcol)) { - if ($this->debug) file_put_contents('procol.log', "Vérification Effacement procol : $evenProcolLast\n", FILE_APPEND); - switch ($tabNoProcol[$evenProcolLast]) { - // PAS DE MENTION DE LA PROCOL - case 1: - if ($this->debug) file_put_contents('procol.log', "affProcol = 1\n", FILE_APPEND); - $tabRet = array(); - break; - // Ne pas mentionner la procol si CJ=1xxx OU si actif et CJ!=9xxx et even de plus d'un mois - case 2: - if (substr($tabId['FJ'],0,1)*1==1) { - if ($this->debug) file_put_contents('procol.log', "affProcol = 2\n", FILE_APPEND); + + // --- Gestion de la cloture + if (substr($this->Identite['FJ'],0,1) != 1 && $TopEvenCloture && in_array($evenProcolLast, array(1502,1503))) { + if ($this->debug) file_put_contents('procol.log', "=== Cloture ===\n", FILE_APPEND); + if ($this->debug) file_put_contents('procol.log', "Cloture après procédure\n", FILE_APPEND); + $this->SituationCloture = true; + } else { + // --- Evenements effaçant l'indicateur P dans Situation Juridique + if ($this->debug) file_put_contents('procol.log', "=== Traitement effacement procol ===\n", FILE_APPEND); + $tabNoProcol = array(); + $tmp = $this->iDb->select('jo.tabEvenements', 'codEven, affProcol', 'affProcol>0', false, MYSQL_ASSOC); + foreach ($tmp as $tmp2) { + $tabNoProcol[$tmp2['codEven']] = $tmp2['affProcol']; + } + if (array_key_exists($evenProcolLast, $tabNoProcol)) { + if ($this->debug) file_put_contents('procol.log', "Vérification Effacement procol : $evenProcolLast\n", FILE_APPEND); + switch ($tabNoProcol[$evenProcolLast]) { + // PAS DE MENTION DE LA PROCOL + case 1: + if ($this->debug) file_put_contents('procol.log', "affProcol = 1\n", FILE_APPEND); $tabRet = array(); - } elseif ($tabId['Actif']*1 > 0 && substr($tabId['FJ'],0,1)*1 != 9) { - if ($this->debug) file_put_contents('procol.log', "affProcol = 2", 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) { + break; + // Ne pas mentionner la procol si CJ=1xxx OU si actif et CJ!=9xxx et even de plus d'un mois + case 2: + if (substr($this->Identite['FJ'],0,1)*1==1) { + if ($this->debug) file_put_contents('procol.log', "affProcol = 2\n", FILE_APPEND); + $tabRet = array(); + } 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(); } - } - break; - // Pas Procol si actif RCS - case 3: - if ($tabId['Actif']*1>0) { - if ($this->debug) file_put_contents('procol.log', "affProcol = 3\n", FILE_APPEND); - $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']; + 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; } } - 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); - $derEx = $classWDate->dateT('Ymd', 'd/m/Y', $derExercice); - $derPr = $classWDate->dateT('Ymd', 'd/m/Y', $evenProcolDateLast); + + // --- Procédure trop ancienne plus de 12 ans et actif + $dateTropAncienne = (date('Ymd')*1)-120000; + if ($evenProcolLastDate < $dateTropAncienne && $this->Identite['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, + 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(); + } } } } diff --git a/library/Metier/Partenaires/MMap.php b/library/Metier/Partenaires/MMap.php index 574a6f31..f9c6e6f9 100644 --- a/library/Metier/Partenaires/MMap.php +++ b/library/Metier/Partenaires/MMap.php @@ -1,12 +1,4 @@ decode($content); - } -} -if ( !function_exists('json_encode') ){ - function json_encode($content){ - require_once 'Services/JSON.php'; - $json = new Services_JSON; - - return $json->encode($content); - } -} ?> diff --git a/library/Metier/Scores/MScores.php b/library/Metier/Scores/MScores.php index 572d586b..fe27135e 100644 --- a/library/Metier/Scores/MScores.php +++ b/library/Metier/Scores/MScores.php @@ -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'); - if (count($tabProCol)>0) $ANNONCEPCHISTO=true; - else $ANNONCEPCHISTO=false; - if ($tabIdentite['Actif']==0) $ELIMINE=true; - else $ELIMINE=false; + if (count($tabProCol) > 0) { + $ANNONCEPCHISTO = true; + } + else { + $ANNONCEPCHISTO = false; + } + if ($tabIdentite['Actif'] == 0) { + $ELIMINE = true; + } + else { + $ELIMINE = false; + } } /** Annonces d'Homologation **/ @@ -2761,6 +2771,9 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail if ($tabIdentite['SituationJuridique']=='P') { $noteSolvabilite = $SCORECONF = $SCOREDIRI = 0; $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') { $noteSolvabilite = $SCORECONF = $SCOREDIRI = 0; $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.'; break; } - } else { - // Encours à 0 car score < 40 + } + // Encours à 0 car score < 40 + else { $ENCOURSCALC=$ENCOURS; $ENCOURS=0; $libEncours='Aucun encours conseillé par rapport à notre évaluation.';