From 5fe985b0818adda981aa24da8f6c80cf190babaf Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Fri, 4 Sep 2015 15:44:31 +0000 Subject: [PATCH] Update libs --- library/Metier/insee/classMInsee.php | 250 +++++++++++++-------------- library/Scores/Ws/Server.php | 12 +- library/framework/common/strings.php | 9 +- 3 files changed, 134 insertions(+), 137 deletions(-) diff --git a/library/Metier/insee/classMInsee.php b/library/Metier/insee/classMInsee.php index 1e9f9869..072c5989 100644 --- a/library/Metier/insee/classMInsee.php +++ b/library/Metier/insee/classMInsee.php @@ -2690,10 +2690,16 @@ class MInsee if (intval($siren) > 100 && $tabInsee['ACTIF']*1 == 1 && $tabInsee['actifEco']*1 == 0) { // L'établissement est actif juridiquement à l'INSEE mais sans activité économique $tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE', - "insSIREN=$siren AND insNIC=$nic AND insEVE IN ('MPF','MNP','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC); + "insSIREN=$siren AND insNIC=$nic AND insEVE IN ('OD','TD','MPF','MNP','420','425','620','621','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC); if (count($tabTmp)>0) { $tabModif=$tabTmp[0]; - switch(''.$tabModif['insEVE']) { + switch(''.$tabModif['insEVE']) { + case 'OD': + case 'TD': + case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise) + case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire // + case '620': + case '621': case '650': // Fermé économiquement $tabInsee['actifEcoType']='ECOF'; $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; @@ -2705,32 +2711,19 @@ class MInsee case 'MNP': // Présumé Fermé par la trimestrille NPAI $tabInsee['actifEcoType']='NPAI'; $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; - break; - } - } - - // Evènement Relatif à une cessation ECO entreprise - $tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE', - "insSIREN=$siren AND insEVE IN ('OD','TD','420','425','620','621') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC); - if (count($tabTmp)>0) { - $tabModif=$tabTmp[0]; - switch(''.$tabModif['insEVE']) { - case 'OD': - case 'TD': - case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise) - case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire // - case '620': - case '621': - $tabInsee['actifEcoType']='ECOF'; - $tabInsee['actifEcoDate']=$tabModif['insDATEVE']; + break; + default: + $tabInsee['actifEco']=1; + $tabInsee['actifEcoDate']=''; + $tabInsee['actifEcoType']=''; break; } } } - if ($tabInsee['CIVILITE']==1) $dir1Genre='M'; - elseif ($tabInsee['CIVILITE']==2) $dir1Genre='F'; - elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $dir1Genre=''; + $dir1Genre=''; + if ($tabInsee['CIVILITE']==1) $dir1Genre='M'; + elseif ($tabInsee['CIVILITE']==2) $dir1Genre='F'; $tabRet = array( 'id' => $etab['id'], @@ -2992,7 +2985,7 @@ class MInsee $tabProcol = $this->getAnnoncesLegales($siren, 0, 'P', false); if ( count($tabProcol) > 0 ) { $tabDates = array(); - foreach ($tabProcol as $iProcol=>$procol) { + foreach ($tabProcol as $iProcol => $procol) { $tabDates[] = $procol['dateJugement']; } rsort($tabDates); @@ -3061,7 +3054,7 @@ class MInsee if ($tabInsee['CIVILITE']==1) { $tabRet['dir1NomPrenom']='M. '; $tabRet['dir1Genre']='M'; } elseif ($tabInsee['CIVILITE']==2) { $tabRet['dir1NomPrenom']='Mme '; $tabRet['dir1Genre']='F'; } elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']=''; - $tabRet['dir1NomPrenom'].=$tabInsee['NOM']; + $tabRet['dir1NomPrenom'].=$tabInsee['NOM']; } if (intval($siren) > 0) { @@ -3409,6 +3402,7 @@ class MInsee $tabRet['FJ2_Lib'] = $tabRet['FJ_lib']; } if ($fjInpi>=1000 && $fjInpi<2000) { + $tabRet['dir1Titre']='Personne physique'; $tabRet['dir1Code']='1050'; $tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom'])); $tabRet['dir1Nom']=strtoupper($entrep['nom']); @@ -5262,7 +5256,7 @@ class MInsee } } - if ($ann['Rubrique']=='procol') $procol=true; + if ($ann['Rubrique']=='procol') $procol = true; $dateCes=str_replace('-','', $ann['dateCessationActivite'])*1; $dateDeb=str_replace('-','', $ann['dateDebutActivite'])*1; @@ -5627,123 +5621,115 @@ class MInsee // --- Vérification if ($visualisation === false) { - /** - * On vérifie si la société n'est pas in bonis pour les raisons suivantes : - * 1502 : Clôture de la procédure pour extinction du passif - */ - if ($rubrique=='P') { - $tabJugements=array(); - foreach ($tabRet as $i=>$ann) { - $tabJugements[$ann['dateJugement']]=$ann['evenements'][0]['CodeEven']; + // --- Si il y a des annonces + if (count($tabRet) > 0) { + $tabJugements = array(); + // --- Liste des jugements principaux - élimination des secondaires + foreach ($tabRet as $i => $ann) { + $tabJugements[$ann['dateJugement']] = $ann['evenements'][0]['CodeEven']; } - // Si plan recherche des annonces suivantes - if ($this->dureePlan>0) { - ksort($tabJugements); - // Tableau chronologique des dates de jugement ==> code jugement - reset($tabJugements); - foreach ($tabJugements as $dateJuge=>$codeJuge) { - if ($dateJuge>$this->debutPlan & ( - ($codeJuge>=1100 && $codeJuge<=1101)|| // Sauvegarde - ($codeJuge>=1200 && $codeJuge<=1202)||$codeJuge==1211|| // RJ - ($codeJuge>=1300 && $codeJuge<=1313)|| // LJ - ($codeJuge>=1500 && $codeJuge<=1504) ) ) // Cloture + // --- 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) { + ksort($tabJugements); + // Tableau chronologique des dates de jugement => code jugement + foreach ($tabJugements as $dateJuge => $codeJuge) { // Si plan suivi de SV, RJ, LJ ou clôture alors pas de plan - $this->dureePlan=0; - } - } - - // Tableau ante-chronologique des dates de jugement ==> code jugement - krsort($tabJugements); - reset($tabJugements); - - $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(current($tabJugements), $tabNoProcol)) { - // Ce code jugement Procol n'appel pas forcément l'indicateur : SituationJuridique=P - switch($tabNoProcol[current($tabJugements)]) { - case 1: // PAS DE MENTION DE LA PROCOL - $tabRet=array(); - break; - case 2: // Ne pas mentionner la procol si CJ=1xxx - //$tabId=$this->getIdentiteLight($siren); - if (substr($tabId['FJ'],0,1)*1==1) { - $tabRet=array(); - } elseif ($tabId['Actif']*1>0 && substr($tabId['FJ'],0,1)*1<>9 ) { - $derProcol =str_replace('-','',key($tabJugements))*1; - $maxLatence=date('Ymd',mktime(0,0,0,(substr($derProcol,4,2)*1)+1,substr($derProcol,6,2),substr($derProcol,0,4))); - if (date('Ymd')>$maxLatence) { - $tabRet=array(); + if ($dateJuge>$this->debutPlan & ( + ($codeJuge>=1100 && $codeJuge<=1101)|| // Sauvegarde + ($codeJuge>=1200 && $codeJuge<=1202)|| $codeJuge==1211|| // RJ + ($codeJuge>=1300 && $codeJuge<=1313)|| // LJ + ($codeJuge>=1500 && $codeJuge<=1504) ) ) { // Cloture + $this->dureePlan = 0; } - } - break; - case 3: // Pas Procol si actif RCS - //$tabId=$this->getIdentiteLight($siren); - if ($tabId['Actif']*1>0) { - $tabRet=array(); - } - break; - case 4: // Le dernier jugement est un appel => Procol Suspendu - $this->appelJugement=true; - break; - } - } - - if (count($tabRet)>0) { - $derProcol=str_replace('-','',key($tabJugements))*1; - $dateTropAncienne=(date('Ymd')*1)-120000; - if ($derProcol<$dateTropAncienne) { - //$tabId=$this->getIdentiteLight($siren); - if ($tabId['Actif']*1>0) { - /** Procédure trop ancienne **/ - $derPr=$classWDate->dateT('Ymd','d/m/Y',$derProcol); - $tabRet=array(); } - } elseif ((current($tabJugements)>=1300 && current($tabJugements)<=1313 && current($tabJugements)!=1310) || - (current($tabJugements)>=1500 && current($tabJugements)<=1504)) { - /** En Procol mais présence d'une annonce de cloture ou LJ - avec Bilan publié ultérieurement - **/ - $mBil=new MBilans($siren, $this->iDb); - $tabBilans=$mBil->listeBilans($accesDist); - $derExercice=0; + } - foreach ($tabBilans as $idx=>$bilan) - if ($bilan['dateExercice']>$derExercice) $derExercice=$bilan['dateExercice']; + // Tableau ante-chronologique des dates de jugement ==> code jugement + krsort($tabJugements); + $evenFirst = current($tabJugements); + $derProcol = str_replace('-','', key($tabJugements))*1; + //@todo : Mettre en cache + $tabNoProcol = array(); + $tmp = $this->iDb->select('jo.tabEvenements', 'codEven, affProcol', 'affProcol>0', false, MYSQL_ASSOC); + foreach ($tmp as $tmp2) { + $tabNoProcol[$tmp2['codEven']] = $tmp2['affProcol']; + } + + // --- Evenements effaçant l'indicateur P dans Situation Juridique + if (array_key_exists($evenFirst, $tabNoProcol)) { + switch ($tabNoProcol[$evenFirst]) { + // PAS DE MENTION DE LA PROCOL + case 1: + $tabRet = array(); + break; + // Ne pas mentionner la procol si CJ=1xxx + case 2: + if (substr($tabId['FJ'],0,1)*1==1) { + $tabRet = array(); + } elseif ($tabId['Actif']*1 > 0 && substr($tabId['FJ'],0,1)*1 != 9) { + $maxLatence = date('Ymd',mktime(0,0,0,(substr($derProcol,4,2)*1)+1,substr($derProcol,6,2),substr($derProcol,0,4))); + if (date('Ymd') > $maxLatence) { + $tabRet = array(); + } + } + break; + // Pas Procol si actif RCS + case 3: + if ($tabId['Actif']*1>0) { + $tabRet = array(); + } + break; + // Le dernier jugement est un appel => Procol Suspendu + case 4: + $this->appelJugement = true; + 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); + $tabRet = array(); + } + // --- 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)) { + $mBil = new MBilans($siren, $this->iDb); + $tabBilans = $mBil->listeBilans($accesDist); + $derExercice = 0; + 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); - $tabRet=array(); + $derEx = $classWDate->dateT('Ymd', 'd/m/Y', $derExercice); + $derPr = $classWDate->dateT('Ymd', 'd/m/Y', $derProcol); + $tabRet = array(); } } } - } - - elseif ($rubrique=='D' && count($tabRet)>0) { - $tabJugements=array(); - foreach ($tabRet as $i=>$ann) { - $tabJugements[$ann['DateParution']]=$ann['evenements'][0]['CodeEven']; - } - // Tableau ante-chronologique des dates de jugement ==> code jugement - krsort($tabJugements); - reset($tabJugements); - - $mBil = new MBilans($siren, $this->iDb); - $tabBilans = $mBil->listeBilans($accesDist); - $derExercice = 0; - $derProcol = str_replace('-','',key($tabJugements))*1; - foreach ($tabBilans as $idx=>$bilan){ - if ($bilan['dateExercice']>$derExercice) { - $derExercice = $bilan['dateExercice']; + // --- 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); + $tabRet = array(); } - } - if ($derExercice > $derProcol) { - $derEx=$classWDate->dateT('Ymd','d/m/Y',$derExercice); - $derPr=$classWDate->dateT('Ymd','d/m/Y',$derProcol); - $tabRet = array(); } } } diff --git a/library/Scores/Ws/Server.php b/library/Scores/Ws/Server.php index f359cbd1..acfb32bf 100644 --- a/library/Scores/Ws/Server.php +++ b/library/Scores/Ws/Server.php @@ -339,6 +339,7 @@ class Scores_Ws_Server * @var unknown_type */ public $listError = array( + '0000' => "Erreur indeterminé", '0900' => "Identifiant ou mot de passe incorrect", '0901' => "Accès WS non authorisé pour cet utilisateur", '0902' => "Méthode non authorisée dans votre profil", @@ -684,8 +685,14 @@ class Scores_Ws_Server else { $sql->where('u.login=?', $login); } - $resultId = $userM->fetchAll($sql); - + try { + $resultId = $userM->fetchAll($sql); + } catch (Zend_Db_Exception $e) { + $c = Zend_Registry::get('config'); + file_put_contents($c->profil->path->data.'/log/application.log', + date('Y-m-d H:i:s').'- AUTH : '.$e->getMessage()."\n", FILE_APPEND); + return '0000'; + } /** * No user, deleted or disable */ @@ -1122,6 +1129,7 @@ class Scores_Ws_Server 'login' => $login, 'authenticate' => $authenticate, 'ip' => $ip, + 'dateInsert' => date('YmdHis'), ); try { $authLogM = new Application_Model_Sdv1UtilisateursAuthLog(); diff --git a/library/framework/common/strings.php b/library/framework/common/strings.php index beb5fb01..0b07228d 100644 --- a/library/framework/common/strings.php +++ b/library/framework/common/strings.php @@ -24,12 +24,15 @@ function initstr($chaine, $taille, $caractere_pour_combler=' ', $align=ALIGN_LEF return substr($chaine, 0, $taille); } + $encoding = mb_internal_encoding(); + $diff = strlen($chaine) - mb_strlen($chaine, $encoding); + if ($align == ALIGN_RIGHT) { - return str_pad($chaine ,$taille, $caractere_pour_combler, STR_PAD_LEFT); - } + return str_pad($chaine, $taille + $diff, $caractere_pour_combler, STR_PAD_LEFT); + } if ($align == ALIGN_LEFT) { - return str_pad($chaine, $taille, $caractere_pour_combler, STR_PAD_RIGHT); + return str_pad($chaine, $taille + $diff, $caractere_pour_combler, STR_PAD_RIGHT); } return $str;