Hard Work to limit number of request, function getAnnoncesLegales

This commit is contained in:
Michael RICOIS 2015-09-01 12:33:38 +00:00
parent a0ccc47919
commit 43fb43d538
20 changed files with 2781 additions and 537 deletions

View File

@ -100,10 +100,6 @@ apt-get install php-apc
apt-get install php5-curl
apt-get install php5-xmlrpc
Paquet PEAR
- Mail
- Mail_Mime
WKHTMLTOPDF
===========
apt-get install libXrender1

View File

@ -2262,7 +2262,7 @@ class MInsee
if ($nic<>0) $where=" siren=$siren AND nic=$nic ";
else $where=" siren=$siren AND siege=1 ";
$insee = $this->iDb->select('insee.bascule', 'siren, nic, apen5, apen4, apet5, apet4', $where, true, MYSQL_ASSOC);
$insee = $this->iDb->select('insee.bascule', 'siren, nic, apen5, apen4, apet5, apet4', $where, false, MYSQL_ASSOC);
if ( count($insee)==0 ) {
return false;
}
@ -2992,7 +2992,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);
@ -3621,7 +3621,7 @@ class MInsee
// Eléments Financiers en provenance du dernier Bilan
$rep = $this->iDb->select('jo.bilans',
'siren, dateExercice, dureeExercice, monnaie, typeBilan, unite, postes, dateProvPartenaire, dateInsert',
"siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", true, MYSQL_ASSOC);
"siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC);
if ( count($rep)>0 ) {
$entrep = $rep[0];
$tabRet['bilanAnnee'] = substr($entrep['dateExercice'],0,4);
@ -4067,6 +4067,14 @@ class MInsee
return $tabRet;
}
/**
* Retourne le nombre d'annonces
* @param string $siren
* @param number $idAnnonce
* @param string $rubrique
* @param string $deleted
* @return int
*/
public function getAnnoncesLegalesCount($siren, $idAnnonce = 0, $rubrique = '', $deleted = false)
{
// --- Where Bodacc
@ -4112,9 +4120,10 @@ class MInsee
}
/**
*
* Where SQL
* @param string $type bodacc, histo
* @param mixed $rubrique
* @return boolean|string
*/
public function getAnnoncesLegalesRubrique($type, $rubrique = '')
{
@ -4232,22 +4241,34 @@ class MInsee
// --- Type annonce
if ($type == 'annonce') {
if ($rubrique=='P' ||
$rubrique=='PH') { // Procédure collective
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
$where = " AND a.typeEven BETWEEN 1000 AND 1999 AND a.typeEven NOT IN(1005, 1010, 1050, 1055, 1550) ";
} elseif ($rubrique=='D') { // Dissolution de la société
}
// Dissolution de la société
elseif ($rubrique=='D') {
$where = " AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) ";
} elseif ($rubrique=='A') { // Absorption
}
// Absorption
elseif ($rubrique=='A') {
$where = " AND a.typeEven IN (2720, 2721) ";
} elseif ($rubrique=='C' || $rubrique=='BODC') { // Dépôt des comptes
}
// Dépôt des comptes
elseif ($rubrique=='C' || $rubrique=='BODC') {
$where = " AND a.typeEven BETWEEN 3000 AND 3999 ";
} elseif ($rubrique=='R') {
$where = " AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) ";
} elseif ($rubrique=='L') { // Location gérance Locataire
}
// Location gérance Locataire
elseif ($rubrique=='L') {
$where = " AND a.typeEven IN (2800, 2875, 2880, 2881, 2885, 2840) ";
} elseif ($rubrique=='G') { // Location gérance Propriétaire
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
$where = " AND a.typeEven IN (2850, 2851, 2860, 2870) ";
} elseif ($rubrique=='V') { // Ventes/Cessions
}
// Ventes/Cessions
elseif ($rubrique=='V') {
$where = " AND a.typeEven IN (5500, 5501, 5502, 5503, 5510, 5600, 5650) ";
} elseif (is_array($rubrique) && count($rubrique)>0) {
$where = " AND (a.typeEven IN (".implode(',',$rubrique).') OR ';
@ -4265,6 +4286,420 @@ class MInsee
return $where;
}
/**
* Parse les annonces légales pour déterminer leur rubrique
* plus rapide d'executer sur la liste des annonces légales que d'executer les requetes SQL
* @param array $annonces Annonces au format BDD
* @param mixed $rubrique
* @return array
* Retourne une liste filtrer suivant la/les rubriques
*/
public function annoncesInRubrique($annonces, $rubrique)
{
$annonceFilter = array();
foreach ($annonces as $ann) {
// --- Formatage bodacc
if ($ann['SourceTable'] == 'bodacc') {
$typeEven = explode(' ', $ann['typeEven']);
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
$evenOk = true;
foreach($typeEven as $even) {
if (in_array($even, array('1005','1010','1050','1055','1550'))) {
$evenOk = false;
break;
}
}
if ($ann['Rubrique'] == 'procol' && $evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Dissolution de la société
elseif ($rubrique=='D') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2202','2203','2204','2210','2211','2212'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Absorption
elseif ($rubrique=='A') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2720','2721'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// BODACC A
elseif ($rubrique=='BODA') {
if (in_array($ann['Rubrique'], array('creations', 'procol', 'ventes'))) {
$annonceFilter[] = $ann;
}
}
// BODACC B
elseif ($rubrique=='BODB') {
if (in_array($ann['Rubrique'], array('mmd', 'radiations'))) {
$annonceFilter[] = $ann;
}
}
// Dépôt des comptes, BODACC C
elseif ($rubrique=='C' || $rubrique=='BODC') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('3100','3200','3300','3999'))) {
$evenOk = true;
break;
}
}
if ($ann['Rubrique'] == 'comptes' || $evenOk === true) {
$annonceFilter[] = $ann;
}
} elseif ($rubrique=='R') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2202','2203','2204','2210','2211','2212'))) {
$evenOk = true;
break;
}
}
if ($ann['Rubrique'] == 'radiations' || $evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Location gérance Locataire
elseif ($rubrique=='L') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2800','2875','2880','2881','2885','2840','4355'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2850','2851','2860','2870'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Ventes/Cessions
elseif ($rubrique=='V') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('5500','5501','5502','5503','5510','5600','5650'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
} elseif (is_array($rubrique) && count($rubrique) > 0) {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, $rubrique)) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
}
// --- Formattage Histo
elseif ($ann['SourceTable'] == 'histo') {
if ($rubrique=='P') {
if ($ann['E1GSIR'] != 340460104 && $ann['CODEVE'] >= 50 && $ann['CODEVE'] <= 79 ) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='PH') {
if ($ann['CODEVE'] >= 50 && $ann['CODEVE'] <= 79 ) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='R') {
if ($ann['CODEVE'] >= 40 && $ann['CODEVE'] <= 42 ) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='L') {
if (in_array($ann['CODEVE'], array(37,42))) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='G') {
if ($ann['CODEVE'] == 38) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='BODA') {
if ($ann['JAL'] == 1) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='BODB') {
if ($ann['JAL'] == 200) {
$annonceFilter[] = $ann;
}
}
elseif (is_array($rubrique)) {
$tabCodEve = $tabCodRol = array();
foreach ($rubrique as $codeEvenTmp) {
$codRet=array_search($codeEvenTmp, $this->HistoRoleConvert); // Ne gère pas les ; de tabtmp2
if ($codRet) {
$tabCodRol[] = $codRet;
} else {
$tabCodEve[] = array_search($codeEvenTmp, $this->HistoEvenConvert)*1;
}
}
$where ='';
$tabCodEve = array_unique($tabCodEve);
$tabCodRol = array_unique($tabCodRol);
if (in_array($ann['CODEVE'], $tabCodEve) || in_array($ann['ROLE'], $tabCodRol)) {
$annonceFilter[] = $ann;
}
}
}
// --- Formattage Annonce
elseif ($ann['SourceTable'] == 'annonce') {
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
if ($ann['typeEven'] >= 1000 && $ann['typeEven'] <= 1999 && !in_array($ann['typeEven'], array('1005','1010','1050','1055','1550'))) {
$annonceFilter[] = $ann;
}
}
// Dissolution de la société
elseif ($rubrique=='D') {
if (in_array($ann['typeEven'], array('2202','2203','2204','2210','2211','2212'))) {
$annonceFilter[] = $ann;
}
}
// Absorption
elseif ($rubrique=='A') {
if (in_array($ann['typeEven'], array('2720','2721'))) {
$annonceFilter[] = $ann;
}
}
// Dépôt des comptes
elseif ($rubrique=='C' || $rubrique=='BODC') {
if ($ann['typeEven'] >= 3000 && $ann['typeEven'] <= 3999) {
$annonceFilter[] = $ann;
}
} elseif ($rubrique=='R') {
if (in_array($ann['typeEven'], array('2202','2203','2204','2210','2211','2212'))) {
$annonceFilter[] = $ann;
}
}
// Location gérance Locataire
elseif ($rubrique=='L') {
if (in_array($ann['typeEven'], array('2800','2875','2880','2881','2885','2840'))) {
$annonceFilter[] = $ann;
}
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
if (in_array($ann['typeEven'], array('2850','2851','2860','2870'))) {
$annonceFilter[] = $ann;
}
}
// Ventes/Cessions
elseif ($rubrique=='V') {
if (in_array($ann['typeEven'], array('5500','5501','5502','5503','5510','5600','5650'))) {
$annonceFilter[] = $ann;
}
} elseif (is_array($rubrique) && count($rubrique)>0) {
foreach($typeEven as $even) {
if (in_array($even, $rubrique)) {
$annonceFilter[] = $ann;
}
}
}
}
}
return $annonceFilter;
}
/**
* Tri les annonces de la fonction getAnnoncesLegales
* @param array $annonces
* @param mixed $rubrique
* @return array
*/
public function annoncesFilter($annonces, $rubrique)
{
$annonceFilter = array();
foreach ($annonces as $ann) {
$typeEven = array();
foreach ($ann['evenements'] as $item) {
$typeEven[] = $item['CodeEven'];
}
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
$evenOk = true;
foreach($typeEven as $even) {
if (in_array($even, array('1005','1010','1050','1055','1550'))) {
$evenOk = false;
break;
}
}
if ($ann['Rubrique'] == 'procol' && $evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Dissolution de la société
elseif ($rubrique=='D') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2202','2203','2204','2210','2211','2212'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Absorption
elseif ($rubrique=='A') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2720','2721'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// BODACC A
elseif ($rubrique=='BODA') {
if (in_array($ann['Rubrique'], array('creations', 'procol', 'ventes'))) {
$annonceFilter[] = $ann;
}
}
// BODACC B
elseif ($rubrique=='BODB') {
if (in_array($ann['Rubrique'], array('mmd', 'radiations'))) {
$annonceFilter[] = $ann;
}
}
// Dépôt des comptes, BODACC C
elseif ($rubrique=='C' || $rubrique=='BODC') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('3100','3200','3300','3999'))) {
$evenOk = true;
break;
}
}
if ($ann['Rubrique'] == 'comptes' || $evenOk === true) {
$annonceFilter[] = $ann;
}
} elseif ($rubrique=='R') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2202','2203','2204','2210','2211','2212'))) {
$evenOk = true;
break;
}
}
if ($ann['Rubrique'] == 'radiations' || $evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Location gérance Locataire
elseif ($rubrique=='L') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2800','2875','2880','2881','2885','2840','4355'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('2850','2851','2860','2870'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
// Ventes/Cessions
elseif ($rubrique=='V') {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, array('5500','5501','5502','5503','5510','5600','5650'))) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
} elseif (is_array($rubrique) && count($rubrique) > 0) {
$evenOk = false;
foreach($typeEven as $even) {
if (in_array($even, $rubrique)) {
$evenOk = true;
break;
}
}
if ($evenOk === true) {
$annonceFilter[] = $ann;
}
}
}
return $annonceFilter;
}
/**
* Analyse les annonces légales pour déterminer si en plan
* @param string $type Type d'annonce bodacc|histo|annonces
* @param int $fj Code catégorie juridique
* @param array $annonce Une annonce
*/
public function getAnnoncesLegalesPlan($type, $fj, $annonce)
{
$classWDate = new WDate();
@ -4827,7 +5262,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;
@ -5192,123 +5627,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();
}
}
}
@ -5327,28 +5754,23 @@ class MInsee
*/
public function getAnnoncesBalo($siren, $idAnnonce=0, $offset=0, $lignes=100)
{
$siren=$siren*1;
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
$strIdAnn='';
$tabRet=array();
if ($idAnnonce>0) {
//$idBalo=//.$tabBalo['Num_Affaire'].','.$tabBalo['Num_Parution'];
$tmp=explode('.', $idAnnonce);
//if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0];
if (is_numeric($tmp[0])) $num=$tmp[0];
if (is_numeric($tmp[1])) $par=$tmp[1];
//$idBaloPdf=basename($tabBalo['Url_Annonce_Pdf']);
if (is_numeric($tmp[0])) $num=$tmp[0];
if (is_numeric($tmp[1])) $par=$tmp[1];
$strIdAnn=" AND Num_Affaire='$num' AND Num_Parution='$par' ";
//$idAnnonce
}
$mBalo = new MBalo();
$bodacc = $this->iDb->select('jo.balo',
"Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire LIMIT $offset, $lignes",
$bodacc = $this->iDb->select('jo.balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution,
Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert",
"Societe_Rcs='$siren' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire LIMIT $offset, $lignes",
false, MYSQL_ASSOC);
$k=0;
@ -5361,28 +5783,26 @@ class MInsee
);
$tabRet[$k]=array(
'id'=>$ann['Num_Affaire'].'.'.$ann['Num_Parution'],
'BodaccCode'=>'BALO',
'BodaccNum'=>$ann['Num_Parution'],
'NumAnnonce'=>$ann['Num_Affaire'],
'DateParution'=>$ann['Date_Parution'],
//'Departement'=>'',$ann['Tribunal_Dept'],
//'Tribunal'=>$ann['triNom'],
//'TribunalSiret'=>$ann['triSiret'],
//'Rubrique'=>$ann['Rubrique'],
'typeAnnonce'=>'Insertion',
'dateInsertionSD'=>$ann['dateInsert'],
'evenements'=>$tabRetEven,
'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']),
'id' => $ann['Num_Affaire'].'.'.$ann['Num_Parution'],
'BodaccCode' => 'BALO',
'BodaccNum' => $ann['Num_Parution'],
'NumAnnonce' => $ann['Num_Affaire'],
'DateParution' => $ann['Date_Parution'],
'typeAnnonce' => 'Insertion',
'dateInsertionSD' => $ann['dateInsert'],
'evenements' => $tabRetEven,
'Lien_Annonce_Pdf' => basename($ann['Url_Annonce_Pdf']),
);
if ($idAnnonce<>0)
$tabRet[$k]['texteAnnonce'] = strtr(
preg_replace('/<html.*<body.*>/Uis', '',
preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])),
array('&nbsp;'=>' ', '</html>'=>'', '</body>'=>'')
);
if ($idAnnonce<>0) {
$tabRet[$k]['texteAnnonce'] = strtr(
preg_replace('/<html.*<body.*>/Uis', '',
preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])),
array('&nbsp;'=>' ', '</html>'=>'', '</body>'=>'')
);
}
}
}
return $tabRet;
}
@ -5394,7 +5814,7 @@ class MInsee
public function getAnnoncesBaloCount($siren)
{
$bodacc = $this->iDb->select('jo.balo', "count(*) AS nb",
"Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC);
"Societe_Rcs='$siren' ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC);
$nb = 0;
if (count($bodacc)>0) {
$nb = $bodacc[0]['nb'];
@ -6276,13 +6696,12 @@ class MInsee
if ($nic=='' || $nic*1==0 || $nic>99999)
$strNic=" AND nic=nicSiege";
else $strNic=" AND nic=$nic";
$tabTmp=$this->iDb->select('insee.insee_avis', 'raiSoc, dateMaj, siren, nic, etatEt, dateEtatEt, typeEtab, adresseEt0, adresseEt1, adresseEt2, adresseEt3, fj, fjLib, nafEt, nafEtLib, effEtPeriode, effEtTr, erreurs, adresseEn0, adresseEn1, adresseEn2, adresseEn3, nafEn, nafEnLib, effEnPeriode, effEnTr, fjEn, fjEnLib, employes, etatEn, dateEtatEn, nicSiege, nbEtabActifs, dateInsert, dateUpdate, DATE(IF(dateUpdate>dateInsert, dateUpdate, dateInsert))*1 AS dateMajSD',
"siren=$siren $strNic",
false, MYSQL_ASSOC);
$tabTmp=$this->iDb->select('insee.insee_avis',
'raiSoc, dateMaj, siren, nic, etatEt, dateEtatEt, typeEtab, adresseEt0, adresseEt1, adresseEt2, adresseEt3, fj, fjLib, nafEt, nafEtLib, effEtPeriode, effEtTr, erreurs, adresseEn0, adresseEn1, adresseEn2, adresseEn3, nafEn, nafEnLib, effEnPeriode, effEnTr, fjEn, fjEnLib, employes, etatEn, dateEtatEn, nicSiege, nbEtabActifs, dateInsert, dateUpdate, DATE(IF(dateUpdate>dateInsert, dateUpdate, dateInsert))*1 AS dateMajSD',
"siren=$siren $strNic", false, MYSQL_ASSOC);
$tabInfos=@$tabTmp[0];
if ($tabInfos['dateMajSD']==date('Ymd')) {
$tabInfos['enCache']=true;
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAvisInsee... en cache sur $siren", print_r($tabInfos, true));
return $tabInfos;
}
@ -6292,22 +6711,16 @@ class MInsee
$page = getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 5);
//Code en 4xx ou 5xx signifie une erreur du serveur
$codeN = floor($page['code']/100);
if($codeN==4 || $codeN==5)
{
if($codeN==4 || $codeN==5) {
return false;
}
else
{
else {
$tabInfos=array();
$referer = $url;
$body = $page['body'];
$serviceDispo = true;
if (preg_match("/<form name=\"demForm\" method=\"post\" action=\"\/avisitu\/IdentificationListeSiret.do/Uis", $body, $matches))
{
/*$fp = @fopen($fichier, "a");
@fwrite($fp, $body);
@fclose($fp);*/
if (preg_match("/<form name=\"demForm\" method=\"post\" action=\"\/avisitu\/IdentificationListeSiret.do/Uis", $body, $matches)) {
$cookie = $page['header']['Set-Cookie'];
usleep(round(rand(500000,2000000)));
@ -6332,9 +6745,6 @@ class MInsee
$page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 5);
$referer=$url;
$body = $page['body'];
/* $fp=@fopen($fichier, "a");
@fwrite($fp, $body);
@fclose($fp);*/
if (preg_match("/<h3>Fiche établissement<\/h3>/Uis", $body, $matches))//<li class="ongletActif">&eacute;tablissement</li>
$tabInfos['fiche']='etab';
@ -6387,17 +6797,6 @@ class MInsee
$tabInfos['effEtTr']=trim($matches[2]);
}
/* $strCsv=$siren.';'.$nic.';'.$tabInfos['fiche'].';'.$tabInfos['dateMaj'].';'.
$tabInfos['siren'].';'.$tabInfos['nic'].';'.$tabInfos['raiSoc'].';'.
$tabInfos['etat'].';'.$tabInfos['dateEtat'].';'.$tabInfos['fjCod'].';'.$tabInfos['fjLib'].';'.
$tabInfos['nafCod'].';'.$tabInfos['nafLib'].';'.$tabInfos['effPeriode'].';'.
$tabInfos['effTranche'].';'.
$tabInfos['typeEtab'].';'.@implode(';',@$tabAdresse).
";\n";
$fp=@fopen(PATH_LOGS."avis.csv", "a");
@fwrite($fp, $strCsv);
@fclose($fp);
*/
// $body contient l'avis de situation au format html
$tabErreurs=array();
if (preg_match('/name="erreurs" value="(.*)" class="erreurText" readonly/Ui', $body, $matches1) ||
@ -6471,10 +6870,8 @@ class MInsee
'dateInsert'=>date('YmdHis')));
}
$tabInfos['enCache']=false;
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAvisInsee... en ACCES HTTP sur $siren", print_r($tabInfos, true).mysql_error());
}
else
{
else {
return false;
}
return $tabInfos;

View File

@ -280,12 +280,13 @@ class MTel
}
}
if ($last)
{
$tabRet=array();
foreach($tabLast as $typeTel=>$tabPriorite) {
ksort($tabPriorite);
$tabRet[]=current($tabPriorite);
if ($last) {
$tabRet = array();
if ($tabLast != null && count($tabLast) > 0 ) {
foreach($tabLast as $typeTel=>$tabPriorite) {
ksort($tabPriorite);
$tabRet[]=current($tabPriorite);
}
}
}

View File

@ -42,7 +42,6 @@ class MTva
$info = $this->iDb->select('sdv1.siren_tva', "LPAD(cle,2,0) AS cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ", "siren=$siren", false, MYSQL_ASSOC);
$tab=$info[0];
if (count($tab)>0) {
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren en cache", print_r($tab, true));
if ( $tab['cle']<>NULL || ( $tab['cle']==NULL && $tab['DateMAJ']>=date('Ymd',mktime(0,0,0,date('m')-6,date('d'),date('Y'))) )) {
$cle=$tab['cle'];
if ($cle==NULL) { $attribue=false; $cle=$cleAlgo; }
@ -51,7 +50,6 @@ class MTva
$this->vatDefined=$attribue;
return true;
}
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren REVALIDATION", print_r($tab, true));
}
$cle=$cleAlgo;
$nbIndispo=0;
@ -98,8 +96,7 @@ class MTva
$this->vatDefined=true;
return true;
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array('siren'=>$siren, 'vatNumber'=>"FR$cle$siren", 'vatDefined'=>true));
} elseif (strpos($body, 'Service non disponible')>0 ||
strpos($body, 'ponse trop long.')>0) {
} elseif (strpos($body, 'Service non disponible')>0 || strpos($body, 'ponse trop long.')>0) {
$nbIndispo++;
if ($nbIndispo<3) {
//echo date ('Y/m/d - H:i:s') .' - '.$eol;

View File

@ -30,7 +30,7 @@ function getIndiscoreHisto($siren)
$ret = $iDb->query($query);
$tabRet = array();
while( $ret = $iDb->fetch(MYSQL_ASSOC) ) {
$tabRet[]=array(
$tabRet[] = array(
'siren' => $ret['siren'],
'actif' => $ret['actif'],
'procol' => $ret['procol'],
@ -619,7 +619,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
//Définition du nom des variables
require_once realpath(dirname(__FILE__)).'/globalCommentaires.php';
$NIVEAU=$cycleClient; // 1, 2, 3 ou 5 Niveau de version des commentaires
$NIVEAU = $cycleClient; // 1, 2, 3 ou 5 Niveau de version des commentaires
if ( $db === null ) {
$iDb = new WDB();
@ -628,12 +628,11 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
$iRncs = new MRncs($iDb);
$iInsee = new MInsee($iDb);
$iInsee->AnnoncesInMemory = true;
/**
* Récupération des informations identitaire
*/
$tabIdentite=$iInsee->getIdentiteEntreprise($siren, $nic, 0, false, $accesDist);
$tabIdentite = $iInsee->getIdentiteEntreprise($siren, $nic, 0, false, false);
$timer['identite']=microtime(true);
if (empty($tabIdentite)) {
@ -1119,7 +1118,6 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
// On renverse les tableaux 2008, 2007, 2006... en 2006, 2007, 2008
$tabRegX = array_reverse($tabRegX);
global $Y, $Yaff; // Tableau des années en paramètres + $nbAnnees Projetées
global $PROJECTAUX; // Taux de projection de n à n+$nbAnnees
global $PROJECCOEF;
@ -1321,43 +1319,48 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
/** Divers éléments calculés **/
$iInsee->AnnoncesLegalesVisu = true;
$CompanyAnnonces = $iInsee->getAnnoncesLegales($siren);
$iInsee->AnnoncesLegalesVisu = false;
// Annonces de dépôt des comptes
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, 'C', false, true);
$nbDepotCpt=count($tabDepotCpt);
$nbMoisMax=0;
$ANNONCEBODCMANQDATE=false;
$ANNONCEBODCREGUL=true;
$BILANDERANNEE=0;
$tabAnnBodc=array();
if($nbDepotCpt>0) {
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0) {
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, 'C');
$nbDepotCpt = count($tabDepotCpt);
$nbMoisMax = 0;
$ANNONCEBODCMANQDATE = false;
$ANNONCEBODCREGUL = true;
$BILANDERANNEE = 0;
$tabAnnBodc = array();
if($nbDepotCpt > 0) {
foreach ($tabDepotCpt as $iDep => $depot) {
if ($iDep == 0) {
// On prend la dernière Annonce de dépot de comptes
$ANNONCEPUB=true;
$ANNONCEPUB = true;
$tabTmp=array();
foreach ($depot['evenements'] as $even)
$tabTmp[]=$even['LibEven'];
// Libellé code Even de la plus récente annonce publiée peu importe la source
$ANNONCEDER=implode(', ', $tabTmp);
$ANNONCEDERDATE=$depot['DateParution'];
switch(substr($depot['BodaccCode'],0,1)) {
case 'B': $ANNONCEDERSOURCE='BODACC'; break;// INPI, Publication Régionale
case 'P': $ANNONCEDERSOURCE='RNCS'; break;
case 'G': $ANNONCEDERSOURCE='GREFFE DU TRIBUNAL'; break;
default: $ANNONCEDERSOURCE='JOURNAL REGIONAL'; break;
$tabTmp = array();
foreach ($depot['evenements'] as $even) {
$tabTmp[] = $even['LibEven'];
}
$ANNONCEDERTEXTE=$depot['texteAnnonce'];// INPI, Publication Régionale
// Libellé code Even de la plus récente annonce publiée peu importe la source
$ANNONCEDER = implode(', ', $tabTmp);
$ANNONCEDERDATE = $depot['DateParution'];
switch(substr($depot['BodaccCode'],0,1)) {
case 'B': $ANNONCEDERSOURCE = 'BODACC'; break; // INPI, Publication Régionale
case 'P': $ANNONCEDERSOURCE = 'RNCS'; break;
case 'G': $ANNONCEDERSOURCE = 'GREFFE DU TRIBUNAL'; break;
default: $ANNONCEDERSOURCE = 'JOURNAL REGIONAL'; break;
}
$ANNONCEDERTEXTE = $depot['texteAnnonce']; // INPI, Publication Régionale
// Date de l'annonce
$ANNONCEDATE=$depot['DateParution'];
$ANNONCEBODCDATE=$depot['DateParution'];
$BILANDERANNEE=date('Y', mktime(0, 0, 0, $classWdate->dateT('Y-m-d', 'm', $depot['dateEffet']), $classWdate->dateT('Y-m-d', 'd', $depot['dateEffet']), $classWdate->dateT('Y-m-d', 'Y', $depot['dateEffet'])+1));
$ANNONCEBODDATE=$depot['DateParution'];//dateEffet
if ($nbDepotCpt==1 && // 1 seul dépôt des comptes
abs($classWdate->nbMoisEntre(date('Y-m-d'), $dateCrea))<60) // Entreprise de moins de 5 ans (60 mois)
$nbMoisMax=abs($classWdate->nbMoisEntre($dateCrea,$depot['dateEffet']));
$ANNONCEDATE = $depot['DateParution'];
$ANNONCEBODCDATE = $depot['DateParution'];
$BILANDERANNEE = date('Y', mktime(0, 0, 0, $classWdate->dateT('Y-m-d', 'm', $depot['dateEffet']), $classWdate->dateT('Y-m-d', 'd', $depot['dateEffet']), $classWdate->dateT('Y-m-d', 'Y', $depot['dateEffet'])+1));
$ANNONCEBODDATE = $depot['DateParution']; //dateEffet
if ($nbDepotCpt==1 && // 1 seul dépôt des comptes
abs($classWdate->nbMoisEntre(date('Y-m-d'), $dateCrea))<60) {// Entreprise de moins de 5 ans (60 mois)
$nbMoisMax=abs($classWdate->nbMoisEntre($dateCrea,$depot['dateEffet']));
}
} else {
if (abs($classWdate->nbMoisEntre($lastDepot, $depot['dateEffet']))>$nbMoisMax) {
$nbMoisMax=abs($classWdate->nbMoisEntre($lastDepot, $depot['dateEffet']));
@ -1389,48 +1392,55 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
// Publications régulieres et 12 mois identiques
if ( ($nbMoisBilDate+1) == $nbMoisBilCumul
|| $nbMoisBilDate == $nbMoisBilCumul
|| ($nbMoisBilDate-1)==$nbMoisBilCumul ) {
$ANNONCEBODCREGUL=1;
|| ($nbMoisBilDate-1) == $nbMoisBilCumul ) {
$ANNONCEBODCREGUL = 1;
// Annonces BODACC de changement de date d'exercice
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2303), false);
if (count($tabDepotCpt)>0) $ANNONCEBODCREGUL=2;
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2303));
if (count($tabDepotCpt)>0) $ANNONCEBODCREGUL = 2;
} else {
// Pas de publication régulière des comptes
$ANNONCEBODCREGUL=0;
}
// Pas de publication régulière des comptes
else {
$ANNONCEBODCREGUL = 0;
}
if ($BILANDERANNEE==0 && date('m')*1>6) // Pas de Dernière année de bilan et on est en juillet passé
// Pas de Dernière année de bilan et on est en juillet passé
if ($BILANDERANNEE==0 && date('m')*1>6) {
$BILANDERANNEE=date('Y', mktime(0, 0, 0, date('m'), date('d'), date('Y')-1));
elseif ($BILANDERANNEE==0 && date('m')*1<=6) // Pas de Dernière année de bilan et on est au premier semestre
}
// Pas de Dernière année de bilan et on est au premier semestre
elseif ($BILANDERANNEE==0 && date('m')*1<=6) {
$BILANDERANNEE=date('Y', mktime(0, 0, 0, date('m'), date('d'), date('Y')-2));
}
// Annonces BODACC A
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, 'BODA', false, true);
$nbDepotA=count($tabDepotCpt);
if ($nbDepotA>0) {
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0) {
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, 'BODA');
$nbDepotA = count($tabDepotCpt);
if ($nbDepotA > 0) {
foreach ($tabDepotCpt as $iDep => $depot) {
if ($iDep == 0) {
$ANNONCEBODADATE=$depot['DateParution'];
if ($classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODADATE)>$classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODDATE)) {
$ANNONCEBODDATE=$depot['DateParution'];
$tabTmp=array();
foreach ($depot['evenements'] as $even)
$tabTmp[]=$even['LibEven'];
if ($classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODADATE) > $classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODDATE)) {
$ANNONCEBODDATE = $depot['DateParution'];
$tabTmp = array();
foreach ($depot['evenements'] as $even) {
$tabTmp[] = $even['LibEven'];
}
// Libellé code Even de la plus récente annonce publiée peu importe la source
$ANNONCEDER=implode(', ', $tabTmp);
$ANNONCEDER = implode(', ', $tabTmp);
$ANNONCEDERDATE=$depot['DateParution'];
switch(substr($depot['BodaccCode'],0,1)) {
case 'B': $ANNONCEDERSOURCE='BODACC'; break;// INPI, Publication Régionale
case 'P': $ANNONCEDERSOURCE='RNCS'; break;
case 'G': $ANNONCEDERSOURCE='GREFFE DU TRIBUNAL'; break;
default: $ANNONCEDERSOURCE='JOURNAL REGIONAL'; break;
case 'B': $ANNONCEDERSOURCE = 'BODACC'; break; // INPI, Publication Régionale
case 'P': $ANNONCEDERSOURCE = 'RNCS'; break;
case 'G': $ANNONCEDERSOURCE = 'GREFFE DU TRIBUNAL'; break;
default: $ANNONCEDERSOURCE = 'JOURNAL REGIONAL'; break;
}
$ANNONCEDERTEXTE=$depot['texteAnnonce'];// INPI, Publication Régionale
$ANNONCEDERTEXTE = $depot['texteAnnonce'];// INPI, Publication Régionale
}
} elseif ( ($iDep+1)==$nbDepotA ) {
// La première annonce de Bodacc A étant cencée être celle de création
$TRIBUNAL_CREATION=strtr($depot['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
}
// La première annonce de Bodacc A étant cencée être celle de création
elseif ( ($iDep+1)==$nbDepotA ) {
$TRIBUNAL_CREATION = strtr($depot['Tribunal'], array('TC '=>'Tribunal de Commerce de '));
}
$ANNONCEBOD++;
$ANNONCEBODA++;
@ -1438,26 +1448,27 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
// Annonces BODACC B
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, 'BODB', false, true);
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0) {
$ANNONCEBODBDATE=$depot['DateParution'];
if ($classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODBDATE)>$classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODDATE)) {
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, 'BODB');
if (is_array($tabDepotCpt) && count($tabDepotCpt) > 0){
foreach ($tabDepotCpt as $iDep => $depot) {
if ($iDep == 0) {
$ANNONCEBODBDATE = $depot['DateParution'];
if ($classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODBDATE) > $classWdate->dateT('Y-m-d', 'Ymd',$ANNONCEBODDATE)) {
$ANNONCEBODDATE=$depot['DateParution'];
$tabTmp=array();
foreach ($depot['evenements'] as $even)
$tabTmp[]=$even['LibEven'];
$tabTmp = array();
foreach ($depot['evenements'] as $even) {
$tabTmp[] = $even['LibEven'];
}
// Libellé code Even de la plus récente annonce publiée peu importe la source
$ANNONCEDER=implode(', ', $tabTmp);
$ANNONCEDERDATE=$depot['DateParution'];
$ANNONCEDER = implode(', ', $tabTmp);
$ANNONCEDERDATE = $depot['DateParution'];
switch(substr($depot['BodaccCode'],0,1)) {
case 'B': $ANNONCEDERSOURCE='BODACC'; break;// INPI, Publication Régionale
case 'P': $ANNONCEDERSOURCE='RNCS'; break;
case 'G': $ANNONCEDERSOURCE='GREFFE DU TRIBUNAL'; break;
default: $ANNONCEDERSOURCE='JOURNAL REGIONAL'; break;
}
$ANNONCEDERTEXTE=$depot['texteAnnonce'];// INPI, Publication Régionale
$ANNONCEDERTEXTE = $depot['texteAnnonce'];// INPI, Publication Régionale
}
}
$ANNONCEBOD++;
@ -1466,198 +1477,225 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
// Annonces BODACC Changement d'adresse
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2300,2301,2901,2902,2903,2904), false);
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0){ $ANNONCEADRDATE = $depot['DateParution']; }
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2300,2301,2901,2902,2903,2904));
if (is_array($tabDepotCpt) && count($tabDepotCpt) > 0){
foreach ($tabDepotCpt as $iDep => $depot) {
if ($iDep == 0) {
$ANNONCEADRDATE = $depot['DateParution'];
}
$ANNONCEADR++;
}
}
// Annonces BODACC Changement de dirigeant
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2315), false, true);
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0) { $ANNONCEDIRDATE = $depot['DateParution']; }
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2315));
if (is_array($tabDepotCpt) && count($tabDepotCpt) > 0){
foreach ($tabDepotCpt as $iDep => $depot) {
if ($iDep==0) {
$ANNONCEDIRDATE = $depot['DateParution'];
}
$ANNONCEDIR++;
if (preg_match('/Commissaire/i', $depot['texteAnnonce'])) {
if (preg_match('/Commissaire/iu', $depot['texteAnnonce'])) {
$ANNONCECAC++;
/** @todo $ANNONCECAC2 dans les 24 derniers mois
** et $ANNONCECAC3 dans les 36 derniers mois
**/
if ($ANNONCECAC==1)
$ANNONCECACDATE=$depot['DateParution'];
if ($ANNONCECAC == 1) {
$ANNONCECACDATE = $depot['DateParution'];
}
}
}
}
// Annonces BODACC Changement de FJur
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2307), false);
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0) { $ANNONCEFJURDATE = $depot['DateParution']; }
// @todo A revoir
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2307));
if (is_array($tabDepotCpt) && count($tabDepotCpt) > 0){
foreach ($tabDepotCpt as $iDep => $depot) {
if ($iDep==0) {
$ANNONCEFJURDATE = $depot['DateParution'];
}
$FJUR_PRE='';
//if ($iDep==1 && trim($depot['libFJ'])<>'') $FJUR_PRE=$depot['libFJ'];
$ANNONCEFJUR++;
}
}
// Annonces BODACC Fusion/Absorptions
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2700,2701,2702,2703,2710,2720,2721,2725,2726,2730,2740), false);
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
/**
* 2700 Fusion/Absorption (entitée absorbante)
* 2701 Fusion/Absorption (Entitée absorbante. Entité absorbée inconnue)
* 2702 Fusion/Absorption (Entitée absorbante. Entité absorbée mal SIRENEE)
* 2703 Fusion/Absorption (Entitée absorbante. Entité absorbée non SIRENEE)
* 2720 Fusion/Absorption (entitée absorbée)
* 2721 Fusion/Absorption (entitée absorbée non identifiée)
* 2725 Fusion/Absorption
*/
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2700,2701,2702,2703,2710,2720,2721,2725,2726,2730,2740));
if (is_array($tabDepotCpt) && count($tabDepotCpt) > 0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0) { $ANNONCEFUSDATE=$depot['DateParution']; }
if ($iDep == 0) {
$ANNONCEFUSDATE = $depot['DateParution'];
}
$ANNONCEFUS++;
foreach ($depot['evenements'] as $even) {
switch ($even['CodeEven']*1) {
case 2710: // Projet de fusion (entitée absorbante)
case 2726: // Projet de Fusion/Absorption
case 2730: // Projet de fusion (entitée absorbée)
$FUSIONPROJET_DATE=$depot['dateJugement']; // Date du projet de fusion
$FUSIONPROJET=$depot['complement']; // Présence d'un projet de fusion, libellé du projet
$FUSIONPROJET_SIREN='';
$FUSIONPROJET_DATE = $depot['dateJugement']; // Date du projet de fusion
$FUSIONPROJET = $depot['complement']; // Présence d'un projet de fusion, libellé du projet
$FUSIONPROJET_SIREN = '';
if (preg_match_all("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/", $FUSIONPROJET, $matches)) {
foreach ($matches[1] as $FUSIONPROJET_SIREN) {
$FUSIONPROJET_SIREN=strtr($FUSIONPROJET_SIREN, array('.'=>'','-'=>'', ' '=>''));
if (!$iInsee->valideSiren($FUSIONPROJET_SIREN)) $FUSIONPROJET_SIREN=0;
else break;
$FUSIONPROJET_SIREN = strtr($FUSIONPROJET_SIREN, array('.'=>'','-'=>'', ' '=>''));
if (!$iInsee->valideSiren($FUSIONPROJET_SIREN)) {
$FUSIONPROJET_SIREN=0;
} else {
break;
}
}
}
if ($FUSIONPROJET_SIREN*1<100) $FUSIONPROJET_SIREN='';
if ($FUSIONPROJET_SIREN*1<100) $FUSIONPROJET_SIREN = '';
break;
}
}
/*
2700 Fusion/Absorption (entitée absorbante)
2701 Fusion/Absorption (Entitée absorbante. Entité absorbée inconnue)
2702 Fusion/Absorption (Entitée absorbante. Entité absorbée mal SIRENEE)
2703 Fusion/Absorption (Entitée absorbante. Entité absorbée non SIRENEE)
2720 Fusion/Absorption (entitée absorbée)
2721 Fusion/Absorption (entitée absorbée non identifiée)
2725 Fusion/Absorption
*/
}
}
// Annonces BODACC Changement de capital
$annCapPre=0;
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2100,2101,2102), false);
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0)
// Date de la plus récente Annonce changement de capital
$ANNONCECAPDATE=$depot['DateParution'];
if ($iDep==1) {
if ($depot['capitalDev']=='EUR') $CAPITAL_PRE=$depot['capital'];
elseif ($depot['capitalDev']=='FRF') $CAPITAL_PRE=round($depot['capital']/6.55957);
$annCapPre = 0;
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2100,2101,2102));
$tabDepotCpt = array_reverse($tabDepotCpt);
$CAPITAL_PRE = 0;
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0) {
foreach ($tabDepotCpt as $iDep => $depot) {
// Date de la plus récente Annonce changement de capital
$ANNONCECAPDATE = $depot['DateParution'];
if (count($tabDepotCpt)>1 && $iDep == count($tabDepotCpt)-2) {
if ($depot['capitalDev']=='FRF') {
$CAPITAL_PRE = round($depot['capital']/6.55957);
} else {
$CAPITAL_PRE = $depot['capital'];
}
}
// Boucle sur les evenements
foreach ($depot['evenements'] as $even) {
// Evenement 2101 : Modificaition de capital
if ($even['CodeEven'] == 2101) {
if ($iDep > 0 && $CAPITAL_PRE > 0) {
if ($depot['capitalDev']=='FRF') {
$annonceCapital = round($depot['capital']/6.55957);
} else {
$annonceCapital = $depot['capital'];
}
// Augmentation
if ($annonceCapital > $CAPITAL_PRE) {
$even['CodeEven'] = 2102;
}
// Diminution
elseif ($annonceCapital < $CAPITAL_PRE) {
$even['CodeEven'] = 2100;
}
}
}
switch ($even['CodeEven']*1) {
case 2100:// Diminution de capital
// Diminution de capital
case 2100:
$ANNONCECAPDIM++;
if ($ANNONCECAPDIM==1) {
// Date de la plus récente Annonce de diminution de capital
$ANNONCECAPDIMDATE=$depot['DateParution'];
// Année de la plus récente Annonce diminution de capital
$ANNONCECAPDIM_AAF=substr($depot['DateParution'],0,4);
} else
// Année de la plus ancienne Annonce diminution de capital
$ANNONCECAPDIM_AAD=substr($depot['DateParution'],0,4);
if ($annCapPre==2102)
$ANNONCECAPAUGDIM++; // Augmentation suivie de diminution de capital
$annCapPre=2100;
if ($ANNONCECAPDIM == 1) {
// Année de la plus ancienne Annonce diminution de capital
$ANNONCECAPDIM_AAD = substr($depot['DateParution'],0,4);
} else {
// Date de la plus récente Annonce de diminution de capital
$ANNONCECAPDIMDATE = $depot['DateParution'];
// Année de la plus récente Annonce diminution de capital
$ANNONCECAPDIM_AAF = substr($depot['DateParution'],0,4);
}
// Augmentation suivie de diminution de capital
if ($annCapPre == 2102) {
$ANNONCECAPAUGDIM++;
}
$annCapPre = 2100;
break;
case 2102:// Augmentation de capital
// Augmentation de capital
case 2102:
$ANNONCECAPAUG++;
if ($ANNONCECAPAUG==1) {
// Date de la plus récente Annonce Augmentation de capital
$ANNONCECAPAUGDATE=$depot['DateParution'];
// Année de la plus récente Annonce Augmentation de capital
$ANNONCECAPAUG_AAF=substr($depot['DateParution'],0,4);
} else
// Année de la plus ancienne Annonce Augmentation de capital
$ANNONCECAPAUG_AAD=substr($depot['DateParution'],0,4);
if ($annCapPre==2100)
$ANNONCECAPDIMAUG++; // Diminution suivie de Augmentation de capital
$annCapPre=2102;
if ($ANNONCECAPAUG == 1) {
// Année de la plus ancienne Annonce Augmentation de capital
$ANNONCECAPAUG_AAD = substr($depot['DateParution'],0,4);
} else {
// Date de la plus récente Annonce Augmentation de capital
$ANNONCECAPAUGDATE = $depot['DateParution'];
// Année de la plus récente Annonce Augmentation de capital
$ANNONCECAPAUG_AAF = substr($depot['DateParution'],0,4);
}
// Diminution suivie de Augmentation de capital
if ($annCapPre == 2100){
$ANNONCECAPDIMAUG++;
}
$annCapPre = 2102;
break;
}
}
$ANNONCECAP++;
/** @todo : Récupérer le montant du changement et alimenter ou non cette variable
**/
$ANNONCECAPSIG++;
if ($CAPITAL_PRE==0) {
// Rechercher le capital à la création ou dans une annonce précédente !
$CAPITAL_PRE=0;
}
}
}
// Annonces BODACC Cessation d'activité avec dissolution
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2202,2203,2204,2210,2212), false);
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2202,2203,2204,2210,2212));
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Annonce de Dissolution avec Bilan A", "Dernier Bilan = $BILANDATE et Annonce de dissolution = ".$depot['DateParution']);
if ($BILANDATE<str_replace('-','',$depot['DateParution'])*1) {
$ANNONCEDISSODATE=$depot['DateParution'];
$ANNONCEDISSO=true;
}// else
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Annonce de Dissolution avec Bilan B", "Dernier Bilan = $BILANDATE et Annonce de dissolution = ".$depot['DateParution']);
$ANNONCEDISSODATE = $depot['DateParution'];
$ANNONCEDISSO = true;
}
break;
}
}
// Annonces BODACC Poursuite de l'activité malgré la perte de plus de la moitié du capital social
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2314,2319), false);
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2314,2319));
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
$ANNONCEPOURSDATE= $ANNONCEDISSONONDATE= $depot['DateParution'];
$ANNONCEPOURS= $ANNONCEDISSONON= true;
foreach ($tabDepotCpt as $iDep => $depot) {
$ANNONCEPOURSDATE = $ANNONCEDISSONONDATE = $depot['DateParution'];
$ANNONCEPOURS = $ANNONCEDISSONON = true;
break;
}
}
// Annonces BODACC Reconsitution de l'actif net ou de la moitié
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2320,2321), false);
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2320,2321));
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
$ANNONCERECONDATE=$depot['DateParution'];
$ANNONCERECON=true;
foreach ($tabDepotCpt as $iDep => $depot) {
$ANNONCERECONDATE = $depot['DateParution'];
$ANNONCERECON = true;
break;
}
}
// Annonces BODACC Location gérance reçue
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2800,2880,4355), false);
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2800,2880,4355));
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
$ANNONCELOCDATE=$depot['DateParution'];
$ANNONCELOC=true;
foreach ($tabDepotCpt as $iDep => $depot) {
$ANNONCELOCDATE = $depot['DateParution'];
$ANNONCELOC = true;
break;
}
}
// Annonces BODACC Mise en sommeil de la société
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2206), false);
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(2206));
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
$ANNONCESOMMDATE=$depot['DateParution'];
$ANNONCESOMM=true;
foreach ($tabDepotCpt as $iDep => $depot) {
$ANNONCESOMMDATE = $depot['DateParution'];
$ANNONCESOMM = true;
break;
}
}
$timer['bodacc']=microtime(true);
$ANNONCEOBJET=$tabIdentite['Activite'];
$ANNONCEOBJET = $tabIdentite['Activite'];
if ($tabIdentite['SituationJuridique']=='P') {
$ANNONCEPC='Procédure Collective';
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
$tabProCol = $iInsee->annoncesFilter($CompanyAnnonces, 'P');
foreach ($tabProCol as $iProcol=>$procol) {
foreach ($procol['evenements'] as $even) {
if ($iProcol==0) $ANNONCEPC=$even['LibEven'];
@ -1752,11 +1790,11 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
// Le SIREN est éliminé du scoring
$ELIMINE=true;
} elseif ($tabIdentite['SituationJuridique']=='PL') {
$ANNONCEPCHISTO=true;
$ELIMINE=false;
$ANNONCEPC='Plan de continuation/redressement';
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
foreach ($tabProCol as $iProcol=>$procol) {
$ANNONCEPCHISTO = true;
$ELIMINE = false;
$ANNONCEPC = 'Plan de continuation/redressement';
$tabProCol = $iInsee->annoncesFilter($CompanyAnnonces, 'P');
foreach ($tabProCol as $iProcol => $procol) {
foreach ($procol['evenements'] as $even) {
if ($iProcol==0) $ANNONCEPC=$even['LibEven'];
switch ($even['CodeEven']*1) {
@ -1773,14 +1811,12 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
case 1312: // Liquidation Judiciaire avec continuation d'exploitation
case 1313: // Liquidation Judiciaire sans remise des accessoires
case 1417: // Jugement d'extension de liquidation judiciaire
// Annonce de liquidation judiciaire
$ANNONCELJ=true;
$ANNONCELJ = true;
// Date de l'annonce LJ
$ANNONCELJDATE=$procol['dateJugement'];
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
$ANNONCELJDATE = $procol['dateJugement'];
$ANNONCEDATE = $ANNONCEPCDATE = $procol['dateJugement'];
$TRIBUNAL_PROCOL = strtr($procol['Tribunal'], array('TC '=>'Tribunal de Commerce de '));
break;
case 1200: // Redressement Judiciaire
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
@ -1848,7 +1884,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
}
} else {
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'PH', false);
$tabProCol = $iInsee->annoncesFilter($CompanyAnnonces, 'PH');
if (count($tabProCol)>0) $ANNONCEPCHISTO=true;
else $ANNONCEPCHISTO=false;
if ($tabIdentite['Actif']==0) $ELIMINE=true;
@ -1856,7 +1892,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
/** Annonces d'Homologation **/
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(1050,1550), false, true);
$tabDepotCpt = $iInsee->annoncesFilter($CompanyAnnonces, array(1050,1550));
if (is_array($tabDepotCpt) && count($tabDepotCpt)>0){
foreach ($tabDepotCpt as $iDep=>$depot) {
if ($iDep==0)
@ -1866,15 +1902,15 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
/** Ventes Cessions en tant que vendeur **/
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'V', false);
$tabProCol = $iInsee->annoncesFilter($CompanyAnnonces, 'V');
$ANNONCEVC=0; // Nombre d'annonce de VC (vendeur)
$ANNONCEVC_OBJ=$ANNONCEVCDATE=$ANNONCEVC_MT='';
foreach ($tabProCol as $iProcol=>$procol) {
$ANNONCEVC++;
if ($iProcol==0) {
foreach ($procol['evenements'] as $even)
$ANNONCEVC_OBJ[]=$even['LibEven'];
foreach ($procol['evenements'] as $even) {
$ANNONCEVC_OBJ[]=$even['LibEven'];
}
$ANNONCEVC_OBJ=implode(', ', $ANNONCEVC_OBJ);
$ANNONCEVCDATE=$procol['dateJugement'];
$ANNONCEVC_MT=$procol['montantVente']; // Montant de la vente
@ -1901,19 +1937,19 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
* Solvabilité
*/
$isolv = new MSolvabilite(
$siren,
$naf,
$tabIdentite['EffEnTr'],
$tabIdentite['Effectif']*1,
$tabIdentite['CP'],
$fj,
$tabIdentite['Capital'],
$tabIdentite['CapitalDev'],
$tabIdentite['DateCreaEn'],
$tabIdentite['DateCreaEt'],
'',
$RECME,
$iDb
$siren,
$naf,
$tabIdentite['EffEnTr'],
$tabIdentite['Effectif']*1,
$tabIdentite['CP'],
$fj,
$tabIdentite['Capital'],
$tabIdentite['CapitalDev'],
$tabIdentite['DateCreaEn'],
$tabIdentite['DateCreaEt'],
'',
$RECME,
$iDb
);
$noteStructure=$isolv->getSolvabilite();
$timer['solv']=microtime(true);
@ -3836,7 +3872,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if ($indiScore==$indiScorePre && $ENCOURS==$encoursPre && $dateScore<>0 )
{
$tabUpdate2 = array('sourceModif'=>$sourceModif, 'nbModifs'=>$nbModifs);
if (!$iDb->update('scores_surveillance', $tabUpdate2, "siren=$siren", false, 0, true)) {
if (!$iDb->update('jo.scores_surveillance', $tabUpdate2, "siren=$siren", false, 0, true)) {
debugLog('W', 'Erreur lors de la MAJ du score en surveillance pour '. $tabIdentite['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
}
}

View File

@ -655,7 +655,7 @@ function clientSphinx(&$formR)
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php';
break;
case 2:
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php';
require_once 'Vendors/sphinxapi/sphinxapi-2.2.9.php';
break;
}

View File

@ -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();

View File

@ -16,7 +16,7 @@ class SdMetier_Search_Engine
if ($version == 1){
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php';
} elseif ($version == 2){
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php';
require_once 'Vendors/sphinxapi/sphinxapi-2.2.9.php';
}
}

File diff suppressed because it is too large Load Diff

View File

@ -196,6 +196,7 @@ class Entreprise extends Scores_Ws_Server
$identite->dir2LieuNaiss = prepareString($entrep['dir2LieuNaiss']); // Ajouté le 4 08 2009
$identite->Rivoli = $entrep['Rivoli'];
$identite->InfosIris = new stdClass();
$identite->InfosIris->codIris = $entrep['InfosIris']['codIris'];
$identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris'];
$identite->InfosIris->libIris = prepareString($entrep['InfosIris']['libIris']);
@ -203,6 +204,7 @@ class Entreprise extends Scores_Ws_Server
$identite->InfosIris->evoIris = $entrep['InfosIris']['evoIris'];
$identite->InfosIris->trIris = $entrep['InfosIris']['trIris'];
$identite->InfosIris->grdQuartier = $entrep['InfosIris']['grdQuartier'];
$identite->NatureActivite = $entrep['NatureActivite']; // Nature de l'activité
$identite->OrigineCreation = $entrep['OrigineCreation']; // Origine de la création
$identite->TypeExploitation = $entrep['TypeExploitation'];
@ -210,6 +212,8 @@ class Entreprise extends Scores_Ws_Server
$identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière
$identite->SurfaceMagasin = $entrep['ACTISURF']*1; // 0=N/D, 1=inf. à 300m2,2=300 à 400m2, 3=400 à 2500m2, 4=sup. à 2500m2
$identite->SituationJuridique = $entrep['SituationJuridique'];
$identite->Bilan = new stdClass();
$identite->Bilan->Millesime = $entrep['bilanAnnee'];
$identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date
$identite->Bilan->Duree = $entrep['bilanMois'];
@ -3491,7 +3495,8 @@ class Entreprise extends Scores_Ws_Server
if (strlen($siret) == 14) $nic = substr($siret,9,5);
elseif (strlen($siret) == 9) $nic = '';
$iInsee = new MInsee();
$iDb = new WDB();
$iInsee = new MInsee($iDb);
$rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep, $actif, $siege);
if ( count($rep['reponses'])==0 && $dep>0 ) {
@ -3571,7 +3576,6 @@ class Entreprise extends Scores_Ws_Server
}
else {
$iDb = new WDB();
$iDb->insert('jo.siren_inexistants', array(
'siren' => $siren,
'nic' => $nic,

View File

@ -205,6 +205,7 @@ class Entreprise extends Scores_Ws_Server
$identite->dir2LieuNaiss = prepareString($entrep['dir2LieuNaiss']);
$identite->Rivoli = $entrep['Rivoli'];
$identite->InfosIris = new stdClass();
$identite->InfosIris->codIris = $entrep['InfosIris']['codIris'];
$identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris'];
$identite->InfosIris->libIris = prepareString($entrep['InfosIris']['libIris']);
@ -212,6 +213,7 @@ class Entreprise extends Scores_Ws_Server
$identite->InfosIris->evoIris = $entrep['InfosIris']['evoIris'];
$identite->InfosIris->trIris = $entrep['InfosIris']['trIris'];
$identite->InfosIris->grdQuartier = $entrep['InfosIris']['grdQuartier'];
$identite->NatureActivite = $entrep['NatureActivite']; // Nature de l'activité
$identite->OrigineCreation = $entrep['OrigineCreation']; // Origine de la création
$identite->TypeExploitation = $entrep['TypeExploitation'];
@ -219,6 +221,8 @@ class Entreprise extends Scores_Ws_Server
$identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière
$identite->SurfaceMagasin = $entrep['ACTISURF']*1; // 0=N/D, 1=inf. à 300m2,2=300 à 400m2, 3=400 à 2500m2, 4=sup. à 2500m2
$identite->SituationJuridique = $entrep['SituationJuridique'];
$identite->Bilan = new stdClass();
$identite->Bilan->Millesime = $entrep['bilanAnnee'];
$identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date
$identite->Bilan->Duree = $entrep['bilanMois'];
@ -246,7 +250,7 @@ class Entreprise extends Scores_Ws_Server
$autreSiren->type = $entrep['AutreSiren']['listeSiren']['type'];
$tabAutreSiren[] = $autreSiren;
}
$identite->AutreSiren = $tabAutreSiren;
$identite->AutreSiren = $tabAutreSiren;
$tabAutreSiret = array();
if (count($entrep['AutreSiret'])) {
@ -274,7 +278,7 @@ class Entreprise extends Scores_Ws_Server
$tabAutreSiret[] = $autreSiret;
}
}
$identite->AutreSiret = $tabAutreSiret;
$identite->AutreSiret = $tabAutreSiret;
$identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date
$identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date

View File

@ -40,6 +40,7 @@ class Gestion extends Scores_Ws_Server
'login' => $login,
'authenticate' => 'OK',
'ip' => $ip,
'dateInsert' => date('YmdHis'),
));
} catch (Zend_Db_Exception $e) {}
@ -328,6 +329,7 @@ class Gestion extends Scores_Ws_Server
$sql = $serviceM->select()
->from($serviceM, array('id', 'Code', 'Label', 'Editable', 'Active'))
->where('Deleted=?', 0)
->where('Active=?', 1)
->where('IdClient=?', $id);
$result = $serviceM->fetchAll($sql);
$services = array();
@ -545,7 +547,7 @@ class Gestion extends Scores_Ws_Server
}
if ( count($dataToUpdate) > 0 ) {
$dataToUpdate['DateUpdate'] = date('Y-m-d H:i:s');
$dataToUpdate['DateUpdate'] = date('YmdHis');
try {
$serviceM->update($dataToUpdate, 'id='.$id);
return true;

View File

@ -2370,7 +2370,7 @@ class Interne extends Scores_Ws_Server
if (SPHINX_HISTO_VERSION == 1){
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php';
} elseif (SPHINX_HISTO_VERSION == 2){
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php';
require_once 'Vendors/sphinxapi/sphinxapi-2.2.9.php';
}
$cl = new SphinxClient();

View File

@ -2328,7 +2328,7 @@ class Interne extends Scores_Ws_Server
if (SPHINX_HISTO_VERSION == 1){
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php';
} elseif (SPHINX_HISTO_VERSION == 2){
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php';
require_once 'Vendors/sphinxapi/sphinxapi-2.2.9.php';
}
$cl = new SphinxClient();

View File

@ -1252,7 +1252,7 @@ class Interne extends Scores_Ws_Server
if (SPHINX_HISTO_VERSION == 1){
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php';
} elseif (SPHINX_HISTO_VERSION == 2){
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php';
require_once 'Vendors/sphinxapi/sphinxapi-2.2.9.php';
}
$cl = new SphinxClient();

View File

@ -1190,7 +1190,7 @@ class Interne extends Scores_Ws_Server
if (SPHINX_HISTO_VERSION == 1){
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php';
} elseif (SPHINX_HISTO_VERSION == 2){
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php';
require_once 'Vendors/sphinxapi/sphinxapi-2.2.9.php';
}
$cl = new SphinxClient();
@ -1480,144 +1480,100 @@ class Interne extends Scores_Ws_Server
$this->authenticate();
$c = Zend_Registry::get('config');
$path = "/mnt/clients/oldcrm";
if (empty($ref)) $ref = '*';
if (empty($nomFic)) $nomFic = '';
$error = new ErrorType();
$tabFichier=$tabDates=array();
$numAbo=substr($ref, 0,5);
$tabFichier = $tabDates = array();
$numAbo = substr($ref, 0,5);
if (strtolower($login)=='vwbank') {
$ficClient='surveillanceBodacc_SURBODPRDCFTVWBANK';
$numAbo=$ref='19300';
$numAbo = $ref = '19300';
} elseif (substr($login,0,6)=='apicil') {
$ficClient='surveillanceBodacc_SURBODPRDCFTAPICIL';
$numAbo=$ref='';
$numAbo = $ref = '';
} elseif (strtolower($login)=='omni04') {
$ficClient='surveillanceBodacc_SURBODPRDFTSOMNIREP';
$numAbo=$ref='';
} elseif (strtolower($login)=='bodacca3m') {
$numAbo = $ref = '';
} elseif (strtolower($login)=='bodacca3m' /*|| strtolower($login)=='mricois'*/) {
$ficClient='surveillanceBodacc_SURBODPRDFTSMEDERIC';
$numAbo=$ref='';
$numAbo = $ref = '';
} elseif (strtolower($login)=='bodaccomni') {
$ficClient='surveillanceBodacc_SURBODPRDFTSOMNIREP';
$numAbo=$ref='';
$numAbo = $ref = '';
} elseif (strtolower($login)=='bodacccrr') {
$ficClient='surveillanceBodacc_SURBODPRDFTSCRR';
$numAbo=$ref='';
} elseif (strtolower($login)=='cpcambr13' || strtolower($login)=='cpcambr14') {
$numAbo = $ref = '';
} elseif (strtolower($login)=='cpcambr13' || strtolower($login)=='cpcambr14' /*|| strtolower($login)=='mricois'*/) {
$ficClient='diffusionBodacc_DIFBODPRDMAICPCAM13';
$numAbo=$ref='';
$numAbo = $ref = '';
} elseif (strtolower($login)=='frbsurveillance'){
$ficClient='surveillanceBodacc_SURBODPRDFTPFBOISSON';
$numAbo = $ref = '';
} else {
$ficClient='surveillanceBodacc_SURBODTSTFTSCNASEA';
$numAbo = $ref = '';
}
// --- Lecture du repertoire
$dh = opendir($path."/");
if (!$dh) {
$error->errnum = 1;
$error->errmsg = "Impossible d'ouvrir le dossier client";
// --- Livraison fichier
if ($nomFic!='') {
$directory = $c->profil->path->files;
$ficLength = strlen($ficClient . $numAbo);
if (file_exists($path.'/'.$nomFic) && substr($nomFic, 0, $ficLength) == $ficClient . $numAbo) {
if (!file_exists($directory."/$nomFic.bz2") || filesize($directory."/$nomFic.bz2") <= 14) {
$string = file_get_contents($path."/$nomFic");
$bz = bzopen($directory."/$nomFic.bz2",'w');
if ($bz) {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
}
}
$tabFichier[] = $nomFic;
} else {
$error->errnum = 1;
$error->errmsg = "Impossible d'ouvrir le fichier client";
}
} else {
while (false !== ($filename = readdir($dh))) {
if($filename=='.' && $filename=='..')
continue;
if (substr($filename, -4)=='.csv' && substr($filename,0,42)==$ficClient.$numAbo) {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,43,8);
$tabClients[]=substr($filename,0,42);
}
elseif ($ref=='*' && substr($filename, -4)=='.csv' && substr($filename,0,37)==$ficClient && substr($filename,37,1)<>'_') {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,43,8);
$tabClients[]=substr($filename,0,42);
}
elseif (substr($filename, -4)=='.csv' && substr($filename,0,37)==$ficClient && substr($filename,37,1)=='_') {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,38,8);
$tabClients[]=substr($filename,0,37);
}
elseif (substr($filename, -4)=='.csv' && substr($filename,0,38)==$ficClient && substr($filename,38,1)=='_') {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,39,8);
$tabClients[]=substr($filename,0,38);
}
}
/** Tableau des noms de fichier **/
sort($tabFichier);
/** Tableau des dates de livraisons **/
$tabDates=array_unique($tabDates);
sort($tabDates);
/** Tableau des Clients **/
$tabClients=array_unique($tabClients);
sort($tabClients);
// --- Lecture du repertoire
$dh = opendir($path."/");
if ($dh) {
while (false !== ($filename = readdir($dh))) {
if ($filename == '.' && $filename =='..') continue;
if (substr($filename, -4) != '.csv') continue;
$ficLength = strlen($ficClient . $numAbo);
if (substr($filename, 0, $ficLength) == $ficClient . $numAbo) {
$tabFichier[] = $filename;
$tabDates[] = substr($filename, $ficLength + 1, 8);
$tabClients[] = substr($filename, 0, $ficLength);
}
}
if ($ref=='*') {
$tabFichier = array();
// Boucle sur les dates de livraison
foreach ($tabDates as $dateFic) {
if (strlen($dateFic)<>8) continue;
if (!file_exists($path."/$ficClient".'_'."$dateFic.csv")
|| filesize($path."/$ficClient".'_'."$dateFic.csv")==0) {
// Tableau des noms de fichier
sort($tabFichier);
// Tableau des dates de livraisons
$tabDates = array_unique($tabDates);
sort($tabDates);
// Tableau des Clients
$tabClients = array_unique($tabClients);
sort($tabClients);
rsort($tabFichier);
} else {
$error->errnum = 1;
$error->errmsg = "Impossible d'ouvrir le dossier client";
}
}
$fpW=fopen($path."/$ficClient".'_'."$dateFic.csv",'w');
$entete=true;
// Boucle afin de vérifier si on est sur le bon client
foreach ($tabClients as $nomClient) {
$dh = opendir($path."/");
while (false !== ($filename = readdir($dh))) {
if (substr($filename,0,51)==$nomClient.'_'.$dateFic && substr($filename,-4)=='.csv') {
$fichier=$filename;
//break;
}
}
$fpR=fopen($path."/".$fichier,'r');
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>array(($fichier)));//die;
if ($fpR) {
while (!feof($fpR)) {
$ligne=trim(fgets($fpR));
if (substr($ligne,0,5)=='Siren' && $entete==true) {
fwrite($fpW, 'SITE;'.$ligne.EOL);
$entete=false;
}
elseif (substr($ligne,0,5)<>'Siren' && trim($ligne)<>'') {
fwrite($fpW, strtr($nomClient, array(
'surveillanceBodacc_SURBODTSTFTS'=>'',
'surveillanceBodacc_SURBODPRDCFT'=>'')).';'.$ligne.EOL);
}
}
fclose($fpR);
}
}
fclose($fpW);
}
if (strlen($dateFic)==8)
$tabFichier[]=$ficClient.'_'.$dateFic.'.csv';
}
}
rsort($tabFichier);
if ($nomFic!='') {
$directory = $c->profil->path->files;
if (!file_exists($directory."/$nomFic.bz2") || filesize($directory."/$nomFic.bz2")<=14) {
$string = file_get_contents($path."/$nomFic");
$bz = bzopen($directory."/$nomFic.bz2",'w');
if ($bz) {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
}
}
}
debugLog('I',"getListeFichierSurv pour $login, $ref, $nomFic : nb fichiers=".count($tabFichier),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$hostname = 'http://'.$_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT']!='80'){
$hostname.= ':'.$_SERVER['SERVER_PORT'];
}
$result = array();
foreach($tabFichier as $fichier){
$retFichier = new ListeFichierSurv();
$retFichier->UrlFichier = $hostname.'/fichier/crm/'.$fichier;
$result[] = $retFichier;
}
$result = array();
if (count($tabFichier) > 0) {
$hostname = 'http://'.$_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT'] != '80'){
$hostname.= ':'.$_SERVER['SERVER_PORT'];
}
foreach($tabFichier as $fichier) {
$retFichier = new ListeFichierSurv();
$retFichier->UrlFichier = $hostname.'/fichier/crm/'.$fichier;
$result[] = $retFichier;
}
}
$output = new ListeFichierSurvReturn();
$output->error = $error;

View File

@ -4,7 +4,17 @@ require_once __DIR__ . '/Types.php';
class Monitoring extends Scores_Ws_Server
{
protected function getSurveillances($source){}
protected function getSurveillanceList($source = null)
{
/**
* Afficher les surveillances en groupant par siren
* Identite : SIREN, Nom, Adresse
* Clic pour liste des éléments
* Ligne 1
* Ligne 2
*
*/
}
protected function getSurveillance(){}
protected function getSurveillanceById(){}

View File

@ -195,5 +195,6 @@ class Source extends Scores_Ws_Server
return $id;
}
protected function setContact(){}
}

View File

@ -43,7 +43,7 @@ class WDB
$values = str_replace("'NULL'", 'NULL', $values);
if ($low_priority) {
$query = 'INSERT DELAYED INTO '.$table.' ('.$fields.') VALUES ('.$values.');';
$query = 'INSERT INTO '.$table.' ('.$fields.') VALUES ('.$values.');';
} else {
$query = 'INSERT INTO '.$table.' ('.$fields.') VALUES ('.$values.');';
}
@ -83,7 +83,7 @@ class WDB
$this->errorMsg = '';
if ($low_priority) {
$query='UPDATE LOW_PRIORITY '.$table.' SET ';
$query='UPDATE '.$table.' SET ';
} else {
$query='UPDATE '.$table.' SET ';
}
@ -133,7 +133,7 @@ class WDB
$this->errorMsg = '';
if ($low_priority)
$query='DELETE LOW_PRIORITY QUICK FROM '.$table.' WHERE '.$where.';';
$query='DELETE QUICK FROM '.$table.' WHERE '.$where.';';
else
$query='DELETE FROM '.$table.' WHERE '.$where.';';

View File

@ -103,7 +103,7 @@ function sendMail($commande, $type){
switch ( $type ) {
case 'BI':
$dateBilan = substr($commande->bilanCloture,8,2).'/'.substr($commande->bilanCloture,5,2).'/'.substr($commande->bilanCloture,0,4);
$message.= "Bilan cloturé le ";
$message.= "Bilan cloturé le ".$dateBilan;
break;
case 'AC':
$dateActe = substr($commande->acteDate,8,2).'/'.substr($commande->acteDate,5,2).'/'.substr($commande->acteDate,0,4);