Gestion de l'effacement du plan

This commit is contained in:
Michael RICOIS 2016-02-11 09:41:27 +00:00
parent d3c9ed4b34
commit 5e780ab91a

View File

@ -4909,7 +4909,6 @@ class MInsee
if ( intval($even) != 0 ) {
if ( ($this->dureePlan==0 || $this->dureePlan==120) && in_array($even, $evenDetect) ) {
if ($this->debug) file_put_contents('procol.log', "BODACC MATCH DUREE PLAN \n", FILE_APPEND);
//file_put_contents('plan.log', "MATCH DUREE PLAN : ", FILE_APPEND);
// --- Lecture dureePlan dans annonce
$this->debutPlan = str_replace('-','',$annonce['dateJugement']); // SSAAMMJJ
if ( preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uisu', $annonce['annonce'], $matches) ) {
@ -5364,10 +5363,8 @@ class MInsee
$sqlAnnonceWhere = "a.siren=$siren";
$sqlAnnonceWhere.= $sqlAnnonceRubrique;
$sqlAnnonceWhere.= " AND a.tribunal=t.triCode AND a.dateSuppr=0";
if ($visualisation === true) {
// --- Ne pas afficher les annonces si la procédure à plus de 4 mois
$sqlAnnonceWhere.= " AND a.dateJugement > DATE_SUB(NOW(), INTERVAL 24 MONTH)";
}
// --- 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";
$sqlAnnonce = $this->getAnnoncesLegalesAnnonce()." WHERE ".$sqlAnnonceWhere;
}
@ -5821,46 +5818,55 @@ class MInsee
if ($visualisation === false) {
// --- Si il y a des annonces
if (count($tabRet) > 0) {
if ($this->debug) file_put_contents('procol.log', "Even ".print_r($tabRet,1)."\n", FILE_APPEND);
$tabJugements = array();
// --- Liste des jugements principaux - élimination des secondaires
// --- Liste des jugements principaux, élimination des secondaires - Trier ante-chronologique
foreach ($tabRet as $i => $ann) {
$tabJugements[$ann['dateJugement']] = $ann['evenements'][0]['CodeEven'];
$item = new stdClass();
$item->date = str_replace('-','', $ann['dateJugement']);
$item->dateISO8601 = $ann['dateJugement'];
$item->code = $ann['evenements'][0]['CodeEven'];
$tabJugements[] = $item;
// Derniere date de procol
if ($i == 0) {
$evenProcolDateLast = $item->date;
}
// Premier evenement
if ($i == count($tabRet)-1) {
$evenProcolFirst = $item->code;
}
}
// --- Gestions des conditions pour l'affichage de l'indicateur procédure collectives
if ($rubrique=='P') {
// Si plan recherche des annonces suivantes
if ($this->dureePlan > 0) {
if ($this->debug) file_put_contents('procol.log', "Elimination du plan\n", FILE_APPEND);
ksort($tabJugements);
// Tableau chronologique des dates de jugement => code jugement
foreach ($tabJugements as $dateJuge => $codeJuge) {
$dateCompare = intval(str_replace('-', '', $dateJuge));
if ($this->debug) file_put_contents('procol.log', $dateJuge.'>'.$this->debutPlan."\n", FILE_APPEND);
krsort($tabJugements);
foreach ($tabJugements as $i => $j) {
// Si plan suivi de SV, RJ, LJ ou clôture alors pas de plan
if ($dateCompare>$this->debutPlan & (
($codeJuge>=1100 && $codeJuge<=1101)|| // Sauvegarde
($codeJuge>=1200 && $codeJuge<=1202)|| $codeJuge==1211|| // RJ
($codeJuge>=1300 && $codeJuge<=1313)|| // LJ
($codeJuge>=1500 && $codeJuge<=1504) ) ) { // Cloture
if ($j->date > $this->debutPlan & (
($j->code>=1100 && $j->code<=1101) || // Sauvegarde
($j->code>=1200 && $j->code<=1202) || // RJ
in_array($j->code, array(1211,1217)) || // RJ
($j->code>=1300 && $j->code<=1314) || // LJ
in_array($j->code, array(1417,1418,1419)) || // Extension SV, LJ, RJ
($j->code>=1500 && $j->code<=1504) || // Cloture
in_array($j->code, array(1514)))) { // Cloture
$this->dureePlan = 0;
}
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', "Durée du plan :".$this->dureePlan."\n", FILE_APPEND);
}
// --- Tableau ante-chronologique des dates de jugement ==> code jugement
krsort($tabJugements);
$evenFirst = current($tabJugements);
$derProcol = str_replace('-','', key($tabJugements))*1;
// --- Evenements effaçant l'indicateur P dans Situation Juridique
$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($evenFirst, $tabNoProcol)) {
switch ($tabNoProcol[$evenFirst]) {
if (array_key_exists($evenProcolFirst, $tabNoProcol)) {
switch ($tabNoProcol[$evenProcolFirst]) {
// PAS DE MENTION DE LA PROCOL
case 1:
if ($this->debug) file_put_contents('procol.log', "affProcol = 1\n", FILE_APPEND);
@ -5873,7 +5879,10 @@ class MInsee
$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($derProcol,4,2)*1)+1,substr($derProcol,6,2),substr($derProcol,0,4)));
$maxLatence = date('Ymd',mktime(0,0,0,
substr($evenProcolDateLast,4,2)*1+1,
substr($evenProcolDateLast,6,2),
substr($evenProcolDateLast,0,4)));
if (date('Ymd') > $maxLatence) {
$tabRet = array();
}
@ -5893,16 +5902,16 @@ class MInsee
break;
}
}
// --- Procédure trop ancienne plus de 12 ans et actif
$dateTropAncienne = (date('Ymd')*1)-120000;
if ($derProcol < $dateTropAncienne && $tabId['Actif']*1 > 0) {
$derPr = $classWDate->dateT('Ymd','d/m/Y', $derProcol);
if ($evenProcolDateLast < $dateTropAncienne && $tabId['Actif']*1 > 0) {
$derPr = $classWDate->dateT('Ymd','d/m/Y', $evenProcolDateLast);
$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 ( ($evenFirst>=1300 && $evenFirst<=1313 && $evenFirst!=1310) || ($evenFirst>=1500 && $evenFirst<=1504)) {
elseif ( ($evenProcolFirst>=1300 && $evenProcolFirst<=1313 && $evenProcolFirst!=1310)
|| ($evenProcolFirst>=1500 && $evenProcolFirst<=1504) ) {
$mBil = new MBilans($siren, $this->iDb);
$tabBilans = $mBil->listeBilans($accesDist);
$derExercice = 0;
@ -5911,30 +5920,27 @@ class MInsee
$derExercice = $bilan['dateExercice'];
}
}
if ($derExercice>$derProcol) {
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', $derProcol);
$derPr = $classWDate->dateT('Ymd', 'd/m/Y', $evenProcolDateLast);
$tabRet = array();
}
}
}
// --- Dissolution mais bilan après événements
elseif ($rubrique == 'D') {
// Tableau ante-chronologique des dates de jugement ==> code jugement
krsort($tabJugements);
$mBil = new MBilans($siren, $this->iDb);
$tabBilans = $mBil->listeBilans(false, 3);
$derExercice = 0;
$derProcol = str_replace('-','',key($tabJugements))*1;
foreach ($tabBilans as $idx => $bilan){
if ($bilan['dateExercice'] > $derExercice) {
$derExercice = $bilan['dateExercice'];
}
}
if ($derExercice > $derProcol) {
$derEx = $classWDate->dateT('Ymd','d/m/Y',$derExercice);
$derPr = $classWDate->dateT('Ymd','d/m/Y',$derProcol);
if ($derExercice > $evenProcolDateLast) {
$derEx = $classWDate->dateT('Ymd','d/m/Y', $derExercice);
$derPr = $classWDate->dateT('Ymd','d/m/Y', $evenProcolDateLast);
$tabRet = array();
}
}