From 0675673b6ddc2255703a4b7ff34e694719bc3fad Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Thu, 18 Feb 2016 17:54:26 +0000 Subject: [PATCH] Class Path et nettoyage --- library/Metier/Bodacc/MBodacc.php | 2 +- library/Metier/Scores/MScores.php | 6 +- library/SdMetier/Scoring/Base.php | 8 +- library/WsScore/Entreprise/v0.2/Config.php | 67 - library/WsScore/Entreprise/v0.2/Service.php | 2875 -------------- library/WsScore/Entreprise/v0.2/Types.php | 3131 --------------- library/WsScore/Entreprise/v0.3/Changelog | 5 - library/WsScore/Entreprise/v0.3/Config.php | 71 - library/WsScore/Entreprise/v0.3/Service.php | 3263 ---------------- library/WsScore/Entreprise/v0.3/Types.php | 3584 ------------------ library/WsScore/Entreprise/v0.4/Changelog | 2 - library/WsScore/Entreprise/v0.4/Config.php | 71 - library/WsScore/Entreprise/v0.4/Service.php | 3305 ---------------- library/WsScore/Entreprise/v0.4/Types.php | 3608 ------------------ library/WsScore/Entreprise/v0.5/Changelog | 1 - library/WsScore/Entreprise/v0.5/Config.php | 74 - library/WsScore/Entreprise/v0.5/Service.php | 3421 ----------------- library/WsScore/Entreprise/v0.5/Types.php | 3747 ------------------ library/WsScore/Entreprise/v0.6/Changelog | 1 - library/WsScore/Entreprise/v0.6/Config.php | 75 - library/WsScore/Entreprise/v0.6/Service.php | 3501 ----------------- library/WsScore/Entreprise/v0.6/Types.php | 3790 ------------------- library/WsScore/Entreprise/v0.7/Service.php | 6 +- library/WsScore/Entreprise/v0.8/Service.php | 14 +- library/WsScore/ServicesConfig.php | 7 +- library/framework/common/mysql.new.php | 338 -- library/framework/common/mysql.old.php | 228 -- library/framework/fwk.php | 2 +- scripts/build/genCache.php | 24 +- scripts/build/genCodeRatios.php | 12 +- scripts/build/loadCodeRatios.php | 2 +- scripts/jobs/calculRatios.php | 1 - 32 files changed, 39 insertions(+), 35203 deletions(-) delete mode 100644 library/WsScore/Entreprise/v0.2/Config.php delete mode 100644 library/WsScore/Entreprise/v0.2/Service.php delete mode 100644 library/WsScore/Entreprise/v0.2/Types.php delete mode 100644 library/WsScore/Entreprise/v0.3/Changelog delete mode 100644 library/WsScore/Entreprise/v0.3/Config.php delete mode 100644 library/WsScore/Entreprise/v0.3/Service.php delete mode 100644 library/WsScore/Entreprise/v0.3/Types.php delete mode 100644 library/WsScore/Entreprise/v0.4/Changelog delete mode 100644 library/WsScore/Entreprise/v0.4/Config.php delete mode 100644 library/WsScore/Entreprise/v0.4/Service.php delete mode 100644 library/WsScore/Entreprise/v0.4/Types.php delete mode 100644 library/WsScore/Entreprise/v0.5/Changelog delete mode 100644 library/WsScore/Entreprise/v0.5/Config.php delete mode 100644 library/WsScore/Entreprise/v0.5/Service.php delete mode 100644 library/WsScore/Entreprise/v0.5/Types.php delete mode 100644 library/WsScore/Entreprise/v0.6/Changelog delete mode 100644 library/WsScore/Entreprise/v0.6/Config.php delete mode 100644 library/WsScore/Entreprise/v0.6/Service.php delete mode 100644 library/WsScore/Entreprise/v0.6/Types.php delete mode 100644 library/framework/common/mysql.new.php delete mode 100644 library/framework/common/mysql.old.php diff --git a/library/Metier/Bodacc/MBodacc.php b/library/Metier/Bodacc/MBodacc.php index 82bbc57e..41313236 100644 --- a/library/Metier/Bodacc/MBodacc.php +++ b/library/Metier/Bodacc/MBodacc.php @@ -1242,7 +1242,7 @@ class Metier_Bodacc_MBodacc public function getCodeFormeJur($strFJ) { - $tabCjBodacc = include 'Metier/bodacc/BodaccCJ.php'; + $tabCjBodacc = include 'Metier/Bodacc/BodaccCJ.php'; $strFJ = strtoupper(trim(preg_replace('/[^a-z]/i','',$strFJ))); return $tabCjBodacc[$strFJ]; } diff --git a/library/Metier/Scores/MScores.php b/library/Metier/Scores/MScores.php index 42d97624..572d586b 100644 --- a/library/Metier/Scores/MScores.php +++ b/library/Metier/Scores/MScores.php @@ -2845,7 +2845,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail elseif ($noteSolvabilite>=50) $plafond=150000; elseif ($noteSolvabilite>=45) $plafond=30000; else $plafond=15000; - + if ($ENCOURS>$plafond) $ENCOURS=$plafond; // Plafond si encours estimé @@ -3534,13 +3534,13 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail $version = '414'; $tabCommentaires = include __DIR__ . '/Comment/ScoreTxt'.$version.'N'.$NIVEAU.'.php'; $tabTriAff = include __DIR__ . '/Comment/ScoreTri'.$version.'N'.$NIVEAU.'.php'; - require_once 'Metier/scores/Formule/Score_'.$version.'.php'; + require_once 'Metier/Scores/Formule/Score_'.$version.'.php'; break; case 'valo': $version = 'v209'; $tabCommentaires = include __DIR__ . '/Comment/ValoTxt'.$version.'N'.$NIVEAU.'.php'; $tabTriAff = include __DIR__ . '/Comment/ValoTri'.$version.'N'.$NIVEAU.'.php'; - require_once 'Metier/scores/Formule/Valo_'.$version.'.php'; + require_once 'Metier/Scores/Formule/Valo_'.$version.'.php'; break; } diff --git a/library/SdMetier/Scoring/Base.php b/library/SdMetier/Scoring/Base.php index d6a92c28..4ecaf6d7 100644 --- a/library/SdMetier/Scoring/Base.php +++ b/library/SdMetier/Scoring/Base.php @@ -2706,7 +2706,7 @@ class SdMetier_Scoring_Base extends SdMetier_Scoring_Vars if ($tabTmp[0]['scoreDir'] !== null) { $this->SCOREDIRI = $tabTmp[0]['scoreDir']; } - if ($this->SCOREDIRI > $this->ENQUETEMAXI) { + if ($this->SCOREDIRI > $this->ENQUETEMAXI) { $this->SCOREDIRI = $this->ENQUETEMAXI; } if ($tabTmp[0]['scoreSolv'] !== null) { @@ -2850,7 +2850,7 @@ class SdMetier_Scoring_Base extends SdMetier_Scoring_Vars if ($encoursForce != null) { $this->ENCOURS = $encoursForce; } - + switch ($this->FJUR2) { case 11: case 12: @@ -3508,13 +3508,13 @@ class SdMetier_Scoring_Base extends SdMetier_Scoring_Vars $version = '414'; $tabCommentaires = include __DIR__ . '/Comment/ScoreTxt'.$version.'N'.$this->NIVEAU.'.php'; $tabTriAff = include __DIR__ . '/Comment/ScoreTri'.$version.'N'.$NIVEAU.'.php'; - require_once 'Metier/scores/Formule/Score_'.$version.'.php'; + require_once 'Metier/Scores/Formule/Score_'.$version.'.php'; break; case 'valo': $version = 'v209'; $tabCommentaires = include __DIR__ . '/Comment/ValoTxt'.$version.'N'.$this->NIVEAU.'.php'; $tabTriAff = include __DIR__ . '/Comment/ValoTri'.$version.'N'.$this->NIVEAU.'.php'; - require_once 'Metier/scores/Formule/Valo_'.$version.'.php'; + require_once 'Metier/Scores/Formule/Valo_'.$version.'.php'; break; } diff --git a/library/WsScore/Entreprise/v0.2/Config.php b/library/WsScore/Entreprise/v0.2/Config.php deleted file mode 100644 index 5ab0ccef..00000000 --- a/library/WsScore/Entreprise/v0.2/Config.php +++ /dev/null @@ -1,67 +0,0 @@ - 'ErrorType', - 'StatusReturn' => 'StatusReturn', - 'Identite' => 'Identite', - 'GeoInfos' => 'GeoInfos', - 'IdentiteBilan' => 'IdentiteBilan', - 'IdentiteBourse' => 'IdentiteBourse', - 'AutreSiren' => 'AutreSiren', - 'RechercheEntrepriseCriteres' => 'RechercheEntrepriseCriteres', - 'CriteresEntreprise' => 'CriteresEntreprise', - 'CriteresDirigeant' => 'CriteresDirigeant', - 'RechercheEntrepriseReturn' => 'RechercheEntrepriseReturn', - 'RechercheEntrepriseResult' => 'RechercheEntrepriseResult', - 'RechercheEntrepriseReponses' => 'RechercheEntrepriseReponses', - 'ListeEtablissementsReturn' => 'ListeEtablissementsReturn', - 'Etablissement' => 'Etablissement', - 'DirigeantsReturn' => 'DirigeantsReturn', - 'Dirigeant' => 'Dirigeant', - 'AnnoncesReturn' => 'AnnoncesReturn', - 'Annonce' => 'Annonce', - 'AnnonceEvenement' => 'AnnonceEvenement', - 'LiensReturn' => 'LiensReturn', - 'Actionnaire' => 'Actionnaire', - 'Participation' => 'Participation', - 'InseeReturn' => 'InseeReturn', - 'InseeEven' => 'InseeEven', - 'TvaReturn' => 'TvaReturn', - 'InfosRegReturn' => 'InfosRegReturn', - 'InfosReg' => 'InfosReg', - 'InfosBourse' => 'InfosBourse', - 'ListeBilansReturn' => 'ListeBilansReturn', - 'ListeBilans' => 'ListeBilans', - 'SetSurveillanceReturn' => 'SetSurveillanceReturn', - 'SurveillancesReturn' => 'SurveillancesReturn', - 'SurveillancesFiltre' => 'SurveillancesFiltre', - 'Surveillance' => 'Surveillance', - 'Bilan' => 'Bilan', - 'BilanPoste' => 'BilanPoste', - 'RechercheAnnonceReturn' => 'RechercheAnnonceReturn', - 'RechercheAnnonceResult' => 'RechercheAnnonceResult', - 'RechercheAnnonceCriteres' => 'RechercheAnnonceCriteres', - 'RechercheAnnonce' => 'RechercheAnnonce', - 'RatiosReturn' => 'RatiosReturn', - 'RatiosBilansInfos' => 'RatiosBilansInfos', - 'RatiosInfos' => 'RatiosInfos', - 'RatiosSecteur' => 'RatiosSecteur', - 'Ratios' => 'Ratios', - 'Rapport' => 'Rapport', - 'Indiscore' => 'Indiscore', - 'Scores' => 'Scores', - 'IndiscoreVariables' => 'IndiscoreVariables', - 'CA_Y' => 'CA_Y', - 'IndiscoreImportExport' => 'IndiscoreImportExport', - 'IndiscoreInfosNotations' => 'IndiscoreInfosNotations', - 'IndiscorePaiement' => 'IndiscorePaiement', - 'IndiscorePaiementDetail' => 'IndiscorePaiementDetail', - 'IndiscoreNotesStructure' => 'IndiscoreNotesStructure', - 'AdresseDomEnt' => 'AdresseDomEnt', - 'InfosIris' => 'InfosIris', - 'BanquesReturn' => 'BanquesReturn', - 'Banque' => 'Banque', - 'ListeCompetencesReturn' => 'ListeCompetencesReturn', - 'Competence' => 'Competence', - 'IdentiteProcol' => 'IdentiteProcol', - 'Organe' => 'Organe', -); \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.2/Service.php b/library/WsScore/Entreprise/v0.2/Service.php deleted file mode 100644 index 443c8716..00000000 --- a/library/WsScore/Entreprise/v0.2/Service.php +++ /dev/null @@ -1,2875 +0,0 @@ -webservice->scores; - $wsdl = !empty($webservicesConfig->wsdl) ? $webservicesConfig->wsdl : null ; - $options = array(); - foreach ($webservicesConfig->options as $optionName => $optionValue){ - $options[$optionName] = $optionValue; - } - $options['login'] = $_SERVER['PHP_AUTH_USER']; - $options['password'] = $_SERVER['PHP_AUTH_PW']; - $this->wsdl = $wsdl; - $this->wsdlOptions = $options; - } - - /** - * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé - * @param string $siret Siren de l'entreprise ou siret de l'établissement - * @param int $id Identifiant interne - * @return Identite - */ - public function getIdentite($siret, $id = 0) - { - $this->authenticate(); - - //Initialisation - if (empty($id)) { $id = 0; } - $forceVerif = false; - - $tdeb = microtime(1); - $ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ..."; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if ($siren*1==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->TribunalCode = $entrep['Tribunal']; - $identite->TribunalLib = $entrep['TribunalLib']; - //'NumGreffe' = $entrep['numGreffe'], // Ajouté le 4 08 2009 - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = strtr($entrep['Nom'],'/*',' '); - $identite->Nom2 = $entrep['Nom2']; - $identite->NomLong = $entrep['nomLong']; // Ajouté le 4 08 2009 - $identite->NomCommercial = $entrep['NomCommercial']; // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = $entrep['Sigle']; - $identite->SigleLong = $entrep['sigleLong']; // Ajouté le 4 08 2009 - $identite->Enseigne = $entrep['Enseigne']; - $identite->EnseigneLong = $entrep['enseigneLong']; // Ajouté le 16 11 2010 - $identite->Adresse = $entrep['Adresse']; - $identite->Adresse2 = $entrep['Adresse2']; - $identite->AdresseNum = $entrep['AdresseNum']; - $identite->AdresseBtq = $entrep['AdresseBtq']; - $identite->AdresseVoie = $entrep['AdresseVoie']; - $identite->AdresseRue = $entrep['AdresseRue']; - $identite->CP = $entrep['CP']; - $identite->Ville = $entrep['Ville']; - $identite->Pays = $entrep['Pays']; // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = $entrep['Tel']; - $identite->Fax = $entrep['Fax']; - $identite->Web = $entrep['Web']; - $identite->Mail = $entrep['Mail']; - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - $identite->GeoInfos = $entrep['GeoInfos']; - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = $entrep['APRM_Lib']; - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = $entrep['CapitalType']; // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - //'DateMajRCS' = $entrep['DateMajRCS'], // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = $entrep['codeCommune']; - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = $entrep['dir1Titre']; - $identite->dir1NomPrenom = $entrep['dir1NomPrenom']; - $identite->dir1DateFct = $entrep['dir1DateFct']; //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = $entrep['dir1LieuNaiss']; // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = $entrep['dir2Titre']; - $identite->dir2NomPrenom = $entrep['dir2NomPrenom']; - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = $entrep['dir2DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = $entrep['dir2LieuNaiss']; // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = $entrep['InfosIris']['libIris']; - $identite->InfosIris->typIris = $entrep['InfosIris']['typIris']; - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière - $identite->SituationJuridique = $entrep['SituationJuridique']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = $entrep['bilanHN']; - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - //'importExport' = $entrep['importExport'], - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = $entrep2['apen4_lib']; - $identite->Naf4EtabLib = $entrep2['apet4_lib']; - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - $duree=round(microtime(1)-$tdeb,3); - $ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!"; - $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - - return $identite; - } - - /** - * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé - * @param string $siret Siren de l'entreprise ou siret de l'établissement - * @param integer $id Identifiant S&D de l'établissement - * @return IdentiteProcol Fiche d'identité de l'établissement - */ - public function getIdentiteProcol($siret, $id=0, $forceVerif=false) - { - debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if (intval($siren)==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identiteProcol = new IdentiteProcol(); - - //Element identite - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->TribunalCode = $entrep['Tribunal']; - $identite->TribunalLib = $entrep['TribunalLib']; - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = strtr($entrep['Nom'],'/*',' '); - $identite->Nom2 = $entrep['Nom2']; - $identite->NomLong = $entrep['nomLong']; // Ajouté le 4 08 2009 - $identite->NomCommercial = $entrep['NomCommercial']; // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = $entrep['Sigle']; - $identite->SigleLong = $entrep['sigleLong']; // Ajouté le 4 08 2009 - $identite->Enseigne = $entrep['Enseigne']; - $identite->EnseigneLong = $entrep['enseigneLong']; // Ajouté le 16 11 2010 - $identite->Adresse = $entrep['Adresse']; - $identite->Adresse2 = $entrep['Adresse2']; - $identite->AdresseNum = $entrep['AdresseNum']; - $identite->AdresseBtq = $entrep['AdresseBtq']; - $identite->AdresseVoie = $entrep['AdresseVoie']; - $identite->AdresseRue = $entrep['AdresseRue']; - $identite->CP = $entrep['CP']; - $identite->Ville = $entrep['Ville']; - $identite->Pays = $entrep['Pays']; // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = $entrep['Tel']; - $identite->Fax = $entrep['Fax']; - $identite->Web = $entrep['Web']; - $identite->Mail = $entrep['Mail']; - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - $identite->GeoInfos = $entrep['GeoInfos']; - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = $entrep['APRM_Lib']; - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = $entrep['CapitalType']; // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = $entrep['codeCommune']; - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = $entrep['dir1Titre']; - $identite->dir1NomPrenom = $entrep['dir1NomPrenom']; - $identite->dir1DateFct = $entrep['dir1DateFct']; //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = $entrep['dir1LieuNaiss']; // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = $entrep['dir2Titre']; - $identite->dir2NomPrenom = $entrep['dir2NomPrenom']; - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = $entrep['dir2DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = $entrep['dir2LieuNaiss']; // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = $entrep['InfosIris']['libIris']; - $identite->InfosIris->typIris = $entrep['InfosIris']['typIris']; - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière - $identite->SituationJuridique = $entrep['SituationJuridique']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = $entrep['bilanHN']; - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = $entrep2['apen4_lib']; - $identite->Naf4EtabLib = $entrep2['apet4_lib']; - } - - $identiteProcol->Identite = $identite; - - //Eléments annonces légales - $anns = $this->getAnnonces($siren, 1); - $tabRetAnn = $tabLastEven = array(); - $anns = $anns->result; - $tribunalProcol = false; - foreach ($anns as $nb=>$ann) { - $tabRetEven = array(); - foreach ($ann->evenements as $tabEven) { - // On ignore les éléments suivants - if ($tabEven->CodeEven>=7000) continue; - if ($tabEven->CodeEven>=4000 && $tabEven->CodeEven<=4999) continue; - - // Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol - if ($tribunalProcol==false && $tabEven->CodeEven>=1000 && $tabEven->CodeEven<2000 && $ann->BodaccCode=='BODA') { - $identiteProcol->TribunalCode = $ann->TribunalCode; - $identiteProcol->TribunalLib = prepareString($ann->Tribunal); - $tribunalProcol=true; - } - - // On ne prend que le dernier élément de chaque type - if (in_array($tabEven->CodeEven, $tabLastEven)) continue; - - $tabLastEven[] = $tabEven->CodeEven; - $tabRetEven[] = $tabEven; - } - - if (count($tabRetEven)>0) { - $annonce = new Annonce(); - $annonce->id = $ann->id; - $annonce->BodaccCode = $ann->BodaccCode; - $annonce->BodaccNum = $ann->BodaccNum; - $annonce->NumAnnonce = $ann->NumAnnonce; - $annonce->DateParution = $ann->DateParution; //@todo : date - $annonce->Departement = $ann->Departement; - $annonce->Tribunal = $ann->Tribunal; - $annonce->TribunalCode = $ann->TribunalCode; - $annonce->TribunalSiret = $ann->TribunalSiret; - $annonce->Rubrique = $ann->Rubrique; - $annonce->typeAnnonce = $ann->typeAnnonce; - $annonce->texteRectificatif = $ann->texteRectificatif; - $annonce->texteAnnonce = utf8_encode($ann->texteAnnonce); - $annonce->dateEffet = $ann->dateEffet; //@todo : date - $annonce->dateJugement = $ann->dateJugement; //@todo : date - $annonce->dateInsertionSD = $ann->dateInsertionSD; //@todo : date - $annonce->evenements = $tabRetEven; - $annonce->Lien_Annonce_Pdf = $ann->Lien_Annonce_Pdf; - $tabRetAnn[] = $annonce; - } - } - $identiteProcol->Annonces = $tabRetAnn; - - $iRncs = new Metier_Partenaires_MRncs(); - if ($entrep['Siege']==1 || $entrep['Siege']==11) { - $identiteProcol->LibTypeEtab = 'Etablissement Siege'; - } else { - $tabEtabRncs = $iRncs->getIdentiteEtab($siren, $entrep['Nic']); - if ($tabEtabRncs['Siege']==2) $identiteProcol->LibTypeEtab = 'Etablissement Principal'; - elseif ($tabEtabRncs['Siege']==1) $identiteProcol->LibTypeEtab = 'Etablissement Complementaire'; - elseif ($tabEtabRncs['Siege']==0) $identiteProcol->LibTypeEtab = 'Etablissement Secondaire'; - } - - //@todo - $tabJuge = $iRncs->getIntervenants($siren); - $tabDepots=array(); - foreach ($tabJuge as $iDepot=>$depot) { - $organe = new Organe(); - $organe->codEven = $depot['codEven']; - $organe->libEven = prepareString($depot['libEven']); - $organe->dateEffet = $depot['dateEffet']; - $organe->admcode = $depot['admcode']; - $organe->admfonction = prepareString($depot['admfonction']); - $organe->admnom = prepareString($depot['admnom']); - $organe->admadrNum = $depot['admadrNum']; - $organe->admadrInd = $depot['admadrInd']; - $organe->admadrVoie = $depot['admadrVoie']; // @todo : adm1adr1, adm1adr2, adm1adr3, - $organe->admadrCP = $depot['admadrCP']; - $organe->admadrVille = $depot['admadrVille']; - $tabDepots[] = $organe; - } - $identiteProcol->Organes = $tabDepots; - - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, 1); - $nbA = count($tabA); - $tabAct = array(); - foreach ($tabA as $i=>$lien) { - $liens = new Actionnaire(); - $liens->Pmin = $lien['Pmin']; - $liens->MajMin = $lien['MajMin']; - $liens->RaisonSociale = $lien['RaisonSociale']; - $liens->Pays = $lien['Pays']; - $liens->Siren = $lien['Siren']; - $liens->Actif = $lien['Actif']; - $tabAct[] = $liens; - } - $identiteProcol->Actionnaires = $tabAct; - - $iGreffes = new Metier_Partenaires_MGreffes(); - $tabActes = $iGreffes->getListeActes($siren); - - $identiteProcol->StatutsModifDepot = $identiteProcol->StatutsModif = '0000-00-00'; - foreach ($tabActes as $i=>$acte) { - if ('_'.$acte['acte_type']=='_04') { // STATUTS CONSTITUTIFS - $identiteProcol->StatutsConstDepot = $acte['depot_date']; // => 1997-12-18 - $identiteProcol->StatutsConst = $acte['acte_date']; // => 1997-11-13 - break; - } elseif (in_array('_'.$acte['acte_type'], array( - //'_04', // STATUTS CONSTITUTIFS - '_06', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_07', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_08', // STATUTS A JOUR ET DECLARATION DE CONFORMITE 9 0000-00-00 2009-09-02 17:05:55 - '_09', // STATUTS APRES TRANSFERT DE SIEGE 9 0000-00-00 2009-09-02 17:05:55 - '_A1', // STATUTS 9 0000-00-00 2009-09-02 17:05:55 - '_AH', // AVENANT AUX STATUTS - ))) { - // On ne prend que la dernière modif - if ($identiteProcol->StatutsModifDepot=='0000-00-00' && $identiteProcol->StatutsModif=='0000-00-00') { - $identiteProcol->StatutsModifDepot = $acte['depot_date'];// => 1997-12-18 - $identiteProcol->StatutsModif = $acte['acte_date']; // => 1997-11-13 - } - } - } - - /** Y a t il eu des informations relatives à une cession ? **/ - $tabCes = $iGreffes->getInfosCessions($siren); - if ($tabCes) { - $identiteProcol->CessionJugeLib = $tabCes['cessJuge']; - $identiteProcol->CessionJugeDate = $tabCes['cessDateJuge']; - $identiteProcol->CessionAvisBodac = $tabCes['cessDateBod']; - $identiteProcol->CessionInvenDate = $tabCes['cessDateInv']; - $identiteProcol->CessionCAdeclare = $tabCes['cessCAdec']; - $identiteProcol->CessionEffectif = $tabCes['cessEffectif']; - $identiteProcol->CessionDesc = $tabCes['cessDesc']; - $identiteProcol->CessionDescDate = $tabCes['cessDateDesc']; - $identiteProcol->CessionOffreDate = $tabCes['cessDateLim']; - $identiteProcol->CessionMandataire = $tabCes['cessMand']; - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - - Zend_Registry::get('WsLogger')->info("getIdentiteProcol : ".print_r($identiteProcol,1)); - - return $identiteProcol; - } - - /** - * Retourne les liens financiers pour une entreprise. - * - * @param integer $siren Siren de l'entreprise - * @param boolean $actifsUniquement Uniquement les liens Actifs - * @return LiensReturn - */ - public function getLiens($siren, $actifsUniquement = true) - { - $this->authenticate(); - //Initialisation - if (empty($actifsUniquement)) { $actifsUniquement = true; } - $tabAct = $tabPar = array(); - - debugLog('I',"Liens entreprises demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, $actifsUniquement); - $nbA = count($tabA); - $tabAct = array(); - if ($nbA > 0) { - foreach ($tabA as $i => $lien) { - $actionnaire = new Actionnaire(); - $actionnaire->Pmin = $lien['Pmin']; - $actionnaire->MajMin = $lien['MajMin']; - $actionnaire->RaisonSociale = $lien['RaisonSociale']; - $actionnaire->TypeEntrep = $lien['TypeEntrep']; - $actionnaire->Pays = $lien['Pays']; - $actionnaire->Siren = $lien['Siren']; - $actionnaire->Actif = $lien['Actif']; - $actionnaire->Source = $lien['Source']; - $actionnaire->DateLien = $lien['DateLien']; //@todo : date - $actionnaire->DateMaj = $lien['DateMaj']; //@todo : date - $tabAct[] = $actionnaire; - } - } - debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $tabP = $mLiens->getParticipations($siren, $actifsUniquement); - $nbP = count($tabP); - $tabPar = array(); - if ($nbP > 0) { - foreach ($tabP as $i => $lien) { - $participation = new Participation(); - $participation->Pmin = $lien['Pmin']; - $participation->MajMin = $lien['MajMin']; - $participation->RaisonSociale = $lien['RaisonSociale']; - $participation->TypeEntrep = $lien['TypeEntrep']; - $participation->Pays = $lien['Pays']; - $participation->Siren = $lien['Siren']; - $participation->Actif = $lien['Actif']; - $participation->Source = $lien['Source']; - $participation->DateLien = $lien['DateLien']; //@todo : date - $participation->DateMaj = $lien['DateMaj']; //@todo : date - $tabPar[] = $participation; - } - } - debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('liens',$siren); - - $output = new LiensReturn(); - $output->actionnaires = $tabAct; - $output->participations = $tabPar; - return $output; - } - - - /** - * Liste des établissements d'une entreprise - * @param string $siren Siren de l'entreprise - * @param integer $departement Limiter aux établissements du departement - * @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous - * @param integer $position - * @param integer $nbRep - * - * @return ListeEtablissementsReturn - */ - public function getListeEtablissements($siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20) - { - $this->authenticate(); - - //Initialisation - if (empty($dep)) { $dep = 0; } - if (!in_array($actif, array(0,1))) { $actif = -1; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 20; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - $departement = $dep; - - debugLog('I',"Liste des établissements demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif); - $etabs = $rep['reponses']; - $nbReponses = $rep['nbReponsesTotal']; - $result = array(); - if (count($etabs)>0) - { - foreach ($etabs as $nb => $etab) - { - $etablissement = new Etablissement(); - $etablissement->id = $etab['id']; - $etablissement->Siege = $etab['Siege']; - $etablissement->Enseigne = $etab['Enseigne']; - $etablissement->Adresse = $etab['Adresse']; - $etablissement->Adresse2 = $etab['Adresse2']; - $etablissement->CP = $etab['CP']; - $etablissement->Ville = $etab['Ville']; - $etablissement->Tel = $etab['Tel']; - $etablissement->Fax = $etab['Fax']; - $etablissement->Nic = $etab['Nic']; - $etablissement->Actif = $etab['Actif']; - $etablissement->NafEtab = $etab['NafEtab']; - $etablissement->NafEtabLib = $etab['NafEtabLib']; - $etablissement->EffEtTr = $etab['EffEtTr']; - $etablissement->EffEtTrLib = $etab['EffEtTrLib']; - - $result[] = $etablissement; - } - } - debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('etablissements',$siren); - $output = new ListeEtablissementsReturn(); - $output->nbReponses = $nbReponses; - $output->result = $result; - return $output; - } - - /** - * Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise - * - * @param string $siren Siren de l'entreprise - * @param bool $histo Afficher l'historique des dirigeants - * @return DirigeantsReturn Liste des dirigeants actifs de l'entreprise - */ - public function getDirigeants( $siren , $histo = false) - { - $this->authenticate(); - - //Initialisation - if (empty($histo)) { $histo = false; } - - debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - if ($histo) $option = 'histo'; - else $option = ''; - $iInsee = new Metier_Insee_MInsee(); - $dirs = $iInsee->getDirigeants($siren, $histo); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $liste = array(); - foreach ($dirs as $nb => $dir) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $dirigeant = new Dirigeant(); - $dirigeant->Code = $dir['Fonction']; - $dirigeant->Titre = $dir['Titre']; - $dirigeant->Societe = $dir['Societe']; - $dirigeant->Civilite = $dir['Civilite']; - $dirigeant->Nom = $dir['Nom']; - $dirigeant->Prenom = $dir['Prenom']; - $dirigeant->NaissDate = $dir['NaissDate']; //@todo : date - $dirigeant->NaissVille = $dir['NaissVille']; - $dirigeant->NaissDepPays = $dir['NaissDepPays']; - $dirigeant->Ancien = $dir['Ancien']; - $dirigeant->DateFct = $dir['DateFct']; //@todo : date - $liste[] = $dirigeant; - } - $this->wsLog('dirigeants',$siren,$option); - debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $output = new DirigeantsReturn(); - $output->result = $liste; - return $output; - } - - /** - * Retourne la liste des annonces légales relative à une entreprise - * - * @todo Revoir cette fonction pour la faire marcher avec les associations - * - * @param string $siren Siren de l'entreprise - * @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp - * @param string $idAnn Identifiant de l'annonce - * @param integer $position - * @param integer $nbRep - * @return AnnoncesReturn - */ - public function getAnnonces($siren, $filtre = 0, $idAnn = '', $position = 0, $nbRep = 100) - { - $this->authenticate(); - - //Initialisation - if (empty($filtre)) { $filtre = 0; } - if (empty($idAnn)) { $idAnn = ''; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 100; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - - debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $liste = array(); - - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0 && $idAnn=='') { - debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - /* - if ($siren>100 && $filtre==3) $asso=true; - else { - $asso=false; - $tabIdentite=$this->iInsee->getIdentiteLight($siren); - if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || - $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; - }*/ - if ($idAnn=='') { - $anns=$iInsee->getAnnoncesLegales($siren); - $annsB=$iInsee->getAnnoncesBalo($siren); - $annsA=$iInsee->getAnnoncesAsso($siren); - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } elseif ($filtre==1) - $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); - elseif ($filtre==2) - $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); - elseif ($filtre==3) - $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); - elseif ($filtre==4) - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) - { - debugLog('W', "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $error->errnum = 102; - $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; - } - else - { - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - $annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = $ann['texteAnnonce']; - $annonce->libFJ = $ann['libFJ']; - $annonce->codFJ = $ann['codFJ']; - $annonce->capital = $ann['capital']; - $annonce->capitalDev = $ann['capitalDev']; - - $annonce->raisonSociale = $ann['raisonSociale']; - $annonce->nomCommercial = $ann['nomCommercial']; - $annonce->sigle = $ann['sigle']; - $annonce->adresse = $ann['adresse']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - - if (is_array($annsB)) - { - foreach ($annsB as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = $ann['texteAnnonce']; - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsA)) - { - foreach ($annsA as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = $ann['texteAnnonce']; - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - //@todo : date - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsM)) - { - foreach ($annsM as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = $ann['texteAnnonce']; - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - } - - $nbReponses = count($liste); - if ($nbReponses>0){ - $liste = array_slice($liste, $position, $nbRep); - } - debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); - file_put_contents(LOG_PATH.'/annonces.log', print_r($liste,1)); - - $output = new AnnoncesReturn(); - $output->nbReponses = $nbReponses; - $output->result = $liste; - return $output; - } - - /** - * Evaluation indiScore d'une entreprise - * - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param int $niveau - * @return Indiscore - */ - public function getIndiScore($siren, $nic=0, $niveau=2, $plus=false) - { - $this->authenticate(); - $perm = false; - switch($niveau){ - case 1: - if ( !$this->checkPerm('indiscore') || !$this->checkPerm('indiscorep') ){ - $this->permission('indiscore'); - } - break; - case 2: - if (!$this->checkPerm('indiscore2') || !$this->checkPerm('indiscore2p') ){ - $this->permission('indiscore2'); - } - break; - case 3: - if (!$this->checkPerm('indiscore3') || !$this->checkPerm('indiscore3p') ){ - $this->permission('indiscore3'); - } - break; - } - - //Initialisation - $accesDist = true; - if (empty($nic)) { $nic = 0; } - if (empty($niveau)) { $niveau = 2; } - if (empty($plus)) { $plus = false; } - if ( !in_array($niveau, array(0,1,2,3,4,5)) ) { $niveau = 2; } - $tabRet = array(); - debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 ){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; - $tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau); - $duree = round(microtime(true)-$tDeb,3); - debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - /* - if ($plus) { - $this->setSurveillance($siren, $this->User->email, 'Indiscore+', 'privileges', false, 0); - $this->setSurveillance($siren, $this->User->email, 'Indiscore+', 'score'); - if ($this->User->idClient==89) - $this->setSurveillance($siren, $this->User->email, 'Indiscore+', 'annonces'); - }*/ - - Zend_Registry::get('WsLogger')->info("INDISCORE : ".print_r($tabRet,1)); - $output = new Indiscore(); - foreach($tabRet as $key => $value){ - if ($key=='paiements'){ - $parMont = $value['parMont']; - $parTrim = $value['parTrim']; - $tabMont = array(); - foreach($parMont as $parMontK => $parMontV){ - $paiementMont = new IndiscorePaiementDetail(); - $paiementMont->id = $parMontK; - $paiementMont->nb = $parMontV['nb']; - if (array_key_exists('d=180', $parMontV)){ - $paiementMont->d180 = $parMontV['d=180']; - } - if (array_key_exists('d=150', $parMontV)){ - $paiementMont->d150 = $parMontV['d=150']; - } - if (array_key_exists('d=120', $parMontV)){ - $paiementMont->d120 = $parMontV['d=120']; - } - if (array_key_exists('d=90', $parMontV)){ - $paiementMont->d90 = $parMontV['d=90']; - } - if (array_key_exists('d=60', $parMontV)){ - $paiementMont->d60 = $parMontV['d=60']; - } - if (array_key_exists('d=30', $parMontV)){ - $paiementMont->d30 = $parMontV['d=30']; - } - $tabMont[] = $paiementMont; - } - $tabTrim = array(); - foreach($parTrim as $parTrimK => $parTrimV){ - $paiementTrim = new IndiscorePaiementDetail(); - $paiementTrim->id = $parTrimK; - $paiementTrim->nb = $parTrimV['nb']; - if (array_key_exists('d=180', $parTrimV)){ - $paiementTrim->d180 = $parTrimV['d=180']; - } - if (array_key_exists('d=150', $parTrimV)){ - $paiementTrim->d150 = $parTrimV['d=150']; - } - if (array_key_exists('d=120', $parTrimV)){ - $paiementTrim->d120 = $parTrimV['d=120']; - } - if (array_key_exists('d=90', $parTrimV)){ - $paiementTrim->d90 = $parTrimV['d=90']; - } - if (array_key_exists('d=60', $parTrimV)){ - $paiementTrim->d60 = $parTrimV['d=60']; - } - if (array_key_exists('d=30', $parTrimV)){ - $paiementTrim->d30 = $parTrimV['d=30']; - } - $tabTrim[] = $paiementTrim; - } - $paiement = new IndiscorePaiement(); - $paiement->parMont = $tabMont; - $paiement->parTrim = $tabTrim; - $output->paiements = $paiement; - - } elseif ($key=='Notes_Structure') { - - $notesStructure = new IndiscoreNotesStructure(); - $notesStructure->activite = $value['activite']; - $notesStructure->naf4 = $value['naf4']; - $notesStructure->age = $value['age']; - $notesStructure->capital = $value['capital']; - $notesStructure->effectif = $value['effectif']; - $notesStructure->fj = $value['fj']; - $notesStructure->localite = $value['localite']; - $notesStructure->singulier = $value['singulier']; - $output->Notes_Structure = $notesStructure; - - } elseif ($key=='tabBilans') { - - $tabRet = array(); - foreach($value as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - $output->tabBilans = $tabRet; - - } elseif ($key=='tabBilan') { - - $tabRet = array(); - foreach($value as $bilan){ - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($bilan as $bilan_key => $bilan_value){ - if(!in_array($bilan_key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $bilan_key; - $resultPoste->val = $bilan_value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$bilan_key = $bilan_value; - } - } - $resultBilan->POSTES = $tabPoste; - $tabRet[] = $resultBilan; - } - $output->tabBilan = $tabRet; - - } elseif ($key=='tabInfosNotations') { - - $infosNotation = new IndiscoreInfosNotations(); - $infosNotation->SituationFinanciere = $value['SituationFinanciere']; - $infosNotation->Notation = $value['Notation']; - $infosNotation->ProbabiliteDefaut = $value['ProbabiliteDefaut']; - $output->tabInfosNotations = $infosNotation; - - } elseif ($key=='tabImportExport') { - - $tabRet = array(); - foreach($value as $element){ - $importExport = new IndiscoreImportExport(); - $importExport->importExport = $element['importExport']; - $importExport->annee = $element['annee']; - $importExport->rangNational = $element['rangNational']; - $importExport->deptSiege = $element['deptSiege']; - $tabRet[] = $importExport; - } - $output->tabImportExport = $tabRet; - - } elseif ($key=='tabCommentaires') { - - $tab = array(); - foreach($value as $comment) { - $tab[] = $comment; - } - $output->tabCommentaires = $tab; - - } elseif ($key=='tabVariables') { - - $tab = $value['CA_Y']; - $tabVar = array(); - foreach($tab as $varName => $varVal){ - $var = new CA_Y(); - $var->id = $varName; - $var->val = $varVal; - $tabVar[] = $var; - } - $variables = new IndiscoreVariables(); - $variables->CA_Y = $tabVar; - $output->tabVariables = $variables; - - } else { - $output->$key = $value; - } - } - $this->wsLog('indiscore',$siren); - return $output; - } - - /** - * Liste de tous les évènements enregistrés à l'INSEE pour une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param integer $position - * @param integer $nbRep - * @return InseeReturn - **/ - public function getListeEvenements($siren, $nic=0, $position=0, $nbRep=1000) - { - $this->authenticate(); - $this->permission('eveninsee'); - - //Initialisation - if (empty($nic)) { $nic = 0; } - if (empty($position)) { $position = 0; } - if (empty($nbRep) || $nbRep>1000) { $nbRep = 1000; } - - debugLog('I',"Liste des évènements pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $evens = $iInsee->getEvenements($siren, $nic, $position, $nbRep); - $tabRet = array(); - if (count($evens)>0) { - foreach ($evens as $nb=>$even) { - $iEven = new InseeEven(); - $iEven->Nic = $even['nic']; - $iEven->Siege = $even['siege']; - $iEven->SiretAss = $even['siretAssocie']; - $iEven->TypeSiretAss = $even['typeSiretAss']; - $iEven->EvenCode = $even['codeEven']; - $iEven->EvenLib = $even['libEven']; - $iEven->EvenLibDet = $even['libEvenDet']; - $iEven->EvenDate = $even['dateEven']; //@todo : date - $iEven->DateInfo = $even['dateMAJ']; //@todo : date - $tabRet[] = $iEven; - } - } - - debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('evenements',$siren); - $output = new InseeReturn(); - $output->nbReponses = count($tabRet); // @todo : retrouver le nombre total d'évenements - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche - * @param string $type Type de la recherche (recherche entreprise : 'ent', recherche dirigeant : 'dir') - * @param RechercheEntrepriseCriteres $criteres - * @param int $position Position de parcours des résultats retournées (0 par défaut) - * @param int $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut) - * @param int $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut) - * @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut) - * @param bool $avecSiren Seulement les entités sirénées (false par défaut) - * @return RechercheEntrepriseReturn - */ - public function rechercheEntreprise($type, $criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false) - { - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ip : ". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']); - - switch ($type) - { - case 'ent': - $entCriteres = new CriteresEntreprise(); - $entCriteres = $criteres->elementEntreprise; - $client = new SoapClient($this->wsdl, $this->wsdlOptions); - $identifiant = $entCriteres->identifiant; - $typeId = ''; - if ($identifiant!='') { - $len = strlen($identifiant); - //Numéro WALDEC - if (strtoupper(substr($identifiant,0,1))=='W') { - $typeId = 'W'; - //Code ISIN - } elseif ($len==12){ - $typeId = 'I'; - //TVA Intracommunautaire - } elseif (in_array(substr($identifiant,0,2), - array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES', - 'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL', - 'PT','RO','SE','SI','SK'))){ - //"La recherche par numéro de TVA n'est pas encore possible sur ce pays !"; - //Pour la france - } elseif (substr($identifiant,0,2)=='FR') { - $typeId = 'S'; - if ($len==13) $identifiant = substr($identifiant,4,9); - else $identifiant = ''; - //Numéro RC - } elseif (preg_match('/A|B|C|D/i', $identifiant)) { - $typeId='R'; - //Siren normal on enleve tout ce qui n'est pas un chiffre - } else { - $typeId = 'S'; - } - } - - if (in_array($typeId, array('R', 'W', 'I'))){ - try { - $O = $client->searchAutreId( - $typeId, - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - } catch (SoapFault $fault) { - Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ".serialize($criteres)); - throw new SoapFault($fault->faultcode, $fault->faultstring); - exit; - } - } elseif ($typeId == 'S'){ - try { - $O = $client->searchSiren( - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - } catch (SoapFault $fault) { - Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ".serialize($criteres)); - throw new SoapFault($fault->faultcode, $fault->faultstring); - exit; - } - } else { - - try { - $O = $client->searchNomAdr( - Scores_Locale_String::cleanstring($entCriteres->raisonSociale), - Scores_Locale_String::cleanstring($entCriteres->adresse), - $entCriteres->codePostal, - Scores_Locale_String::cleanstring($entCriteres->ville), - empty($entCriteres->siege) ? false : $entCriteres->siege, - empty($entCriteres->actif) ? false : $entCriteres->actif, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - empty($pertinence) ? false : $pertinence, - empty($avecSiren) ? false : $avecSiren, - $entCriteres->naf - ); - } catch (SoapFault $fault) { - Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ".serialize($criteres)); - throw new SoapFault($fault->faultcode, $fault->faultstring); - exit; - } - } - - break; - case 'dir': - $dirCriteres = new CriteresDirigeant(); - $dirCriteres = $criteres->elementDirigeant; - $client = new SoapClient($this->wsdl, $this->wsdlOptions); - try { - $O = $client->searchDir( - Scores_Locale_String::cleanstring($dirCriteres->nom), - Scores_Locale_String::cleanstring($dirCriteres->prenom), - $dirCriteres->dateNaiss, - Scores_Locale_String::cleanstring($dirCriteres->lieuNaiss), - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - empty($pertinence) ? false : $pertinence - ); - } catch (SoapFault $fault) { - Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ".serialize($criteres)); - throw new SoapFault($fault->faultcode, $fault->faultstring); - exit; - } - break; - } - - $error = new ErrorType(); - $error = arrayToClass($O['error'], 'ErrorType'); - - $results = new RechercheEntrepriseResult(); - switch($type){ - case 'ent': - $results->criteres = $entCriteres; - break; - case 'dir': - $results->criteres = $dirCriteres; - break; - } - $results->info = $O['results']['info']; - $results->nbReponses = $O['results']['nbReponses']; - $results->nbReponsesTotal = $O['results']['nbReponsesTotal']; - $results->duree = $O['results']['duree']; - $results->erreur = $O['results']['erreur']; - $results->pass = $O['results']['pass']; - $reponse = array(); - if ( count($O['results']['reponses'])>0 ){ - foreach ($O['results']['reponses'] as $item) { - $reponse[] = arrayToClass($item, 'RechercheEntrepriseReponses'); - } - } - $results->reponses = $reponse; - - $outputParams = new RechercheEntrepriseReturn(); - $outputParams->error = $error; - $outputParams->results = $results; - return $outputParams; - } - - /** - * Recherche entreprise par nom et adresse - * @param unknown_type $raisonSociale - * @param unknown_type $adresse - * @param unknown_type $codePostal - * @param unknown_type $ville - * @param unknown_type $siege - * @param unknown_type $actif - * @param integer $deb - * @param integer $nbRep - * @param integer $maxRep - * @param boolean $pertinence - * @param boolean $avecSiren - * @param string $ape_etab - */ - protected function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') - { - debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab); - - $recherche = new RechercheEntrepriseResult(); - - $tabRet = array(); - foreach ($etabs['reponses'] as $etab) { - $reponse = new RechercheEntrepriseReponses(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = strtr($etab['Nom'],'/*',' '); - $reponse->Nom2 = $etab['Nom2']; - $reponse->Sigle = $etab['Sigle']; - $reponse->Enseigne = $etab['Enseigne']; - $reponse->Adresse = $etab['Adresse']; - $reponse->Adresse2 = $etab['Adresse2']; - $reponse->CP = $etab['CP']; - $reponse->Ville = $etab['Ville']; - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = $this->iInsee->getLibelleFJ($etab['FJ']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $iInsee->getLibelleNaf($etab['NafEtab']); // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $iInsee->getLibelleNaf($etab['NafEnt']); - - $tabRet[] = $reponse; - } - - - $fp=@fopen(LOG_PATH.'/recherches.log','a'); - - $siretTrouve = 0; - if ($etabs['nbReponses']==0) { - - $str="NbRep=0, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : AUCUN RESULTAT, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet); - - } - else - { - - if ($etabs['nbReponses']==1) $siretTrouve=$etabs['reponses'][0]['Siret']; - $str="NbRep=".$etabs['nbReponses'].", S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : ".$tabRet['nbReponses']." RESULTATS, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet); - - } - - - $results = new RechercheEntrepriseResult(); - $error = new ErrorType(); - - $searchNomAdr = new RechercheEntrepriseReturn(); - $searchNomAdr->error = $error; - $searchNomAdr->results = $results; - - } - - protected function searchSiren(){} - - - - - protected function searchDir(){} - - protected function searchTelFax(){} - - - /** - * Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA. - * - * @param string $siren Identifiant Siren de l'entreprise - * @return TvaReturn - */ - public function getTVA($siren) - { - $this->authenticate(); - - //Initialisation - $siren = trim($siren); - debugLog('I',"TVA demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren); - debugLog('I', "Après getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($entrep)) - { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - debugLog('I', "Avant MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iTva = new Metier_Partenaires_MTva($siren); - if ($iTva->vatDefined) $tva=$iTva->vatNumber; - else $tva='N/A'; - debugLog('I', "Après MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new TvaReturn(); - $output->id = $entrep['id']; - $output->AutreId = $entrep['AutreId']; - $output->Nom = $entrep['Nom']; - $output->Sigle = $entrep['Sigle']; - $output->Enseigne = $entrep['Enseigne']; - $output->Adresse = $entrep['Adresse']; - $output->Adresse2 = $entrep['Adresse2']; - $output->CP = $entrep['CP']; - $output->Ville = $entrep['Ville']; - $output->Siren = $entrep['Siren']; - $output->Tva = $tva; - - debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('tva',$siren); - - return $output; - } - - /** - * Retourne tout ou patie des informations règlementées sur l'entreprise - * - * @param string $siren SIREN de l'entreprise - * @param mixed $id Id du communiqué - * @return InfosRegReturn - */ - public function getInfosReg( $siren, $id = false ) - { - $this->authenticate(); - - //Initialisation - if (empty($id)) $id = false; - $tabRet = array(); - $siren = substr($siren,0,9); - - debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - $iBourse = new Metier_Partenaires_MBourse($siren); - $anns = $iBourse->getInfosReg($siren, $id); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ( empty($anns) ){ - debugLog('W', "Aucune info règlementée pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ($id == false) { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } else { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->communique = $ann['communique']; - $infos->communiqueHtml = $ann['communiqueHtml']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } - } - debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('infosreg',$siren,$id); - $output = new InfosRegReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne les informations boursières de l'entreprise - * @param string $siren SIREN de l'entreprise - * @return InfosBourse - */ - public function getInfosBourse($siren) - { - $this->authenticate(); - - //Initialisation - $error = new ErrorType(); - debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $siren = substr($siren,0,9); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($bourse)) { - debugLog('W', "Aucune info bourse pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $result = new InfosBourse(); - $result->Siren = $bourse['siren']; - $result->RaisonSociale = $bourse['raisonSociale']; - $result->Adresse = $bourse['adresse']; - $result->Effectif = $bourse['effectif']; - $result->CodeSicovam = $bourse['code_sicovam']; - $result->CodeMnemo = $bourse['code_mnemo']; - $result->CodeBloomberg = $bourse['code_bloomberg']; - $result->CodeDatastream = $bourse['code_datastream']; - $result->Isin = $bourse['code_isin']; - $result->CodeRic = $bourse['code_ric']; - $result->DateIntroduction = $bourse['dateIntroduction']; //@todo : date - $result->DateDerAG = $bourse['dateDerAG']; //@todo : date - $result->DateRadiation = $bourse['dateRadiation']; //@todo : date - $result->AutreIsin = $bourse['autre_isin']; - $result->EligibleSRD = $bourse['eligibleSRD']; - $result->EligiblePEA = $bourse['eligiblePEA']; - $result->Tel = $bourse['tel1']; - $result->Tel2 = $bourse['tel2']; - $result->Fax = $bourse['fax1']; - $result->Fax2 = $bourse['fax2']; - $result->Web = $bourse['web']; - $result->Mail = $bourse['mail']; - - $result->Marche = $bourse['marche']; - $result->Description = $bourse['description']; - $result->Secteur = $bourse['secteur']; - $result->Activite = $bourse['activite']; - $result->ActiviteDet = $bourse['activiteDet']; - - $result->placeCotation = $bourse['placeCotation']; - $result->nombreTitres = $bourse['nombreTitres']; - $result->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $result->derCoursDate = $bourse['date']; //@todo : date - $result->derCoursCloture = $bourse['close']; - $result->derCoursOuverture = $bourse['open']; - $result->derCoursPlusHaut = $bourse['high']; - $result->derCoursPlusBas = $bourse['low']; - - $result->derCoursVolume = $bourse['volume']; - $result->coursMin = $bourse['coursMin']; - $result->coursMoy = $bourse['coursMoy']; - $result->coursMax = $bourse['coursMax']; - - $this->wsLog('bourse',$siren,$id); - return $result; - } - - /** - * Ajout d'une surveillance - * - * @param string $siret Siret/Siren - * @param string $email Adresse email du client - * @param string $ref Référence de la surveillance - * @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants) - * @param boolean $delete Suppression de la ligne - * @param integer $encoursClient Encours demandé par le client - * @return SetSurveillanceReturn - */ - public function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) - { - $this->authenticate(); - $source = strtolower($source); - switch ($source) { - case 'insee': - $this->permission('survinsee'); - break; - case 'bilans': - $this->permission('survbilan'); - break; - case 'actes': - $this->permission('survactes'); - break; - case 'privileges': - $this->permission('survpriv'); - break; - case 'dirigeants': - $this->permission('survdirigeants'); - break; - case 'score': - $this->permission('survscore'); - break; - case 'annonces': - default: - $this->permission('survannonce'); - break; - } - - //Initialisation - if (empty($ref)) $ref = ''; - if (empty($delete)) $delete = false; - if (empty($encoursClient)) $encoursClient = false; - $tabRet = array(); - $siren = substr($siret,0,9); - $nic = substr($siret,9,5); - - debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($siren, $nic); - $iDb = new WDB(); - $login = $this->User->login; - switch ($source) { - case 'insee': - case 'annonces': - case 'bilans': - case 'actes': - case 'privileges': - case 'dirigeants': $encoursClient=0; break; - case 'score': $encoursClient=$encoursClient*1; break; - default: $source='annonces'; break; - } - $tabUpdate = array( - 'source' => $source, - 'login' => $login, - 'email' => $email, - 'siren' => $siren, - 'nic' => $nic, - 'ref' => $ref, - 'encoursClient' => $encoursClient, - 'rs' => $tabIdentite['Nom'], - 'cp' => $tabIdentite['CP'], - 'ville' => $tabIdentite['Ville'], - ); - if ($delete) { - $tabUpdate = array_merge( - $tabUpdate, - array('dateSuppr'=>date('Y-m-d')) - ); - } else { - $tabUpdate = array_merge( - $tabUpdate, - array('dateAjout'=>date('Y-m-d'), 'dateSuppr'=>0) - ); - } - if ( $delete || !$iDb->insert('surveillances_site', $tabUpdate)) { - if (!$iDb->update('surveillances_site', $tabUpdate, "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'")) - { - $this->sendError('1030'); - } - } - $output = new SetSurveillanceReturn(); - $output->result = true; - return $output; - } - - /** - * getSurveillances - * @param SurveillancesFiltre $filtre - * @param integer $deb - * @param integer $nbRep - * @return SurveillancesReturn - */ - public function getSurveillances($filtre, $position=0, $nbRep=100) - { - $this->authenticate(); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 100; - - $error = new ErrorType(); - $tabRet = array(); - $siren = substr($filtre->siret,0,9); - $nic = substr($filtre->siret,9,5); - - $tri = strtolower(trim($filtre->tri)); - switch ($tri){ - case 'ref': $orderBy='ORDER BY ref'; break; - case 'dateAjout': $orderBy='ORDER BY dateAjout'; break; - case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break; - case 'rs': $orderBy='ORDER BY rs'; break; - case 'cp': $orderBy='ORDER BY cp'; break; - case 'ville': $orderBy='ORDER BY ville'; break; - default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre - } - $iDb = new WDB(); - $login = $this->User->login; - - if ($filtre->detail) { - $strSelect = 'source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi'; - } else { - $strSelect = 'source, email, siren, nic, ref, dateAjout, dateDerEnvoi'; - } - if ($filtre->source!='') $strSource = " AND source='$filtre->source' "; - else $strSource = ''; - - if ($siren>0) $strSiren = " AND siren=$siren "; - else $strSiren = ''; - - // Il faut compter le nombre de siren au total - $tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - $tabTmp = $iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $position,$nbRep", false, MYSQL_ASSOC); - foreach ($tabTmp as $i=>$tabSurv){ - if (!$filtre->detail){ - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = $tabSurv['ref']; - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } else { - if (trim($tabSurv['rs'])<>'') { - $rs = $tabSurv['rs']; - $cp = $tabSurv['cp']; - $ville = $tabSurv['ville']; - } else { - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']); - $rs = $tabIdentite['Nom']; - $cp = $tabIdentite['CP']; - $ville = $tabIdentite['Ville']; - $iDb->update('surveillances_site', array( - 'rs' => $rs, - 'cp' => $cp, - 'ville' => $ville), - "login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", - false - ); - } - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = $tabSurv['ref']; - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->encoursClient = $tabSurv['encoursClient']; - $liste->rs = $rs; - $liste->cp = $cp; - $liste->ville = $ville; - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } - } - $output = new SurveillancesReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé - * - * @param string $siren Siren de l'entreprise - * @param string $millesime Date du bilan au format AAAAMMJJ - * @param string $typeBilan N:Réel Normal, S:Réel Simplifié, C:Consolidé - * @param string $ref Référence S&D obligatoire - * @return Bilan - */ - public function getBilan($siren, $millesime, $typeBilan='N', $ref='') - { - $this->authenticate(); - - //Initialisation - if (empty($typeBilan)) { $typeBilan = 'N'; } - if (empty($ref)) { $ref = ''; } - - debugLog('I',"Bilan $millesime $typeBilan demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $millesime = WDate::dateT('Ymd','d/m/Y',$millesime); - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilan = $mBil->getBilan($millesime, $typeBilan, $ref, true); - - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($tabBilan as $key => $value){ - if(!in_array($key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $key; - $resultPoste->val = $value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$key = $value; - } - } - $this->wsLog('bilan',$siren, $millesime.':'.$typeBilan.':'.$ref); - $resultBilan->POSTES = $tabPoste; - return $resultBilan; - } - - /** - * Retourne la liste des bilans disponible pour une entreprise - * - * @param string $siren Siren de l'entreprise - * @return ListeBilansReturn - */ - public function getListeBilans($siren) - { - $this->authenticate(); - //Initialisation - $tabRet = array(); - debugLog('I',"Liste des Bilans demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(false); - foreach($tabBilans as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - - debugLog('I', 'Nb Bilans retournés = '. count($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('listebilans', $siren); - $output = new ListeBilansReturn(); - $output->nbReponses = count($tabRet); - $output->result = $tabRet; - return $output; - } - - /** - * Vérifie si un siren existe en base Scores & Décisions - * @param string $siren Siren de l'entité - * @return boolean - */ - public function isSirenExistant($siren) - { - $this->authenticate(); - - //Initialisation - $tabRet = array(); - $siren = trim(substr($siren,0,9)); - $result = false; - debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->sirenExiste($siren); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = false; - } else { - debugLog('I', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = true; - } - $this->wsLog('sirenExiste',$siren); - return $result; - } - - /** - * Retourne une annonce en fonction de sa référence - * - * @param string $siren Siren de l'entreprise - * @param string $dateAnnee - * @param integer $numParution - * @param integer $numAnnonce - * @return RechercheAnnonceReturn - */ - public function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) - { - $this->authenticate(); - - //Initialisation - $error = new ErrorType(); - $tabRet = array(); - - debugLog('I',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (strlen($dateAnnee)==4) $annee = $dateAnnee; - else $annee = substr($dateAnnee,0,4); - - $iDb = new WDB('jo'); - - switch (strtoupper($source)) - { - case 'BODA': - case 'BODB': - case 'BODC': - $lettre = substr(strtoupper($source),3,1); - if ($annee<2005) { - if ($lettre=='A'){ $numJAL=1; } - elseif ($lettre=='B'){ $numJAL=200; } - else{ break; } - $anneeDeb = $annee.'0101'; - $anneeFin = $annee.'1231'; - $res = $iDb->select('historiques.entrep e, texte t', - "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce", - "e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum", false, MYSQL_ASSOC); - } else { - $res = $iDb->select('bodacc', - 'Bodacc_Annee_Parution AS Annee_Parution, Bodacc_Num AS Num_Parution, Num_Annonce, Bodacc_Page AS Num_Page, Bodacc_Date_Parution AS Date_Parution, Tribunal_Dept AS Departement, Tribunal_Code, typeAnnonce, annonce', - "Bodacc_Code='$lettre' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$numParution AND Num_Annonce=$numAnnonce", false, MYSQL_ASSOC); - } - break; - case 'ASSO': - $res = $iDb->select('asso', - 'YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Annonce, pageDeb AS Num_Page, Date_Parution, Departement, codTribunal AS Tribunal_Code, typeAnnonce, Annonce_Html AS annonce', "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$annee".sprintf('%04d', $numParution)." AND Num_Annonce=$numAnnonce", - false, MYSQL_ASSOC); - break; - case 'BALO': - $res = $iDb->select('balo', - "YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Affaire AS Num_Annonce, '' AS Num_Page, Date_Parution, '' AS Departement, '' AS Tribunal_Code, 'Insertion' AS typeAnnonce, Annonce_Html AS annonce", "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$numParution AND Num_Affaire=$numAnnonce", - false, MYSQL_ASSOC); - break; - } - - if (count($res)>0) - { - $iBodacc = new Metier_Bodacc_MBodacc(); - foreach ($res as $i => $etab) - { - $annonces = new RechercheAnnonce(); - $annonces->Annee_Parution = $etab['Annee_Parution']; - $annonces->Num_Parution = $etab['Num_Parution']; - $annonces->Num_Annonce = $etab['Num_Annonce']; - $annonces->Num_Page = $etab['Num_Page']; - $annonces->Date_Parution = $etab['Date_Parution']; //@todo : date - $annonces->Departement = $etab['Departement']; - $annonces->Tribunal_Code = $etab['Tribunal_Code']; - $annonces->Tribunal = $iBodacc->getTribunalNom($etab['Tribunal_Code']); - $annonces->Type_Annonce = $etab['typeAnnonce']; - $annonces->Annonce = strip_tags(strtr( - html_entity_decode($etab['annonce']), - array('>'=>'>','&'=>'&','<'=>'<','’'=>"'") - )); - - $tabRet[] = $annonces; - } - } - $nbTot = count($tabRet); - $result = new RechercheAnnonceResult(); - $result->criteres = $criteres; - $result->nbReponses = $nbTot; - $result->nbReponsesTotal = $nbTot; - $result->liste = $tabRet; - $output = new RechercheAnnonceReturn(); - $output->error = $error; - $output->result = $result; - return $output; - } - - /** - * getRatios - * @param string $siren - * @param string $page - * @return RatiosReturn - */ - public function getRatios($siren, $page='ratios') - { - global $tva, $mBil, $tabBilan, $efftr, $tabInfla; - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Variables/CacheTabFormules.php'; - require_once 'Metier/scores/Variables/configMRatios.php'; - $this->authenticate(); - //Initialisation - if (empty($page)) $page = 'ratios'; - $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); - $tabRatios2 = $tabRatiosEvol = array(); - $tabRet = array(); - debugLog('I',"Liste des Ratios demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); - debugLog('I',"Liste des Ratios demandée pour $siren après getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $naf = $tabIdentite['NafEnt']; - $nafLib = $tabIdentite['NafEntLib']; - $efftr = $tabIdentite['Effectif']*1; - $fj = $tabIdentite['FJ']; - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - $nbBilans = count($tabBilans); - $tabBilan = $tabBil = array(); - if ($nbBilans>0){ - $tabRatios = calculRatios($tabBilans, $tabIdentite, true); - } - $nbRatios = count($tabRatios); - debugLog('I',"Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - /** Tableau d'infos sur les formules **/ - $tabBorneMin = $tabBorneMax = array(); - foreach ($tabFormules as $formule) { - $id = $formule['id']*1; - $libelle = $formule['libelle']; - $unite = $formule['unite']; - $commentaires = $formule['commentaires']; - $tabFormulesInfos[$id] = $formule; //Pour la gestion des unités des ratios secteur - $ratiosInfos = new RatiosInfos(); - $ratiosInfos->id = 'r'.$id; - $ratiosInfos->libelle = $formule['libelle']; - $ratiosInfos->unite = $formule['unite']; - $ratiosInfos->commentaires = $formule['commentaires']; - $tabRatiosInfos[] = $ratiosInfos; - $tabBorneMin[$id] = $formule['borneMin']; - $tabBorneMax[$id] = $formule['borneMax']; - } - - $tabAnnees = array(); - foreach ($tabRatios as $i=>$R) { - - //Informations sur le bilan - $bilansInfos = new RatiosBilansInfos(); - $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date - $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; - $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; - $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; - $bilansInfos->unite = 'U'; - if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ - $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); - } - - $tabRatiosEntrep = array(); - $tabRatiosEntrepEvol = array(); - foreach ( $R as $Ridx=>$Rmont ){ - - if ($Rmont<>'NS') { - if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ - $Rmont='<'.$tabBorneMin[$Ridx]; - } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ - $Rmont='>'.$tabBorneMax[$Ridx]; - } - } - - // RatiosEntrep - $ratiosEntrep = new Ratios(); - if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = $Rmont; - } else { - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = round($Rmont,2); - } - $tabRatiosEntrep[] = $ratiosEntrep; - - if (($tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) || - ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); - elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - || ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); - else - $Rmont='NS'; - - // RatiosEntrepEvol - $ratiosEntrepEvol = new Ratios(); - if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = 'NS'; - } else { - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); - } - $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; - } - $bilansInfos->RatiosEntrep = $tabRatiosEntrep; - $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; - $tabBilansR[] = $bilansInfos; - } - - debugLog('I',"Liste des Ratios demandée pour $siren après EVOLUTION",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - // Tableau des ratios secteurs - $tabRatiosSecteurs = array(); - if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; - else $strNaf = " AND naf4='$naf' "; - $strAnnees = implode(',', $tabAnnees); - if ( count($tabAnnees)>0 ){ - $iDb = new WDB('jo'); - $tabTmp = $iDb->select('ratios_secteurs', - 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', - "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", - false, MYSQL_ASSOC); - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $tabTmp[0]['annee']; - $nbRatiosSec = 0; - $anneePre = $tabTmp[0]['annee']; - foreach ($tabTmp as $tabTmp2) { - if ($anneePre<>$tabTmp2['annee']) { - $tabRatiosSecteurs[] = $ratiosSecteur; - //On réinitialise tout - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $tabTmp2['annee']; - } - $Ridx = $tabTmp2['id']; - if ($tabTmp2['nombre']>$nbRatiosSec){ - $nbRatiosSec = $tabTmp2['nombre']; - } - - $unite = $tabFormulesInfos[$Ridx]['unite']; - if ($unite=='EUR'){ - $montant = round($tabTmp2['ratio']*1000); - } else { - $montant = round($tabTmp2['ratio']); - } - if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ - $montant='<'.$tabBorneMin[$Ridx]; - } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ - $montant='>'.$tabBorneMax[$Ridx]; - } - - $ratiosSecteurListe = new Ratios(); - if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = $montant; - } else { - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = round($montant,2); - } - $ratiosSecteur->liste[] = $ratiosSecteurListe; - $anneePre = $tabTmp2['annee']; - } - } - //$tabRatiosSecteurs=array(count($tabTmp), "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC"); - - $output = new RatiosReturn(); - $output->Nom = $tabIdentite['Nom']; - $output->NafEnt = $tabIdentite['NafEnt']; - $output->NafEntLib = $tabIdentite['NafEntLib']; - $output->FJ = $fj; - $output->FJ_lib = $tabIdentite['FJ_lib']; - $output->Siren = $siren; - $output->NbEntNaf = $nbRatiosSec; - $output->BilansInfos = $tabBilansR; - $output->RatiosInfos = $tabRatiosInfos; - $output->RatiosSecteur = $tabRatiosSecteurs; - - //Zend_Registry::get('WsLogger')->info(__FUNCTION__." : ".print_r($result,1)); - - debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->wsLog($page, $siren); - return $output; - - } - - /** - * getRapport - * @param string $siren - * @param integer $niveau - * @param integer $id - * @return Rapport - */ - public function getRapport($siren, $niveau=3, $id=0) - { - $this->authenticate(); - if (empty($niveau)) $niveau = 3; - if (empty($id)) $id = 0; - $result = new Rapport(); - $filtre = 0; - $idAnn = 0; - if ($niveau==1){ - $result->Indiscore = $this->getIndiScore($siren, 0); - } elseif ($niveau==2) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - } elseif ($niveau==3) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - $result->Annonces = $this->getAnnonces($siren, $filtre, $idAnn); - } - return $result; - } - - /** - * Retourne la liste des banques connues pour une entreprise - * @param string $siren Siren de l'entreprise - * @return BanquesReturn - **/ - public function getBanques($siren) - { - $this->authenticate(); - - //Initialisation - $iDb = new WDB('sdv1'); - $tabRet = array(); - debugLog('I',"Liste des banques demandée pour siren $siren", - __LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (intval($siren)<=1000) { - $this->sendError('1010'); - } - - $res=$iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC); - $tmp=$iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC); - $res=array_merge($res, $tmp); - foreach ($res as $tabBanque){ - $dateSource=$tabBanque['dateSource']; - $codBanque=$tabBanque['codeBanque']; - $codGuichet=$tabBanque['codeGuichet']; - $libBanque=trim($tabBanque['libBanqueGuichet']); - $found=false; - $adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille=''; - - if ($codBanque>0 && $codGuichet>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs b, insee.BDF_Guichets g', - 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", - false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - $found=true; - }; - } - if (!$found && $codBanque>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - } else continue; - } else continue; - - $banque = new Banque(); - $banque->codeBanque = $codBanque; - $banque->codeGuichet = $codGuichet; - $banque->libBanque = $libBanque; - $banque->adresse1 = $adrBanque1; - $banque->adresse2 = $adrBanque2; - $banque->cp = $adrBanqueCP; - $banque->ville = $adrBanqueVille; - $tabRet[] = $banque; - } - debugLog('I',"Liste des banques pour siren $siren : ".count($tabRet).' banques',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $this->wsLog('banque', $siren); - $output = new BanquesReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne la liste des compétences territoriales pour un établissement à une adresse donnée. - * @param string $siret Siret de l'établissement - * @param string $type Type de compétence (pre:prefectures et s/prefectures, jal;journaux d'annonces légales, tri:tribunaux, adm:administrateurs et mandataires judiciaires, hui:huissiers, cfe:centres de formalités des entreprises) - * @param string $codeInsee Code Insee de la commune de l'établissement - * @return ListeCompetencesReturn - */ - public function getListeCompetences($siret, $type, $codeInsee) - { - $this->authenticate(); - - //Initialisation - $error = new ErrorType(); - $type = strtolower($type); - - debugLog('I',"Liste des compétences $type demandée pour la commune $codeInsee",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - $iBodacc = new Metier_Bodacc_MBodacc(); - $cp=$codeInsee*1; - $dep=false; - if (substr($codeInsee,0,2)=='2A' || substr($codeInsee,0,2)=='2B') - { - $dep=20; $cp=20000+(substr($codeInsee,2,3))*1; - } - elseif ($cp>0 && $cp<100) $dep=$cp; - elseif ($cp>970 && $cp<977) $dep=$cp; - elseif ($cp>999 && $cp<10000) $dep='0'.substr($cp,0,1); - elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); - elseif ($cp>=99000) $dep=substr($cp,0,2); - elseif ($cp>=98000) $dep=substr($cp,0,3); - elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); - - if ($type=='pre'){ - - $iDb = new WDB('jo'); - $tabTmp2 = $iDb->select('villes', 'DEP, COM, AR, CT', 'codeInsee='.$codeInsee, false, MYSQL_ASSOC); - $arrond = $tabTmp2[0]['AR']; - unset($iDb); - $iDb = new WDB('insee'); - $tabTmp2 = $iDb->select('insee_tabArrond', 'CHEFLIEU, ARTMAJ, NCC', "DEP='$dep' AND AR='$arrond'", false, MYSQL_ASSOC); - $nomSousPref = trim(strtr($tabTmp2[0]['ARTMAJ'],array('('=>'',')'=>'',' '=>'', "'"=>'')).' '.$tabTmp2[0]['NCC']); - unset($iDb); - $tabTmp = $iBodacc->getTribunauxParDep($dep); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='A' || $tribunal['triType']=='B') - { - $pref = levenshtein($tribunal['triNom'], 'PREFECTURE DE '.$nomSousPref); - $spref = levenshtein($tribunal['triNom'], 'SOUS PREFECTURE DE '.$nomSousPref); - - if ($tribunal['triType']=='B' && ($pref>7 || $spref>5)) continue; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType'].$typeP; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper( - preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - $tabRet[] = $competence; - - } - } - - } elseif ($type=='jal') { - - $tabTmp = $iBodacc->getJALparDep($dep); - foreach ($tabTmp as $i=>$comp) - { - $infos=''; - if (trim($comp['parution'])<>'') $infos.='Parution '.$comp['parution'].'. '; - if (trim($comp['aboAnnuel'])>0) $infos.='Abonnement Annuel : '.$comp['aboAnnuel'].' euros. '; - if (trim($comp['infos'])<>'') $infos.=$comp['infos']; - - $competence = new Competence(); - $competence->Id = 9000+$comp['id']*1; - $competence->IdSup = 0; - $competence->Code = ''; - $competence->Type = ''; - $competence->Nom = strtoupper($comp['nomJal']); - $competence->Siret = ''; - $competence->Adr = strtoupper($comp['adresse']); - $competence->AdrComp = ''; - $competence->CP = $comp['cp']; - $competence->Ville = strtoupper($comp['ville']); - $competence->CodeInsee = ''; - $competence->Tel = $comp['tel']; - $competence->Fax = $comp['fax']; - $competence->Web = $comp['siteWeb']; - $competence->Mail = $comp['email']; - $competence->Statut = 'Actif'; - $competence->DateCessation = ''; - $competence->Remarque = trim($infos); - $tabRet[] = $competence; - } - - } elseif ($type=='tri' || $type=='adm' || $type=='hui') { - - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if (//$tribunal['triType']=='C' || - $tribunal['triType']=='G'// || - /*$tribunal['triType']=='I'*/) { - $idCA = $tribunal['triIdSup']; - $codeTGI = $tribunal['triCode']; - $code = strtoupper(substr($tribunal['triCode'],0,3)); - } - debugLog('D',"Liste des compétences $type demandée pour la commune $codeInsee ($dep) : ". - "Type=".$tribunal['triType'].', '. - "Code=".$tribunal[$codeTGI],__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($tribunal['triType']<>'E' && $tribunal['triType']<>'O' && - $tribunal['triType']<>'T' && $tribunal['triType']<>'R' && - $tribunal['triType']<>'N' && $tribunal['triType']<>'U' && - $tribunal['triType']<>'Z') - { - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper(Scores_Locale_String::cleanstring($tribunal['triNom'])); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(Scores_Locale_String::cleanstring(preg_replace('/ +/',' ', - $tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie']))); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - if ($tribunal['triNumGreffe']*1>0) - { - $competence->IdentifiantGreffe = $tribunal['triNumGreffe']; - } - $tabRet[] = $competence; - } - } - } - - if ($type=='adm') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getMandataires(array($idCA), false); - $tabRet = array(); - $nbAff=0; - foreach ($tabTmp as $i=>$tribunal) - { /** @todo A revoir Debut **/ - if (stripos($tribunal['tribunal'], $code)!==false || - stripos($tribunal['tribunal'], 'SAINT')!==false) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - $nbAff++; - } - } - if ($nbAff==0) - { - foreach ($tabTmp as $i=>$tribunal) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - } - }/** @todo A revoir Fin : Lier correctement les mandataires à un TI principal **/ - } - elseif ($type=='hui') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getHuissiers(array($codeTGI), false); - - $tabRet = array(); - $nbAff = 0; - foreach ($tabTmp as $i=>$tribunal) - { - $adr = $iInsee->structureVoie($tribunal['adresse']); - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($adr['num'].' '.$adr['adr_btq'].' '. - $adr['typeVoie'].' '.$adr['libVoie']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $adr['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation']; - $competence->Remarque = strtr($tribunal['contact'], - array( '
'=>', ', '
'=>', ', - '
'=>', ', - )); - $tabRet[] = $competence; - } - $nbComp = count($tabTmp); - debugLog('I',"$nbComp compétences $type trouvées pour le tribunal $codeTGI",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - } - elseif ($type=='cfe') - { - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='C' || $tribunal['triType']=='O' || - $tribunal['triType']=='T' || $tribunal['triType']=='R' || - $tribunal['triType']=='N' || $tribunal['triType']=='U' || - $tribunal['triType']=='Z') - { - if (strlen($tribunal['triCommentaire'])==32 && - strpos($tribunal['triCommentaire'], ' ')===false) - $remarque=''; - else $remarque=$tribunal['triCommentaire']; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '.$tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $remarque; - $tabRet[] = $competence; - } - } - } - $this->wsLog('competences',$siret,$type.'/'.$codeInsee); - $output = new ListeCompetencesReturn(); - $output->result = $tabRet; - $output->nbReponses = count($tabRet); - return $output; - } - - /** - * Retourne le statut du webservice - * @return StatusReturn - */ - public function status() - { - /* @todo tester les différents éléments qui peuvent conduire - * à un problème dans les services tel que la connexion à la - * base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier - */ - - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info("status - ip:". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']. - ", hash:".$_SERVER['PHP_AUTH_PW']); - - $error = new StatusReturn(); - //Test connexion à la base de données - $db = new WDB('jo'); - if (!$db) { - $error->statusCode = 9000; - $error->statusMsg = $this->listError['9000']; - } else { - $error->statusCode = 3000; - $error->statusMsg = $this->listError['3000']; - } - return $error; - } - -} - -?> \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.2/Types.php b/library/WsScore/Entreprise/v0.2/Types.php deleted file mode 100644 index cbef89f2..00000000 --- a/library/WsScore/Entreprise/v0.2/Types.php +++ /dev/null @@ -1,3131 +0,0 @@ - 'ErrorType', - 'StatusReturn' => 'StatusReturn', - 'SearchReturn' => 'SearchReturn', - 'SearchEntrepriseReturn' => 'SearchEntrepriseReturn', - 'SearchDirReturn' => 'SearchDirReturn', - 'DirigeantsReturn' => 'DirigeantsReturn', - 'AnnoncesReturn' => 'AnnoncesReturn', - 'InseeReturn' => 'InseeReturn', - 'TvaReturn' => 'TvaReturn', - 'LiensReturn' => 'LiensReturn', - 'InfosRegReturn' => 'InfosRegReturn', - 'ListeBilansReturn' => 'ListeBilansReturn', - 'SetSurveillanceReturn' => 'SetSurveillanceReturn', - 'SurveillancesReturn' => 'SurveillancesReturn', - 'ListeEtablissementsReturn' => 'ListeEtablissementsReturn', - 'RatiosReturn' => 'RatiosReturn', - 'RechercheAnnonceReturn' => 'RechercheAnnonceReturn', - 'Identite' => 'Identite', - 'GeoInfos' => 'GeoInfos', - 'IdentiteBilan' => 'IdentiteBilan', - 'IdentiteBourse' => 'IdentiteBourse', - 'AutreSiren' => 'AutreSiren', - 'EntrepriseCriteres' => 'EntrepriseCriteres', - 'DirigeantCriteres' => 'DirigeantCriteres', - 'EntrepriseItem' => 'EntrepriseItem', - 'EntrepriseDirItem' => 'EntrepriseDirItem', - 'Etablissement' => 'Etablissement', - 'Dirigeant' => 'Dirigeant', - 'AnnonceFilter' => 'AnnonceFilter', - 'Annonce' => 'Annonce', - 'AnnonceEvenement' => 'AnnonceEvenement', - 'AnnonceNum' => 'AnnonceNum', - 'Actionnaire' => 'Actionnaire', - 'Participation' => 'Participation', - 'InseeEven' => 'InseeEven', - 'InfosReg' => 'InfosReg', - 'InfosBourse' => 'InfosBourse', - 'ListeBilans' => 'ListeBilans', - 'SurveillancesFiltre' => 'SurveillancesFiltre', - 'Surveillance' => 'Surveillance', - 'Bilan' => 'Bilan', - 'BilanPoste' => 'BilanPoste', - 'RechercheAnnonceCriteres' => 'RechercheAnnonceCriteres', - 'AnnonceItem' => 'AnnonceItem', - 'RatiosBilansInfos' => 'RatiosBilansInfos', - 'RatiosInfos' => 'RatiosInfos', - 'RatiosSecteur' => 'RatiosSecteur', - 'Ratios' => 'Ratios', - 'Rapport' => 'Rapport', - 'Indiscore' => 'Indiscore', - 'Scores' => 'Scores', - 'IndiscoreVariables' => 'IndiscoreVariables', - 'CA_Y' => 'CA_Y', - 'IndiscoreImportExport' => 'IndiscoreImportExport', - 'IndiscoreInfosNotations' => 'IndiscoreInfosNotations', - 'IndiscorePaiement' => 'IndiscorePaiement', - 'IndiscorePaiementDetail' => 'IndiscorePaiementDetail', - 'IndiscoreNotesStructure' => 'IndiscoreNotesStructure', - 'IndiscoreBilans' => 'IndiscoreBilans', - 'AdresseDomEnt' => 'AdresseDomEnt', - 'InfosIris' => 'InfosIris', - 'BanquesReturn' => 'BanquesReturn', - 'Banque' => 'Banque', - 'ListeCompetencesReturn' => 'ListeCompetencesReturn', - 'Competence' => 'Competence', - 'IdentiteProcol' => 'IdentiteProcol', - 'Organe' => 'Organe', - 'AutreSiret' => 'AutreSiret', -); \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.3/Service.php b/library/WsScore/Entreprise/v0.3/Service.php deleted file mode 100644 index 1850124b..00000000 --- a/library/WsScore/Entreprise/v0.3/Service.php +++ /dev/null @@ -1,3263 +0,0 @@ -authenticate(); - - //Initialisation - if (empty($id)) { $id = 0; } - $forceVerif = false; - - $tdeb = microtime(1); - $ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ..."; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if ($siren*1==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->AncienSiege = $entrep['AncienSiege']; - $identite->AncienSiegeDateFin = $entrep['AncienSiegeDateFin']; - $identite->TribunalCode = prepareString($entrep['Tribunal']); - $identite->TribunalLib = prepareString($entrep['TribunalLib']); - //'NumGreffe' = $entrep['numGreffe'], // Ajouté le 4 08 2009 - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->ActifEco = $entrep['ActifEco']; // Etab éco actif, ajout le 28/04/2011 - $identite->ActifEcoDate = $entrep['ActifEcoDate']; // Date si éco inactif et jur actif - $identite->ActifEcoType = $entrep['ActifEcoType']; // vide ou NPAI ou PFER ou ECOF - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = prepareString(strtr($entrep['Nom'],'/*',' ')); - $identite->Nom2 = prepareString($entrep['Nom2']); - $identite->NomLong = prepareString($entrep['nomLong']); // Ajouté le 4 08 2009 - $identite->NomCommercial = prepareString($entrep['NomCommercial']); // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = prepareString($entrep['Sigle']); - $identite->SigleLong = prepareString($entrep['sigleLong']); // Ajouté le 4 08 2009 - $identite->Enseigne = prepareString($entrep['Enseigne']); - $identite->EnseigneLong = prepareString($entrep['enseigneLong']); // Ajouté le 16 11 2010 - $identite->Adresse = prepareString($entrep['Adresse']); - $identite->Adresse2 = prepareString($entrep['Adresse2']); - $identite->AdresseNum = prepareString($entrep['AdresseNum']); - $identite->AdresseBtq = prepareString($entrep['AdresseBtq']); - $identite->AdresseVoie = prepareString($entrep['AdresseVoie']); - $identite->AdresseRue = prepareString($entrep['AdresseRue']); - $identite->CP = $entrep['CP']; - $identite->Ville = prepareString($entrep['Ville']); - $identite->Pays = prepareString($entrep['Pays']); // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = prepareString($entrep['Tel']); - $identite->Fax = prepareString($entrep['Fax']); - $identite->Web = prepareString($entrep['Web']); - $identite->Mail = prepareString($entrep['Mail']); - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - - $geoInfos = new GeoInfos(); - $geoInfos->CUCS = $entrep['GeoInfos']['CUCS']; - $geoInfos->NCUCS = $entrep['GeoInfos']['NCUCS']; - $geoInfos->ZRU = $entrep['GeoInfos']['ZRU']; - $geoInfos->NZRU = $entrep['GeoInfos']['NZRU']; - $geoInfos->ZFU = $entrep['GeoInfos']['ZFU']; - $geoInfos->NZFU = $entrep['GeoInfos']['NZFU']; - $geoInfos->ZUS = $entrep['GeoInfos']['ZUS']; - $geoInfos->NZUS = $entrep['GeoInfos']['NZUS']; - $geoInfos->AFR = $entrep['GeoInfos']['AFR']; - $geoInfos->NAFR = $entrep['GeoInfos']['NAFR']; - $geoInfos->ZRR = $entrep['GeoInfos']['ZRR']; - $geoInfos->NZRR = $entrep['GeoInfos']['NZRR']; - $identite->GeoInfos = $geoInfos; - - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = prepareString($entrep['NafEntLib']); - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = prepareString($entrep['NafEtabLib']); - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = prepareString($entrep['APRM_Lib']); - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = prepareString($entrep['CapitalType']); // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - //'DateMajRCS' = $entrep['DateMajRCS'], // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = prepareString($entrep['codeCommune']); - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = prepareString($entrep['dir1Titre']); - $identite->dir1NomPrenom = prepareString($entrep['dir1NomPrenom']); - $identite->dir1DateFct = prepareString($entrep['dir1DateFct']); //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = prepareString($entrep['dir1LieuNaiss']); // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = prepareString($entrep['dir2Titre']); - $identite->dir2NomPrenom = prepareString($entrep['dir2NomPrenom']); - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = prepareString($entrep['dir2DateNaiss']); //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = prepareString($entrep['dir2LieuNaiss']); // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = prepareString($entrep['InfosIris']['libIris']); - $identite->InfosIris->typIris = prepareString($entrep['InfosIris']['typIris']); - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $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->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = prepareString($entrep['bilanHN']); - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $tabAutreSiret = array(); - if (count($entrep['AutreSiret'])) { - foreach($entrep['AutreSiret'] as $type => $item) { - $autreSiret = new AutreSiret(); - $autreSiret->type = $type; - $autreSiret->siren = $item['siren']; - $autreSiret->nic = $item['nic']; - $autreSiret->apeEtab = $item['apeEtab']; - $autreSiret->codeEve = $item['codeEve']; - $autreSiret->dateEve = $item['dateEve']; - $autreSiret->adrL1 = $item['adrL1']; - $autreSiret->adrL2 = $item['adrL2']; - $autreSiret->adrL3 = $item['adrL3']; - $autreSiret->adrL4 = $item['adrL4']; - $autreSiret->adrL5 = $item['adrL5']; - $autreSiret->adrL6 = $item['adrL6']; - $autreSiret->adrL7 = $item['adrL7']; - $autreSiret->depCom = $item['depCom']; - $autreSiret->rivoli = $item['rivoli']; - $autreSiret->siege = $item['siege']; - $autreSiret->destinat = $item['destinat']; - $autreSiret->typEtab = $item['typeEtab']; - $autreSiret->origine = $item['origine']; - $tabAutreSiret[] = $autreSiret; - } - } - $identite->AutreSiret = $tabAutreSiret; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - //'importExport' = $entrep['importExport'], - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = prepareString($entrep2['apen4_lib']); - $identite->Naf4EtabLib = prepareString($entrep2['apet4_lib']); - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - $duree=round(microtime(1)-$tdeb,3); - $ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!"; - $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - - return $identite; - } - - /** - * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé - * @param string $siret Siren de l'entreprise ou siret de l'établissement - * @param integer $id Identifiant S&D de l'établissement - * @return IdentiteProcol Fiche d'identité de l'établissement - */ - public function getIdentiteProcol($siret, $id=0, $forceVerif=false) - { - $this->authenticate(); - - debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if (intval($siren)==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identiteProcol = new IdentiteProcol(); - - //Element identite - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->TribunalCode = $entrep['Tribunal']; - $identite->TribunalLib = $entrep['TribunalLib']; - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = strtr($entrep['Nom'],'/*',' '); - $identite->Nom2 = $entrep['Nom2']; - $identite->NomLong = $entrep['nomLong']; // Ajouté le 4 08 2009 - $identite->NomCommercial = $entrep['NomCommercial']; // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = $entrep['Sigle']; - $identite->SigleLong = $entrep['sigleLong']; // Ajouté le 4 08 2009 - $identite->Enseigne = $entrep['Enseigne']; - $identite->EnseigneLong = $entrep['enseigneLong']; // Ajouté le 16 11 2010 - $identite->Adresse = $entrep['Adresse']; - $identite->Adresse2 = $entrep['Adresse2']; - $identite->AdresseNum = $entrep['AdresseNum']; - $identite->AdresseBtq = $entrep['AdresseBtq']; - $identite->AdresseVoie = $entrep['AdresseVoie']; - $identite->AdresseRue = $entrep['AdresseRue']; - $identite->CP = $entrep['CP']; - $identite->Ville = $entrep['Ville']; - $identite->Pays = $entrep['Pays']; // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = $entrep['Tel']; - $identite->Fax = $entrep['Fax']; - $identite->Web = $entrep['Web']; - $identite->Mail = $entrep['Mail']; - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - $identite->GeoInfos = $entrep['GeoInfos']; - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = $entrep['APRM_Lib']; - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = $entrep['CapitalType']; // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = $entrep['codeCommune']; - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = $entrep['dir1Titre']; - $identite->dir1NomPrenom = $entrep['dir1NomPrenom']; - $identite->dir1DateFct = $entrep['dir1DateFct']; //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = $entrep['dir1LieuNaiss']; // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = $entrep['dir2Titre']; - $identite->dir2NomPrenom = $entrep['dir2NomPrenom']; - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = $entrep['dir2DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = $entrep['dir2LieuNaiss']; // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = $entrep['InfosIris']['libIris']; - $identite->InfosIris->typIris = $entrep['InfosIris']['typIris']; - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière - $identite->SituationJuridique = $entrep['SituationJuridique']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = $entrep['bilanHN']; - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = $entrep2['apen4_lib']; - $identite->Naf4EtabLib = $entrep2['apet4_lib']; - } - - $identiteProcol->Identite = $identite; - - //Eléments annonces légales - $anns = $this->getAnnonces($siren, 1); - $tabRetAnn = $tabLastEven = array(); - $anns = $anns->result; - $tribunalProcol = false; - foreach ($anns as $nb=>$ann) { - $tabRetEven = array(); - foreach ($ann->evenements as $tabEven) { - // On ignore les éléments suivants - if ($tabEven->CodeEven>=7000) continue; - if ($tabEven->CodeEven>=4000 && $tabEven->CodeEven<=4999) continue; - - // Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol - if ($tribunalProcol==false && $tabEven->CodeEven>=1000 && $tabEven->CodeEven<2000 && $ann->BodaccCode=='BODA') { - $identiteProcol->TribunalCode = $ann->TribunalCode; - $identiteProcol->TribunalLib = prepareString($ann->Tribunal); - $tribunalProcol=true; - } - - // On ne prend que le dernier élément de chaque type - if (in_array($tabEven->CodeEven, $tabLastEven)) continue; - - $tabLastEven[] = $tabEven->CodeEven; - $tabRetEven[] = $tabEven; - } - - if (count($tabRetEven)>0) { - $annonce = new Annonce(); - $annonce->id = $ann->id; - $annonce->BodaccCode = $ann->BodaccCode; - $annonce->BodaccNum = $ann->BodaccNum; - $annonce->NumAnnonce = $ann->NumAnnonce; - $annonce->DateParution = $ann->DateParution; //@todo : date - $annonce->Departement = $ann->Departement; - $annonce->Tribunal = $ann->Tribunal; - $annonce->TribunalCode = $ann->TribunalCode; - $annonce->TribunalSiret = $ann->TribunalSiret; - $annonce->Rubrique = $ann->Rubrique; - $annonce->typeAnnonce = $ann->typeAnnonce; - $annonce->texteRectificatif = $ann->texteRectificatif; - $annonce->texteAnnonce = utf8_encode($ann->texteAnnonce); - $annonce->dateEffet = $ann->dateEffet; //@todo : date - $annonce->dateJugement = $ann->dateJugement; //@todo : date - $annonce->dateInsertionSD = $ann->dateInsertionSD; //@todo : date - $annonce->evenements = $tabRetEven; - $annonce->Lien_Annonce_Pdf = $ann->Lien_Annonce_Pdf; - $tabRetAnn[] = $annonce; - } - } - $identiteProcol->Annonces = $tabRetAnn; - - $iRncs = new Metier_Partenaires_MRncs(); - if ($entrep['Siege']==1 || $entrep['Siege']==11) { - $identiteProcol->LibTypeEtab = 'Etablissement Siege'; - } else { - $tabEtabRncs = $iRncs->getIdentiteEtab($siren, $entrep['Nic']); - if ($tabEtabRncs['Siege']==2) $identiteProcol->LibTypeEtab = 'Etablissement Principal'; - elseif ($tabEtabRncs['Siege']==1) $identiteProcol->LibTypeEtab = 'Etablissement Complementaire'; - elseif ($tabEtabRncs['Siege']==0) $identiteProcol->LibTypeEtab = 'Etablissement Secondaire'; - } - - //@todo - $tabJuge = $iRncs->getIntervenants($siren); - $tabDepots=array(); - foreach ($tabJuge as $iDepot=>$depot) { - $organe = new Organe(); - $organe->codEven = $depot['codEven']; - $organe->libEven = prepareString($depot['libEven']); - $organe->dateEffet = $depot['dateEffet']; - $organe->admcode = $depot['admcode']; - $organe->admfonction = prepareString($depot['admfonction']); - $organe->admnom = prepareString($depot['admnom']); - $organe->admadrNum = $depot['admadrNum']; - $organe->admadrInd = $depot['admadrInd']; - $organe->admadrVoie = $depot['admadrVoie']; // @todo : adm1adr1, adm1adr2, adm1adr3, - $organe->admadrCP = $depot['admadrCP']; - $organe->admadrVille = $depot['admadrVille']; - $tabDepots[] = $organe; - } - $identiteProcol->Organes = $tabDepots; - - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, 1); - $nbA = count($tabA); - $tabAct = array(); - foreach ($tabA as $i=>$lien) { - $liens = new Actionnaire(); - $liens->Pmin = $lien['Pmin']; - $liens->MajMin = $lien['MajMin']; - $liens->RaisonSociale = $lien['RaisonSociale']; - $liens->Pays = $lien['Pays']; - $liens->Siren = $lien['Siren']; - $liens->Actif = $lien['Actif']; - $tabAct[] = $liens; - } - $identiteProcol->Actionnaires = $tabAct; - - $iGreffes = new Metier_Partenaires_MGreffes(); - $tabActes = $iGreffes->getListeActes($siren); - - $identiteProcol->StatutsModifDepot = $identiteProcol->StatutsModif = '0000-00-00'; - foreach ($tabActes as $i=>$acte) { - if ('_'.$acte['acte_type']=='_04') { // STATUTS CONSTITUTIFS - $identiteProcol->StatutsConstDepot = $acte['depot_date']; // => 1997-12-18 - $identiteProcol->StatutsConst = $acte['acte_date']; // => 1997-11-13 - break; - } elseif (in_array('_'.$acte['acte_type'], array( - //'_04', // STATUTS CONSTITUTIFS - '_06', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_07', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_08', // STATUTS A JOUR ET DECLARATION DE CONFORMITE 9 0000-00-00 2009-09-02 17:05:55 - '_09', // STATUTS APRES TRANSFERT DE SIEGE 9 0000-00-00 2009-09-02 17:05:55 - '_A1', // STATUTS 9 0000-00-00 2009-09-02 17:05:55 - '_AH', // AVENANT AUX STATUTS - ))) { - // On ne prend que la dernière modif - if ($identiteProcol->StatutsModifDepot=='0000-00-00' && $identiteProcol->StatutsModif=='0000-00-00') { - $identiteProcol->StatutsModifDepot = $acte['depot_date'];// => 1997-12-18 - $identiteProcol->StatutsModif = $acte['acte_date']; // => 1997-11-13 - } - } - } - - /** Y a t il eu des informations relatives à une cession ? **/ - $tabCes = $iGreffes->getInfosCessions($siren); - if ($tabCes) { - $identiteProcol->CessionJugeLib = $tabCes['cessJuge']; - $identiteProcol->CessionJugeDate = $tabCes['cessDateJuge']; - $identiteProcol->CessionAvisBodac = $tabCes['cessDateBod']; - $identiteProcol->CessionInvenDate = $tabCes['cessDateInv']; - $identiteProcol->CessionCAdeclare = $tabCes['cessCAdec']; - $identiteProcol->CessionEffectif = $tabCes['cessEffectif']; - $identiteProcol->CessionDesc = $tabCes['cessDesc']; - $identiteProcol->CessionDescDate = $tabCes['cessDateDesc']; - $identiteProcol->CessionOffreDate = $tabCes['cessDateLim']; - $identiteProcol->CessionMandataire = $tabCes['cessMand']; - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - - return $identiteProcol; - } - - /** - * Retourne les liens financiers pour une entreprise. - * - * @param integer $siren Siren de l'entreprise - * @param boolean $actifsUniquement Uniquement les liens Actifs - * @return LiensReturn - */ - public function getLiens($siren, $actifsUniquement = true) - { - $this->authenticate(); - - //Initialisation - if (empty($actifsUniquement)) { $actifsUniquement = true; } - $tabAct = $tabPar = array(); - - debugLog('I',"Liens entreprises demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, $actifsUniquement); - $nbA = count($tabA); - $tabAct = array(); - if ($nbA > 0) { - foreach ($tabA as $i => $lien) { - $actionnaire = new Actionnaire(); - $actionnaire->Pmin = $lien['Pmin']; - $actionnaire->MajMin = $lien['MajMin']; - $actionnaire->RaisonSociale = $lien['RaisonSociale']; - $actionnaire->TypeEntrep = $lien['TypeEntrep']; - $actionnaire->Pays = $lien['Pays']; - $actionnaire->Siren = $lien['Siren']; - $actionnaire->Actif = $lien['Actif']; - $actionnaire->Source = $lien['Source']; - $actionnaire->DateLien = $lien['DateLien']; //@todo : date - $actionnaire->DateMaj = $lien['DateMaj']; //@todo : date - $tabAct[] = $actionnaire; - } - } - debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $tabP = $mLiens->getParticipations($siren, $actifsUniquement); - $nbP = count($tabP); - $tabPar = array(); - if ($nbP > 0) { - foreach ($tabP as $i => $lien) { - $participation = new Participation(); - $participation->Pmin = $lien['Pmin']; - $participation->MajMin = $lien['MajMin']; - $participation->RaisonSociale = $lien['RaisonSociale']; - $participation->TypeEntrep = $lien['TypeEntrep']; - $participation->Pays = $lien['Pays']; - $participation->Siren = $lien['Siren']; - $participation->Actif = $lien['Actif']; - $participation->Source = $lien['Source']; - $participation->DateLien = $lien['DateLien']; //@todo : date - $participation->DateMaj = $lien['DateMaj']; //@todo : date - $tabPar[] = $participation; - } - } - debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('liens',$siren); - - $output = new LiensReturn(); - $output->actionnaires = $tabAct; - $output->participations = $tabPar; - return $output; - } - - - /** - * Liste des établissements d'une entreprise - * @param string $siren Siren de l'entreprise - * @param integer $departement Limiter aux établissements du departement - * @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous - * @param integer $position - * @param integer $nbRep - * - * @return ListeEtablissementsReturn - */ - public function getListeEtablissements($siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20) - { - $this->authenticate(); - - //Initialisation - if (empty($dep)) { $dep = 0; } - if (!in_array($actif, array(0,1))) { $actif = -1; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 20; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - $departement = $dep; - - debugLog('I',"Liste des établissements demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif); - $etabs = $rep['reponses']; - $nbReponses = $rep['nbReponsesTotal']; - $result = array(); - if (count($etabs)>0) - { - foreach ($etabs as $nb => $etab) - { - $etablissement = new Etablissement(); - $etablissement->id = $etab['id']; - $etablissement->Siege = $etab['Siege']; - $etablissement->Enseigne = $etab['Enseigne']; - $etablissement->Adresse = $etab['Adresse']; - $etablissement->Adresse2 = $etab['Adresse2']; - $etablissement->CP = $etab['CP']; - $etablissement->Ville = $etab['Ville']; - $etablissement->Tel = $etab['Tel']; - $etablissement->Fax = $etab['Fax']; - $etablissement->Nic = $etab['Nic']; - $etablissement->Actif = $etab['Actif']; - $etablissement->NafEtab = $etab['NafEtab']; - $etablissement->NafEtabLib = $etab['NafEtabLib']; - $etablissement->EffEtTr = $etab['EffEtTr']; - $etablissement->EffEtTrLib = $etab['EffEtTrLib']; - - $result[] = $etablissement; - } - } - debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('etablissements',$siren); - $output = new ListeEtablissementsReturn(); - $output->nbReponses = $nbReponses; - $output->result = $result; - return $output; - } - - /** - * Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise - * - * @param string $siren Siren de l'entreprise - * @param bool $histo Afficher l'historique des dirigeants - * @return DirigeantsReturn Liste des dirigeants actifs de l'entreprise - */ - public function getDirigeants( $siren , $histo = false) - { - $this->authenticate(); - - //Initialisation - if (empty($histo)) { $histo = false; } - - //Zend_Registry::get('WsLogger')->info('HISTO : '.$histo); - - debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $dirs = $iInsee->getDirigeants($siren, $histo); - //debugLog('W', print_r($dirs, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $liste = array(); - foreach ($dirs as $nb => $dir) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $dirigeant = new Dirigeant(); - $dirigeant->Code = $dir['Fonction']; - $dirigeant->Titre = $dir['Titre']; - $dirigeant->Societe = $dir['Societe']; - $dirigeant->Civilite = $dir['Civilite']; - $dirigeant->Nom = $dir['Nom']; - $dirigeant->Prenom = $dir['Prenom']; - //$dirigeant->NomUsage = $dir['NomUsage']; //@todo : modifier la structure - $dirigeant->NaissDate = $dir['NaissDate']; //@todo : date - $dirigeant->NaissVille = $dir['NaissVille']; - $dirigeant->NaissDepPays = $dir['NaissDepPays']; - $dirigeant->Ancien = $dir['Ancien']; - $dirigeant->DateFct = $dir['DateFct']; //@todo : date - $liste[] = $dirigeant; - } - $this->wsLog('dirigeants',$siren,$option); - debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $output = new DirigeantsReturn(); - $output->result = $liste; - return $output; - } - - /** - * Retourne la liste des annonces légales relative à une entreprise - * - * @todo Revoir cette fonction pour la faire marcher avec les associations - * - * @param string $siren Siren de l'entreprise - * @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp - * @param string $idAnn Identifiant de l'annonce - * @param integer $position - * @param integer $nbRep - * @return AnnoncesReturn - */ - public function getAnnonces($siren, $filtre = 0, $idAnn = '', $position = 0, $nbRep = 100) - { - $this->authenticate(); - - //Initialisation - if (empty($filtre)) { $filtre = 0; } - if (empty($idAnn)) { $idAnn = ''; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 100; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - - debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $liste = array(); - - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0 && $idAnn=='') { - debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - /* - if ($siren>100 && $filtre==3) $asso=true; - else { - $asso=false; - $tabIdentite=$this->iInsee->getIdentiteLight($siren); - if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || - $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; - }*/ - if ($idAnn=='') { - $anns=$iInsee->getAnnoncesLegales($siren); - $annsB=$iInsee->getAnnoncesBalo($siren); - $annsA=$iInsee->getAnnoncesAsso($siren); - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } elseif ($filtre==1) - $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); - elseif ($filtre==2) - $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); - elseif ($filtre==3) - $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); - elseif ($filtre==4) - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) - { - debugLog('W', "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $error->errnum = 102; - $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; - } - else - { - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - $annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = prepareString($ann['texteAnnonce']); - $annonce->libFJ = $ann['libFJ']; - $annonce->codFJ = $ann['codFJ']; - $annonce->capital = $ann['capital']; - $annonce->capitalDev = $ann['capitalDev']; - - $annonce->raisonSociale = $ann['raisonSociale']; - $annonce->nomCommercial = $ann['nomCommercial']; - $annonce->sigle = $ann['sigle']; - $annonce->adresse = $ann['adresse']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - - if (is_array($annsB)) - { - foreach ($annsB as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsA)) - { - foreach ($annsA as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - //@todo : date - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsM)) - { - foreach ($annsM as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - } - - $nbReponses = count($liste); - if ($nbReponses>0){ - //$liste = array_slice($liste, $position, $nbRep); - } - debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); - - $output = new AnnoncesReturn(); - $output->nbReponses = $nbReponses; - $output->result = $liste; - return $output; - } - - /** - * Evaluation indiScore d'une entreprise - * - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param int $niveau - * @return Indiscore - */ - public function getIndiScore($siren, $nic=0, $niveau=2, $plus=false) - { - $this->authenticate(); - - $perm = false; - switch($niveau){ - case 1: - if ( !$this->checkPerm('indiscore') || !$this->checkPerm('indiscorep') ){ - $this->permission('indiscore'); - } - break; - case 2: - if (!$this->checkPerm('indiscore2') || !$this->checkPerm('indiscore2p') ){ - $this->permission('indiscore2'); - } - break; - case 3: - if (!$this->checkPerm('indiscore3') || !$this->checkPerm('indiscore3p') ){ - $this->permission('indiscore3'); - } - break; - } - - //Initialisation - $accesDist = true; - if (empty($nic)) { $nic = 0; } - if (empty($niveau)) { $niveau = 2; } - if (empty($plus)) { $plus = false; } - if ( !in_array($niveau, array(0,1,2,3,4,5)) ) { $niveau = 2; } - $tabRet = array(); - debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 ){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; - $tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau); - $duree = round(microtime(true)-$tDeb,3); - debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - /* - if ($plus) { - $this->setSurveillance($siren, $this->User->email, 'Indiscore+', 'privileges', false, 0); - $this->setSurveillance($siren, $this->User->email, 'Indiscore+', 'score'); - if ($this->User->idClient==89) - $this->setSurveillance($siren, $this->User->email, 'Indiscore+', 'annonces'); - }*/ - $output = new Indiscore(); - foreach($tabRet as $key => $value){ - if ($key=='paiements'){ - $parMont = $value['parMont']; - $parTrim = $value['parTrim']; - $tabMont = array(); - foreach($parMont as $parMontK => $parMontV){ - $paiementMont = new IndiscorePaiementDetail(); - $paiementMont->id = $parMontK; - $paiementMont->nb = $parMontV['nb']; - if (array_key_exists('d=180', $parMontV)){ - $paiementMont->d180 = $parMontV['d=180']; - } - if (array_key_exists('d=150', $parMontV)){ - $paiementMont->d150 = $parMontV['d=150']; - } - if (array_key_exists('d=120', $parMontV)){ - $paiementMont->d120 = $parMontV['d=120']; - } - if (array_key_exists('d=90', $parMontV)){ - $paiementMont->d90 = $parMontV['d=90']; - } - if (array_key_exists('d=60', $parMontV)){ - $paiementMont->d60 = $parMontV['d=60']; - } - if (array_key_exists('d=30', $parMontV)){ - $paiementMont->d30 = $parMontV['d=30']; - } - $tabMont[] = $paiementMont; - } - $tabTrim = array(); - foreach($parTrim as $parTrimK => $parTrimV){ - $paiementTrim = new IndiscorePaiementDetail(); - $paiementTrim->id = $parTrimK; - $paiementTrim->nb = $parTrimV['nb']; - if (array_key_exists('d=180', $parTrimV)){ - $paiementTrim->d180 = $parTrimV['d=180']; - } - if (array_key_exists('d=150', $parTrimV)){ - $paiementTrim->d150 = $parTrimV['d=150']; - } - if (array_key_exists('d=120', $parTrimV)){ - $paiementTrim->d120 = $parTrimV['d=120']; - } - if (array_key_exists('d=90', $parTrimV)){ - $paiementTrim->d90 = $parTrimV['d=90']; - } - if (array_key_exists('d=60', $parTrimV)){ - $paiementTrim->d60 = $parTrimV['d=60']; - } - if (array_key_exists('d=30', $parTrimV)){ - $paiementTrim->d30 = $parTrimV['d=30']; - } - $tabTrim[] = $paiementTrim; - } - $paiement = new IndiscorePaiement(); - $paiement->parMont = $tabMont; - $paiement->parTrim = $tabTrim; - $output->paiements = $paiement; - - } elseif ($key=='Notes_Structure') { - - $notesStructure = new IndiscoreNotesStructure(); - $notesStructure->activite = $value['activite']; - $notesStructure->naf4 = $value['naf4']; - $notesStructure->age = $value['age']; - $notesStructure->capital = $value['capital']; - $notesStructure->effectif = $value['effectif']; - $notesStructure->fj = $value['fj']; - $notesStructure->localite = $value['localite']; - $notesStructure->singulier = $value['singulier']; - $output->Notes_Structure = $notesStructure; - - } elseif ($key=='tabBilans') { - - $tabRet = array(); - foreach($value as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - $output->tabBilans = $tabRet; - - } elseif ($key=='tabBilan') { - - $tabRet = array(); - foreach($value as $bilan){ - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($bilan as $bilan_key => $bilan_value){ - if(!in_array($bilan_key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $bilan_key; - $resultPoste->val = $bilan_value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$bilan_key = $bilan_value; - } - } - $resultBilan->POSTES = $tabPoste; - $tabRet[] = $resultBilan; - } - $output->tabBilan = $tabRet; - - } elseif ($key=='tabInfosNotations') { - - $infosNotation = new IndiscoreInfosNotations(); - $infosNotation->SituationFinanciere = $value['SituationFinanciere']; - $infosNotation->Notation = $value['Notation']; - $infosNotation->ProbabiliteDefaut = $value['ProbabiliteDefaut']; - $output->tabInfosNotations = $infosNotation; - - } elseif ($key=='tabImportExport') { - - $tabRet = array(); - foreach($value as $element){ - $importExport = new IndiscoreImportExport(); - $importExport->importExport = $element['importExport']; - $importExport->annee = $element['annee']; - $importExport->rangNational = $element['rangNational']; - $importExport->deptSiege = $element['deptSiege']; - $tabRet[] = $importExport; - } - $output->tabImportExport = $tabRet; - - } elseif ($key=='tabCommentaires') { - - $tab = array(); - foreach($value as $comment) { - $tab[] = Scores_Locale_String::fixEncoding($comment); - } - $output->tabCommentaires = $tab; - - } elseif ($key=='tabVariables') { - - $tab = $value['CA_Y']; - $tabVar = array(); - foreach($tab as $varName => $varVal){ - $var = new CA_Y(); - $var->id = $varName; - $var->val = $varVal; - $tabVar[] = $var; - } - $variables = new IndiscoreVariables(); - $variables->CA_Y = $tabVar; - $output->tabVariables = $variables; - - } elseif ($key=='Bilans') { - - $tab = array(); - foreach($value as $item) - { - $objet = new IndiscoreBilans(); - $objet->Millesime = $item['Millesime']; - $objet->FraisPerso = $item['FraisPerso']; - $objet->CA = $item['CA']; - $objet->EBE = $item['EBE']; - $objet->TxInvest = $item['TxInvest']; - $objet->TxEndett = $item['TxEndett']; - $objet->DettesCT = $item['DettesCT']; - $objet->FraisFi = $item['FraisFi']; - $objet->BFR = $item['BFR']; - $objet->FR = $item['FR']; - $objet->FondsPr = $item['FondsPr']; - $objet->DelaiCli = $item['DelaiCli']; - $objet->DelaiFour = $item['DelaiFour']; - $tab[] = $objet; - } - $output->$key = $tab; - } else { - $output->$key = $value; - } - } - $this->wsLog('indiscore',$siren); - return $output; - } - - /** - * Liste de tous les évènements enregistrés à l'INSEE pour une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param integer $position - * @param integer $nbRep - * @return InseeReturn - **/ - public function getListeEvenements($siren, $nic=0, $position=0, $nbRep=1000) - { - $this->authenticate(); - $this->permission('eveninsee'); - - //Initialisation - if (empty($nic)) { $nic = 0; } - if (empty($position)) { $position = 0; } - if (empty($nbRep) || $nbRep>1000) { $nbRep = 1000; } - - debugLog('I',"Liste des évènements pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $evens = $iInsee->getEvenements($siren, $nic, $position, $nbRep); - $tabRet = array(); - if (count($evens)>0) { - foreach ($evens as $nb=>$even) { - $iEven = new InseeEven(); - $iEven->Nic = $even['nic']; - $iEven->Siege = $even['siege']; - $iEven->SiretAss = $even['siretAssocie']; - $iEven->TypeSiretAss = $even['typeSiretAss']; - $iEven->EvenCode = $even['codeEven']; - $iEven->EvenLib = $even['libEven']; - $iEven->EvenLibDet = $even['libEvenDet']; - $iEven->EvenDate = $even['dateEven']; //@todo : date - $iEven->DateInfo = $even['dateMAJ']; //@todo : date - $tabRet[] = $iEven; - } - } - - debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('evenements',$siren); - $output = new InseeReturn(); - $output->nbReponses = count($tabRet); // @todo : retrouver le nombre total d'évenements - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche - * @param EntrepriseCriteres $criteres - * @param integer $position Position de parcours des résultats retournées (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut) - * @param integer $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut) - * @param boolean $avecSiren Seulement les entités sirénées (false par défaut) - * @return SearchEntrepriseReturn - */ - public function searchEntreprise($criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false) - { - $this->authenticate(); - - if (empty($position)) { $position = 0;} - if (empty($nbRep)) { $nbRep = 20; } - if (empty($maxRep)) { $maxRep = 200; } - - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info(__FUNCTION__."- ip : ". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']); - - $entCriteres = new EntrepriseCriteres(); - $entCriteres = $criteres; - $identifiant = $entCriteres->identifiant; - $typeId = ''; - - //Detection autour de l'identifiant - if ($identifiant!='') { - $len = strlen($identifiant); - //Numéro WALDEC - if (strtoupper(substr($identifiant,0,1))=='W') { - $typeId = 'W'; - //Code ISIN - } elseif ($len==12){ - $typeId = 'I'; - //TVA Intracommunautaire - } elseif (in_array(substr($identifiant,0,2), - array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES', - 'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL', - 'PT','RO','SE','SI','SK'))){ - //"La recherche par numéro de TVA n'est pas encore possible sur ce pays !"; - //Pour la france - } elseif (substr($identifiant,0,2)=='FR') { - $typeId = 'S'; - if ($len==13) $identifiant = substr($identifiant,4,9); - else $identifiant = ''; - //Numéro RC - } elseif (preg_match('/A|B|C|D/i', $identifiant)) { - $typeId = 'R'; - //Siren normal on enleve tout ce qui n'est pas un chiffre - } else { - $typeId = 'S'; - } - } - - $adresse = trim($entCriteres->adresse); - - //Détection Tel/Fax uniquement - if ( empty($typeId) - && empty($entCriteres->raisonSociale) - && empty($adresse) - && empty($entCriteres->codePostal) - && empty($entCriteres->ville) ){ - $typeId = 'TEL'; - } - - if (in_array($typeId, array('R', 'W', 'I'))){ - - $O = $this->searchAutreId( - $typeId, - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } elseif ($typeId == 'S'){ - - $O = $this->searchSiren( - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } elseif ($typeId == 'TEL'){ - - $O = $this->searchTelFax( - $entCriteres->telFax, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } else { - - $O = $this->searchNomAdr( - Scores_Locale_String::cleanstring($entCriteres->raisonSociale), - Scores_Locale_String::cleanstring($entCriteres->adresse), - $entCriteres->codePostal, - Scores_Locale_String::cleanstring($entCriteres->ville), - empty($entCriteres->siege) ? false : $entCriteres->siege, - empty($entCriteres->actif) ? false : $entCriteres->actif, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - empty($pertinence) ? false : $pertinence, - empty($avecSiren) ? false : $avecSiren, - $entCriteres->naf - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - } - } - - /** - * Recherche d'entreprise par dirigeants - * @param DirigeantCriteres $criteres - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchDirReturn - */ - public function searchDir($criteres, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - $nom = $criteres->nom; - $prenom = $criteres->prenom; - $dateNaiss = $criteres->dateNaiss; - $lieuNaiss = $criteres->lieuNaiss; - $pertinence = $criteres->pertinence; - - debugLog('I',"Recherche Dirigeant de $nom, $prenom, $dateNaiss, $lieuNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($prenom)) $prenom = ''; - if (empty($dateNaiss)) $dateNaiss = ''; - if (empty($lieuNaiss)) $lieuNaiss = ''; - if (empty($pertinence)) $pertinence = false; - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheDir($nom, $prenom, '', $dateNaiss, $lieuNaiss, $deb, $nbRep, $maxRep, $pertinence); - - $tabRet = array(); - foreach ($etabs['reponses'] as $etab) { - $item = new EntrepriseDirItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($iInsee->getLibelleNaf($etab['NafEtab'])); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($iInsee->getLibelleNaf($etab['NafEnt'])); - - // Dirigeant - $item->DirRs = prepareString($etab['DirRs']); - $item->DirNom = prepareString($etab['DirNom']); - $item->DirPrenom = prepareString($etab['DirPrenom']); - $item->DirNomUsage = prepareString($etab['DirNomUsage']); - $item->DirDateEffet = $etab['DirDateEffet']; - $item->DirFonction = prepareString($etab['DirFonction']); - $item->DirDepart = $etab['DirDepart']; - $tabRet[] = $item; - } - - if ($etabs['nbReponses']==0){ - debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - } - - $search = new SearchDirReturn(); - $search->nbReponses = $etabs['nbReponses']; - $search->nbReponsesTotal = $etabs['nbReponsesTotal']; - $search->result = $tabRet; - return $search; - } - - /** - * Recherche d'entreprise ou d'établissement par un autre Identifiant - * - * @param string $typeId I=Code Isin, W=N°Waldec (Associations) ou R=N°RC (Registre Greffe) - * @param string $identifiant Identifiant recherché - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchAutreId($typeId, $identifiant, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - if (empty($dep)) $dep = 0; - - $typeId = substr(trim(strtoupper($typeId)),0,1); - - if ($typeId!='I' && $typeId!='W' && $typeId!='R') { - debugLog('I',"Type d'identifiant $typeId inexistant",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1021'); - } - $tabRet = array(); - debugLog('I',"Recherche par identifiant $typeId de $identifiantavec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if ($typeId=='W' || $typeId=='R') - { - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('AUTRE', $identifiant, $deb, $nbRep, $maxRep, $dep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } else { - $iBourse = new Metier_Partenaires_MBourse($siren); - $siren = $iBourse->getCodeSiren($identifiant); - return $this->searchSiren($siren, $deb, $nbRep, $maxRep); - } - } - - - /** - * Recherche d'entreprise ou d'établissement par leur TEL FAX - * - * @param string $telFax Téléphone ou fax de l'établissement (ex: 0175438010) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchTelFax($telFax, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - - $tabRet = array(); - debugLog('I',"Recherche par Tel/Fax de $telFax avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - //$assocs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $nbRep, $pertinence); - /** @todo A FAIRE **/ - if (strlen($telFax)<10 || strlen($telFax)>14) { - debugLog('W', "Tel/Fax $telFax incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1011'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('TEL', $telFax, $deb, $nbRep, $maxRep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche entreprise par nom et adresse - * @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle - * @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes - * @param string $codePostal Code postal (ex: 75014) - * @param string $ville Ville - * @param boolean $siege Limitation de la recherche au sièges (si true) - * @param boolean $actif Limitation aux établissements actifs (si true) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true) - * @param boolean $avecSiren Ne proposer que les entités sirénées - * @param string $ape_etab - * @return SearchReturn - */ - public function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege=false, $actif=false, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') - { - $this->authenticate(); - - debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($adresse)) $adresse = ''; - if (empty($codePostal)) $codePostal = ''; - if (empty($ville)) $ville = ''; - if (empty($siege)) $siege = false; - if (empty($actif)) $actif = false; - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($pertinence)) $pertinence = false; - if (empty($avecSiren)) $avecSiren = false; - if (empty($ape_etab)) $ape_etab = ''; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab); - - $result = new SearchReturn(); - $tabRet = array(); - foreach ($etabs['reponses'] as $etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = strtr($etab['Nom'],'/*',' '); - $reponse->Nom2 = $etab['Nom2']; - $reponse->Sigle = $etab['Sigle']; - $reponse->Enseigne = $etab['Enseigne']; - $reponse->Adresse = $etab['Adresse']; - $reponse->Adresse2 = $etab['Adresse2']; - $reponse->CP = $etab['CP']; - $reponse->Ville = $etab['Ville']; - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $iInsee->getLibelleNaf($etab['NafEtab']); // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $iInsee->getLibelleNaf($etab['NafEnt']); - - $tabRet[] = $reponse; - } - - $fp=@fopen(LOG_PATH.'/recherches.log','a'); - - $siretTrouve = 0; - if ($etabs['nbReponses']==0) { - - $str="NbRep=0, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : AUCUN RESULTAT, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = count($tabRet); - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - - return $result; - - } - - if ($etabs['nbReponses']==1) $siretTrouve=$etabs['reponses'][0]['Siret']; - $str="NbRep=".$etabs['nbReponses'].", S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : ".$etabs['nbReponses']." RESULTATS, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = $etabs['nbReponses']; - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - return $result; - } - - /** - * Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET - * @param string $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param integer $dep Département - * @return SearchReturn - */ - public function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ( strlen($siret)!=14 && strlen($siret)!=9 ){ - debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($dep)) $dep = 0; - - $nbReponsesTotal = $nbReponses = 0; - - $siren = substr($siret,0,9); - if (strlen($siret)==14) $nic = substr($siret,9,5); - elseif (strlen($siret)== 9) $nic = ''; - - $iInsee = new Metier_Insee_MInsee(); - - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep); - if (count($rep['reponses'])==0 && $dep>0) { - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep); - } - $etabs = $rep['reponses']; - $tabRet = array(); - foreach ($etabs as $nb=>$etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = prepareString($etab['FJLib']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $reponse; - } - $nbReponsesTotal = $rep['nbReponsesTotal']; - $nbReponses = $rep['nbReponses']; - - /** Si le siren est valide, on part chez Infogreffe **/ - if (count($tabRet)==0 && $iInsee->valideSiren($siren)) { - $iGeffes = new Metier_Partenaires_MGreffes(); - $etab = $iGeffes->getIdentite($siren); - if ($etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString($etab['Nom']); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = utf8_encode(prepareString(utf8_decode($etab['FJLib']))); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; - $reponse->NafEtabLib = prepareString($etab['NafEtabLib']); - $reponse->NafEnt = $etab['NafEnt']; - $reponse->NafEntLib = prepareString($etab['NafEntLib']); - - $tabRet[] = $reponse; - $nbReponses = 1; - $nbReponsesTotal = 1; - - } else { - $iDb = new WDB(); - $iDb->insert('siren_inexistants', - array( 'siren'=>$siren, - 'nic'=>$nic, - 'dep'=>$dep, - 'login'=>$this->User->login, - 'client'=>$this->User->idClient, - 'dateInsert'=>date('YmdHis'))); - $nbReponses = 0; - $nbReponsesTotal = 0; - } - } - - $output = new SearchReturn(); - $output->nbReponses = $nbReponses; - $output->nbReponsesTotal = $nbReponsesTotal; - $output->result = $tabRet; - - return $output; - } - - - - - /** - * Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA. - * - * @param string $siren Identifiant Siren de l'entreprise - * @return TvaReturn - */ - public function getTVA($siren) - { - $this->authenticate(); - - //Initialisation - $siren = trim($siren); - debugLog('I',"TVA demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren); - debugLog('I', "Après getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($entrep)) - { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - debugLog('I', "Avant MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iTva = new Metier_Partenaires_MTva($siren); - if ($iTva->vatDefined) $tva=$iTva->vatNumber; - else $tva='N/A'; - debugLog('I', "Après MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new TvaReturn(); - $output->id = $entrep['id']; - $output->AutreId = $entrep['AutreId']; - $output->Nom = $entrep['Nom']; - $output->Sigle = $entrep['Sigle']; - $output->Enseigne = $entrep['Enseigne']; - $output->Adresse = $entrep['Adresse']; - $output->Adresse2 = $entrep['Adresse2']; - $output->CP = $entrep['CP']; - $output->Ville = $entrep['Ville']; - $output->Siren = $entrep['Siren']; - $output->Tva = $tva; - - debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('tva',$siren); - - return $output; - } - - /** - * Retourne tout ou patie des informations règlementées sur l'entreprise - * - * @param string $siren SIREN de l'entreprise - * @param mixed $id Id du communiqué - * @return InfosRegReturn - */ - public function getInfosReg( $siren, $id = false ) - { - $this->authenticate(); - - //Initialisation - if (empty($id)) $id = false; - $tabRet = array(); - $siren = substr($siren,0,9); - - debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - $iBourse = new Metier_Partenaires_MBourse($siren); - $anns = $iBourse->getInfosReg($siren, $id); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ( empty($anns) ){ - debugLog('W', "Aucune info règlementée pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ($id == false) { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } else { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->communique = $ann['communique']; - $infos->communiqueHtml = $ann['communiqueHtml']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } - } - debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('infosreg',$siren,$id); - $output = new InfosRegReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne les informations boursières de l'entreprise - * @param string $siren SIREN de l'entreprise - * @return InfosBourse - */ - public function getInfosBourse($siren) - { - $this->authenticate(); - - //Initialisation - $error = new ErrorType(); - debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $siren = substr($siren,0,9); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($bourse)) { - debugLog('W', "Aucune info bourse pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - $result = new InfosBourse(); - $result->Siren = $bourse['siren']; - $result->RaisonSociale = $bourse['raisonSociale']; - $result->Adresse = $bourse['adresse']; - $result->Effectif = $bourse['effectif']; - $result->CodeSicovam = $bourse['code_sicovam']; - $result->CodeMnemo = $bourse['code_mnemo']; - $result->CodeBloomberg = $bourse['code_bloomberg']; - $result->CodeDatastream = $bourse['code_datastream']; - $result->Isin = $bourse['code_isin']; - $result->CodeRic = $bourse['code_ric']; - $result->DateIntroduction = $bourse['dateIntroduction']; //@todo : date - $result->DateDerAG = $bourse['dateDerAG']; //@todo : date - $result->DateRadiation = $bourse['dateRadiation']; //@todo : date - $result->AutreIsin = $bourse['autre_isin']; - $result->EligibleSRD = $bourse['eligibleSRD']; - $result->EligiblePEA = $bourse['eligiblePEA']; - $result->Tel = $bourse['tel1']; - $result->Tel2 = $bourse['tel2']; - $result->Fax = $bourse['fax1']; - $result->Fax2 = $bourse['fax2']; - $result->Web = $bourse['web']; - $result->Mail = $bourse['mail']; - - $result->Marche = $bourse['marche']; - $result->Description = $bourse['description']; - $result->Secteur = $bourse['secteur']; - $result->Activite = $bourse['activite']; - $result->ActiviteDet = $bourse['activiteDet']; - - $result->placeCotation = $bourse['placeCotation']; - $result->nombreTitres = $bourse['nombreTitres']; - $result->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $result->derCoursDate = $bourse['date']; //@todo : date - $result->derCoursCloture = $bourse['close']; - $result->derCoursOuverture = $bourse['open']; - $result->derCoursPlusHaut = $bourse['high']; - $result->derCoursPlusBas = $bourse['low']; - - $result->derCoursVolume = $bourse['volume']; - $result->coursMin = $bourse['coursMin']; - $result->coursMoy = $bourse['coursMoy']; - $result->coursMax = $bourse['coursMax']; - - $this->wsLog('bourse',$siren,$id); - return $result; - } - - /** - * Ajout d'une surveillance - * - * @param string $siret Siret/Siren - * @param string $email Adresse email du client - * @param string $ref Référence de la surveillance - * @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants) - * @param boolean $delete Suppression de la ligne - * @param integer $encoursClient Encours demandé par le client - * @return SetSurveillanceReturn - */ - public function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) - { - $this->authenticate(); - $source = strtolower($source); - switch ($source) { - case 'insee': - $this->permission('survinsee'); - break; - case 'bilans': - $this->permission('survbilan'); - break; - case 'actes': - $this->permission('survactes'); - break; - case 'privileges': - $this->permission('survpriv'); - break; - case 'dirigeants': - $this->permission('survdirigeants'); - break; - case 'score': - $this->permission('survscore'); - break; - case 'annonces': - default: - $this->permission('survannonce'); - break; - } - - //Initialisation - if (empty($ref)) $ref = ''; - if (empty($delete)) $delete = false; - if (empty($encoursClient)) $encoursClient = false; - $tabRet = array(); - $siren = substr($siret,0,9); - $nic = substr($siret,9,5); - - debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($siren, $nic); - $iDb = new WDB(); - $login = $this->User->login; - switch ($source) { - case 'insee': - case 'annonces': - case 'bilans': - case 'actes': - case 'privileges': - case 'dirigeants': $encoursClient=0; break; - case 'score': $encoursClient=$encoursClient*1; break; - default: $source='annonces'; break; - } - $tabUpdate = array( - 'source' => $source, - 'login' => $login, - 'email' => $email, - 'siren' => $siren, - 'nic' => $nic, - 'ref' => $ref, - 'encoursClient' => $encoursClient, - 'rs' => $tabIdentite['Nom'], - 'cp' => $tabIdentite['CP'], - 'ville' => $tabIdentite['Ville'], - ); - if ($delete) { - $tabUpdate = array_merge( - $tabUpdate, - array('dateSuppr'=>date('Y-m-d')) - ); - } else { - $tabUpdate = array_merge( - $tabUpdate, - array('dateAjout'=>date('Y-m-d'), 'dateSuppr'=>0) - ); - } - if ( $delete || !$iDb->insert('surveillances_site', $tabUpdate)) { - if (!$iDb->update('surveillances_site', $tabUpdate, "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'")) - { - $this->sendError('1030'); - } - } - $output = new SetSurveillanceReturn(); - $output->result = true; - return $output; - } - - /** - * getSurveillances - * @param SurveillancesFiltre $filtre - * @param integer $deb - * @param integer $nbRep - * @return SurveillancesReturn - */ - public function getSurveillances($filtre, $position=0, $nbRep=100) - { - $this->authenticate(); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 100; - - $error = new ErrorType(); - $tabRet = array(); - $siren = substr($filtre->siret,0,9); - $nic = substr($filtre->siret,9,5); - - $tri = strtolower(trim($filtre->tri)); - switch ($tri){ - case 'ref': $orderBy='ORDER BY ref'; break; - case 'dateAjout': $orderBy='ORDER BY dateAjout'; break; - case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break; - case 'rs': $orderBy='ORDER BY rs'; break; - case 'cp': $orderBy='ORDER BY cp'; break; - case 'ville': $orderBy='ORDER BY ville'; break; - default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre - } - $iDb = new WDB(); - $login = $this->User->login; - - if ($filtre->detail) { - $strSelect = 'source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi'; - } else { - $strSelect = 'source, email, siren, nic, ref, dateAjout, dateDerEnvoi'; - } - if ($filtre->source!='') $strSource = " AND source='$filtre->source' "; - else $strSource = ''; - - if ($siren>0) $strSiren = " AND siren=$siren "; - else $strSiren = ''; - - // Il faut compter le nombre de siren au total - $tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - $tabTmp = $iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $position,$nbRep", false, MYSQL_ASSOC); - foreach ($tabTmp as $i=>$tabSurv){ - if (!$filtre->detail){ - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = utf8_decode($tabSurv['ref']); - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } else { - if (trim($tabSurv['rs'])<>'') { - $rs = $tabSurv['rs']; - $cp = $tabSurv['cp']; - $ville = $tabSurv['ville']; - } else { - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']); - $rs = $tabIdentite['Nom']; - $cp = $tabIdentite['CP']; - $ville = $tabIdentite['Ville']; - $iDb->update('surveillances_site', array( - 'rs' => $rs, - 'cp' => $cp, - 'ville' => $ville), - "login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", - false - ); - } - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = utf8_decode($tabSurv['ref']); - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->encoursClient = $tabSurv['encoursClient']; - $liste->rs = $rs; - $liste->cp = $cp; - $liste->ville = $ville; - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } - } - $output = new SurveillancesReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé - * - * @param string $siren Siren de l'entreprise - * @param string $millesime Date du bilan au format AAAAMMJJ - * @param string $typeBilan N:Réel Normal, S:Réel Simplifié, C:Consolidé - * @param string $ref Référence S&D obligatoire - * @return Bilan - */ - public function getBilan($siren, $millesime, $typeBilan='N', $ref='') - { - $this->authenticate(); - - //Initialisation - if (empty($typeBilan)) { $typeBilan = 'N'; } - if (empty($ref)) { $ref = ''; } - - debugLog('I',"Bilan $millesime $typeBilan demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $millesime = WDate::dateT('Ymd','d/m/Y',$millesime); - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilan = $mBil->getBilan($millesime, $typeBilan, $ref, true); - - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($tabBilan as $key => $value){ - if(!in_array($key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $key; - $resultPoste->val = $value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$key = $value; - } - } - $this->wsLog('bilan',$siren, $millesime.':'.$typeBilan.':'.$ref); - $resultBilan->POSTES = $tabPoste; - return $resultBilan; - } - - /** - * Retourne la liste des bilans disponible pour une entreprise - * - * @param string $siren Siren de l'entreprise - * @return ListeBilansReturn - */ - public function getListeBilans($siren) - { - $this->authenticate(); - //Initialisation - $tabRet = array(); - debugLog('I',"Liste des Bilans demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - foreach($tabBilans as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - - debugLog('I', 'Nb Bilans retournés = '. count($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('listebilans', $siren); - $output = new ListeBilansReturn(); - $output->nbReponses = count($tabRet); - $output->result = $tabRet; - return $output; - } - - /** - * Vérifie si un siren existe en base Scores & Décisions - * @param string $siren Siren de l'entité - * @return boolean - */ - public function isSirenExistant($siren) - { - $this->authenticate(); - - //Initialisation - $tabRet = array(); - $siren = trim(substr($siren,0,9)); - $result = false; - debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->sirenExiste($siren); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = false; - } else { - debugLog('I', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = true; - } - $this->wsLog('sirenExiste',$siren); - return $result; - } - - /** - * Retourne une annonce en fonction de sa référence - * - * @param string $siren Siren de l'entreprise - * @param string $dateAnnee - * @param integer $numParution - * @param integer $numAnnonce - * @return RechercheAnnonceReturn - */ - public function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) - { - $this->authenticate(); - - //Initialisation - $tabRet = array(); - - debugLog('I',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (strlen($dateAnnee)==4) $annee = $dateAnnee; - else $annee = substr($dateAnnee,0,4); - - $iDb = new WDB('jo'); - - switch (strtoupper($source)) - { - case 'BODA': - case 'BODB': - case 'BODC': - $lettre = substr(strtoupper($source),3,1); - if ($annee<2005) { - if ($lettre=='A'){ $numJAL=1; } - elseif ($lettre=='B'){ $numJAL=200; } - else{ break; } - $anneeDeb = $annee.'0101'; - $anneeFin = $annee.'1231'; - $res = $iDb->select('historiques.entrep e, texte t', - "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce", - "e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum", false, MYSQL_ASSOC); - } else { - $res = $iDb->select('bodacc', - 'Bodacc_Annee_Parution AS Annee_Parution, Bodacc_Num AS Num_Parution, Num_Annonce, Bodacc_Page AS Num_Page, Bodacc_Date_Parution AS Date_Parution, Tribunal_Dept AS Departement, Tribunal_Code, typeAnnonce, annonce', - "Bodacc_Code='$lettre' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$numParution AND Num_Annonce=$numAnnonce", false, MYSQL_ASSOC); - } - break; - case 'ASSO': - $res = $iDb->select('asso', - 'YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Annonce, pageDeb AS Num_Page, Date_Parution, Departement, codTribunal AS Tribunal_Code, typeAnnonce, Annonce_Html AS annonce', "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$annee".sprintf('%04d', $numParution)." AND Num_Annonce=$numAnnonce", - false, MYSQL_ASSOC); - break; - case 'BALO': - $res = $iDb->select('balo', - "YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Affaire AS Num_Annonce, '' AS Num_Page, Date_Parution, '' AS Departement, '' AS Tribunal_Code, 'Insertion' AS typeAnnonce, Annonce_Html AS annonce", "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$numParution AND Num_Affaire=$numAnnonce", - false, MYSQL_ASSOC); - break; - } - - if (count($res)>0) - { - $iBodacc = new Metier_Bodacc_MBodacc(); - foreach ($res as $i => $etab) - { - $annonces = new AnnonceItem(); - $annonces->Annee_Parution = $etab['Annee_Parution']; - $annonces->Num_Parution = $etab['Num_Parution']; - $annonces->Num_Annonce = $etab['Num_Annonce']; - $annonces->Num_Page = $etab['Num_Page']; - $annonces->Date_Parution = $etab['Date_Parution']; //@todo : date - $annonces->Departement = $etab['Departement']; - $annonces->Tribunal_Code = $etab['Tribunal_Code']; - $annonces->Tribunal = $iBodacc->getTribunalNom($etab['Tribunal_Code']); - $annonces->Type_Annonce = $etab['typeAnnonce']; - $annonces->Annonce = strip_tags(strtr( - html_entity_decode($etab['annonce']), - array('>'=>'>','&'=>'&','<'=>'<','’'=>"'") - )); - - $tabRet[] = $annonces; - } - } - $nbTot = count($tabRet); - $output = new RechercheAnnonceReturn(); - $output->criteres = $criteres; - $output->nbReponses = $nbTot; - $output->nbReponsesTotal = $nbTot; - $output->result = $tabRet; - return $output; - } - - /** - * getRatios - * @param string $siren - * @param string $page - * @return RatiosReturn - */ - public function getRatios($siren, $page='ratios') - { - global $tva, $mBil, $tabBilan, $efftr, $tabInfla; - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Variables/CacheTabFormules.php'; - require_once 'Metier/scores/Variables/configMRatios.php'; - $this->authenticate(); - //Initialisation - if (empty($page)) $page = 'ratios'; - $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); - $tabRatios2 = $tabRatiosEvol = array(); - $tabRet = array(); - debugLog('I',"Liste des Ratios demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); - debugLog('I',"Liste des Ratios demandée pour $siren après getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $naf = $tabIdentite['NafEnt']; - $nafLib = $tabIdentite['NafEntLib']; - $efftr = $tabIdentite['Effectif']*1; - $fj = $tabIdentite['FJ']; - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - $nbBilans = count($tabBilans); - $tabBilan = $tabBil = array(); - if ($nbBilans>0){ - $tabRatios = calculRatios($tabBilans, $tabIdentite, true); - } - $nbRatios = count($tabRatios); - debugLog('I',"Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - /** Tableau d'infos sur les formules **/ - $tabBorneMin = $tabBorneMax = array(); - foreach ($tabFormules as $formule) { - $id = $formule['id']*1; - $libelle = $formule['libelle']; - $unite = $formule['unite']; - $commentaires = $formule['commentaires']; - $tabFormulesInfos[$id] = $formule; //Pour la gestion des unités des ratios secteur - $ratiosInfos = new RatiosInfos(); - $ratiosInfos->id = 'r'.$id; - $ratiosInfos->libelle = $formule['libelle']; - $ratiosInfos->unite = $formule['unite']; - $ratiosInfos->commentaires = $formule['commentaires']; - $tabRatiosInfos[] = $ratiosInfos; - $tabBorneMin[$id] = $formule['borneMin']; - $tabBorneMax[$id] = $formule['borneMax']; - } - - $tabAnnees = array(); - foreach ($tabRatios as $i=>$R) { - - //Informations sur le bilan - $bilansInfos = new RatiosBilansInfos(); - $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date - $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; - $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; - $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; - $bilansInfos->unite = 'U'; - if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ - $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); - } - - $tabRatiosEntrep = array(); - $tabRatiosEntrepEvol = array(); - foreach ( $R as $Ridx=>$Rmont ){ - - if ($Rmont<>'NS') { - if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ - $Rmont='<'.$tabBorneMin[$Ridx]; - } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ - $Rmont='>'.$tabBorneMax[$Ridx]; - } - } - - // RatiosEntrep - $ratiosEntrep = new Ratios(); - if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = $Rmont; - } else { - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = round($Rmont,2); - } - $tabRatiosEntrep[] = $ratiosEntrep; - - if (($tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) || - ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); - elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - || ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); - else - $Rmont='NS'; - - // RatiosEntrepEvol - $ratiosEntrepEvol = new Ratios(); - if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = 'NS'; - } else { - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); - } - $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; - } - $bilansInfos->RatiosEntrep = $tabRatiosEntrep; - $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; - $tabBilansR[] = $bilansInfos; - } - - debugLog('I',"Liste des Ratios demandée pour $siren après EVOLUTION",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - // Tableau des ratios secteurs - - if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; - else $strNaf = " AND naf4='$naf' "; - $strAnnees = implode(',', $tabAnnees); - - $tabRatiosSecteurs = array(); - - $tabAnnees = array_unique($tabAnnees); - - if ( count($tabAnnees)>0 ) - { - $iDb = new WDB('jo'); - $tabTmp = $iDb->select('ratios_secteurs', - 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', - "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", - false, MYSQL_ASSOC); - - $nbRatiosSec = 0; - foreach($tabAnnees as $annee) - { - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $annee; - foreach ($tabTmp as $tmp) - { - if ($tmp['annee']== $annee) - { - $Ridx = $tmp['id']; - if ($tmp['nombre']>$nbRatiosSec){ - $nbRatiosSec = $tmp['nombre']; - } - - $unite = $tabFormulesInfos[$Ridx]['unite']; - if ($unite=='EUR'){ - $montant = round($tmp['ratio']*1000); - } else { - $montant = round($tmp['ratio']); - } - if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ - $montant='<'.$tabBorneMin[$Ridx]; - } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ - $montant='>'.$tabBorneMax[$Ridx]; - } - - $ratiosSecteurListe = new Ratios(); - if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = $montant; - } else { - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = round($montant,2); - } - $ratiosSecteur->liste[] = $ratiosSecteurListe; - } - } - $tabRatiosSecteurs[] = $ratiosSecteur; - } - } - - //$tabRatiosSecteurs=array(count($tabTmp), "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC"); - - $output = new RatiosReturn(); - $output->Nom = $tabIdentite['Nom']; - $output->NafEnt = $tabIdentite['NafEnt']; - $output->NafEntLib = $tabIdentite['NafEntLib']; - $output->FJ = $fj; - $output->FJ_lib = $tabIdentite['FJ_lib']; - $output->Siren = $siren; - $output->NbEntNaf = $nbRatiosSec; - $output->BilansInfos = $tabBilansR; - $output->RatiosInfos = $tabRatiosInfos; - $output->RatiosSecteur = $tabRatiosSecteurs; - - debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->wsLog($page, $siren); - return $output; - - } - - /** - * getRapport - * @param string $siren Siren de l'entreprise - * @param integer $niveau Niveau du rapport 1, 2 ou 3 - * @param integer $id Identifiant interne S&D de l'entreprise - * @param boolean $plus Si true, mise en surveillance privilèges - * @return Rapport - */ - public function getRapport($siren, $niveau=3, $id=0, $plus=false) - { - $this->authenticate(); - if (empty($niveau)) $niveau = 3; - if (empty($id)) $id = 0; - $result = new Rapport(); - $filtre = 0; - $idAnn = 0; - - $accesDist=true; - $nivComment=2; - if ($niveau==1){ - $result->Indiscore = $this->getIndiScore($siren, 0, $accessDist, $nivComment, $plus); - } elseif ($niveau==2) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $accessDist, $nivComment, $plus); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - } elseif ($niveau==3) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $accessDist, $nivComment, $plus); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - $result->Annonces = $this->getAnnonces($siren, $filtre, $idAnn); - } - return $result; - } - - /** - * Retourne la liste des banques connues pour une entreprise - * @param string $siren Siren de l'entreprise - * @return BanquesReturn - **/ - public function getBanques($siren) - { - $this->authenticate(); - - //Initialisation - $iDb = new WDB('sdv1'); - $tabRet = array(); - debugLog('I',"Liste des banques demandée pour siren $siren", - __LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (intval($siren)<=1000) { - $this->sendError('1010'); - } - - $res=$iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC); - $tmp=$iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC); - $res=array_merge($res, $tmp); - foreach ($res as $tabBanque){ - $dateSource=$tabBanque['dateSource']; - $codBanque=$tabBanque['codeBanque']; - $codGuichet=$tabBanque['codeGuichet']; - $libBanque=trim($tabBanque['libBanqueGuichet']); - $found=false; - $adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille=''; - - if ($codBanque>0 && $codGuichet>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs b, insee.BDF_Guichets g', - 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", - false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - $found=true; - }; - } - if (!$found && $codBanque>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - } else continue; - } else continue; - - $banque = new Banque(); - $banque->codeBanque = $codBanque; - $banque->codeGuichet = $codGuichet; - $banque->libBanque = $libBanque; - $banque->adresse1 = $adrBanque1; - $banque->adresse2 = $adrBanque2; - $banque->cp = $adrBanqueCP; - $banque->ville = $adrBanqueVille; - $tabRet[] = $banque; - } - debugLog('I',"Liste des banques pour siren $siren : ".count($tabRet).' banques',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $this->wsLog('banque', $siren); - $output = new BanquesReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne la liste des compétences territoriales pour un établissement à une adresse donnée. - * @param string $siret Siret de l'établissement - * @param string $type Type de compétence (pre:prefectures et s/prefectures, jal;journaux d'annonces légales, tri:tribunaux, adm:administrateurs et mandataires judiciaires, hui:huissiers, cfe:centres de formalités des entreprises) - * @param string $codeInsee Code Insee de la commune de l'établissement - * @return ListeCompetencesReturn - */ - public function getListeCompetences($siret, $type, $codeInsee) - { - $this->authenticate(); - - //Initialisation - $error = new ErrorType(); - $type = strtolower($type); - - debugLog('I',"Liste des compétences $type demandée pour la commune $codeInsee",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - $iBodacc = new Metier_Bodacc_MBodacc(); - $cp=$codeInsee*1; - $dep=false; - if (substr($codeInsee,0,2)=='2A' || substr($codeInsee,0,2)=='2B') - { - $dep=20; $cp=20000+(substr($codeInsee,2,3))*1; - } - elseif ($cp>0 && $cp<100) $dep=$cp; - elseif ($cp>970 && $cp<977) $dep=$cp; - elseif ($cp>999 && $cp<10000) $dep='0'.substr($cp,0,1); - elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); - elseif ($cp>=99000) $dep=substr($cp,0,2); - elseif ($cp>=98000) $dep=substr($cp,0,3); - elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); - - if ($type=='pre'){ - - $iDb = new WDB('jo'); - $tabTmp2 = $iDb->select('villes', 'DEP, COM, AR, CT', 'codeInsee='.$codeInsee, false, MYSQL_ASSOC); - $arrond = $tabTmp2[0]['AR']; - unset($iDb); - $iDb = new WDB('insee'); - $tabTmp2 = $iDb->select('insee_tabArrond', 'CHEFLIEU, ARTMAJ, NCC', "DEP='$dep' AND AR='$arrond'", false, MYSQL_ASSOC); - $nomSousPref = trim(strtr($tabTmp2[0]['ARTMAJ'],array('('=>'',')'=>'',' '=>'', "'"=>'')).' '.$tabTmp2[0]['NCC']); - unset($iDb); - $tabTmp = $iBodacc->getTribunauxParDep($dep); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='A' || $tribunal['triType']=='B') - { - $pref = levenshtein($tribunal['triNom'], 'PREFECTURE DE '.$nomSousPref); - $spref = levenshtein($tribunal['triNom'], 'SOUS PREFECTURE DE '.$nomSousPref); - - if ($tribunal['triType']=='B' && ($pref>7 || $spref>5)) continue; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType'].$typeP; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper( - preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - $tabRet[] = $competence; - - } - } - - } elseif ($type=='jal') { - - $tabTmp = $iBodacc->getJALparDep($dep); - foreach ($tabTmp as $i=>$comp) - { - $infos=''; - if (trim($comp['parution'])<>'') $infos.='Parution '.$comp['parution'].'. '; - if (trim($comp['aboAnnuel'])>0) $infos.='Abonnement Annuel : '.$comp['aboAnnuel'].' euros. '; - if (trim($comp['infos'])<>'') $infos.=$comp['infos']; - - $competence = new Competence(); - $competence->Id = 9000+$comp['id']*1; - $competence->IdSup = 0; - $competence->Code = ''; - $competence->Type = ''; - $competence->Nom = strtoupper($comp['nomJal']); - $competence->Siret = ''; - $competence->Adr = strtoupper($comp['adresse']); - $competence->AdrComp = ''; - $competence->CP = $comp['cp']; - $competence->Ville = strtoupper($comp['ville']); - $competence->CodeInsee = ''; - $competence->Tel = $comp['tel']; - $competence->Fax = $comp['fax']; - $competence->Web = $comp['siteWeb']; - $competence->Mail = $comp['email']; - $competence->Statut = 'Actif'; - $competence->DateCessation = ''; - $competence->Remarque = trim($infos); - $tabRet[] = $competence; - } - - } elseif ($type=='tri' || $type=='adm' || $type=='hui') { - - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if (//$tribunal['triType']=='C' || - $tribunal['triType']=='G'// || - /*$tribunal['triType']=='I'*/) { - $idCA = $tribunal['triIdSup']; - $codeTGI = $tribunal['triCode']; - $code = strtoupper(substr($tribunal['triCode'],0,3)); - } - debugLog('D',"Liste des compétences $type demandée pour la commune $codeInsee ($dep) : ". - "Type=".$tribunal['triType'].', '. - "Code=".$tribunal[$codeTGI],__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($tribunal['triType']<>'E' && $tribunal['triType']<>'O' && - $tribunal['triType']<>'T' && $tribunal['triType']<>'R' && - $tribunal['triType']<>'N' && $tribunal['triType']<>'U' && - $tribunal['triType']<>'Z') - { - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper(Scores_Locale_String::cleanstring($tribunal['triNom'])); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(Scores_Locale_String::cleanstring(preg_replace('/ +/',' ', - $tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie']))); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - if ($tribunal['triNumGreffe']*1>0) - { - $competence->IdentifiantGreffe = $tribunal['triNumGreffe']; - } - $tabRet[] = $competence; - } - } - } - - if ($type=='adm') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getMandataires(array($idCA), false); - $tabRet = array(); - $nbAff=0; - foreach ($tabTmp as $i=>$tribunal) - { /** @todo A revoir Debut **/ - if (stripos($tribunal['tribunal'], $code)!==false || - stripos($tribunal['tribunal'], 'SAINT')!==false) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - $nbAff++; - } - } - if ($nbAff==0) - { - foreach ($tabTmp as $i=>$tribunal) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - } - }/** @todo A revoir Fin : Lier correctement les mandataires à un TI principal **/ - } - elseif ($type=='hui') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getHuissiers(array($codeTGI), false); - - $tabRet = array(); - $nbAff = 0; - foreach ($tabTmp as $i=>$tribunal) - { - $adr = $iInsee->structureVoie($tribunal['adresse']); - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($adr['num'].' '.$adr['adr_btq'].' '. - $adr['typeVoie'].' '.$adr['libVoie']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $adr['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation']; - $competence->Remarque = strtr($tribunal['contact'], - array( '
'=>', ', '
'=>', ', - '
'=>', ', - )); - $tabRet[] = $competence; - } - $nbComp = count($tabTmp); - debugLog('I',"$nbComp compétences $type trouvées pour le tribunal $codeTGI",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - } - elseif ($type=='cfe') - { - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='C' || $tribunal['triType']=='O' || - $tribunal['triType']=='T' || $tribunal['triType']=='R' || - $tribunal['triType']=='N' || $tribunal['triType']=='U' || - $tribunal['triType']=='Z') - { - if (strlen($tribunal['triCommentaire'])==32 && - strpos($tribunal['triCommentaire'], ' ')===false) - $remarque=''; - else $remarque=$tribunal['triCommentaire']; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '.$tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $remarque; - $tabRet[] = $competence; - } - } - } - $this->wsLog('competences',$siret,$type.'/'.$codeInsee); - $output = new ListeCompetencesReturn(); - $output->result = $tabRet; - $output->nbReponses = count($tabRet); - return $output; - } - - /** - * Retourne le statut du webservice - * @return StatusReturn - */ - public function status() - { - /* @todo tester les différents éléments qui peuvent conduire - * à un problème dans les services tel que la connexion à la - * base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier - */ - - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info("status - ip:". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']. - ", hash:".$_SERVER['PHP_AUTH_PW']); - - $error = new StatusReturn(); - //Test connexion à la base de données - $db = new WDB('jo'); - if (!$db) { - $error->statusCode = 9000; - $error->statusMsg = $this->listError['9000']; - } else { - $error->statusCode = 3000; - $error->statusMsg = $this->listError['3000']; - } - return $error; - } - -} - -?> \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.3/Types.php b/library/WsScore/Entreprise/v0.3/Types.php deleted file mode 100644 index 60ee1afe..00000000 --- a/library/WsScore/Entreprise/v0.3/Types.php +++ /dev/null @@ -1,3584 +0,0 @@ - 'ErrorType', - 'StatusReturn' => 'StatusReturn', - 'SearchReturn' => 'SearchReturn', - 'SearchEntrepriseReturn' => 'SearchEntrepriseReturn', - 'SearchDirReturn' => 'SearchDirReturn', - 'DirigeantsReturn' => 'DirigeantsReturn', - 'AnnoncesReturn' => 'AnnoncesReturn', - 'InseeReturn' => 'InseeReturn', - 'TvaReturn' => 'TvaReturn', - 'LiensReturn' => 'LiensReturn', - 'InfosRegReturn' => 'InfosRegReturn', - 'ListeBilansReturn' => 'ListeBilansReturn', - 'SetSurveillanceReturn' => 'SetSurveillanceReturn', - 'SurveillancesReturn' => 'SurveillancesReturn', - 'ListeEtablissementsReturn' => 'ListeEtablissementsReturn', - 'RatiosReturn' => 'RatiosReturn', - 'RechercheAnnonceReturn' => 'RechercheAnnonceReturn', - 'Identite' => 'Identite', - 'GeoInfos' => 'GeoInfos', - 'IdentiteBilan' => 'IdentiteBilan', - 'IdentiteBourse' => 'IdentiteBourse', - 'AutreSiren' => 'AutreSiren', - 'EntrepriseCriteres' => 'EntrepriseCriteres', - 'DirigeantCriteres' => 'DirigeantCriteres', - 'EntrepriseItem' => 'EntrepriseItem', - 'EntrepriseDirItem' => 'EntrepriseDirItem', - 'Etablissement' => 'Etablissement', - 'Dirigeant' => 'Dirigeant', - 'AnnonceFilter' => 'AnnonceFilter', - 'Annonce' => 'Annonce', - 'AnnonceEvenement' => 'AnnonceEvenement', - 'AnnonceNum' => 'AnnonceNum', - 'Actionnaire' => 'Actionnaire', - 'Participation' => 'Participation', - 'InseeEven' => 'InseeEven', - 'InfosReg' => 'InfosReg', - 'InfosBourse' => 'InfosBourse', - 'ListeBilans' => 'ListeBilans', - 'SurveillancesFiltre' => 'SurveillancesFiltre', - 'Surveillance' => 'Surveillance', - 'Bilan' => 'Bilan', - 'BilanPoste' => 'BilanPoste', - 'RechercheAnnonceCriteres' => 'RechercheAnnonceCriteres', - 'AnnonceItem' => 'AnnonceItem', - 'RatiosBilansInfos' => 'RatiosBilansInfos', - 'RatiosInfos' => 'RatiosInfos', - 'RatiosSecteur' => 'RatiosSecteur', - 'Ratios' => 'Ratios', - 'Rapport' => 'Rapport', - 'Indiscore' => 'Indiscore', - 'Scores' => 'Scores', - 'IndiscoreVariables' => 'IndiscoreVariables', - 'CA_Y' => 'CA_Y', - 'IndiscoreImportExport' => 'IndiscoreImportExport', - 'IndiscoreInfosNotations' => 'IndiscoreInfosNotations', - 'IndiscorePaiement' => 'IndiscorePaiement', - 'IndiscorePaiementDetail' => 'IndiscorePaiementDetail', - 'IndiscoreNotesStructure' => 'IndiscoreNotesStructure', - 'IndiscoreBilans' => 'IndiscoreBilans', - 'AdresseDomEnt' => 'AdresseDomEnt', - 'InfosIris' => 'InfosIris', - 'BanquesReturn' => 'BanquesReturn', - 'Banque' => 'Banque', - 'ListeCompetencesReturn' => 'ListeCompetencesReturn', - 'Competence' => 'Competence', - 'IdentiteProcol' => 'IdentiteProcol', - 'Organe' => 'Organe', - 'AutreSiret' => 'AutreSiret', -); \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.4/Service.php b/library/WsScore/Entreprise/v0.4/Service.php deleted file mode 100644 index 9f600be3..00000000 --- a/library/WsScore/Entreprise/v0.4/Service.php +++ /dev/null @@ -1,3305 +0,0 @@ -authenticate(); - $this->permission('identite'); - - //Initialisation - if (empty($id)) { $id = 0; } - $forceVerif = false; - - $tdeb = microtime(1); - $ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ..."; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if ($siren*1==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->AncienSiege = $entrep['AncienSiege']; - $identite->AncienSiegeDateFin = $entrep['AncienSiegeDateFin']; - $identite->TribunalCode = prepareString($entrep['Tribunal']); - $identite->TribunalLib = prepareString($entrep['TribunalLib']); - //'NumGreffe' = $entrep['numGreffe'], // Ajouté le 4 08 2009 - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->ActifEco = $entrep['ActifEco']; // Etab éco actif, ajout le 28/04/2011 - $identite->ActifEcoDate = $entrep['ActifEcoDate']; // Date si éco inactif et jur actif - $identite->ActifEcoType = $entrep['ActifEcoType']; // vide ou NPAI ou PFER ou ECOF - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = prepareString(strtr($entrep['Nom'],'/*',' ')); - $identite->Nom2 = prepareString($entrep['Nom2']); - $identite->NomLong = prepareString($entrep['nomLong']); // Ajouté le 4 08 2009 - $identite->NomCommercial = prepareString($entrep['NomCommercial']); // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = prepareString($entrep['Sigle']); - $identite->SigleLong = prepareString($entrep['sigleLong']); // Ajouté le 4 08 2009 - $identite->Enseigne = prepareString($entrep['Enseigne']); - $identite->EnseigneLong = prepareString($entrep['enseigneLong']); // Ajouté le 16 11 2010 - $identite->Adresse = prepareString($entrep['Adresse']); - $identite->Adresse2 = prepareString($entrep['Adresse2']); - $identite->AdresseNum = prepareString($entrep['AdresseNum']); - $identite->AdresseBtq = prepareString($entrep['AdresseBtq']); - $identite->AdresseVoie = prepareString($entrep['AdresseVoie']); - $identite->AdresseRue = prepareString($entrep['AdresseRue']); - $identite->CP = $entrep['CP']; - $identite->Ville = prepareString($entrep['Ville']); - $identite->Pays = prepareString($entrep['Pays']); // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = prepareString($entrep['Tel']); - $identite->Fax = prepareString($entrep['Fax']); - $identite->Web = prepareString($entrep['Web']); - $identite->Mail = prepareString($entrep['Mail']); - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - - $geoInfos = new GeoInfos(); - $geoInfos->CUCS = $entrep['GeoInfos']['CUCS']; - $geoInfos->NCUCS = $entrep['GeoInfos']['NCUCS']; - $geoInfos->ZRU = $entrep['GeoInfos']['ZRU']; - $geoInfos->NZRU = $entrep['GeoInfos']['NZRU']; - $geoInfos->ZFU = $entrep['GeoInfos']['ZFU']; - $geoInfos->NZFU = $entrep['GeoInfos']['NZFU']; - $geoInfos->ZUS = $entrep['GeoInfos']['ZUS']; - $geoInfos->NZUS = $entrep['GeoInfos']['NZUS']; - $geoInfos->AFR = $entrep['GeoInfos']['AFR']; - $geoInfos->NAFR = $entrep['GeoInfos']['NAFR']; - $geoInfos->ZRR = $entrep['GeoInfos']['ZRR']; - $geoInfos->NZRR = $entrep['GeoInfos']['NZRR']; - $identite->GeoInfos = $geoInfos; - - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = prepareString($entrep['APRM_Lib']); - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = prepareString($entrep['CapitalType']); // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - //'DateMajRCS' = $entrep['DateMajRCS'], // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = prepareString($entrep['codeCommune']); - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->TrancheCAType = $entrep['TrancheCAType']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = prepareString($entrep['dir1Titre']); - $identite->dir1NomPrenom = prepareString($entrep['dir1NomPrenom']); - $identite->dir1DateFct = prepareString($entrep['dir1DateFct']); //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = prepareString($entrep['dir1LieuNaiss']); // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = prepareString($entrep['dir2Titre']); - $identite->dir2NomPrenom = prepareString($entrep['dir2NomPrenom']); - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = prepareString($entrep['dir2DateNaiss']); //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = prepareString($entrep['dir2LieuNaiss']); // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = prepareString($entrep['InfosIris']['libIris']); - $identite->InfosIris->typIris = prepareString($entrep['InfosIris']['typIris']); - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $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->Millesime = $entrep['bilanAnnee']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->CAestime = $entrep['bilanFLestime']; - $identite->Bilan->Resultat = prepareString($entrep['bilanHN']); - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $tabAutreSiret = array(); - if (count($entrep['AutreSiret'])) { - foreach($entrep['AutreSiret'] as $type => $item) { - $autreSiret = new AutreSiret(); - $autreSiret->type = $type; - $autreSiret->siren = $item['siren']; - $autreSiret->nic = $item['nic']; - $autreSiret->apeEtab = $item['apeEtab']; - $autreSiret->codeEve = $item['codeEve']; - $autreSiret->dateEve = $item['dateEve']; - $autreSiret->adrL1 = $item['adrL1']; - $autreSiret->adrL2 = $item['adrL2']; - $autreSiret->adrL3 = $item['adrL3']; - $autreSiret->adrL4 = $item['adrL4']; - $autreSiret->adrL5 = $item['adrL5']; - $autreSiret->adrL6 = $item['adrL6']; - $autreSiret->adrL7 = $item['adrL7']; - $autreSiret->depCom = $item['depCom']; - $autreSiret->rivoli = $item['rivoli']; - $autreSiret->siege = $item['siege']; - $autreSiret->destinat = $item['destinat']; - $autreSiret->typEtab = $item['typeEtab']; - $autreSiret->origine = $item['origine']; - $tabAutreSiret[] = $autreSiret; - } - } - $identite->AutreSiret = $tabAutreSiret; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - //'importExport' = $entrep['importExport'], - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = prepareString($entrep2['apen4_lib']); - $identite->Naf4EtabLib = prepareString($entrep2['apet4_lib']); - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - $duree=round(microtime(1)-$tdeb,3); - $ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!"; - $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - - return $identite; - } - - /** - * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé - * @param string $siret Siren de l'entreprise ou siret de l'établissement - * @param integer $id Identifiant S&D de l'établissement - * @return IdentiteProcol Fiche d'identité de l'établissement - */ - public function getIdentiteProcol($siret, $id=0, $forceVerif=false) - { - $this->authenticate(); - $this->permission('idprocol'); - - debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if (intval($siren)==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identiteProcol = new IdentiteProcol(); - - //Element identite - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->TribunalCode = $entrep['Tribunal']; - $identite->TribunalLib = $entrep['TribunalLib']; - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = strtr($entrep['Nom'],'/*',' '); - $identite->Nom2 = $entrep['Nom2']; - $identite->NomLong = $entrep['nomLong']; // Ajouté le 4 08 2009 - $identite->NomCommercial = $entrep['NomCommercial']; // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = $entrep['Sigle']; - $identite->SigleLong = $entrep['sigleLong']; // Ajouté le 4 08 2009 - $identite->Enseigne = $entrep['Enseigne']; - $identite->EnseigneLong = $entrep['enseigneLong']; // Ajouté le 16 11 2010 - $identite->Adresse = $entrep['Adresse']; - $identite->Adresse2 = $entrep['Adresse2']; - $identite->AdresseNum = $entrep['AdresseNum']; - $identite->AdresseBtq = $entrep['AdresseBtq']; - $identite->AdresseVoie = $entrep['AdresseVoie']; - $identite->AdresseRue = $entrep['AdresseRue']; - $identite->CP = $entrep['CP']; - $identite->Ville = $entrep['Ville']; - $identite->Pays = $entrep['Pays']; // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = $entrep['Tel']; - $identite->Fax = $entrep['Fax']; - $identite->Web = $entrep['Web']; - $identite->Mail = $entrep['Mail']; - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - $identite->GeoInfos = $entrep['GeoInfos']; - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = $entrep['APRM_Lib']; - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = $entrep['CapitalType']; // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = $entrep['codeCommune']; - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = $entrep['dir1Titre']; - $identite->dir1NomPrenom = $entrep['dir1NomPrenom']; - $identite->dir1DateFct = $entrep['dir1DateFct']; //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = $entrep['dir1LieuNaiss']; // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = $entrep['dir2Titre']; - $identite->dir2NomPrenom = $entrep['dir2NomPrenom']; - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = $entrep['dir2DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = $entrep['dir2LieuNaiss']; // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = $entrep['InfosIris']['libIris']; - $identite->InfosIris->typIris = $entrep['InfosIris']['typIris']; - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière - $identite->SituationJuridique = $entrep['SituationJuridique']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = $entrep['bilanHN']; - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = $entrep2['apen4_lib']; - $identite->Naf4EtabLib = $entrep2['apet4_lib']; - } - - $identiteProcol->Identite = $identite; - - //Eléments annonces légales - $anns = $this->getAnnonces($siren, 1); - $tabRetAnn = $tabLastEven = array(); - $anns = $anns->result; - $tribunalProcol = false; - foreach ($anns as $nb=>$ann) { - $tabRetEven = array(); - foreach ($ann->evenements as $tabEven) { - // On ignore les éléments suivants - if ($tabEven->CodeEven>=7000) continue; - if ($tabEven->CodeEven>=4000 && $tabEven->CodeEven<=4999) continue; - - // Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol - if ($tribunalProcol==false && $tabEven->CodeEven>=1000 && $tabEven->CodeEven<2000 && $ann->BodaccCode=='BODA') { - $identiteProcol->TribunalCode = $ann->TribunalCode; - $identiteProcol->TribunalLib = prepareString($ann->Tribunal); - $tribunalProcol=true; - } - - // On ne prend que le dernier élément de chaque type - if (in_array($tabEven->CodeEven, $tabLastEven)) continue; - - $tabLastEven[] = $tabEven->CodeEven; - $tabRetEven[] = $tabEven; - } - - if (count($tabRetEven)>0) { - $annonce = new Annonce(); - $annonce->id = $ann->id; - $annonce->BodaccCode = $ann->BodaccCode; - $annonce->BodaccNum = $ann->BodaccNum; - $annonce->NumAnnonce = $ann->NumAnnonce; - $annonce->DateParution = $ann->DateParution; //@todo : date - $annonce->Departement = $ann->Departement; - $annonce->Tribunal = $ann->Tribunal; - $annonce->TribunalCode = $ann->TribunalCode; - $annonce->TribunalSiret = $ann->TribunalSiret; - $annonce->Rubrique = $ann->Rubrique; - $annonce->typeAnnonce = $ann->typeAnnonce; - $annonce->texteRectificatif = $ann->texteRectificatif; - $annonce->texteAnnonce = utf8_encode($ann->texteAnnonce); - $annonce->dateEffet = $ann->dateEffet; //@todo : date - $annonce->dateJugement = $ann->dateJugement; //@todo : date - $annonce->dateInsertionSD = $ann->dateInsertionSD; //@todo : date - $annonce->evenements = $tabRetEven; - $annonce->Lien_Annonce_Pdf = $ann->Lien_Annonce_Pdf; - $tabRetAnn[] = $annonce; - } - } - $identiteProcol->Annonces = $tabRetAnn; - - $iRncs = new Metier_Partenaires_MRncs(); - if ($entrep['Siege']==1 || $entrep['Siege']==11) { - $identiteProcol->LibTypeEtab = 'Etablissement Siege'; - } else { - $tabEtabRncs = $iRncs->getIdentiteEtab($siren, $entrep['Nic']); - if ($tabEtabRncs['Siege']==2) $identiteProcol->LibTypeEtab = 'Etablissement Principal'; - elseif ($tabEtabRncs['Siege']==1) $identiteProcol->LibTypeEtab = 'Etablissement Complementaire'; - elseif ($tabEtabRncs['Siege']==0) $identiteProcol->LibTypeEtab = 'Etablissement Secondaire'; - } - - //@todo - $tabJuge = $iRncs->getIntervenants($siren); - $tabDepots=array(); - foreach ($tabJuge as $iDepot=>$depot) { - $organe = new Organe(); - $organe->codEven = $depot['codEven']; - $organe->libEven = prepareString($depot['libEven']); - $organe->dateEffet = $depot['dateEffet']; - $organe->admcode = $depot['admcode']; - $organe->admfonction = prepareString($depot['admfonction']); - $organe->admnom = prepareString($depot['admnom']); - $organe->admadrNum = $depot['admadrNum']; - $organe->admadrInd = $depot['admadrInd']; - $organe->admadrVoie = $depot['admadrVoie']; // @todo : adm1adr1, adm1adr2, adm1adr3, - $organe->admadrCP = $depot['admadrCP']; - $organe->admadrVille = $depot['admadrVille']; - $tabDepots[] = $organe; - } - $identiteProcol->Organes = $tabDepots; - - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, 1); - $nbA = count($tabA); - $tabAct = array(); - foreach ($tabA as $i=>$lien) { - $liens = new Actionnaire(); - $liens->Pmin = $lien['Pmin']; - $liens->MajMin = $lien['MajMin']; - $liens->RaisonSociale = $lien['RaisonSociale']; - $liens->Pays = $lien['Pays']; - $liens->Siren = $lien['Siren']; - $liens->Actif = $lien['Actif']; - $tabAct[] = $liens; - } - $identiteProcol->Actionnaires = $tabAct; - - $iGreffes = new Metier_Partenaires_MGreffes(); - $tabActes = $iGreffes->getListeActes($siren); - - $identiteProcol->StatutsModifDepot = $identiteProcol->StatutsModif = '0000-00-00'; - foreach ($tabActes as $i=>$acte) { - if ('_'.$acte['acte_type']=='_04') { // STATUTS CONSTITUTIFS - $identiteProcol->StatutsConstDepot = $acte['depot_date']; // => 1997-12-18 - $identiteProcol->StatutsConst = $acte['acte_date']; // => 1997-11-13 - break; - } elseif (in_array('_'.$acte['acte_type'], array( - //'_04', // STATUTS CONSTITUTIFS - '_06', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_07', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_08', // STATUTS A JOUR ET DECLARATION DE CONFORMITE 9 0000-00-00 2009-09-02 17:05:55 - '_09', // STATUTS APRES TRANSFERT DE SIEGE 9 0000-00-00 2009-09-02 17:05:55 - '_A1', // STATUTS 9 0000-00-00 2009-09-02 17:05:55 - '_AH', // AVENANT AUX STATUTS - ))) { - // On ne prend que la dernière modif - if ($identiteProcol->StatutsModifDepot=='0000-00-00' && $identiteProcol->StatutsModif=='0000-00-00') { - $identiteProcol->StatutsModifDepot = $acte['depot_date'];// => 1997-12-18 - $identiteProcol->StatutsModif = $acte['acte_date']; // => 1997-11-13 - } - } - } - - /** Y a t il eu des informations relatives à une cession ? **/ - $tabCes = $iGreffes->getInfosCessions($siren); - if ($tabCes) { - $identiteProcol->CessionJugeLib = $tabCes['cessJuge']; - $identiteProcol->CessionJugeDate = $tabCes['cessDateJuge']; - $identiteProcol->CessionAvisBodac = $tabCes['cessDateBod']; - $identiteProcol->CessionInvenDate = $tabCes['cessDateInv']; - $identiteProcol->CessionCAdeclare = $tabCes['cessCAdec']; - $identiteProcol->CessionEffectif = $tabCes['cessEffectif']; - $identiteProcol->CessionDesc = $tabCes['cessDesc']; - $identiteProcol->CessionDescDate = $tabCes['cessDateDesc']; - $identiteProcol->CessionOffreDate = $tabCes['cessDateLim']; - $identiteProcol->CessionMandataire = $tabCes['cessMand']; - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - - return $identiteProcol; - } - - /** - * Retourne les liens financiers pour une entreprise. - * - * @param string $siren Siren de l'entreprise - * @param boolean $actifsUniquement Uniquement les liens Actifs - * @return LiensReturn - */ - public function getLiens($siren, $actifsUniquement = true) - { - $this->authenticate(); - $this->permission('liens'); - - //Initialisation - if (empty($actifsUniquement)) { $actifsUniquement = true; } - $tabAct = $tabPar = array(); - - debugLog('I',"Liens entreprises demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, $actifsUniquement); - $nbA = count($tabA); - $tabAct = array(); - if ($nbA > 0) { - foreach ($tabA as $i => $lien) { - $actionnaire = new Actionnaire(); - $actionnaire->Pmin = $lien['Pmin']; - $actionnaire->MajMin = $lien['MajMin']; - $actionnaire->RaisonSociale = $lien['RaisonSociale']; - $actionnaire->TypeEntrep = $lien['TypeEntrep']; - $actionnaire->Pays = $lien['Pays']; - $actionnaire->Siren = $lien['Siren']; - $actionnaire->Actif = $lien['Actif']; - $actionnaire->Source = $lien['Source']; - $actionnaire->DateLien = $lien['DateLien']; //@todo : date - $actionnaire->DateMaj = $lien['DateMaj']; //@todo : date - $tabAct[] = $actionnaire; - } - } - debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $tabP = $mLiens->getParticipations($siren, $actifsUniquement); - $nbP = count($tabP); - $tabPar = array(); - if ($nbP > 0) { - foreach ($tabP as $i => $lien) { - $participation = new Participation(); - $participation->Pmin = $lien['Pmin']; - $participation->MajMin = $lien['MajMin']; - $participation->RaisonSociale = $lien['RaisonSociale']; - $participation->TypeEntrep = $lien['TypeEntrep']; - $participation->Pays = $lien['Pays']; - $participation->Siren = $lien['Siren']; - $participation->Actif = $lien['Actif']; - $participation->Source = $lien['Source']; - $participation->DateLien = $lien['DateLien']; //@todo : date - $participation->DateMaj = $lien['DateMaj']; //@todo : date - $tabPar[] = $participation; - } - } - debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('liens',$siren); - - $output = new LiensReturn(); - $output->actionnaires = $tabAct; - $output->participations = $tabPar; - return $output; - } - - - /** - * Liste des établissements d'une entreprise - * @param string $siren Siren de l'entreprise - * @param integer $departement Limiter aux établissements du departement - * @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous - * @param integer $position - * @param integer $nbRep - * - * @return ListeEtablissementsReturn - */ - public function getListeEtablissements($siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20) - { - $this->authenticate(); - $this->permission('etablissements'); - - //Initialisation - if (empty($dep)) { $dep = 0; } - if (!in_array($actif, array(0,1))) { $actif = -1; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 20; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - $departement = $dep; - - debugLog('I',"Liste des établissements demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif); - $etabs = $rep['reponses']; - $nbReponses = $rep['nbReponsesTotal']; - $result = array(); - if (count($etabs)>0) - { - foreach ($etabs as $nb => $etab) - { - $etablissement = new Etablissement(); - $etablissement->id = $etab['id']; - $etablissement->Siege = $etab['Siege']; - $etablissement->Enseigne = $etab['Enseigne']; - $etablissement->Adresse = $etab['Adresse']; - $etablissement->Adresse2 = $etab['Adresse2']; - $etablissement->CP = $etab['CP']; - $etablissement->Ville = $etab['Ville']; - $etablissement->Tel = $etab['Tel']; - $etablissement->Fax = $etab['Fax']; - $etablissement->Nic = $etab['Nic']; - $etablissement->Actif = $etab['Actif']; - $etablissement->NafEtab = $etab['NafEtab']; - $etablissement->NafEtabLib = $etab['NafEtabLib']; - $etablissement->EffEtTr = $etab['EffEtTr']; - $etablissement->EffEtTrLib = $etab['EffEtTrLib']; - - $result[] = $etablissement; - } - } - debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('etablissements',$siren); - $output = new ListeEtablissementsReturn(); - $output->nbReponses = $nbReponses; - $output->result = $result; - return $output; - } - - /** - * Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise - * - * @param string $siren Siren de l'entreprise - * @param bool $histo Afficher l'historique des dirigeants - * @return DirigeantsReturn Liste des dirigeants actifs de l'entreprise - */ - public function getDirigeants( $siren , $histo = false) - { - $this->authenticate(); - $this->permission('dirigeants'); - - //Initialisation - if (empty($histo)) { $histo = false; } - - //Zend_Registry::get('WsLogger')->info('HISTO : '.$histo); - - debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $dirs = $iInsee->getDirigeants($siren, $histo); - //debugLog('W', print_r($dirs, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $liste = array(); - foreach ($dirs as $nb => $dir) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $dirigeant = new Dirigeant(); - $dirigeant->Code = $dir['Fonction']; - $dirigeant->Titre = $dir['Titre']; - $dirigeant->Societe = $dir['Societe']; - $dirigeant->Civilite = $dir['Civilite']; - $dirigeant->Nom = $dir['Nom']; - $dirigeant->Prenom = $dir['Prenom']; - $dirigeant->NomUsage = $dir['NomUsage']; - $dirigeant->NaissDate = $dir['NaissDate']; //@todo : date - $dirigeant->NaissVille = $dir['NaissVille']; - $dirigeant->NaissDepPays = $dir['NaissDepPays']; - $dirigeant->Ancien = $dir['Ancien']; - $dirigeant->DateFct = $dir['DateFct']; //@todo : date - $liste[] = $dirigeant; - } - $this->wsLog('dirigeants',$siren,$option); - debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $output = new DirigeantsReturn(); - $output->result = $liste; - return $output; - } - - /** - * Retourne la liste des annonces légales relative à une entreprise - * - * @todo Revoir cette fonction pour la faire marcher avec les associations - * - * @param string $siren Siren de l'entreprise - * @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp - * @param string $idAnn Identifiant de l'annonce - * @param integer $position - * @param integer $nbRep - * @return AnnoncesReturn - */ - public function getAnnonces($siren, $filtre = 0, $idAnn = '', $position = 0, $nbRep = 100) - { - $this->authenticate(); - $this->permission('annonces'); - - //Initialisation - if (empty($filtre)) { $filtre = 0; } - if (empty($idAnn)) { $idAnn = ''; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 100; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - - debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $liste = array(); - - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0 && $idAnn=='') { - debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - /* - if ($siren>100 && $filtre==3) $asso=true; - else { - $asso=false; - $tabIdentite=$this->iInsee->getIdentiteLight($siren); - if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || - $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; - }*/ - if ($idAnn=='') { - $anns=$iInsee->getAnnoncesLegales($siren); - $annsB=$iInsee->getAnnoncesBalo($siren); - $annsA=$iInsee->getAnnoncesAsso($siren); - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } elseif ($filtre==1) - $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); - elseif ($filtre==2) - $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); - elseif ($filtre==3) - $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); - elseif ($filtre==4) - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) - { - debugLog('W', "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $error->errnum = 102; - $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; - } - else - { - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - $annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = prepareString($ann['texteAnnonce']); - $annonce->libFJ = $ann['libFJ']; - $annonce->codFJ = $ann['codFJ']; - $annonce->capital = $ann['capital']; - $annonce->capitalDev = $ann['capitalDev']; - - $annonce->raisonSociale = $ann['raisonSociale']; - $annonce->nomCommercial = $ann['nomCommercial']; - $annonce->sigle = $ann['sigle']; - $annonce->adresse = $ann['adresse']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - - if (is_array($annsB)) - { - foreach ($annsB as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsA)) - { - foreach ($annsA as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - //@todo : date - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsM)) - { - foreach ($annsM as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - } - - $nbReponses = count($liste); - if ($nbReponses>0){ - //$liste = array_slice($liste, $position, $nbRep); - } - debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); - - $output = new AnnoncesReturn(); - $output->nbReponses = $nbReponses; - $output->result = $liste; - return $output; - } - - /** - * Evaluation indiScore d'une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic Nic de l'établissement - * @param integer $niveau Niveau des commentaires - * @param bool $plus Si true, mise en surveillance privilèges - * @param string $ref Si $plus=true, référence de la mise en Surveillance - * @param integer $encours Si $plus=true, encours client demandé lors de la mise en Surveillance - * @param string $email Si $plus=true, email client pour la mise en surveillance - * @return Indiscore - */ - public function getIndiScore($siren, $nic=0, $niveau=2, $plus=false, $ref='', $encours=0, $email='') - { - $this->authenticate(); - - //Initialisation - $accesDist = true; - if (empty($nic)) { $nic = 0; } - if (empty($niveau)) { $niveau = 2; } - if (empty($plus)) { $plus = false; } - if ( !in_array($niveau, array(0,1,2,3,4,5)) ) { $niveau = 2; } - - $perm = false; - switch($niveau) { - case 1: $perms = array('indiscore', 'indiscorep'); break; - case 2: $perms = array('indiscore2', 'indiscore2p'); break; - case 3: $perms = array('indiscore3', 'indiscore3p'); break; - } - foreach($perms as $item){ - if ( $this->checkPerm($item) ){ - $perm = true; - break; - } - } - if ($perm === false) { - $this->sendError('0902'); - } - - $tabRet = array(); - debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 ){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; - $tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau); - $duree = round(microtime(true)-$tDeb,3); - debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new Indiscore(); - foreach($tabRet as $key => $value){ - if ($key=='paiements'){ - $parMont = $value['parMont']; - $parTrim = $value['parTrim']; - $tabMont = array(); - foreach($parMont as $parMontK => $parMontV){ - $paiementMont = new IndiscorePaiementDetail(); - $paiementMont->id = $parMontK; - $paiementMont->nb = $parMontV['nb']; - if (array_key_exists('d=180', $parMontV)){ - $paiementMont->d180 = $parMontV['d=180']; - } - if (array_key_exists('d=150', $parMontV)){ - $paiementMont->d150 = $parMontV['d=150']; - } - if (array_key_exists('d=120', $parMontV)){ - $paiementMont->d120 = $parMontV['d=120']; - } - if (array_key_exists('d=90', $parMontV)){ - $paiementMont->d90 = $parMontV['d=90']; - } - if (array_key_exists('d=60', $parMontV)){ - $paiementMont->d60 = $parMontV['d=60']; - } - if (array_key_exists('d=30', $parMontV)){ - $paiementMont->d30 = $parMontV['d=30']; - } - $tabMont[] = $paiementMont; - } - $tabTrim = array(); - foreach($parTrim as $parTrimK => $parTrimV){ - $paiementTrim = new IndiscorePaiementDetail(); - $paiementTrim->id = $parTrimK; - $paiementTrim->nb = $parTrimV['nb']; - if (array_key_exists('d=180', $parTrimV)){ - $paiementTrim->d180 = $parTrimV['d=180']; - } - if (array_key_exists('d=150', $parTrimV)){ - $paiementTrim->d150 = $parTrimV['d=150']; - } - if (array_key_exists('d=120', $parTrimV)){ - $paiementTrim->d120 = $parTrimV['d=120']; - } - if (array_key_exists('d=90', $parTrimV)){ - $paiementTrim->d90 = $parTrimV['d=90']; - } - if (array_key_exists('d=60', $parTrimV)){ - $paiementTrim->d60 = $parTrimV['d=60']; - } - if (array_key_exists('d=30', $parTrimV)){ - $paiementTrim->d30 = $parTrimV['d=30']; - } - $tabTrim[] = $paiementTrim; - } - $paiement = new IndiscorePaiement(); - $paiement->parMont = $tabMont; - $paiement->parTrim = $tabTrim; - $output->paiements = $paiement; - - } elseif ($key=='Notes_Structure') { - - $notesStructure = new IndiscoreNotesStructure(); - $notesStructure->activite = $value['activite']; - $notesStructure->naf4 = $value['naf4']; - $notesStructure->age = $value['age']; - $notesStructure->capital = $value['capital']; - $notesStructure->effectif = $value['effectif']; - $notesStructure->fj = $value['fj']; - $notesStructure->localite = $value['localite']; - $notesStructure->singulier = $value['singulier']; - $output->Notes_Structure = $notesStructure; - - } elseif ($key=='tabBilans') { - - $tabRet = array(); - foreach($value as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - $output->tabBilans = $tabRet; - - } elseif ($key=='tabBilan') { - - $tabRet = array(); - foreach($value as $bilan){ - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($bilan as $bilan_key => $bilan_value){ - if(!in_array($bilan_key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $bilan_key; - $resultPoste->val = $bilan_value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$bilan_key = $bilan_value; - } - } - $resultBilan->POSTES = $tabPoste; - $tabRet[] = $resultBilan; - } - $output->tabBilan = $tabRet; - - } elseif ($key=='tabInfosNotations') { - - $infosNotation = new IndiscoreInfosNotations(); - $infosNotation->SituationFinanciere = $value['SituationFinanciere']; - $infosNotation->Notation = $value['Notation']; - $infosNotation->ProbabiliteDefaut = $value['ProbabiliteDefaut']; - $output->tabInfosNotations = $infosNotation; - - } elseif ($key=='tabImportExport') { - - $tabRet = array(); - foreach($value as $element){ - $importExport = new IndiscoreImportExport(); - $importExport->importExport = $element['importExport']; - $importExport->annee = $element['annee']; - $importExport->rangNational = $element['rangNational']; - $importExport->deptSiege = $element['deptSiege']; - $tabRet[] = $importExport; - } - $output->tabImportExport = $tabRet; - - } elseif ($key=='tabCommentaires') { - - $tab = array(); - foreach($value as $comment) { - $tab[] = Scores_Locale_String::fixEncoding($comment); - } - $output->tabCommentaires = $tab; - - } elseif ($key=='tabVariables') { - - $tab = $value['CA_Y']; - $tabVar = array(); - foreach($tab as $varName => $varVal){ - $var = new CA_Y(); - $var->id = $varName; - $var->val = $varVal; - $tabVar[] = $var; - } - $variables = new IndiscoreVariables(); - $variables->CA_Y = $tabVar; - $output->tabVariables = $variables; - - } elseif ($key=='Bilans') { - - $tab = array(); - foreach($value as $item) - { - $objet = new IndiscoreBilans(); - $objet->Millesime = $item['Millesime']; - $objet->FraisPerso = $item['FraisPerso']; - $objet->CA = $item['CA']; - $objet->EBE = $item['EBE']; - $objet->TxInvest = $item['TxInvest']; - $objet->TxEndett = $item['TxEndett']; - $objet->DettesCT = $item['DettesCT']; - $objet->FraisFi = $item['FraisFi']; - $objet->BFR = $item['BFR']; - $objet->FR = $item['FR']; - $objet->FondsPr = $item['FondsPr']; - $objet->DelaiCli = $item['DelaiCli']; - $objet->DelaiFour = $item['DelaiFour']; - $tab[] = $objet; - } - $output->$key = $tab; - } else { - $output->$key = $value; - } - } - - if ($plus) { - if (empty($ref)) $ref='Indiscore+'; - if (empty($email)) $email=$this->User->email; - $this->setSurveillance($siren, $email, $ref, 'privileges'); - $this->setSurveillance($siren, $email, $ref, 'score', false, $encours); - if ($this->User->idClient==89) - $this->setSurveillance($siren, $email, $ref, 'annonces'); - $this->wsLog('indiscore+',$siren); - } else - $this->wsLog('indiscore',$siren); - return $output; - } - - /** - * Liste de tous les évènements enregistrés à l'INSEE pour une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param integer $position - * @param integer $nbRep - * @return InseeReturn - **/ - public function getListeEvenements($siren, $nic=0, $position=0, $nbRep=1000) - { - $this->authenticate(); - $this->permission('eveninsee'); - - //Initialisation - if (empty($nic)) { $nic = 0; } - if (empty($position)) { $position = 0; } - if (empty($nbRep) || $nbRep>1000) { $nbRep = 1000; } - - debugLog('I',"Liste des évènements pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $evens = $iInsee->getEvenements($siren, $nic, $position, $nbRep); - $tabRet = array(); - if (count($evens)>0) { - foreach ($evens as $key => $row) { - $date[$key] = $row['dateMAJ']; - } - array_multisort($date, SORT_DESC, $evens); - foreach ($evens as $nb=>$even) { - $iEven = new InseeEven(); - $iEven->Nic = $even['nic']; - $iEven->Siege = $even['siege']; - $iEven->SiretAss = $even['siretAssocie']; - $iEven->TypeSiretAss = $even['typeSiretAss']; - $iEven->EvenCode = $even['codeEven']; - $iEven->EvenLib = $even['libEven']; - $iEven->EvenLibDet = $even['libEvenDet']; - $iEven->EvenDate = $even['dateEven']; //@todo : date - $iEven->DateInfo = $even['dateMAJ']; //@todo : date - $tabRet[] = $iEven; - } - } - - debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('evenements',$siren); - $output = new InseeReturn(); - $output->nbReponses = count($tabRet); // @todo : retrouver le nombre total d'évenements - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche - * @param EntrepriseCriteres $criteres - * @param integer $position Position de parcours des résultats retournées (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut) - * @param integer $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut) - * @param boolean $avecSiren Seulement les entités sirénées (false par défaut) - * @return SearchEntrepriseReturn - */ - public function searchEntreprise($criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false) - { - $this->authenticate(); - - if (empty($position)) { $position = 0;} - if (empty($nbRep)) { $nbRep = 20; } - if (empty($maxRep)) { $maxRep = 200; } - - $entCriteres = new EntrepriseCriteres(); - $entCriteres = $criteres; - $identifiant = $entCriteres->identifiant; - $typeId = ''; - - //Detection autour de l'identifiant - if ($identifiant!='') { - $len = strlen($identifiant); - //Numéro WALDEC - if (strtoupper(substr($identifiant,0,1))=='W') { - $typeId = 'W'; - //Code ISIN - } elseif ($len==12){ - $typeId = 'I'; - //TVA Intracommunautaire - } elseif (in_array(substr($identifiant,0,2), - array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES', - 'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL', - 'PT','RO','SE','SI','SK'))){ - //"La recherche par numéro de TVA n'est pas encore possible sur ce pays !"; - //Pour la france - } elseif (substr($identifiant,0,2)=='FR') { - $typeId = 'S'; - if ($len==13) $identifiant = substr($identifiant,4,9); - else $identifiant = ''; - //Numéro RC - } elseif (preg_match('/A|B|C|D/i', $identifiant)) { - $typeId = 'R'; - //Siren normal on enleve tout ce qui n'est pas un chiffre - } else { - $typeId = 'S'; - } - } - - $adresse = trim($entCriteres->adresse); - - //Détection Tel/Fax uniquement - if ( empty($typeId) - && empty($entCriteres->raisonSociale) - && empty($adresse) - && empty($entCriteres->codePostal) - && empty($entCriteres->ville) - && empty($entCriteres->naf) ){ - $typeId = 'TEL'; - } - - if (in_array($typeId, array('R', 'W', 'I'))){ - - $O = $this->searchAutreId( - $typeId, - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } elseif ($typeId == 'S'){ - - $O = $this->searchSiren( - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - $output->info = $O->info; - return $output; - - } elseif ($typeId == 'TEL'){ - - $O = $this->searchTelFax( - $entCriteres->telFax, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } else { - - $O = $this->searchNomAdr( - Scores_Locale_String::cleanstring($entCriteres->raisonSociale), - Scores_Locale_String::cleanstring($entCriteres->adresse), - $entCriteres->codePostal, - Scores_Locale_String::cleanstring($entCriteres->ville), - empty($entCriteres->siege) ? false : $entCriteres->siege, - empty($entCriteres->actif) ? false : $entCriteres->actif, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - empty($pertinence) ? false : $pertinence, - empty($avecSiren) ? false : $avecSiren, - $entCriteres->naf - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - } - } - - /** - * Recherche d'entreprise par dirigeants - * @param DirigeantCriteres $criteres - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchDirReturn - */ - public function searchDir($criteres, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - $nom = $criteres->nom; - $prenom = $criteres->prenom; - $dateNaiss = $criteres->dateNaiss; - $lieuNaiss = $criteres->lieuNaiss; - $pertinence = $criteres->pertinence; - - debugLog('I',"Recherche Dirigeant de $nom, $prenom, $dateNaiss, $lieuNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($prenom)) $prenom = ''; - if (empty($dateNaiss)) $dateNaiss = ''; - if (empty($lieuNaiss)) $lieuNaiss = ''; - if (empty($pertinence)) $pertinence = false; - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheDir($nom, $prenom, '', $dateNaiss, $lieuNaiss, $deb, $nbRep, $maxRep, $pertinence); - - $tabRet = array(); - foreach ($etabs['reponses'] as $etab) { - $item = new EntrepriseDirItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($iInsee->getLibelleNaf($etab['NafEtab'])); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($iInsee->getLibelleNaf($etab['NafEnt'])); - - // Dirigeant - $item->DirRs = prepareString($etab['DirRs']); - $item->DirNom = prepareString($etab['DirNom']); - $item->DirPrenom = prepareString($etab['DirPrenom']); - $item->DirNomUsage = prepareString($etab['DirNomUsage']); - $item->DirDateEffet = $etab['DirDateEffet']; - $item->DirFonction = prepareString($etab['DirFonction']); - $item->DirDepart = $etab['DirDepart']; - $tabRet[] = $item; - } - - if ($etabs['nbReponses']==0){ - debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - } - - $search = new SearchDirReturn(); - $search->nbReponses = $etabs['nbReponses']; - $search->nbReponsesTotal = $etabs['nbReponsesTotal']; - $search->result = $tabRet; - return $search; - } - - /** - * Recherche d'entreprise ou d'établissement par un autre Identifiant - * - * @param string $typeId I=Code Isin, W=N°Waldec (Associations) ou R=N°RC (Registre Greffe) - * @param string $identifiant Identifiant recherché - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchAutreId($typeId, $identifiant, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - if (empty($dep)) $dep = 0; - - $typeId = substr(trim(strtoupper($typeId)),0,1); - - if ($typeId!='I' && $typeId!='W' && $typeId!='R') { - debugLog('I',"Type d'identifiant $typeId inexistant",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1021'); - } - $tabRet = array(); - debugLog('I',"Recherche par identifiant $typeId de $identifiantavec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if ($typeId=='W' || $typeId=='R') - { - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('AUTRE', $identifiant, $deb, $nbRep, $maxRep, $dep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } else { - $iBourse = new Metier_Partenaires_MBourse($siren); - $siren = $iBourse->getCodeSiren($identifiant); - return $this->searchSiren($siren, $deb, $nbRep, $maxRep); - } - } - - - /** - * Recherche d'entreprise ou d'établissement par leur TEL FAX - * - * @param string $telFax Téléphone ou fax de l'établissement (ex: 0175438010) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchTelFax($telFax, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - - $tabRet = array(); - debugLog('I',"Recherche par Tel/Fax de $telFax avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - //$assocs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $nbRep, $pertinence); - /** @todo A FAIRE **/ - if (strlen($telFax)<10 || strlen($telFax)>14) { - debugLog('W', "Tel/Fax $telFax incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1011'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('TEL', $telFax, $deb, $nbRep, $maxRep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche entreprise par nom et adresse - * @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle - * @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes - * @param string $codePostal Code postal (ex: 75014) - * @param string $ville Ville - * @param boolean $siege Limitation de la recherche au sièges (si true) - * @param boolean $actif Limitation aux établissements actifs (si true) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true) - * @param boolean $avecSiren Ne proposer que les entités sirénées - * @param string $ape_etab - * @return SearchReturn - */ - public function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege=false, $actif=false, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') - { - $this->authenticate(); - - debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($adresse)) $adresse = ''; - if (empty($codePostal)) $codePostal = ''; - if (empty($ville)) $ville = ''; - if (empty($siege)) $siege = false; - if ( $actif ) { - $actif = 1; - } else { - $actif = 2; - } - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($pertinence)) $pertinence = false; - if (empty($avecSiren)) $avecSiren = false; - if (empty($ape_etab)) $ape_etab = ''; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab); - - $result = new SearchReturn(); - $tabRet = array(); - if (count($etabs['reponses'])) { - foreach ($etabs['reponses'] as $etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = strtr($etab['Nom'],'/*',' '); - $reponse->Nom2 = $etab['Nom2']; - $reponse->Sigle = $etab['Sigle']; - $reponse->Enseigne = $etab['Enseigne']; - $reponse->Adresse = $etab['Adresse']; - $reponse->Adresse2 = $etab['Adresse2']; - $reponse->CP = $etab['CP']; - $reponse->Ville = $etab['Ville']; - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $iInsee->getLibelleNaf($etab['NafEtab']); // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $iInsee->getLibelleNaf($etab['NafEnt']); - - $tabRet[] = $reponse; - } - } - - $fp=@fopen(LOG_PATH.'/recherches.log','a'); - - $siretTrouve = 0; - if ($etabs['nbReponses']==0) { - - $str="NbRep=0, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : AUCUN RESULTAT, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = count($tabRet); - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - - return $result; - - } - - if ($etabs['nbReponses']==1) $siretTrouve=$etabs['reponses'][0]['Siret']; - $str="NbRep=".$etabs['nbReponses'].", S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : ".$etabs['nbReponses']." RESULTATS, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = $etabs['nbReponses']; - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - return $result; - } - - /** - * Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET - * @param string $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param integer $dep Département - * @return SearchReturn - */ - public function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ( strlen($siret)!=14 && strlen($siret)!=9 ){ - debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($dep)) $dep = 0; - - $nbReponsesTotal = $nbReponses = 0; - - $siren = substr($siret,0,9); - if (strlen($siret)==14) $nic = substr($siret,9,5); - elseif (strlen($siret)== 9) $nic = ''; - - $iInsee = new Metier_Insee_MInsee(); - - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep); - if (count($rep['reponses'])==0 && $dep>0) { - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep); - } - $etabs = $rep['reponses']; - $tabRet = array(); - if (count($etabs)>0){ - foreach ($etabs as $nb=>$etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = prepareString($etab['FJLib']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $etab['NafEtabLib']; // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $etab['NafEntLib']; - $tabRet[] = $reponse; - } - } - $nbReponsesTotal = $rep['nbReponsesTotal']; - $nbReponses = $rep['nbReponses']; - - /** Si le siren est valide, on part chez Infogreffe **/ - if (count($tabRet)==0 && $iInsee->valideSiren($siren)) { - $iGeffes = new Metier_Partenaires_MGreffes(); - $etab = $iGeffes->getIdentite($siren); - if ($etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString($etab['Nom']); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = utf8_encode(prepareString(utf8_decode($etab['FJLib']))); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; - $reponse->NafEtabLib = $etab['NafEtabLib']; - $reponse->NafEnt = $etab['NafEnt']; - $reponse->NafEntLib = $etab['NafEntLib']; - - $tabRet[] = $reponse; - $nbReponses = 1; - $nbReponsesTotal = 1; - - } else { - $iDb = new WDB(); - $iDb->insert('siren_inexistants', - array( 'siren'=>$siren, - 'nic'=>$nic, - 'dep'=>$dep, - 'login'=>$this->User->login, - 'client'=>$this->User->idClient, - 'dateInsert'=>date('YmdHis'))); - $nbReponses = 0; - $nbReponsesTotal = 0; - } - } - - $output = new SearchReturn(); - $output->nbReponses = $nbReponses; - $output->nbReponsesTotal = $nbReponsesTotal; - $output->result = $tabRet; - $output->info = $rep['info']; - return $output; - } - - - - - /** - * Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA. - * - * @param string $siren Identifiant Siren de l'entreprise - * @return TvaReturn - */ - public function getTVA($siren) - { - $this->authenticate(); - - //Initialisation - $siren = trim($siren); - debugLog('I',"TVA demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren); - debugLog('I', "Après getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($entrep)) - { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - debugLog('I', "Avant MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iTva = new Metier_Partenaires_MTva($siren); - if ($iTva->vatDefined) $tva=$iTva->vatNumber; - else $tva='N/A'; - debugLog('I', "Après MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new TvaReturn(); - $output->id = $entrep['id']; - $output->AutreId = $entrep['AutreId']; - $output->Nom = $entrep['Nom']; - $output->Sigle = $entrep['Sigle']; - $output->Enseigne = $entrep['Enseigne']; - $output->Adresse = $entrep['Adresse']; - $output->Adresse2 = $entrep['Adresse2']; - $output->CP = $entrep['CP']; - $output->Ville = $entrep['Ville']; - $output->Siren = $entrep['Siren']; - $output->Tva = $tva; - - debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('tva',$siren); - - return $output; - } - - /** - * Retourne tout ou patie des informations règlementées sur l'entreprise - * - * @param string $siren SIREN de l'entreprise - * @param mixed $id Id du communiqué - * @return InfosRegReturn - */ - public function getInfosReg( $siren, $id = false ) - { - $this->authenticate(); - $this->permission('infosreg'); - - //Initialisation - if (empty($id)) $id = false; - $tabRet = array(); - $siren = substr($siren,0,9); - - debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - $iBourse = new Metier_Partenaires_MBourse($siren); - $anns = $iBourse->getInfosReg($siren, $id); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ( empty($anns) ){ - debugLog('W', "Aucune info règlementée pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ($id == false) { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } else { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->communique = $ann['communique']; - $infos->communiqueHtml = $ann['communiqueHtml']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } - } - debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('infosreg',$siren,$id); - $output = new InfosRegReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne les informations boursières de l'entreprise - * @param string $siren SIREN de l'entreprise - * @return InfosBourse - */ - public function getInfosBourse($siren) - { - $this->authenticate(); - $this->permission('bourse'); - - //Initialisation - $error = new ErrorType(); - debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $siren = substr($siren,0,9); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($bourse)) { - debugLog('W', "Aucune info bourse pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - $result = new InfosBourse(); - $result->Siren = $bourse['siren']; - $result->RaisonSociale = $bourse['raisonSociale']; - $result->Adresse = $bourse['adresse']; - $result->Effectif = $bourse['effectif']; - $result->CodeSicovam = $bourse['code_sicovam']; - $result->CodeMnemo = $bourse['code_mnemo']; - $result->CodeBloomberg = $bourse['code_bloomberg']; - $result->CodeDatastream = $bourse['code_datastream']; - $result->Isin = $bourse['code_isin']; - $result->CodeRic = $bourse['code_ric']; - $result->DateIntroduction = $bourse['dateIntroduction']; //@todo : date - $result->DateDerAG = $bourse['dateDerAG']; //@todo : date - $result->DateRadiation = $bourse['dateRadiation']; //@todo : date - $result->AutreIsin = $bourse['autre_isin']; - $result->EligibleSRD = $bourse['eligibleSRD']; - $result->EligiblePEA = $bourse['eligiblePEA']; - $result->Tel = $bourse['tel1']; - $result->Tel2 = $bourse['tel2']; - $result->Fax = $bourse['fax1']; - $result->Fax2 = $bourse['fax2']; - $result->Web = $bourse['web']; - $result->Mail = $bourse['mail']; - - $result->Marche = $bourse['marche']; - $result->Description = $bourse['description']; - $result->Secteur = $bourse['secteur']; - $result->Activite = $bourse['activite']; - $result->ActiviteDet = $bourse['activiteDet']; - - $result->placeCotation = $bourse['placeCotation']; - $result->nombreTitres = $bourse['nombreTitres']; - $result->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $result->derCoursDate = $bourse['date']; //@todo : date - $result->derCoursCloture = $bourse['close']; - $result->derCoursOuverture = $bourse['open']; - $result->derCoursPlusHaut = $bourse['high']; - $result->derCoursPlusBas = $bourse['low']; - - $result->derCoursVolume = $bourse['volume']; - $result->coursMin = $bourse['coursMin']; - $result->coursMoy = $bourse['coursMoy']; - $result->coursMax = $bourse['coursMax']; - - $this->wsLog('bourse',$siren,$id); - return $result; - } - - /** - * Ajout d'une surveillance - * - * @param string $siret Siret/Siren - * @param string $email Adresse email du client - * @param string $ref Référence de la surveillance - * @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants) - * @param boolean $delete Suppression de la ligne - * @param integer $encoursClient Encours demandé par le client - * @return SetSurveillanceReturn - */ - public function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) - { - $this->authenticate(); - $source = strtolower($source); - switch ($source) { - case 'insee': - $this->permission('survinsee'); - break; - case 'bilans': - $this->permission('survbilan'); - break; - case 'actes': - $this->permission('survactes'); - break; - case 'privileges': - $this->permission('survpriv'); - break; - case 'dirigeants': - $this->permission('survdirigeants'); - break; - case 'score': - $this->permission('survscore'); - break; - case 'annonces': - default: - $this->permission('survannonce'); - break; - } - - //Initialisation - if (empty($ref)) $ref = ''; - if (empty($delete)) $delete = false; - if (empty($encoursClient)) $encoursClient = false; - $result = false; - $siren = substr($siret,0,9); - $nic = substr($siret,9,5); - - debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($siren, $nic); - $iDb = new WDB(); - $login = $this->User->login; - switch ($source) { - case 'insee': - case 'annonces': - case 'bilans': - case 'actes': - case 'privileges': - case 'dirigeants': $encoursClient=0; break; - case 'score': $encoursClient=$encoursClient*1; break; - default: $source='annonces'; break; - } - - if ($delete) { - - $tabUpdate = array('dateSuppr'=>date('Y-m-d')); - $result = $iDb->update('surveillances_site', - $tabUpdate, - "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'" - ); - - } else { - - $tabUpdate = array( - 'source' => $source, - 'login' => $login, - 'email' => $email, - 'siren' => $siren, - 'nic' => $nic, - 'ref' => $ref, - 'encoursClient' => $encoursClient, - 'rs' => $tabIdentite['Nom'], - 'cp' => $tabIdentite['CP'], - 'ville' => $tabIdentite['Ville'], - 'dateAjout'=>date('Y-m-d'), - 'dateSuppr'=>0, - ); - $result = $iDb->insert('surveillances_site', $tabUpdate); - //Si l'insertion echoue, alors c'est une mise à jour - if ( !$result ) { - $result = $iDb->update('surveillances_site', - $tabUpdate, - "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'" - ); - } - } - $output = new SetSurveillanceReturn(); - $output->result = $result; - return $output; - } - - /** - * getSurveillances - * @param SurveillancesFiltre $filtre - * @param integer $deb - * @param integer $nbRep - * @return SurveillancesReturn - */ - public function getSurveillances($filtre, $position=0, $nbRep=100) - { - $this->authenticate(); - $this->permission('survliste'); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 100; - - $error = new ErrorType(); - $tabRet = array(); - $siren = substr($filtre->siret,0,9); - $nic = substr($filtre->siret,9,5); - - $tri = strtolower(trim($filtre->tri)); - switch ($tri){ - case 'ref': $orderBy='ORDER BY ref'; break; - case 'dateAjout': $orderBy='ORDER BY dateAjout'; break; - case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break; - case 'rs': $orderBy='ORDER BY rs'; break; - case 'cp': $orderBy='ORDER BY cp'; break; - case 'ville': $orderBy='ORDER BY ville'; break; - default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre - } - $iDb = new WDB(); - $login = $this->User->login; - - if ($filtre->detail) { - $strSelect = 'source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi'; - } else { - $strSelect = 'source, email, siren, nic, ref, dateAjout, dateDerEnvoi'; - } - if ($filtre->source!='') $strSource = " AND source='$filtre->source' "; - else $strSource = ''; - - if ($siren>0) $strSiren = " AND siren=$siren "; - else $strSiren = ''; - - // Il faut compter le nombre de siren au total - $tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - $tabTmp = $iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $position,$nbRep", false, MYSQL_ASSOC); - foreach ($tabTmp as $i=>$tabSurv){ - if (!$filtre->detail){ - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = utf8_decode($tabSurv['ref']); - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } else { - if (trim($tabSurv['rs'])<>'') { - $rs = $tabSurv['rs']; - $cp = $tabSurv['cp']; - $ville = $tabSurv['ville']; - } else { - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']); - $rs = $tabIdentite['Nom']; - $cp = $tabIdentite['CP']; - $ville = $tabIdentite['Ville']; - $iDb->update('surveillances_site', array( - 'rs' => $rs, - 'cp' => $cp, - 'ville' => $ville), - "login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", - false - ); - } - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = utf8_decode($tabSurv['ref']); - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->encoursClient = $tabSurv['encoursClient']; - $liste->rs = $rs; - $liste->cp = $cp; - $liste->ville = $ville; - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } - } - $output = new SurveillancesReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé - * - * @param string $siren Siren de l'entreprise - * @param string $millesime Date du bilan au format AAAAMMJJ - * @param string $typeBilan N:Réel Normal, S:Réel Simplifié, C:Consolidé - * @param string $ref Référence S&D obligatoire - * @return Bilan - */ - public function getBilan($siren, $millesime, $typeBilan='N', $ref='') - { - $this->authenticate(); - $this->permission('liasse'); - - //Initialisation - if (empty($typeBilan)) { $typeBilan = 'N'; } - if (empty($ref)) { $ref = ''; } - - debugLog('I',"Bilan $millesime $typeBilan demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $millesime = WDate::dateT('Ymd','d/m/Y',$millesime); - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilan = $mBil->getBilan($millesime, $typeBilan, $ref, true); - - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($tabBilan as $key => $value){ - if(!in_array($key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $key; - $resultPoste->val = $value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$key = $value; - } - } - $this->wsLog('bilan',$siren, $millesime.':'.$typeBilan.':'.$ref); - $resultBilan->POSTES = $tabPoste; - return $resultBilan; - } - - /** - * Retourne la liste des bilans disponible pour une entreprise - * - * @param string $siren Siren de l'entreprise - * @return ListeBilansReturn - */ - public function getListeBilans($siren) - { - $this->authenticate(); - $this->permission('liasse'); - - //Initialisation - $tabRet = array(); - debugLog('I',"Liste des Bilans demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - foreach($tabBilans as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - - debugLog('I', 'Nb Bilans retournés = '. count($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('listebilans', $siren); - $output = new ListeBilansReturn(); - $output->nbReponses = count($tabRet); - $output->result = $tabRet; - return $output; - } - - /** - * Vérifie si un siren existe en base Scores & Décisions - * @param string $siren Siren de l'entité - * @return boolean - */ - public function isSirenExistant($siren) - { - $this->authenticate(); - - //Initialisation - $tabRet = array(); - $siren = trim(substr($siren,0,9)); - $result = false; - debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->sirenExiste($siren); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = false; - } else { - debugLog('I', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = true; - } - $this->wsLog('sirenExiste',$siren); - return $result; - } - - /** - * Retourne une annonce en fonction de sa référence - * - * @param string $siren Siren de l'entreprise - * @param string $dateAnnee - * @param integer $numParution - * @param integer $numAnnonce - * @return RechercheAnnonceReturn - */ - public function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) - { - $this->authenticate(); - $this->permission('histobodacc'); - - //Initialisation - $tabRet = array(); - - debugLog('I',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (strlen($dateAnnee)==4) $annee = $dateAnnee; - else $annee = substr($dateAnnee,0,4); - - $iDb = new WDB('jo'); - - switch (strtoupper($source)) - { - case 'BODA': - case 'BODB': - case 'BODC': - $lettre = substr(strtoupper($source),3,1); - if ($annee<2005) { - if ($lettre=='A'){ $numJAL=1; } - elseif ($lettre=='B'){ $numJAL=200; } - else{ break; } - $anneeDeb = $annee.'0101'; - $anneeFin = $annee.'1231'; - $res = $iDb->select('historiques.entrep e, texte t', - "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce", - "e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum", false, MYSQL_ASSOC); - } else { - $res = $iDb->select('bodacc', - 'Bodacc_Annee_Parution AS Annee_Parution, Bodacc_Num AS Num_Parution, Num_Annonce, Bodacc_Page AS Num_Page, Bodacc_Date_Parution AS Date_Parution, Tribunal_Dept AS Departement, Tribunal_Code, typeAnnonce, annonce', - "Bodacc_Code='$lettre' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$numParution AND Num_Annonce=$numAnnonce", false, MYSQL_ASSOC); - } - break; - case 'ASSO': - $res = $iDb->select('asso', - 'YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Annonce, pageDeb AS Num_Page, Date_Parution, Departement, codTribunal AS Tribunal_Code, typeAnnonce, Annonce_Html AS annonce', "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$annee".sprintf('%04d', $numParution)." AND Num_Annonce=$numAnnonce", - false, MYSQL_ASSOC); - break; - case 'BALO': - $res = $iDb->select('balo', - "YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Affaire AS Num_Annonce, '' AS Num_Page, Date_Parution, '' AS Departement, '' AS Tribunal_Code, 'Insertion' AS typeAnnonce, Annonce_Html AS annonce", "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$numParution AND Num_Affaire=$numAnnonce", - false, MYSQL_ASSOC); - break; - } - - if (count($res)>0) - { - $iBodacc = new Metier_Bodacc_MBodacc(); - foreach ($res as $i => $etab) - { - $annonces = new AnnonceItem(); - $annonces->Annee_Parution = $etab['Annee_Parution']; - $annonces->Num_Parution = $etab['Num_Parution']; - $annonces->Num_Annonce = $etab['Num_Annonce']; - $annonces->Num_Page = $etab['Num_Page']; - $annonces->Date_Parution = $etab['Date_Parution']; //@todo : date - $annonces->Departement = $etab['Departement']; - $annonces->Tribunal_Code = $etab['Tribunal_Code']; - $annonces->Tribunal = $iBodacc->getTribunalNom($etab['Tribunal_Code']); - $annonces->Type_Annonce = $etab['typeAnnonce']; - $annonces->Annonce = strip_tags(strtr( - html_entity_decode($etab['annonce']), - array('>'=>'>','&'=>'&','<'=>'<','’'=>"'") - )); - - $tabRet[] = $annonces; - } - } - $nbTot = count($tabRet); - $output = new RechercheAnnonceReturn(); - $output->criteres = $criteres; - $output->nbReponses = $nbTot; - $output->nbReponsesTotal = $nbTot; - $output->result = $tabRet; - return $output; - } - - /** - * getRatios - * @param string $siren - * @param string $page - * @return RatiosReturn - */ - public function getRatios($siren, $page='ratios') - { - $this->authenticate(); - $this->permission('ratios'); - - global $tva, $mBil, $tabBilan, $efftr, $tabInfla; - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Variables/CacheTabFormules.php'; - require_once 'Metier/scores/Variables/configMRatios.php'; - - //Initialisation - if (empty($page)) $page = 'ratios'; - $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); - $tabRatios2 = $tabRatiosEvol = array(); - $tabRet = array(); - debugLog('I',"Liste des Ratios demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); - debugLog('I',"Liste des Ratios demandée pour $siren après getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $naf = $tabIdentite['NafEnt']; - $nafLib = $tabIdentite['NafEntLib']; - $efftr = $tabIdentite['Effectif']*1; - $fj = $tabIdentite['FJ']; - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - $nbBilans = count($tabBilans); - $tabBilan = $tabBil = array(); - if ($nbBilans>0){ - $tabRatios = calculRatios($tabBilans, $tabIdentite, true); - } - $nbRatios = count($tabRatios); - debugLog('I',"Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - /** Tableau d'infos sur les formules **/ - $tabBorneMin = $tabBorneMax = array(); - foreach ($tabFormules as $formule) { - $id = $formule['id']*1; - $libelle = $formule['libelle']; - $unite = $formule['unite']; - $commentaires = $formule['commentaires']; - $tabFormulesInfos[$id] = $formule; //Pour la gestion des unités des ratios secteur - $ratiosInfos = new RatiosInfos(); - $ratiosInfos->id = 'r'.$id; - $ratiosInfos->libelle = $formule['libelle']; - $ratiosInfos->unite = $formule['unite']; - $ratiosInfos->commentaires = $formule['commentaires']; - $tabRatiosInfos[] = $ratiosInfos; - $tabBorneMin[$id] = $formule['borneMin']; - $tabBorneMax[$id] = $formule['borneMax']; - } - - $tabAnnees = array(); - foreach ($tabRatios as $i=>$R) { - - //Informations sur le bilan - $bilansInfos = new RatiosBilansInfos(); - $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date - $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; - $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; - $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; - $bilansInfos->unite = 'U'; - if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ - $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); - } - - $tabRatiosEntrep = array(); - $tabRatiosEntrepEvol = array(); - foreach ( $R as $Ridx=>$Rmont ){ - - if ($Rmont<>'NS') { - if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ - $Rmont='<'.$tabBorneMin[$Ridx]; - } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ - $Rmont='>'.$tabBorneMax[$Ridx]; - } - } - - // RatiosEntrep - $ratiosEntrep = new Ratios(); - if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = $Rmont; - } else { - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = round($Rmont,2); - } - $tabRatiosEntrep[] = $ratiosEntrep; - - if (($tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) || - ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); - elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - || ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); - else - $Rmont='NS'; - - // RatiosEntrepEvol - $ratiosEntrepEvol = new Ratios(); - if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = 'NS'; - } else { - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); - } - $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; - } - $bilansInfos->RatiosEntrep = $tabRatiosEntrep; - $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; - $tabBilansR[] = $bilansInfos; - } - - debugLog('I',"Liste des Ratios demandée pour $siren après EVOLUTION",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - // Tableau des ratios secteurs - - if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; - else $strNaf = " AND naf4='$naf' "; - $strAnnees = implode(',', $tabAnnees); - - $tabRatiosSecteurs = array(); - - $tabAnnees = array_unique($tabAnnees); - - if ( count($tabAnnees)>0 ) - { - $iDb = new WDB('jo'); - $tabTmp = $iDb->select('ratios_secteurs', - 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', - "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", - false, MYSQL_ASSOC); - - $nbRatiosSec = 0; - foreach($tabAnnees as $annee) - { - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $annee; - foreach ($tabTmp as $tmp) - { - if ($tmp['annee']== $annee) - { - $Ridx = $tmp['id']; - if ($tmp['nombre']>$nbRatiosSec){ - $nbRatiosSec = $tmp['nombre']; - } - - $unite = $tabFormulesInfos[$Ridx]['unite']; - if ($unite=='EUR'){ - $montant = round($tmp['ratio']*1000); - } else { - $montant = round($tmp['ratio']); - } - if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ - $montant='<'.$tabBorneMin[$Ridx]; - } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ - $montant='>'.$tabBorneMax[$Ridx]; - } - - $ratiosSecteurListe = new Ratios(); - if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = $montant; - } else { - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = round($montant,2); - } - $ratiosSecteur->liste[] = $ratiosSecteurListe; - } - } - $tabRatiosSecteurs[] = $ratiosSecteur; - } - } - - //$tabRatiosSecteurs=array(count($tabTmp), "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC"); - - $output = new RatiosReturn(); - $output->Nom = $tabIdentite['Nom']; - $output->NafEnt = $tabIdentite['NafEnt']; - $output->NafEntLib = $tabIdentite['NafEntLib']; - $output->FJ = $fj; - $output->FJ_lib = $tabIdentite['FJ_lib']; - $output->Siren = $siren; - $output->NbEntNaf = $nbRatiosSec; - $output->BilansInfos = $tabBilansR; - $output->RatiosInfos = $tabRatiosInfos; - $output->RatiosSecteur = $tabRatiosSecteurs; - - debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->wsLog($page, $siren); - return $output; - - } - - /** - * getRapport - * @param string $siren Siren de l'entreprise - * @param integer $niveau Niveau du rapport 1, 2 ou 3 - * @param integer $id Identifiant interne S&D de l'entreprise - * @param boolean $plus Si true, mise en surveillance privilèges - * @param string $ref Si $plus=true, référence facultative de la mise en Surveillance - * @param integer $encours Si $plus=true, encours facultatif Demandé par le client lors de la mise en Surveillance - * @param string $email Si $plus=true, email facultatif pour le suivi - * @return Rapport - */ - public function getRapport($siren, $niveau=3, $id=0, $plus=false, $ref='', $encours=0, $email='') - { - $this->authenticate(); - if (empty($niveau)) $niveau = 3; - if (empty($id)) $id = 0; - $result = new Rapport(); - $filtre = 0; - $idAnn = 0; - - $accesDist=true; - $nivComment=2; - if ($niveau==1){ - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - } elseif ($niveau==2) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - } elseif ($niveau==3) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - $result->Annonces = $this->getAnnonces($siren, $filtre, $idAnn); - } - return $result; - } - - /** - * Retourne la liste des banques connues pour une entreprise - * @param string $siren Siren de l'entreprise - * @return BanquesReturn - **/ - public function getBanques($siren) - { - $this->authenticate(); - $this->permission('banque'); - - //Initialisation - $iDb = new WDB('sdv1'); - $tabRet = array(); - debugLog('I',"Liste des banques demandée pour siren $siren", - __LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (intval($siren)<=1000) { - $this->sendError('1010'); - } - - $res=$iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC); - $tmp=$iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC); - $res=array_merge($res, $tmp); - foreach ($res as $tabBanque){ - $dateSource=$tabBanque['dateSource']; - $codBanque=$tabBanque['codeBanque']; - $codGuichet=$tabBanque['codeGuichet']; - $libBanque=trim($tabBanque['libBanqueGuichet']); - $found=false; - $adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille=''; - - if ($codBanque>0 && $codGuichet>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs b, insee.BDF_Guichets g', - 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", - false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - $found=true; - }; - } - if (!$found && $codBanque>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - } else continue; - } else continue; - - $banque = new Banque(); - $banque->codeBanque = $codBanque; - $banque->codeGuichet = $codGuichet; - $banque->libBanque = $libBanque; - $banque->adresse1 = $adrBanque1; - $banque->adresse2 = $adrBanque2; - $banque->cp = $adrBanqueCP; - $banque->ville = $adrBanqueVille; - $tabRet[] = $banque; - } - debugLog('I',"Liste des banques pour siren $siren : ".count($tabRet).' banques',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $this->wsLog('banque', $siren); - $output = new BanquesReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne la liste des compétences territoriales pour un établissement à une adresse donnée. - * @param string $siret Siret de l'établissement - * @param string $type Type de compétence (pre:prefectures et s/prefectures, jal;journaux d'annonces légales, tri:tribunaux, adm:administrateurs et mandataires judiciaires, hui:huissiers, cfe:centres de formalités des entreprises) - * @param string $codeInsee Code Insee de la commune de l'établissement - * @return ListeCompetencesReturn - */ - public function getListeCompetences($siret, $type, $codeInsee) - { - $this->authenticate(); - $this->permission('competences'); - - //Initialisation - $error = new ErrorType(); - $type = strtolower($type); - - debugLog('I',"Liste des compétences $type demandée pour la commune $codeInsee",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - $iBodacc = new Metier_Bodacc_MBodacc(); - $cp=$codeInsee*1; - $dep=false; - if (substr($codeInsee,0,2)=='2A' || substr($codeInsee,0,2)=='2B') - { - $dep=20; $cp=20000+(substr($codeInsee,2,3))*1; - } - elseif ($cp>0 && $cp<100) $dep=$cp; - elseif ($cp>970 && $cp<977) $dep=$cp; - elseif ($cp>999 && $cp<10000) $dep='0'.substr($cp,0,1); - elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); - elseif ($cp>=99000) $dep=substr($cp,0,2); - elseif ($cp>=98000) $dep=substr($cp,0,3); - elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); - - if ($type=='pre'){ - - $iDb = new WDB('jo'); - $tabTmp2 = $iDb->select('villes', 'DEP, COM, AR, CT', 'codeInsee='.$codeInsee, false, MYSQL_ASSOC); - $arrond = $tabTmp2[0]['AR']; - unset($iDb); - $iDb = new WDB('insee'); - $tabTmp2 = $iDb->select('insee_tabArrond', 'CHEFLIEU, ARTMAJ, NCC', "DEP='$dep' AND AR='$arrond'", false, MYSQL_ASSOC); - $nomSousPref = trim(strtr($tabTmp2[0]['ARTMAJ'],array('('=>'',')'=>'',' '=>'', "'"=>'')).' '.$tabTmp2[0]['NCC']); - unset($iDb); - $tabTmp = $iBodacc->getTribunauxParDep($dep); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='A' || $tribunal['triType']=='B') - { - $pref = levenshtein($tribunal['triNom'], 'PREFECTURE DE '.$nomSousPref); - $spref = levenshtein($tribunal['triNom'], 'SOUS PREFECTURE DE '.$nomSousPref); - - if ($tribunal['triType']=='B' && ($pref>7 || $spref>5)) continue; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType'].$typeP; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper( - preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - $tabRet[] = $competence; - - } - } - - } elseif ($type=='jal') { - - $tabTmp = $iBodacc->getJALparDep($dep); - foreach ($tabTmp as $i=>$comp) - { - $infos=''; - if (trim($comp['parution'])<>'') $infos.='Parution '.$comp['parution'].'. '; - if (trim($comp['aboAnnuel'])>0) $infos.='Abonnement Annuel : '.$comp['aboAnnuel'].' euros. '; - if (trim($comp['infos'])<>'') $infos.=$comp['infos']; - - $competence = new Competence(); - $competence->Id = 9000+$comp['id']*1; - $competence->IdSup = 0; - $competence->Code = ''; - $competence->Type = ''; - $competence->Nom = strtoupper($comp['nomJal']); - $competence->Siret = ''; - $competence->Adr = strtoupper($comp['adresse']); - $competence->AdrComp = ''; - $competence->CP = $comp['cp']; - $competence->Ville = strtoupper($comp['ville']); - $competence->CodeInsee = ''; - $competence->Tel = $comp['tel']; - $competence->Fax = $comp['fax']; - $competence->Web = $comp['siteWeb']; - $competence->Mail = $comp['email']; - $competence->Statut = 'Actif'; - $competence->DateCessation = ''; - $competence->Remarque = trim($infos); - $tabRet[] = $competence; - } - - } elseif ($type=='tri' || $type=='adm' || $type=='hui') { - - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if (//$tribunal['triType']=='C' || - $tribunal['triType']=='G'// || - /*$tribunal['triType']=='I'*/) { - $idCA = $tribunal['triIdSup']; - $codeTGI = $tribunal['triCode']; - $code = strtoupper(substr($tribunal['triCode'],0,3)); - } - debugLog('D',"Liste des compétences $type demandée pour la commune $codeInsee ($dep) : ". - "Type=".$tribunal['triType'].', '. - "Code=".$tribunal[$codeTGI],__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($tribunal['triType']<>'E' && $tribunal['triType']<>'O' && - $tribunal['triType']<>'T' && $tribunal['triType']<>'R' && - $tribunal['triType']<>'N' && $tribunal['triType']<>'U' && - $tribunal['triType']<>'Z') - { - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper(Scores_Locale_String::cleanstring($tribunal['triNom'])); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(Scores_Locale_String::cleanstring(preg_replace('/ +/',' ', - $tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie']))); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - if ($tribunal['triNumGreffe']*1>0) - { - $competence->IdentifiantGreffe = $tribunal['triNumGreffe']; - } - $tabRet[] = $competence; - } - } - } - - if ($type=='adm') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getMandataires(array($idCA), false); - $tabRet = array(); - $nbAff=0; - foreach ($tabTmp as $i=>$tribunal) - { /** @todo A revoir Debut **/ - if (stripos($tribunal['tribunal'], $code)!==false || - stripos($tribunal['tribunal'], 'SAINT')!==false) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - $nbAff++; - } - } - if ($nbAff==0) - { - foreach ($tabTmp as $i=>$tribunal) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - } - }/** @todo A revoir Fin : Lier correctement les mandataires à un TI principal **/ - } - elseif ($type=='hui') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getHuissiers(array($codeTGI), false); - - $tabRet = array(); - $nbAff = 0; - foreach ($tabTmp as $i=>$tribunal) - { - $adr = $iInsee->structureVoie($tribunal['adresse']); - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($adr['num'].' '.$adr['adr_btq'].' '. - $adr['typeVoie'].' '.$adr['libVoie']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $adr['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation']; - $competence->Remarque = strtr($tribunal['contact'], - array( '
'=>', ', '
'=>', ', - '
'=>', ', - )); - $tabRet[] = $competence; - } - $nbComp = count($tabTmp); - debugLog('I',"$nbComp compétences $type trouvées pour le tribunal $codeTGI",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - } - elseif ($type=='cfe') - { - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='C' || $tribunal['triType']=='O' || - $tribunal['triType']=='T' || $tribunal['triType']=='R' || - $tribunal['triType']=='N' || $tribunal['triType']=='U' || - $tribunal['triType']=='Z') - { - if (strlen($tribunal['triCommentaire'])==32 && - strpos($tribunal['triCommentaire'], ' ')===false) - $remarque=''; - else $remarque=$tribunal['triCommentaire']; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '.$tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $remarque; - $tabRet[] = $competence; - } - } - } - $this->wsLog('competences',$siret,$type.'/'.$codeInsee); - $output = new ListeCompetencesReturn(); - $output->result = $tabRet; - $output->nbReponses = count($tabRet); - return $output; - } - - /** - * Retourne le statut du webservice - * @return StatusReturn - */ - public function status() - { - /* @todo tester les différents éléments qui peuvent conduire - * à un problème dans les services tel que la connexion à la - * base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier - */ - - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info("status - ip:". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']. - ", hash:".$_SERVER['PHP_AUTH_PW']); - - $error = new StatusReturn(); - //Test connexion à la base de données - $db = new WDB('jo'); - if (!$db) { - $error->statusCode = 9000; - $error->statusMsg = $this->listError['9000']; - } else { - $error->statusCode = 3000; - $error->statusMsg = $this->listError['3000']; - } - return $error; - } - -} - -?> \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.4/Types.php b/library/WsScore/Entreprise/v0.4/Types.php deleted file mode 100644 index 6f391b6a..00000000 --- a/library/WsScore/Entreprise/v0.4/Types.php +++ /dev/null @@ -1,3608 +0,0 @@ - 'ErrorType', - 'StatusReturn' => 'StatusReturn', - 'SearchReturn' => 'SearchReturn', - 'SearchEntrepriseReturn' => 'SearchEntrepriseReturn', - 'SearchDirReturn' => 'SearchDirReturn', - 'DirigeantsReturn' => 'DirigeantsReturn', - 'AnnoncesReturn' => 'AnnoncesReturn', - 'InseeReturn' => 'InseeReturn', - 'TvaReturn' => 'TvaReturn', - 'LiensReturn' => 'LiensReturn', - 'InfosRegReturn' => 'InfosRegReturn', - 'ListeBilansReturn' => 'ListeBilansReturn', - 'SetSurveillanceReturn' => 'SetSurveillanceReturn', - 'SurveillancesReturn' => 'SurveillancesReturn', - 'ListeEtablissementsReturn' => 'ListeEtablissementsReturn', - 'RatiosReturn' => 'RatiosReturn', - 'RechercheAnnonceReturn' => 'RechercheAnnonceReturn', - 'Identite' => 'Identite', - 'GeoInfos' => 'GeoInfos', - 'IdentiteBilan' => 'IdentiteBilan', - 'IdentiteBourse' => 'IdentiteBourse', - 'AutreSiren' => 'AutreSiren', - 'EntrepriseCriteres' => 'EntrepriseCriteres', - 'DirigeantCriteres' => 'DirigeantCriteres', - 'EntrepriseItem' => 'EntrepriseItem', - 'EntrepriseDirItem' => 'EntrepriseDirItem', - 'Etablissement' => 'Etablissement', - 'Dirigeant' => 'Dirigeant', - 'AnnonceFilter' => 'AnnonceFilter', - 'Annonce' => 'Annonce', - 'AnnonceEvenement' => 'AnnonceEvenement', - 'AnnonceNum' => 'AnnonceNum', - 'Actionnaire' => 'Actionnaire', - 'Participation' => 'Participation', - 'InseeEven' => 'InseeEven', - 'InfosReg' => 'InfosReg', - 'InfosBourse' => 'InfosBourse', - 'ListeBilans' => 'ListeBilans', - 'SurveillancesFiltre' => 'SurveillancesFiltre', - 'Surveillance' => 'Surveillance', - 'Bilan' => 'Bilan', - 'BilanPoste' => 'BilanPoste', - 'RechercheAnnonceCriteres' => 'RechercheAnnonceCriteres', - 'AnnonceItem' => 'AnnonceItem', - 'RatiosBilansInfos' => 'RatiosBilansInfos', - 'RatiosInfos' => 'RatiosInfos', - 'RatiosSecteur' => 'RatiosSecteur', - 'Ratios' => 'Ratios', - 'Rapport' => 'Rapport', - 'Indiscore' => 'Indiscore', - 'Scores' => 'Scores', - 'IndiscoreVariables' => 'IndiscoreVariables', - 'CA_Y' => 'CA_Y', - 'IndiscoreImportExport' => 'IndiscoreImportExport', - 'IndiscoreInfosNotations' => 'IndiscoreInfosNotations', - 'IndiscorePaiement' => 'IndiscorePaiement', - 'IndiscorePaiementDetail' => 'IndiscorePaiementDetail', - 'IndiscoreNotesStructure' => 'IndiscoreNotesStructure', - 'IndiscoreBilans' => 'IndiscoreBilans', - 'AdresseDomEnt' => 'AdresseDomEnt', - 'InfosIris' => 'InfosIris', - 'BanquesReturn' => 'BanquesReturn', - 'Banque' => 'Banque', - 'ListeCompetencesReturn' => 'ListeCompetencesReturn', - 'Competence' => 'Competence', - 'IdentiteProcol' => 'IdentiteProcol', - 'Organe' => 'Organe', - 'AutreSiret' => 'AutreSiret', - 'SearchRefClientReturn' => 'SearchRefClientReturn', - 'SearchRefClient' => 'SearchRefClient', - 'SearchRefClientInfo' => 'SearchRefClientInfo', -); \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.5/Service.php b/library/WsScore/Entreprise/v0.5/Service.php deleted file mode 100644 index 959f4251..00000000 --- a/library/WsScore/Entreprise/v0.5/Service.php +++ /dev/null @@ -1,3421 +0,0 @@ -authenticate(); - $this->permission('identite'); - - //Initialisation - if (empty($id)) { $id = 0; } - $forceVerif = false; - - $tdeb = microtime(1); - $ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ..."; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if ($siren*1==0 && $id==0) { - $this->sendError('1010'); - } - if ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep) || empty($entrep['id']) ) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->AncienSiege = $entrep['AncienSiege']; - $identite->AncienSiegeDateFin = $entrep['AncienSiegeDateFin']; - $identite->TribunalCode = prepareString($entrep['Tribunal']); - $identite->TribunalLib = prepareString($entrep['TribunalLib']); - //'NumGreffe' = $entrep['numGreffe'], // Ajouté le 4 08 2009 - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->ActifEco = $entrep['ActifEco']; // Etab éco actif, ajout le 28/04/2011 - $identite->ActifEcoDate = $entrep['ActifEcoDate']; // Date si éco inactif et jur actif - $identite->ActifEcoType = $entrep['ActifEcoType']; // vide ou NPAI ou PFER ou ECOF - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = prepareString(strtr($entrep['Nom'],'/*',' ')); - $identite->Nom2 = prepareString($entrep['Nom2']); - $identite->NomLong = prepareString($entrep['nomLong']); // Ajouté le 4 08 2009 - $identite->NomCommercial = prepareString($entrep['NomCommercial']); // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = prepareString($entrep['Sigle']); - $identite->SigleLong = prepareString($entrep['sigleLong']); // Ajouté le 4 08 2009 - $identite->Enseigne = prepareString($entrep['Enseigne']); - $identite->EnseigneLong = prepareString($entrep['enseigneLong']); // Ajouté le 16 11 2010 - $identite->Adresse = prepareString($entrep['Adresse']); - $identite->Adresse2 = prepareString($entrep['Adresse2']); - $identite->AdresseNum = prepareString($entrep['AdresseNum']); - $identite->AdresseBtq = prepareString($entrep['AdresseBtq']); - $identite->AdresseVoie = prepareString($entrep['AdresseVoie']); - $identite->AdresseRue = prepareString($entrep['AdresseRue']); - $identite->CP = $entrep['CP']; - $identite->Ville = prepareString($entrep['Ville']); - $identite->Pays = prepareString($entrep['Pays']); // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = prepareString($entrep['Tel']); - $identite->Fax = prepareString($entrep['Fax']); - $identite->Web = prepareString($entrep['Web']); - $identite->Mail = prepareString($entrep['Mail']); - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - - $geoInfos = new GeoInfos(); - $geoInfos->CUCS = $entrep['GeoInfos']['CUCS']; - $geoInfos->NCUCS = $entrep['GeoInfos']['NCUCS']; - $geoInfos->ZRU = $entrep['GeoInfos']['ZRU']; - $geoInfos->NZRU = $entrep['GeoInfos']['NZRU']; - $geoInfos->ZFU = $entrep['GeoInfos']['ZFU']; - $geoInfos->NZFU = $entrep['GeoInfos']['NZFU']; - $geoInfos->ZUS = $entrep['GeoInfos']['ZUS']; - $geoInfos->NZUS = $entrep['GeoInfos']['NZUS']; - $geoInfos->AFR = $entrep['GeoInfos']['AFR']; - $geoInfos->NAFR = $entrep['GeoInfos']['NAFR']; - $geoInfos->ZRR = $entrep['GeoInfos']['ZRR']; - $geoInfos->NZRR = $entrep['GeoInfos']['NZRR']; - $identite->GeoInfos = $geoInfos; - - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = prepareString($entrep['APRM_Lib']); - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = prepareString($entrep['CapitalType']); // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - //'DateMajRCS' = $entrep['DateMajRCS'], // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = prepareString($entrep['codeCommune']); - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->TrancheCAType = $entrep['TrancheCAType']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = prepareString($entrep['dir1Titre']); - $identite->dir1NomPrenom = prepareString($entrep['dir1NomPrenom']); - $identite->dir1DateFct = prepareString($entrep['dir1DateFct']); //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = prepareString($entrep['dir1LieuNaiss']); // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = prepareString($entrep['dir2Titre']); - $identite->dir2NomPrenom = prepareString($entrep['dir2NomPrenom']); - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = prepareString($entrep['dir2DateNaiss']); //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = prepareString($entrep['dir2LieuNaiss']); // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = prepareString($entrep['InfosIris']['libIris']); - $identite->InfosIris->typIris = prepareString($entrep['InfosIris']['typIris']); - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $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->Millesime = $entrep['bilanAnnee']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->CAestime = $entrep['bilanFLestime']; - $identite->Bilan->Resultat = prepareString($entrep['bilanHN']); - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $tabAutreSiret = array(); - if (count($entrep['AutreSiret'])) { - foreach($entrep['AutreSiret'] as $type => $item) { - $autreSiret = new AutreSiret(); - $autreSiret->type = $type; - $autreSiret->siren = $item['siren']; - $autreSiret->nic = $item['nic']; - $autreSiret->apeEtab = $item['apeEtab']; - $autreSiret->codeEve = $item['codeEve']; - $autreSiret->dateEve = $item['dateEve']; - $autreSiret->adrL1 = $item['adrL1']; - $autreSiret->adrL2 = $item['adrL2']; - $autreSiret->adrL3 = $item['adrL3']; - $autreSiret->adrL4 = $item['adrL4']; - $autreSiret->adrL5 = $item['adrL5']; - $autreSiret->adrL6 = $item['adrL6']; - $autreSiret->adrL7 = $item['adrL7']; - $autreSiret->depCom = $item['depCom']; - $autreSiret->rivoli = $item['rivoli']; - $autreSiret->siege = $item['siege']; - $autreSiret->destinat = $item['destinat']; - $autreSiret->typEtab = $item['typeEtab']; - $autreSiret->origine = $item['origine']; - $tabAutreSiret[] = $autreSiret; - } - } - $identite->AutreSiret = $tabAutreSiret; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - //'importExport' = $entrep['importExport'], - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = prepareString($entrep2['apen4_lib']); - $identite->Naf4EtabLib = prepareString($entrep2['apet4_lib']); - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - $duree=round(microtime(1)-$tdeb,3); - $ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!"; - $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - - return $identite; - } - - /** - * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé - * @param string $siret Siren de l'entreprise ou siret de l'établissement - * @param integer $id Identifiant S&D de l'établissement - * @return IdentiteProcol Fiche d'identité de l'établissement - */ - public function getIdentiteProcol($siret, $id=0, $forceVerif=false) - { - $this->authenticate(); - $this->permission('idprocol'); - - debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - if (intval($siren)==0 && $id==0) { - $this->sendError('1010'); - } - if ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identiteProcol = new IdentiteProcol(); - - //Element identite - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->TribunalCode = $entrep['Tribunal']; - $identite->TribunalLib = $entrep['TribunalLib']; - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = strtr($entrep['Nom'],'/*',' '); - $identite->Nom2 = $entrep['Nom2']; - $identite->NomLong = $entrep['nomLong']; // Ajouté le 4 08 2009 - $identite->NomCommercial = $entrep['NomCommercial']; // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = $entrep['Sigle']; - $identite->SigleLong = $entrep['sigleLong']; // Ajouté le 4 08 2009 - $identite->Enseigne = $entrep['Enseigne']; - $identite->EnseigneLong = $entrep['enseigneLong']; // Ajouté le 16 11 2010 - $identite->Adresse = $entrep['Adresse']; - $identite->Adresse2 = $entrep['Adresse2']; - $identite->AdresseNum = $entrep['AdresseNum']; - $identite->AdresseBtq = $entrep['AdresseBtq']; - $identite->AdresseVoie = $entrep['AdresseVoie']; - $identite->AdresseRue = $entrep['AdresseRue']; - $identite->CP = $entrep['CP']; - $identite->Ville = $entrep['Ville']; - $identite->Pays = $entrep['Pays']; // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = $entrep['Tel']; - $identite->Fax = $entrep['Fax']; - $identite->Web = $entrep['Web']; - $identite->Mail = $entrep['Mail']; - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - $identite->GeoInfos = $entrep['GeoInfos']; - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = $entrep['APRM_Lib']; - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = $entrep['CapitalType']; // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = $entrep['codeCommune']; - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = $entrep['dir1Titre']; - $identite->dir1NomPrenom = $entrep['dir1NomPrenom']; - $identite->dir1DateFct = $entrep['dir1DateFct']; //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = $entrep['dir1LieuNaiss']; // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = $entrep['dir2Titre']; - $identite->dir2NomPrenom = $entrep['dir2NomPrenom']; - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = $entrep['dir2DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = $entrep['dir2LieuNaiss']; // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = $entrep['InfosIris']['libIris']; - $identite->InfosIris->typIris = $entrep['InfosIris']['typIris']; - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière - $identite->SituationJuridique = $entrep['SituationJuridique']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = $entrep['bilanHN']; - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = $entrep2['apen4_lib']; - $identite->Naf4EtabLib = $entrep2['apet4_lib']; - } - - $identiteProcol->Identite = $identite; - - //Eléments annonces légales - $tabRetAnn = $tabLastEven = array(); - if (intval($siren)!=0) { - $anns = $this->getAnnonces($siren, 1); - $anns = $anns->result; - $tribunalProcol = false; - foreach ($anns as $nb=>$ann) - { - $tabRetEven = array(); - foreach ($ann->evenements as $tabEven) { - // On ignore les éléments suivants - if ($tabEven->CodeEven>=7000) continue; - if ($tabEven->CodeEven>=4000 && $tabEven->CodeEven<=4999) continue; - - // Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol - if ($tribunalProcol==false && $tabEven->CodeEven>=1000 && $tabEven->CodeEven<2000 && $ann->BodaccCode=='BODA') { - $identiteProcol->TribunalCode = $ann->TribunalCode; - $identiteProcol->TribunalLib = prepareString($ann->Tribunal); - $tribunalProcol=true; - } - - // On ne prend que le dernier élément de chaque type - if (in_array($tabEven->CodeEven, $tabLastEven)) continue; - - $tabLastEven[] = $tabEven->CodeEven; - $tabRetEven[] = $tabEven; - } - - if (count($tabRetEven)>0) { - $annonce = new Annonce(); - $annonce->id = $ann->id; - $annonce->BodaccCode = $ann->BodaccCode; - $annonce->BodaccNum = $ann->BodaccNum; - $annonce->NumAnnonce = $ann->NumAnnonce; - $annonce->DateParution = $ann->DateParution; //@todo : date - $annonce->Departement = $ann->Departement; - $annonce->Tribunal = $ann->Tribunal; - $annonce->TribunalCode = $ann->TribunalCode; - $annonce->TribunalSiret = $ann->TribunalSiret; - $annonce->Rubrique = $ann->Rubrique; - $annonce->typeAnnonce = $ann->typeAnnonce; - $annonce->texteRectificatif = $ann->texteRectificatif; - $annonce->texteAnnonce = utf8_encode($ann->texteAnnonce); - $annonce->dateEffet = $ann->dateEffet; //@todo : date - $annonce->dateJugement = $ann->dateJugement; //@todo : date - $annonce->dateInsertionSD = $ann->dateInsertionSD; //@todo : date - $annonce->evenements = $tabRetEven; - $annonce->Lien_Annonce_Pdf = $ann->Lien_Annonce_Pdf; - $tabRetAnn[] = $annonce; - } - } - - $identiteProcol->Annonces = $tabRetAnn; - - $iRncs = new Metier_Partenaires_MRncs(); - if ($entrep['Siege']==1 || $entrep['Siege']==11) { - $identiteProcol->LibTypeEtab = 'Etablissement Siege'; - } else { - $tabEtabRncs = $iRncs->getIdentiteEtab($siren, $entrep['Nic']); - if ($tabEtabRncs['Siege']==2) $identiteProcol->LibTypeEtab = 'Etablissement Principal'; - elseif ($tabEtabRncs['Siege']==1) $identiteProcol->LibTypeEtab = 'Etablissement Complementaire'; - elseif ($tabEtabRncs['Siege']==0) $identiteProcol->LibTypeEtab = 'Etablissement Secondaire'; - } - - //@todo - $tabJuge = $iRncs->getIntervenants($siren); - $tabDepots=array(); - foreach ($tabJuge as $iDepot=>$depot) { - $organe = new Organe(); - $organe->codEven = $depot['codEven']; - $organe->libEven = prepareString($depot['libEven']); - $organe->dateEffet = $depot['dateEffet']; - $organe->admcode = $depot['admcode']; - $organe->admfonction = prepareString($depot['admfonction']); - $organe->admnom = prepareString($depot['admnom']); - $organe->admadrNum = $depot['admadrNum']; - $organe->admadrInd = $depot['admadrInd']; - $organe->admadrVoie = $depot['admadrVoie']; // @todo : adm1adr1, adm1adr2, adm1adr3, - $organe->admadrCP = $depot['admadrCP']; - $organe->admadrVille = $depot['admadrVille']; - $tabDepots[] = $organe; - } - $identiteProcol->Organes = $tabDepots; - - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, 1); - $nbA = count($tabA); - $tabAct = array(); - foreach ($tabA as $i=>$lien) { - $liens = new Actionnaire(); - $liens->Pmin = $lien['Pmin']; - $liens->MajMin = $lien['MajMin']; - $liens->RaisonSociale = $lien['RaisonSociale']; - $liens->Pays = $lien['Pays']; - $liens->Siren = $lien['Siren']; - $liens->Actif = $lien['Actif']; - $tabAct[] = $liens; - } - $identiteProcol->Actionnaires = $tabAct; - - $iGreffes = new Metier_Partenaires_MGreffes(); - $tabActes = $iGreffes->getListeActes($siren); - - $identiteProcol->StatutsModifDepot = $identiteProcol->StatutsModif = '0000-00-00'; - foreach ($tabActes as $i=>$acte) { - if ('_'.$acte['acte_type']=='_04') { // STATUTS CONSTITUTIFS - $identiteProcol->StatutsConstDepot = $acte['depot_date']; // => 1997-12-18 - $identiteProcol->StatutsConst = $acte['acte_date']; // => 1997-11-13 - break; - } elseif (in_array('_'.$acte['acte_type'], array( - //'_04', // STATUTS CONSTITUTIFS - '_06', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_07', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_08', // STATUTS A JOUR ET DECLARATION DE CONFORMITE 9 0000-00-00 2009-09-02 17:05:55 - '_09', // STATUTS APRES TRANSFERT DE SIEGE 9 0000-00-00 2009-09-02 17:05:55 - '_A1', // STATUTS 9 0000-00-00 2009-09-02 17:05:55 - '_AH', // AVENANT AUX STATUTS - ))) { - // On ne prend que la dernière modif - if ($identiteProcol->StatutsModifDepot=='0000-00-00' && $identiteProcol->StatutsModif=='0000-00-00') { - $identiteProcol->StatutsModifDepot = $acte['depot_date'];// => 1997-12-18 - $identiteProcol->StatutsModif = $acte['acte_date']; // => 1997-11-13 - } - } - } - - /** Y a t il eu des informations relatives à une cession ? **/ - $tabCes = $iGreffes->getInfosCessions($siren); - if ($tabCes) { - $identiteProcol->CessionJugeLib = $tabCes['cessJuge']; - $identiteProcol->CessionJugeDate = $tabCes['cessDateJuge']; - $identiteProcol->CessionAvisBodac = $tabCes['cessDateBod']; - $identiteProcol->CessionInvenDate = $tabCes['cessDateInv']; - $identiteProcol->CessionCAdeclare = $tabCes['cessCAdec']; - $identiteProcol->CessionEffectif = $tabCes['cessEffectif']; - $identiteProcol->CessionDesc = $tabCes['cessDesc']; - $identiteProcol->CessionDescDate = $tabCes['cessDateDesc']; - $identiteProcol->CessionOffreDate = $tabCes['cessDateLim']; - $identiteProcol->CessionMandataire = $tabCes['cessMand']; - } - } - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - - return $identiteProcol; - } - - /** - * Retourne les liens financiers pour une entreprise. - * - * @param string $siren Siren de l'entreprise - * @param boolean $actifsUniquement Uniquement les liens Actifs - * @return LiensReturn - */ - public function getLiens($siren, $actifsUniquement = true) - { - $this->authenticate(); - $this->permission('liens'); - - //Initialisation - if (empty($actifsUniquement)) { $actifsUniquement = true; } - $tabAct = $tabPar = array(); - - debugLog('I',"Liens entreprises demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, $actifsUniquement); - $nbA = count($tabA); - $tabAct = array(); - if ($nbA > 0) { - foreach ($tabA as $i => $lien) { - $actionnaire = new Actionnaire(); - $actionnaire->Pmin = $lien['Pmin']; - $actionnaire->MajMin = $lien['MajMin']; - $actionnaire->RaisonSociale = $lien['RaisonSociale']; - $actionnaire->TypeEntrep = $lien['TypeEntrep']; - $actionnaire->Pays = $lien['Pays']; - $actionnaire->Siren = $lien['Siren']; - $actionnaire->Actif = $lien['Actif']; - $actionnaire->Source = $lien['Source']; - $actionnaire->DateLien = $lien['DateLien']; //@todo : date - $actionnaire->DateMaj = $lien['DateMaj']; //@todo : date - $tabAct[] = $actionnaire; - } - } - debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $tabP = $mLiens->getParticipations($siren, $actifsUniquement); - $nbP = count($tabP); - $tabPar = array(); - if ($nbP > 0) { - foreach ($tabP as $i => $lien) { - $participation = new Participation(); - $participation->Pmin = $lien['Pmin']; - $participation->MajMin = $lien['MajMin']; - $participation->RaisonSociale = $lien['RaisonSociale']; - $participation->TypeEntrep = $lien['TypeEntrep']; - $participation->Pays = $lien['Pays']; - $participation->Siren = $lien['Siren']; - $participation->Actif = $lien['Actif']; - $participation->Source = $lien['Source']; - $participation->DateLien = $lien['DateLien']; //@todo : date - $participation->DateMaj = $lien['DateMaj']; //@todo : date - $tabPar[] = $participation; - } - } - debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('liens',$siren); - - $output = new LiensReturn(); - $output->actionnaires = $tabAct; - $output->participations = $tabPar; - return $output; - } - - - /** - * Liste des établissements d'une entreprise - * @param string $siren Siren de l'entreprise - * @param integer $departement Limiter aux établissements du departement - * @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous - * @param integer $position - * @param integer $nbRep - * - * @return ListeEtablissementsReturn - */ - public function getListeEtablissements($siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20) - { - $this->authenticate(); - $this->permission('etablissements'); - - //Initialisation - if (empty($dep)) { $dep = 0; } - if (!in_array($actif, array(0,1))) { $actif = -1; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 20; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - $departement = $dep; - - debugLog('I',"Liste des établissements demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif); - $etabs = $rep['reponses']; - $nbReponses = $rep['nbReponsesTotal']; - $result = array(); - if (count($etabs)>0) - { - foreach ($etabs as $nb => $etab) - { - $etablissement = new Etablissement(); - $etablissement->id = $etab['id']; - $etablissement->Siege = $etab['Siege']; - $etablissement->Enseigne = $etab['Enseigne']; - $etablissement->Adresse = $etab['Adresse']; - $etablissement->Adresse2 = $etab['Adresse2']; - $etablissement->CP = $etab['CP']; - $etablissement->Ville = $etab['Ville']; - $etablissement->Tel = $etab['Tel']; - $etablissement->Fax = $etab['Fax']; - $etablissement->Nic = $etab['Nic']; - $etablissement->Actif = $etab['Actif']; - $etablissement->NafEtab = $etab['NafEtab']; - $etablissement->NafEtabLib = $etab['NafEtabLib']; - $etablissement->EffEtTr = $etab['EffEtTr']; - $etablissement->EffEtTrLib = $etab['EffEtTrLib']; - - $result[] = $etablissement; - } - } - debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('etablissements',$siren); - $output = new ListeEtablissementsReturn(); - $output->nbReponses = $nbReponses; - $output->result = $result; - return $output; - } - - /** - * Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise - * - * @param string $siren Siren de l'entreprise - * @param bool $histo Afficher l'historique des dirigeants - * @return DirigeantsReturn Liste des dirigeants actifs de l'entreprise - */ - public function getDirigeants( $siren , $histo = false) - { - $this->authenticate(); - $this->permission('dirigeants'); - - //Initialisation - if (empty($histo)) { $histo = false; } - - //Zend_Registry::get('WsLogger')->info('HISTO : '.$histo); - - debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $dirs = $iInsee->getDirigeants($siren, $histo); - //debugLog('W', print_r($dirs, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $liste = array(); - foreach ($dirs as $nb => $dir) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $dirigeant = new Dirigeant(); - $dirigeant->Code = $dir['Fonction']; - $dirigeant->Titre = $dir['Titre']; - $dirigeant->Societe = $dir['Societe']; - $dirigeant->Civilite = $dir['Civilite']; - $dirigeant->Nom = $dir['Nom']; - $dirigeant->Prenom = $dir['Prenom']; - $dirigeant->NomUsage = $dir['NomUsage']; - $dirigeant->NaissDate = $dir['NaissDate']; //@todo : date - $dirigeant->NaissVille = $dir['NaissVille']; - $dirigeant->NaissDepPays = $dir['NaissDepPays']; - $dirigeant->Ancien = $dir['Ancien']; - $dirigeant->DateFct = $dir['DateFct']; //@todo : date - $liste[] = $dirigeant; - } - $this->wsLog('dirigeants',$siren,$option); - debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $output = new DirigeantsReturn(); - $output->result = $liste; - return $output; - } - - /** - * Retourne la liste des annonces légales relative à une entreprise - * - * @todo Revoir cette fonction pour la faire marcher avec les associations - * - * @param string $siren Siren de l'entreprise - * @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp - * @param string $idAnn Identifiant de l'annonce - * @param integer $position - * @param integer $nbRep - * @return AnnoncesReturn - */ - public function getAnnonces($siren, $filtre = 0, $idAnn = '', $position = 0, $nbRep = 100) - { - $this->authenticate(); - $this->permission('annonces'); - - //Initialisation - if (empty($filtre)) { $filtre = 0; } - if (empty($idAnn)) { $idAnn = ''; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 100; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - - debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $liste = array(); - - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0 && $idAnn=='') { - debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - /* - if ($siren>100 && $filtre==3) $asso=true; - else { - $asso=false; - $tabIdentite=$this->iInsee->getIdentiteLight($siren); - if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || - $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; - }*/ - if ($idAnn=='') { - $anns=$iInsee->getAnnoncesLegales($siren); - $annsB=$iInsee->getAnnoncesBalo($siren); - $annsA=$iInsee->getAnnoncesAsso($siren); - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } elseif ($filtre==1) - $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); - elseif ($filtre==2) - $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); - elseif ($filtre==3) - $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); - elseif ($filtre==4) - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) - { - debugLog('W', "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $error->errnum = 102; - $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; - } - else - { - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - $annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = prepareString($ann['texteAnnonce']); - $annonce->libFJ = $ann['libFJ']; - $annonce->codFJ = $ann['codFJ']; - $annonce->capital = $ann['capital']; - $annonce->capitalDev = $ann['capitalDev']; - - $annonce->raisonSociale = $ann['raisonSociale']; - $annonce->nomCommercial = $ann['nomCommercial']; - $annonce->sigle = $ann['sigle']; - $annonce->adresse = $ann['adresse']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - - if (is_array($annsB)) - { - foreach ($annsB as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsA)) - { - foreach ($annsA as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - //@todo : date - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsM)) - { - foreach ($annsM as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - } - - $nbReponses = count($liste); - if ($nbReponses>0){ - //$liste = array_slice($liste, $position, $nbRep); - } - debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); - - $output = new AnnoncesReturn(); - $output->nbReponses = $nbReponses; - $output->result = $liste; - return $output; - } - - /** - * Evaluation indiScore d'une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic Nic de l'établissement - * @param integer $niveau Niveau des commentaires - * @param bool $plus Si true, mise en surveillance privilèges - * @param string $ref Si $plus=true, référence de la mise en Surveillance - * @param integer $encours Si $plus=true, encours client demandé lors de la mise en Surveillance - * @param string $email Si $plus=true, email client pour la mise en surveillance - * @return Indiscore - */ - public function getIndiScore($siren, $nic=0, $niveau=2, $plus=false, $ref='', $encours=0, $email='') - { - $this->authenticate(); - - //Initialisation - $accesDist = true; - if (empty($nic)) { $nic = 0; } - if (empty($niveau)) { $niveau = 2; } - if (empty($plus)) { $plus = false; } - if ( !in_array($niveau, array(0,1,2,3,4,5)) ) { $niveau = 2; } - - $perm = false; - //@todo : Gestion des droits - /*switch($niveau){ - case 1: $perms = array('indiscore', 'indiscorep'); break; - case 2: $perms = array('indiscore2', 'indiscore2p'); break; - case 3: $perms = array('indiscore3', 'indiscore3p'); break; - } - foreach($perms as $item){ - if ( $this->checkPerm($item) ){ - $perm = true; - break; - } - } - if ($perm === false) { - $this->sendError('0902'); - }*/ - - $tabRet = array(); - debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 ){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; - $tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau); - $duree = round(microtime(true)-$tDeb,3); - debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new Indiscore(); - foreach($tabRet as $key => $value){ - if ($key=='paiements'){ - $parMont = $value['parMont']; - $parTrim = $value['parTrim']; - $tabMont = array(); - foreach($parMont as $parMontK => $parMontV){ - $paiementMont = new IndiscorePaiementDetail(); - $paiementMont->id = $parMontK; - $paiementMont->nb = $parMontV['nb']; - if (array_key_exists('d=180', $parMontV)){ - $paiementMont->d180 = $parMontV['d=180']; - } - if (array_key_exists('d=150', $parMontV)){ - $paiementMont->d150 = $parMontV['d=150']; - } - if (array_key_exists('d=120', $parMontV)){ - $paiementMont->d120 = $parMontV['d=120']; - } - if (array_key_exists('d=90', $parMontV)){ - $paiementMont->d90 = $parMontV['d=90']; - } - if (array_key_exists('d=60', $parMontV)){ - $paiementMont->d60 = $parMontV['d=60']; - } - if (array_key_exists('d=30', $parMontV)){ - $paiementMont->d30 = $parMontV['d=30']; - } - $tabMont[] = $paiementMont; - } - $tabTrim = array(); - foreach($parTrim as $parTrimK => $parTrimV){ - $paiementTrim = new IndiscorePaiementDetail(); - $paiementTrim->id = $parTrimK; - $paiementTrim->nb = $parTrimV['nb']; - if (array_key_exists('d=180', $parTrimV)){ - $paiementTrim->d180 = $parTrimV['d=180']; - } - if (array_key_exists('d=150', $parTrimV)){ - $paiementTrim->d150 = $parTrimV['d=150']; - } - if (array_key_exists('d=120', $parTrimV)){ - $paiementTrim->d120 = $parTrimV['d=120']; - } - if (array_key_exists('d=90', $parTrimV)){ - $paiementTrim->d90 = $parTrimV['d=90']; - } - if (array_key_exists('d=60', $parTrimV)){ - $paiementTrim->d60 = $parTrimV['d=60']; - } - if (array_key_exists('d=30', $parTrimV)){ - $paiementTrim->d30 = $parTrimV['d=30']; - } - $tabTrim[] = $paiementTrim; - } - $paiement = new IndiscorePaiement(); - $paiement->parMont = $tabMont; - $paiement->parTrim = $tabTrim; - $output->paiements = $paiement; - - } elseif ($key=='Notes_Structure') { - - $notesStructure = new IndiscoreNotesStructure(); - $notesStructure->activite = $value['activite']; - $notesStructure->naf4 = $value['naf4']; - $notesStructure->age = $value['age']; - $notesStructure->capital = $value['capital']; - $notesStructure->effectif = $value['effectif']; - $notesStructure->fj = $value['fj']; - $notesStructure->localite = $value['localite']; - $notesStructure->singulier = $value['singulier']; - $output->Notes_Structure = $notesStructure; - - } elseif ($key=='tabBilans') { - - $tabRet = array(); - foreach($value as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - $output->tabBilans = $tabRet; - - } elseif ($key=='tabBilan') { - - $tabRet = array(); - foreach($value as $bilan){ - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($bilan as $bilan_key => $bilan_value){ - if(!in_array($bilan_key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $bilan_key; - $resultPoste->val = $bilan_value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$bilan_key = $bilan_value; - } - } - $resultBilan->POSTES = $tabPoste; - $tabRet[] = $resultBilan; - } - $output->tabBilan = $tabRet; - - } elseif ($key=='tabInfosNotations') { - - $infosNotation = new IndiscoreInfosNotations(); - $infosNotation->SituationFinanciere = $value['SituationFinanciere']; - $infosNotation->Notation = $value['Notation']; - $infosNotation->ProbabiliteDefaut = $value['ProbabiliteDefaut']; - $output->tabInfosNotations = $infosNotation; - - } elseif ($key=='tabImportExport') { - - $tabRet = array(); - foreach($value as $element){ - $importExport = new IndiscoreImportExport(); - $importExport->importExport = $element['importExport']; - $importExport->annee = $element['annee']; - $importExport->rangNational = $element['rangNational']; - $importExport->deptSiege = $element['deptSiege']; - $tabRet[] = $importExport; - } - $output->tabImportExport = $tabRet; - - } elseif ($key=='tabCommentaires') { - - $tab = array(); - foreach($value as $comment) { - $tab[] = Scores_Locale_String::fixEncoding($comment); - } - $output->tabCommentaires = $tab; - - } elseif ($key=='tabVariables') { - - $tab = $value['CA_Y']; - $tabVar = array(); - foreach($tab as $varName => $varVal){ - $var = new CA_Y(); - $var->id = $varName; - $var->val = $varVal; - $tabVar[] = $var; - } - $variables = new IndiscoreVariables(); - $variables->CA_Y = $tabVar; - $output->tabVariables = $variables; - - } elseif ($key=='Bilans') { - - $tab = array(); - foreach($value as $item) - { - $objet = new IndiscoreBilans(); - $objet->Millesime = $item['Millesime']; - $objet->FraisPerso = $item['FraisPerso']; - $objet->CA = $item['CA']; - $objet->EBE = $item['EBE']; - $objet->TxInvest = $item['TxInvest']; - $objet->TxEndett = $item['TxEndett']; - $objet->DettesCT = $item['DettesCT']; - $objet->FraisFi = $item['FraisFi']; - $objet->BFR = $item['BFR']; - $objet->FR = $item['FR']; - $objet->FondsPr = $item['FondsPr']; - $objet->DelaiCli = $item['DelaiCli']; - $objet->DelaiFour = $item['DelaiFour']; - $tab[] = $objet; - } - $output->$key = $tab; - } else { - $output->$key = $value; - } - } - - if ($plus) { - if (empty($ref)) $ref='Indiscore+'; - if (empty($email)) $email=$this->User->email; - $this->setSurveillance($siren, $email, $ref, 'privileges'); - $this->setSurveillance($siren, $email, $ref, 'score', false, $encours); - if ($this->User->idClient==89) - $this->setSurveillance($siren, $email, $ref, 'annonces'); - $this->wsLog('indiscore+',$siren); - } else - $this->wsLog('indiscore',$siren); - return $output; - } - - /** - * Liste de tous les évènements enregistrés à l'INSEE pour une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param integer $position - * @param integer $nbRep - * @return InseeReturn - **/ - public function getListeEvenements($siren, $nic=0, $position=0, $nbRep=1000) - { - $this->authenticate(); - $this->permission('eveninsee'); - - //Initialisation - if (empty($nic)) { $nic = 0; } - if (empty($position)) { $position = 0; } - if (empty($nbRep) || $nbRep>1000) { $nbRep = 1000; } - - debugLog('I',"Liste des évènements pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $evens = $iInsee->getEvenements($siren, $nic, $position, $nbRep); - $tabRet = array(); - if (count($evens)>0) { - foreach ($evens as $key => $row) { - $date[$key] = $row['dateMAJ']; - } - array_multisort($date, SORT_DESC, $evens); - foreach ($evens as $nb=>$even) { - $iEven = new InseeEven(); - $iEven->Nic = $even['nic']; - $iEven->Siege = $even['siege']; - $iEven->SiretAss = $even['siretAssocie']; - $iEven->TypeSiretAss = $even['typeSiretAss']; - $iEven->EvenCode = $even['codeEven']; - $iEven->EvenLib = $even['libEven']; - $iEven->EvenLibDet = $even['libEvenDet']; - $iEven->EvenDate = $even['dateEven']; //@todo : date - $iEven->DateInfo = $even['dateMAJ']; //@todo : date - $tabRet[] = $iEven; - } - } - - debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('evenements',$siren); - $output = new InseeReturn(); - $output->nbReponses = count($tabRet); // @todo : retrouver le nombre total d'évenements - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche - * @param EntrepriseCriteres $criteres - * @param integer $position Position de parcours des résultats retournées (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut) - * @param integer $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut) - * @param boolean $avecSiren Seulement les entités sirénées (false par défaut) - * @return SearchEntrepriseReturn - */ - public function searchEntreprise($criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false) - { - $this->authenticate(); - - if (empty($position)) { $position = 0;} - if (empty($nbRep)) { $nbRep = 20; } - if (empty($maxRep)) { $maxRep = 200; } - - $entCriteres = new EntrepriseCriteres(); - $entCriteres = $criteres; - $identifiant = $entCriteres->identifiant; - $typeId = ''; - - //Detection autour de l'identifiant - if ($identifiant!='') { - $len = strlen($identifiant); - //Numéro WALDEC - if (strtoupper(substr($identifiant,0,1))=='W') { - $typeId = 'W'; - //Code ISIN - } elseif ($len==12){ - $typeId = 'I'; - //TVA Intracommunautaire - } elseif (in_array(substr($identifiant,0,2), - array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES', - 'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL', - 'PT','RO','SE','SI','SK'))){ - //"La recherche par numéro de TVA n'est pas encore possible sur ce pays !"; - //Pour la france - } elseif (substr($identifiant,0,2)=='FR') { - $typeId = 'S'; - if ($len==13) $identifiant = substr($identifiant,4,9); - else $identifiant = ''; - //Numéro RC - } elseif (preg_match('/A|B|C|D/i', $identifiant)) { - $typeId = 'R'; - //Siren normal on enleve tout ce qui n'est pas un chiffre - } else { - $typeId = 'S'; - } - } - - $adresse = trim($entCriteres->adresse); - - //Détection Tel/Fax uniquement - if ( empty($typeId) - && empty($entCriteres->raisonSociale) - && empty($adresse) - && empty($entCriteres->codePostal) - && empty($entCriteres->ville) - && empty($entCriteres->naf) ){ - $typeId = 'TEL'; - } - - if (in_array($typeId, array('R', 'W', 'I'))){ - - $O = $this->searchAutreId( - $typeId, - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } elseif ($typeId == 'S'){ - - $O = $this->searchSiren( - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - $output->info = $O->info; - return $output; - - } elseif ($typeId == 'TEL'){ - - $O = $this->searchTelFax( - $entCriteres->telFax, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } else { - - $O = $this->searchNomAdr( - Scores_Locale_String::cleanstring($entCriteres->raisonSociale), - Scores_Locale_String::cleanstring($entCriteres->adresse), - $entCriteres->codePostal, - Scores_Locale_String::cleanstring($entCriteres->ville), - empty($entCriteres->siege) ? false : $entCriteres->siege, - empty($entCriteres->actif) ? false : $entCriteres->actif, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - empty($pertinence) ? false : $pertinence, - empty($avecSiren) ? false : $avecSiren, - $entCriteres->naf - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - } - } - - /** - * Recherche d'entreprise par dirigeants - * @param DirigeantCriteres $criteres - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchDirReturn - */ - public function searchDir($criteres, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - $nom = $criteres->nom; - $prenom = $criteres->prenom; - $dateNaiss = $criteres->dateNaiss; - $lieuNaiss = $criteres->lieuNaiss; - $pertinence = $criteres->pertinence; - - debugLog('I',"Recherche Dirigeant de $nom, $prenom, $dateNaiss, $lieuNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($prenom)) $prenom = ''; - if (empty($dateNaiss)) $dateNaiss = ''; - if (empty($lieuNaiss)) $lieuNaiss = ''; - if (empty($pertinence)) $pertinence = false; - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheDir($nom, $prenom, '', $dateNaiss, $lieuNaiss, $deb, $nbRep, $maxRep, $pertinence); - - $tabRet = array(); - foreach ($etabs['reponses'] as $etab) { - $item = new EntrepriseDirItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($iInsee->getLibelleNaf($etab['NafEtab'])); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($iInsee->getLibelleNaf($etab['NafEnt'])); - - // Dirigeant - $item->DirRs = prepareString($etab['DirRs']); - $item->DirNom = prepareString($etab['DirNom']); - $item->DirPrenom = prepareString($etab['DirPrenom']); - $item->DirNomUsage = prepareString($etab['DirNomUsage']); - $item->DirDateEffet = $etab['DirDateEffet']; - $item->DirFonction = prepareString($etab['DirFonction']); - $item->DirDepart = $etab['DirDepart']; - $tabRet[] = $item; - } - - if ($etabs['nbReponses']==0){ - debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - } - - $search = new SearchDirReturn(); - $search->nbReponses = $etabs['nbReponses']; - $search->nbReponsesTotal = $etabs['nbReponsesTotal']; - $search->result = $tabRet; - return $search; - } - - /** - * Recherche d'entreprise ou d'établissement par un autre Identifiant - * - * @param string $typeId I=Code Isin, W=N°Waldec (Associations) ou R=N°RC (Registre Greffe) - * @param string $identifiant Identifiant recherché - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchAutreId($typeId, $identifiant, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - if (empty($dep)) $dep = 0; - - $typeId = substr(trim(strtoupper($typeId)),0,1); - - if ($typeId!='I' && $typeId!='W' && $typeId!='R') { - debugLog('I',"Type d'identifiant $typeId inexistant",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1021'); - } - $tabRet = array(); - debugLog('I',"Recherche par identifiant $typeId de $identifiantavec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if ($typeId=='W' || $typeId=='R') - { - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('AUTRE', $identifiant, $deb, $nbRep, $maxRep, $dep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } else { - $iBourse = new Metier_Partenaires_MBourse($siren); - $siren = $iBourse->getCodeSiren($identifiant); - return $this->searchSiren($siren, $deb, $nbRep, $maxRep); - } - } - - - /** - * Recherche d'entreprise ou d'établissement par leur TEL FAX - * - * @param string $telFax Téléphone ou fax de l'établissement (ex: 0175438010) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchTelFax($telFax, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - - $tabRet = array(); - debugLog('I',"Recherche par Tel/Fax de $telFax avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - //$assocs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $nbRep, $pertinence); - /** @todo A FAIRE **/ - if (strlen($telFax)<10 || strlen($telFax)>14) { - debugLog('W', "Tel/Fax $telFax incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1011'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('TEL', $telFax, $deb, $nbRep, $maxRep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche entreprise par nom et adresse - * @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle - * @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes - * @param string $codePostal Code postal (ex: 75014) - * @param string $ville Ville - * @param boolean $siege Limitation de la recherche au sièges (si true) - * @param boolean $actif Limitation aux établissements actifs (si true) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true) - * @param boolean $avecSiren Ne proposer que les entités sirénées - * @param string $ape_etab - * @return SearchReturn - */ - public function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege=false, $actif=false, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') - { - $this->authenticate(); - - debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($adresse)) $adresse = ''; - if (empty($codePostal)) $codePostal = ''; - if (empty($ville)) $ville = ''; - if (empty($siege)) $siege = false; - - if ( $actif ) { - $actif = 1; - } else { - $actif = 2; - } - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($pertinence)) $pertinence = false; - if (empty($avecSiren)) $avecSiren = false; - if (empty($ape_etab)) $ape_etab = ''; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab); - - $result = new SearchReturn(); - $tabRet = array(); - if (count($etabs['reponses'])) { - foreach ($etabs['reponses'] as $etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = strtr($etab['Nom'],'/*',' '); - $reponse->Nom2 = $etab['Nom2']; - $reponse->Sigle = $etab['Sigle']; - $reponse->Enseigne = $etab['Enseigne']; - $reponse->Adresse = $etab['Adresse']; - $reponse->Adresse2 = $etab['Adresse2']; - $reponse->CP = $etab['CP']; - $reponse->Ville = $etab['Ville']; - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $iInsee->getLibelleNaf($etab['NafEtab']); // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $iInsee->getLibelleNaf($etab['NafEnt']); - - $tabRet[] = $reponse; - } - } - - $fp=@fopen(LOG_PATH.'/recherches.log','a'); - - $siretTrouve = 0; - if ($etabs['nbReponses']==0) { - - $str="NbRep=0, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : AUCUN RESULTAT, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = count($tabRet); - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - - return $result; - - } - - if ($etabs['nbReponses']==1) $siretTrouve=$etabs['reponses'][0]['Siret']; - $str="NbRep=".$etabs['nbReponses'].", S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - @fwrite($fp, $str.EOL); - @fclose($fp); - debugLog('I', "rechercheEtab : ".$etabs['nbReponses']." RESULTATS, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = $etabs['nbReponses']; - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - return $result; - } - - /** - * Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET - * @param string $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param integer $dep Département - * @return SearchReturn - */ - public function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ( strlen($siret)!=14 && strlen($siret)!=9 ){ - debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($dep)) $dep = 0; - - $nbReponsesTotal = $nbReponses = 0; - - $siren = substr($siret,0,9); - if (strlen($siret)==14) $nic = substr($siret,9,5); - elseif (strlen($siret)== 9) $nic = ''; - - $iInsee = new Metier_Insee_MInsee(); - - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep); - if (count($rep['reponses'])==0 && $dep>0) { - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep); - } - $etabs = $rep['reponses']; - $tabRet = array(); - if (count($etabs)>0){ - foreach ($etabs as $nb=>$etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = prepareString($etab['FJLib']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $etab['NafEtabLib']; // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $etab['NafEntLib']; - $tabRet[] = $reponse; - } - } - $nbReponsesTotal = $rep['nbReponsesTotal']; - $nbReponses = $rep['nbReponses']; - - /** Si le siren est valide, on part chez Infogreffe **/ - if (count($tabRet)==0 && $iInsee->valideSiren($siren)) { - $iGeffes = new Metier_Partenaires_MGreffes(); - $etab = $iGeffes->getIdentite($siren); - if ($etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString($etab['Nom']); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = utf8_encode(prepareString(utf8_decode($etab['FJLib']))); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; - $reponse->NafEtabLib = $etab['NafEtabLib']; - $reponse->NafEnt = $etab['NafEnt']; - $reponse->NafEntLib = $etab['NafEntLib']; - - $tabRet[] = $reponse; - $nbReponses = 1; - $nbReponsesTotal = 1; - - } else { - $iDb = new WDB(); - $iDb->insert('siren_inexistants', - array( 'siren'=>$siren, - 'nic'=>$nic, - 'dep'=>$dep, - 'login'=>$this->User->login, - 'client'=>$this->User->idClient, - 'dateInsert'=>date('YmdHis'))); - $nbReponses = 0; - $nbReponsesTotal = 0; - } - } - - $output = new SearchReturn(); - $output->nbReponses = $nbReponses; - $output->nbReponsesTotal = $nbReponsesTotal; - $output->result = $tabRet; - $output->info = $rep['info']; - return $output; - } - - - - - /** - * Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA. - * - * @param string $siren Identifiant Siren de l'entreprise - * @return TvaReturn - */ - public function getTVA($siren) - { - $this->authenticate(); - - //Initialisation - $siren = trim($siren); - debugLog('I',"TVA demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren); - debugLog('I', "Après getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($entrep)) - { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - debugLog('I', "Avant MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iTva = new Metier_Partenaires_MTva($siren); - if ($iTva->vatDefined) $tva=$iTva->vatNumber; - else $tva='N/A'; - debugLog('I', "Après MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new TvaReturn(); - $output->id = $entrep['id']; - $output->AutreId = $entrep['AutreId']; - $output->Nom = $entrep['Nom']; - $output->Sigle = $entrep['Sigle']; - $output->Enseigne = $entrep['Enseigne']; - $output->Adresse = $entrep['Adresse']; - $output->Adresse2 = $entrep['Adresse2']; - $output->CP = $entrep['CP']; - $output->Ville = $entrep['Ville']; - $output->Siren = $entrep['Siren']; - $output->Tva = $tva; - - debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('tva',$siren); - - return $output; - } - - /** - * Retourne tout ou patie des informations règlementées sur l'entreprise - * - * @param string $siren SIREN de l'entreprise - * @param mixed $id Id du communiqué - * @return InfosRegReturn - */ - public function getInfosReg( $siren, $id = false ) - { - $this->authenticate(); - $this->permission('infosreg'); - - //Initialisation - if (empty($id)) $id = false; - $tabRet = array(); - $siren = substr($siren,0,9); - - debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - $iBourse = new Metier_Partenaires_MBourse($siren); - $anns = $iBourse->getInfosReg($siren, $id); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ( empty($anns) ){ - debugLog('W', "Aucune info règlementée pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ($id == false) { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } else { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->communique = $ann['communique']; - $infos->communiqueHtml = $ann['communiqueHtml']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } - } - debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('infosreg',$siren,$id); - $output = new InfosRegReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne les informations boursières de l'entreprise - * @param string $siren SIREN de l'entreprise - * @return InfosBourse - */ - public function getInfosBourse($siren) - { - $this->authenticate(); - $this->permission('bourse'); - - //Initialisation - $error = new ErrorType(); - debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $siren = substr($siren,0,9); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($bourse)) { - debugLog('W', "Aucune info bourse pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - $result = new InfosBourse(); - $result->Siren = $bourse['siren']; - $result->RaisonSociale = $bourse['raisonSociale']; - $result->Adresse = $bourse['adresse']; - $result->Effectif = $bourse['effectif']; - $result->CodeSicovam = $bourse['code_sicovam']; - $result->CodeMnemo = $bourse['code_mnemo']; - $result->CodeBloomberg = $bourse['code_bloomberg']; - $result->CodeDatastream = $bourse['code_datastream']; - $result->Isin = $bourse['code_isin']; - $result->CodeRic = $bourse['code_ric']; - $result->DateIntroduction = $bourse['dateIntroduction']; //@todo : date - $result->DateDerAG = $bourse['dateDerAG']; //@todo : date - $result->DateRadiation = $bourse['dateRadiation']; //@todo : date - $result->AutreIsin = $bourse['autre_isin']; - $result->EligibleSRD = $bourse['eligibleSRD']; - $result->EligiblePEA = $bourse['eligiblePEA']; - $result->Tel = $bourse['tel1']; - $result->Tel2 = $bourse['tel2']; - $result->Fax = $bourse['fax1']; - $result->Fax2 = $bourse['fax2']; - $result->Web = $bourse['web']; - $result->Mail = $bourse['mail']; - - $result->Marche = $bourse['marche']; - $result->Description = $bourse['description']; - $result->Secteur = $bourse['secteur']; - $result->Activite = $bourse['activite']; - $result->ActiviteDet = $bourse['activiteDet']; - - $result->placeCotation = $bourse['placeCotation']; - $result->nombreTitres = $bourse['nombreTitres']; - $result->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $result->derCoursDate = $bourse['date']; //@todo : date - $result->derCoursCloture = $bourse['close']; - $result->derCoursOuverture = $bourse['open']; - $result->derCoursPlusHaut = $bourse['high']; - $result->derCoursPlusBas = $bourse['low']; - - $result->derCoursVolume = $bourse['volume']; - $result->coursMin = $bourse['coursMin']; - $result->coursMoy = $bourse['coursMoy']; - $result->coursMax = $bourse['coursMax']; - - $this->wsLog('bourse',$siren,$id); - return $result; - } - - /** - * Ajout d'une surveillance - * - * @param string $siret Siret/Siren - * @param string $email Adresse email du client - * @param string $ref Référence de la surveillance - * @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants) - * @param boolean $delete Suppression de la ligne - * @param integer $encoursClient Encours demandé par le client - * @return SetSurveillanceReturn - */ - public function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) - { - $this->authenticate(); - $source = strtolower($source); - switch ($source) { - case 'insee': - $this->permission('survinsee'); - break; - case 'bilans': - $this->permission('survbilan'); - break; - case 'actes': - $this->permission('survactes'); - break; - case 'privileges': - $this->permission('survpriv'); - break; - case 'dirigeants': - $this->permission('survdirigeants'); - break; - case 'score': - $this->permission('survscore'); - break; - case 'annonces': - default: - $this->permission('survannonce'); - break; - } - - //Initialisation - if (empty($ref)) $ref = ''; - if (empty($delete)) $delete = false; - if (empty($encoursClient)) $encoursClient = false; - $result = false; - $siren = substr($siret,0,9); - $nic = substr($siret,9,5); - - debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($siren, $nic); - $iDb = new WDB(); - $login = $this->User->login; - switch ($source) { - case 'insee': - case 'annonces': - case 'bilans': - case 'actes': - case 'privileges': - case 'dirigeants': $encoursClient=0; break; - case 'score': $encoursClient=$encoursClient*1; break; - default: $source='annonces'; break; - } - - if ($delete) { - - $tabUpdate = array('dateSuppr'=>date('Y-m-d')); - $result = $iDb->update('surveillances_site', - $tabUpdate, - "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'" - ); - - } else { - - $tabUpdate = array( - 'source' => $source, - 'login' => $login, - 'email' => $email, - 'siren' => $siren, - 'nic' => $nic, - 'ref' => $ref, - 'encoursClient' => $encoursClient, - 'rs' => $tabIdentite['Nom'], - 'cp' => $tabIdentite['CP'], - 'ville' => $tabIdentite['Ville'], - 'dateAjout'=>date('Y-m-d'), - 'dateSuppr'=>0, - ); - $result = $iDb->insert('surveillances_site', $tabUpdate); - //Si l'insertion echoue, alors c'est une mise à jour - if ( !$result ) { - $result = $iDb->update('surveillances_site', - $tabUpdate, - "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'" - ); - } - } - $output = new SetSurveillanceReturn(); - $output->result = $result; - return $output; - } - - /** - * getSurveillances - * @param SurveillancesFiltre $filtre - * @param integer $deb - * @param integer $nbRep - * @return SurveillancesReturn - */ - public function getSurveillances($filtre, $position=0, $nbRep=100) - { - $this->authenticate(); - $this->permission('survliste'); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 100; - - $error = new ErrorType(); - $tabRet = array(); - $siren = substr($filtre->siret,0,9); - $nic = substr($filtre->siret,9,5); - - $tri = strtolower(trim($filtre->tri)); - switch ($tri){ - case 'ref': $orderBy='ORDER BY ref'; break; - case 'dateAjout': $orderBy='ORDER BY dateAjout'; break; - case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break; - case 'rs': $orderBy='ORDER BY rs'; break; - case 'cp': $orderBy='ORDER BY cp'; break; - case 'ville': $orderBy='ORDER BY ville'; break; - default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre - } - $iDb = new WDB(); - $login = $this->User->login; - - if ($filtre->detail) { - $strSelect = 'source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi'; - } else { - $strSelect = 'source, email, siren, nic, ref, dateAjout, dateDerEnvoi'; - } - if ($filtre->source!='') $strSource = " AND source='$filtre->source' "; - else $strSource = ''; - - if ($siren>0) $strSiren = " AND siren=$siren "; - else $strSiren = ''; - - // Il faut compter le nombre de siren au total - $tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - $tabTmp = $iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $position,$nbRep", false, MYSQL_ASSOC); - foreach ($tabTmp as $i=>$tabSurv){ - if (!$filtre->detail){ - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = $tabSurv['ref']; - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } else { - if (trim($tabSurv['rs'])<>'') { - $rs = $tabSurv['rs']; - $cp = $tabSurv['cp']; - $ville = $tabSurv['ville']; - } else { - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']); - $rs = $tabIdentite['Nom']; - $cp = $tabIdentite['CP']; - $ville = $tabIdentite['Ville']; - $iDb->update('surveillances_site', array( - 'rs' => $rs, - 'cp' => $cp, - 'ville' => $ville), - "login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", - false - ); - } - $liste = new Surveillance(); - $liste->source = $tabSurv['source']; - $liste->email = $tabSurv['email']; - $liste->siren = $tabSurv['siren']; - $liste->nic = $tabSurv['nic']; - $liste->ref = $tabSurv['ref']; - $liste->dateAjout = $tabSurv['dateAjout']; //@todo : date - $liste->encoursClient = $tabSurv['encoursClient']; - $liste->rs = $rs; - $liste->cp = $cp; - $liste->ville = $ville; - $liste->dateDerEnvoi = $tabSurv['dateDerEnvoi']; //@todo : date - $tabRet[] = $liste; - } - } - $output = new SurveillancesReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Recherche par référence client - * @param string $search - * @param integer $position - * @param integer $nbRep - * @return SearchRefClientReturn - */ - public function searchRefClient($search, $position=0, $nbRep=20) - { - $this->authenticate(); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 20; - - $iDb = new WDB(); - $login = $this->User->login; - $orderBy = " ORDER BY dateAjout ASC"; - - if ($this->User->rechRefType=='CLI'){ - //On cherche les logins actifs pour le client - $idClient = $this->User->idClient; - - $where = "u.idClient='$idClient' AND u.actif=1 AND s.dateSuppr=0 AND ( s.siren='$search' OR s.ref='$search' OR s.rs='$search' )"; - // Il faut compter le nombre au total - $tabTmp = $iDb->select('surveillances_site s, utilisateurs u', 'count(*) as nb', $where.$orderBy, false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - // Execution de la requete - $tabTmp = $iDb->select('surveillances_site s, utilisateurs u', - "siren, nic, ref, source, DATE_FORMAT(dateAjout, '%Y-%m-%d') as dateAjout, DATE_FORMAT(dateDerEnvoi, '%Y-%m-%d') as dateEnvoi", - $where.$orderBy." LIMIT $position,$nbRep", false, MYSQL_ASSOC); - } else { - $where = "login='$login' AND dateSuppr=0 AND ( siren='$search' OR ref='$search' OR rs='$search' )"; - // Il faut compter le nombre au total - $tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', $where.$orderBy, false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - // Execution de la requete - $tabTmp = $iDb->select('surveillances_site', - "siren, nic, ref, source, DATE_FORMAT(dateAjout, '%Y-%m-%d') as dateAjout, DATE_FORMAT(dateDerEnvoi, '%Y-%m-%d') as dateEnvoi", - $where.$orderBy." LIMIT $position,$nbRep", false, MYSQL_ASSOC); - } - - $tabRet = array(); - if (count($tabTmp)>0) - { - foreach ($tabTmp as $i => $item) - { - $info = new SearchRefClientInfo(); - $info->ref = $item['ref']; - $info->source = $item['source']; - $info->dateAjout = $item['dateAjout']; - $info->dateEnvoi = $item['dateEnvoi']; - - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($item['siren'], $item['nic']); - - $reponse = new SearchRefClient(); - $reponse->id = $tabIdentite['id']; - $reponse->Siret = $tabIdentite['Siret']; - $reponse->Siege = $tabIdentite['Siege']; - $reponse->Nom = prepareString(strtr($tabIdentite['Nom'],'/*',' ')); - $reponse->Nom2 = prepareString($tabIdentite['Nom2']); - $reponse->Sigle = prepareString($tabIdentite['Sigle']); - $reponse->Enseigne = prepareString($tabIdentite['Enseigne']); - $reponse->Adresse = prepareString($tabIdentite['Adresse']); - $reponse->Adresse2 = prepareString($tabIdentite['Adresse2']); - $reponse->CP = $tabIdentite['CP']; - $reponse->Ville = prepareString($tabIdentite['Ville']); - $reponse->Tel = $tabIdentite['Tel']; - $reponse->Fax = $tabIdentite['Fax']; - $reponse->FJ = $tabIdentite['FJ']; - $reponse->FJLib = prepareString($tabIdentite['FJ_lib']); - $reponse->Siren = $tabIdentite['Siren']; - $reponse->Nic = $tabIdentite['Nic']; - $reponse->Actif = $tabIdentite['Actif']; - $reponse->NafEtab = $tabIdentite['NafEtab']; - $reponse->NafEtabLib = $tabIdentite['NafEtabLib']; - $reponse->NafEnt = $tabIdentite['NafEnt']; - $reponse->NafEntLib = $tabIdentite['NafEntLib']; - $reponse->Infos = $info; - $tabRet[] = $reponse; - } - } - $output = new SearchRefClientReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé - * - * @param string $siren Siren de l'entreprise - * @param string $millesime Date du bilan au format AAAAMMJJ - * @param string $typeBilan N:Réel Normal, S:Réel Simplifié, C:Consolidé - * @param string $ref Référence S&D obligatoire - * @return Bilan - */ - public function getBilan($siren, $millesime, $typeBilan='N', $ref='') - { - $this->authenticate(); - $this->permission('liasse'); - - //Initialisation - if (empty($typeBilan)) { $typeBilan = 'N'; } - if (empty($ref)) { $ref = ''; } - - debugLog('I',"Bilan $millesime $typeBilan demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $millesime = WDate::dateT('Ymd','d/m/Y',$millesime); - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilan = $mBil->getBilan($millesime, $typeBilan, $ref, true); - - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($tabBilan as $key => $value){ - if(!in_array($key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $key; - $resultPoste->val = $value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$key = $value; - } - } - $this->wsLog('bilan',$siren, $millesime.':'.$typeBilan.':'.$ref); - $resultBilan->POSTES = $tabPoste; - return $resultBilan; - } - - /** - * Retourne la liste des bilans disponible pour une entreprise - * - * @param string $siren Siren de l'entreprise - * @return ListeBilansReturn - */ - public function getListeBilans($siren) - { - $this->authenticate(); - $this->permission('liasse'); - - //Initialisation - $tabRet = array(); - debugLog('I',"Liste des Bilans demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - foreach($tabBilans as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - - debugLog('I', 'Nb Bilans retournés = '. count($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('listebilans', $siren); - $output = new ListeBilansReturn(); - $output->nbReponses = count($tabRet); - $output->result = $tabRet; - return $output; - } - - /** - * Vérifie si un siren existe en base Scores & Décisions - * @param string $siren Siren de l'entité - * @return boolean - */ - public function isSirenExistant($siren) - { - $this->authenticate(); - - //Initialisation - $tabRet = array(); - $siren = trim(substr($siren,0,9)); - $result = false; - debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->sirenExiste($siren); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = false; - } else { - debugLog('I', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = true; - } - $this->wsLog('sirenExiste',$siren); - return $result; - } - - /** - * Retourne une annonce en fonction de sa référence - * - * @param string $siren Siren de l'entreprise - * @param string $dateAnnee - * @param integer $numParution - * @param integer $numAnnonce - * @return RechercheAnnonceReturn - */ - public function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) - { - $this->authenticate(); - $this->permission('histobodacc'); - - //Initialisation - $tabRet = array(); - - debugLog('I',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (strlen($dateAnnee)==4) $annee = $dateAnnee; - else $annee = substr($dateAnnee,0,4); - - $iDb = new WDB('jo'); - - switch (strtoupper($source)) - { - case 'BODA': - case 'BODB': - case 'BODC': - $lettre = substr(strtoupper($source),3,1); - if ($annee<2005) { - if ($lettre=='A'){ $numJAL=1; } - elseif ($lettre=='B'){ $numJAL=200; } - else{ break; } - $anneeDeb = $annee.'0101'; - $anneeFin = $annee.'1231'; - $res = $iDb->select('historiques.entrep e, texte t', - "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce", - "e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum", false, MYSQL_ASSOC); - } else { - $res = $iDb->select('bodacc', - 'Bodacc_Annee_Parution AS Annee_Parution, Bodacc_Num AS Num_Parution, Num_Annonce, Bodacc_Page AS Num_Page, Bodacc_Date_Parution AS Date_Parution, Tribunal_Dept AS Departement, Tribunal_Code, typeAnnonce, annonce', - "Bodacc_Code='$lettre' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$numParution AND Num_Annonce=$numAnnonce", false, MYSQL_ASSOC); - } - break; - case 'ASSO': - $res = $iDb->select('asso', - 'YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Annonce, pageDeb AS Num_Page, Date_Parution, Departement, codTribunal AS Tribunal_Code, typeAnnonce, Annonce_Html AS annonce', "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$annee".sprintf('%04d', $numParution)." AND Num_Annonce=$numAnnonce", - false, MYSQL_ASSOC); - break; - case 'BALO': - $res = $iDb->select('balo', - "YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Affaire AS Num_Annonce, '' AS Num_Page, Date_Parution, '' AS Departement, '' AS Tribunal_Code, 'Insertion' AS typeAnnonce, Annonce_Html AS annonce", "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$numParution AND Num_Affaire=$numAnnonce", - false, MYSQL_ASSOC); - break; - } - - if (count($res)>0) - { - $iBodacc = new Metier_Bodacc_MBodacc(); - foreach ($res as $i => $etab) - { - $annonces = new AnnonceItem(); - $annonces->Annee_Parution = $etab['Annee_Parution']; - $annonces->Num_Parution = $etab['Num_Parution']; - $annonces->Num_Annonce = $etab['Num_Annonce']; - $annonces->Num_Page = $etab['Num_Page']; - $annonces->Date_Parution = $etab['Date_Parution']; //@todo : date - $annonces->Departement = $etab['Departement']; - $annonces->Tribunal_Code = $etab['Tribunal_Code']; - $annonces->Tribunal = $iBodacc->getTribunalNom($etab['Tribunal_Code']); - $annonces->Type_Annonce = $etab['typeAnnonce']; - $annonces->Annonce = strip_tags(strtr( - html_entity_decode($etab['annonce']), - array('>'=>'>','&'=>'&','<'=>'<','’'=>"'") - )); - - $tabRet[] = $annonces; - } - } - $nbTot = count($tabRet); - $output = new RechercheAnnonceReturn(); - $output->criteres = $criteres; - $output->nbReponses = $nbTot; - $output->nbReponsesTotal = $nbTot; - $output->result = $tabRet; - return $output; - } - - /** - * getRatios - * @param string $siren - * @param string $page - * @return RatiosReturn - */ - public function getRatios($siren, $page='ratios') - { - $this->authenticate(); - $this->permission('ratios'); - - global $tva, $mBil, $tabBilan, $efftr, $tabInfla; - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Variables/CacheTabFormules.php'; - require_once 'Metier/scores/Variables/configMRatios.php'; - - //Initialisation - if (empty($page)) $page = 'ratios'; - $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); - $tabRatios2 = $tabRatiosEvol = array(); - $tabRet = array(); - debugLog('I',"Liste des Ratios demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); - debugLog('I',"Liste des Ratios demandée pour $siren après getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $naf = $tabIdentite['NafEnt']; - $nafLib = $tabIdentite['NafEntLib']; - $efftr = $tabIdentite['Effectif']*1; - $fj = $tabIdentite['FJ']; - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - $nbBilans = count($tabBilans); - $tabBilan = $tabBil = array(); - if ($nbBilans>0){ - $tabRatios = calculRatios($tabBilans, $tabIdentite, true); - } - $nbRatios = count($tabRatios); - debugLog('I',"Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - /** Tableau d'infos sur les formules **/ - $tabBorneMin = $tabBorneMax = array(); - foreach ($tabFormules as $formule) { - $id = $formule['id']*1; - $libelle = $formule['libelle']; - $unite = $formule['unite']; - $commentaires = $formule['commentaires']; - $tabFormulesInfos[$id] = $formule; //Pour la gestion des unités des ratios secteur - $ratiosInfos = new RatiosInfos(); - $ratiosInfos->id = 'r'.$id; - $ratiosInfos->libelle = $formule['libelle']; - $ratiosInfos->unite = $formule['unite']; - $ratiosInfos->commentaires = $formule['commentaires']; - $tabRatiosInfos[] = $ratiosInfos; - $tabBorneMin[$id] = $formule['borneMin']; - $tabBorneMax[$id] = $formule['borneMax']; - } - - $tabAnnees = array(); - foreach ($tabRatios as $i=>$R) { - - //Informations sur le bilan - $bilansInfos = new RatiosBilansInfos(); - $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date - $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; - $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; - $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; - $bilansInfos->unite = 'U'; - if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ - $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); - } - - $tabRatiosEntrep = array(); - $tabRatiosEntrepEvol = array(); - foreach ( $R as $Ridx=>$Rmont ){ - - if ($Rmont<>'NS') { - if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ - $Rmont='<'.$tabBorneMin[$Ridx]; - } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ - $Rmont='>'.$tabBorneMax[$Ridx]; - } - } - - // RatiosEntrep - $ratiosEntrep = new Ratios(); - if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = $Rmont; - } else { - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = round($Rmont,2); - } - $tabRatiosEntrep[] = $ratiosEntrep; - - if (($tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) || - ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); - elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - || ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); - else - $Rmont='NS'; - - // RatiosEntrepEvol - $ratiosEntrepEvol = new Ratios(); - if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = 'NS'; - } else { - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); - } - $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; - } - $bilansInfos->RatiosEntrep = $tabRatiosEntrep; - $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; - $tabBilansR[] = $bilansInfos; - } - - debugLog('I',"Liste des Ratios demandée pour $siren après EVOLUTION",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - // Tableau des ratios secteurs - - if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; - else $strNaf = " AND naf4='$naf' "; - $strAnnees = implode(',', $tabAnnees); - - $tabRatiosSecteurs = array(); - - $tabAnnees = array_unique($tabAnnees); - - if ( count($tabAnnees)>0 ) - { - $iDb = new WDB('jo'); - $tabTmp = $iDb->select('ratios_secteurs', - 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', - "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", - false, MYSQL_ASSOC); - - $nbRatiosSec = 0; - foreach($tabAnnees as $annee) - { - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $annee; - foreach ($tabTmp as $tmp) - { - if ($tmp['annee']== $annee) - { - $Ridx = $tmp['id']; - if ($tmp['nombre']>$nbRatiosSec){ - $nbRatiosSec = $tmp['nombre']; - } - - $unite = $tabFormulesInfos[$Ridx]['unite']; - if ($unite=='EUR'){ - $montant = round($tmp['ratio']*1000); - } else { - $montant = round($tmp['ratio']); - } - if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ - $montant='<'.$tabBorneMin[$Ridx]; - } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ - $montant='>'.$tabBorneMax[$Ridx]; - } - - $ratiosSecteurListe = new Ratios(); - if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = $montant; - } else { - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = round($montant,2); - } - $ratiosSecteur->liste[] = $ratiosSecteurListe; - } - } - $tabRatiosSecteurs[] = $ratiosSecteur; - } - } - - //$tabRatiosSecteurs=array(count($tabTmp), "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC"); - - $output = new RatiosReturn(); - $output->Nom = $tabIdentite['Nom']; - $output->NafEnt = $tabIdentite['NafEnt']; - $output->NafEntLib = $tabIdentite['NafEntLib']; - $output->FJ = $fj; - $output->FJ_lib = $tabIdentite['FJ_lib']; - $output->Siren = $siren; - $output->NbEntNaf = $nbRatiosSec; - $output->BilansInfos = $tabBilansR; - $output->RatiosInfos = $tabRatiosInfos; - $output->RatiosSecteur = $tabRatiosSecteurs; - - debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->wsLog($page, $siren); - return $output; - - } - - /** - * getRapport - * @param string $siren Siren de l'entreprise - * @param integer $niveau Niveau du rapport 1, 2 ou 3 - * @param integer $id Identifiant interne S&D de l'entreprise - * @param boolean $plus Si true, mise en surveillance privilèges - * @param string $ref Si $plus=true, référence facultative de la mise en Surveillance - * @param integer $encours Si $plus=true, encours facultatif Demandé par le client lors de la mise en Surveillance - * @param string $email Si $plus=true, email facultatif pour le suivi - * @return Rapport - */ - public function getRapport($siren, $niveau=3, $id=0, $plus=false, $ref='', $encours=0, $email='') - { - $this->authenticate(); - if (empty($niveau)) $niveau = 3; - if (empty($id)) $id = 0; - $result = new Rapport(); - $filtre = 0; - $idAnn = 0; - - //@todo : Gestion des droits - $perm = false; - switch($niveau){ - case 1: $perms = array('indiscore', 'indiscorep'); break; - case 2: $perms = array('indiscore2', 'indiscore2p'); break; - case 3: $perms = array('indiscore3', 'indiscore3p'); break; - } - foreach($perms as $item){ - if ( $this->checkPerm($item) ){ - $perm = true; - break; - } - } - if ($perm === false) { - $this->sendError('0902'); - } - - $accesDist=true; - $nivComment=2; - if ($niveau==1){ - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - } elseif ($niveau==2) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - } elseif ($niveau==3) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - $result->Annonces = $this->getAnnonces($siren, $filtre, $idAnn); - } - return $result; - } - - /** - * Retourne la liste des banques connues pour une entreprise - * @param string $siren Siren de l'entreprise - * @return BanquesReturn - **/ - public function getBanques($siren) - { - $this->authenticate(); - $this->permission('banque'); - - //Initialisation - $iDb = new WDB('sdv1'); - $tabRet = array(); - debugLog('I',"Liste des banques demandée pour siren $siren", - __LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (intval($siren)<=1000) { - $this->sendError('1010'); - } - - $res=$iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC); - $tmp=$iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC); - $res=array_merge($res, $tmp); - foreach ($res as $tabBanque){ - $dateSource=$tabBanque['dateSource']; - $codBanque=$tabBanque['codeBanque']; - $codGuichet=$tabBanque['codeGuichet']; - $libBanque=trim($tabBanque['libBanqueGuichet']); - $found=false; - $adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille=''; - - if ($codBanque>0 && $codGuichet>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs b, insee.BDF_Guichets g', - 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", - false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - $found=true; - }; - } - if (!$found && $codBanque>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - } else continue; - } else continue; - - $banque = new Banque(); - $banque->codeBanque = $codBanque; - $banque->codeGuichet = $codGuichet; - $banque->libBanque = $libBanque; - $banque->adresse1 = $adrBanque1; - $banque->adresse2 = $adrBanque2; - $banque->cp = $adrBanqueCP; - $banque->ville = $adrBanqueVille; - $tabRet[] = $banque; - } - debugLog('I',"Liste des banques pour siren $siren : ".count($tabRet).' banques',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $this->wsLog('banque', $siren); - $output = new BanquesReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne la liste des compétences territoriales pour un établissement à une adresse donnée. - * @param string $siret Siret de l'établissement - * @param string $type Type de compétence (pre:prefectures et s/prefectures, jal;journaux d'annonces légales, tri:tribunaux, adm:administrateurs et mandataires judiciaires, hui:huissiers, cfe:centres de formalités des entreprises) - * @param string $codeInsee Code Insee de la commune de l'établissement - * @return ListeCompetencesReturn - */ - public function getListeCompetences($siret, $type, $codeInsee) - { - $this->authenticate(); - $this->permission('competences'); - - //Initialisation - $error = new ErrorType(); - $type = strtolower($type); - - debugLog('I',"Liste des compétences $type demandée pour la commune $codeInsee",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - $iBodacc = new Metier_Bodacc_MBodacc(); - $cp=$codeInsee*1; - $dep=false; - if (substr($codeInsee,0,2)=='2A' || substr($codeInsee,0,2)=='2B') - { - $dep=20; $cp=20000+(substr($codeInsee,2,3))*1; - } - elseif ($cp>0 && $cp<100) $dep=$cp; - elseif ($cp>970 && $cp<977) $dep=$cp; - elseif ($cp>999 && $cp<10000) $dep='0'.substr($cp,0,1); - elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); - elseif ($cp>=99000) $dep=substr($cp,0,2); - elseif ($cp>=98000) $dep=substr($cp,0,3); - elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); - - if ($type=='pre'){ - - $iDb = new WDB('jo'); - $tabTmp2 = $iDb->select('villes', 'DEP, COM, AR, CT', 'codeInsee='.$codeInsee, false, MYSQL_ASSOC); - $arrond = $tabTmp2[0]['AR']; - unset($iDb); - $iDb = new WDB('insee'); - $tabTmp2 = $iDb->select('insee_tabArrond', 'CHEFLIEU, ARTMAJ, NCC', "DEP='$dep' AND AR='$arrond'", false, MYSQL_ASSOC); - $nomSousPref = trim(strtr($tabTmp2[0]['ARTMAJ'],array('('=>'',')'=>'',' '=>'', "'"=>'')).' '.$tabTmp2[0]['NCC']); - unset($iDb); - $tabTmp = $iBodacc->getTribunauxParDep($dep); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='A' || $tribunal['triType']=='B') - { - $pref = levenshtein($tribunal['triNom'], 'PREFECTURE DE '.$nomSousPref); - $spref = levenshtein($tribunal['triNom'], 'SOUS PREFECTURE DE '.$nomSousPref); - - if ($tribunal['triType']=='B' && ($pref>7 || $spref>5)) continue; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType'].$typeP; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper( - preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - $tabRet[] = $competence; - - } - } - - } elseif ($type=='jal') { - - $tabTmp = $iBodacc->getJALparDep($dep); - foreach ($tabTmp as $i=>$comp) - { - $infos=''; - if (trim($comp['parution'])<>'') $infos.='Parution '.$comp['parution'].'. '; - if (trim($comp['aboAnnuel'])>0) $infos.='Abonnement Annuel : '.$comp['aboAnnuel'].' euros. '; - if (trim($comp['infos'])<>'') $infos.=$comp['infos']; - - $competence = new Competence(); - $competence->Id = 9000+$comp['id']*1; - $competence->IdSup = 0; - $competence->Code = ''; - $competence->Type = ''; - $competence->Nom = strtoupper($comp['nomJal']); - $competence->Siret = ''; - $competence->Adr = strtoupper($comp['adresse']); - $competence->AdrComp = ''; - $competence->CP = $comp['cp']; - $competence->Ville = strtoupper($comp['ville']); - $competence->CodeInsee = ''; - $competence->Tel = $comp['tel']; - $competence->Fax = $comp['fax']; - $competence->Web = $comp['siteWeb']; - $competence->Mail = $comp['email']; - $competence->Statut = 'Actif'; - $competence->DateCessation = ''; - $competence->Remarque = trim($infos); - $tabRet[] = $competence; - } - - } elseif ($type=='tri' || $type=='adm' || $type=='hui') { - - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if (//$tribunal['triType']=='C' || - $tribunal['triType']=='G'// || - /*$tribunal['triType']=='I'*/) { - $idCA = $tribunal['triIdSup']; - $codeTGI = $tribunal['triCode']; - $code = strtoupper(substr($tribunal['triCode'],0,3)); - } - debugLog('D',"Liste des compétences $type demandée pour la commune $codeInsee ($dep) : ". - "Type=".$tribunal['triType'].', '. - "Code=".$tribunal[$codeTGI],__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($tribunal['triType']<>'E' && $tribunal['triType']<>'O' && - $tribunal['triType']<>'T' && $tribunal['triType']<>'R' && - $tribunal['triType']<>'N' && $tribunal['triType']<>'U' && - $tribunal['triType']<>'Z') - { - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper(Scores_Locale_String::cleanstring($tribunal['triNom'])); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(Scores_Locale_String::cleanstring(preg_replace('/ +/',' ', - $tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie']))); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - if ($tribunal['triNumGreffe']*1>0) - { - $competence->IdentifiantGreffe = $tribunal['triNumGreffe']; - } - $tabRet[] = $competence; - } - } - } - - if ($type=='adm') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getMandataires(array($idCA), false); - $tabRet = array(); - $nbAff=0; - foreach ($tabTmp as $i=>$tribunal) - { /** @todo A revoir Debut **/ - if (stripos($tribunal['tribunal'], $code)!==false || - stripos($tribunal['tribunal'], 'SAINT')!==false) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - $nbAff++; - } - } - if ($nbAff==0) - { - foreach ($tabTmp as $i=>$tribunal) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - } - }/** @todo A revoir Fin : Lier correctement les mandataires à un TI principal **/ - } - elseif ($type=='hui') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getHuissiers(array($codeTGI), false); - - $tabRet = array(); - $nbAff = 0; - foreach ($tabTmp as $i=>$tribunal) - { - $adr = $iInsee->structureVoie($tribunal['adresse']); - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($adr['num'].' '.$adr['adr_btq'].' '. - $adr['typeVoie'].' '.$adr['libVoie']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $adr['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation']; - $competence->Remarque = strtr($tribunal['contact'], - array( '
'=>', ', '
'=>', ', - '
'=>', ', - )); - $tabRet[] = $competence; - } - $nbComp = count($tabTmp); - debugLog('I',"$nbComp compétences $type trouvées pour le tribunal $codeTGI",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - } - elseif ($type=='cfe') - { - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='C' || $tribunal['triType']=='O' || - $tribunal['triType']=='T' || $tribunal['triType']=='R' || - $tribunal['triType']=='N' || $tribunal['triType']=='U' || - $tribunal['triType']=='Z') - { - if (strlen($tribunal['triCommentaire'])==32 && - strpos($tribunal['triCommentaire'], ' ')===false) - $remarque=''; - else $remarque=$tribunal['triCommentaire']; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '.$tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $remarque; - $tabRet[] = $competence; - } - } - } - $this->wsLog('competences',$siret,$type.'/'.$codeInsee); - $output = new ListeCompetencesReturn(); - $output->result = $tabRet; - $output->nbReponses = count($tabRet); - return $output; - } - - /** - * Retourne le statut du webservice - * @return StatusReturn - */ - public function status() - { - /* @todo tester les différents éléments qui peuvent conduire - * à un problème dans les services tel que la connexion à la - * base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier - */ - - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info("status - ip:". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']. - ", hash:".$_SERVER['PHP_AUTH_PW']); - - $error = new StatusReturn(); - //Test connexion à la base de données - $db = new WDB('jo'); - if (!$db) { - $error->statusCode = 9000; - $error->statusMsg = $this->listError['9000']; - } else { - $error->statusCode = 3000; - $error->statusMsg = $this->listError['3000']; - } - return $error; - } - -} - -?> \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.5/Types.php b/library/WsScore/Entreprise/v0.5/Types.php deleted file mode 100644 index 255dbc23..00000000 --- a/library/WsScore/Entreprise/v0.5/Types.php +++ /dev/null @@ -1,3747 +0,0 @@ - 'ErrorType', - 'StatusReturn' => 'StatusReturn', - 'SearchReturn' => 'SearchReturn', - 'SearchEntrepriseReturn' => 'SearchEntrepriseReturn', - 'SearchDirReturn' => 'SearchDirReturn', - 'DirigeantsReturn' => 'DirigeantsReturn', - 'AnnoncesReturn' => 'AnnoncesReturn', - 'InseeReturn' => 'InseeReturn', - 'TvaReturn' => 'TvaReturn', - 'LiensReturn' => 'LiensReturn', - 'InfosRegReturn' => 'InfosRegReturn', - 'ListeBilansReturn' => 'ListeBilansReturn', - 'SetSurveillanceReturn' => 'SetSurveillanceReturn', - 'SurveillancesReturn' => 'SurveillancesReturn', - 'ListeEtablissementsReturn' => 'ListeEtablissementsReturn', - 'RatiosReturn' => 'RatiosReturn', - 'RechercheAnnonceReturn' => 'RechercheAnnonceReturn', - 'Identite' => 'Identite', - 'GeoInfos' => 'GeoInfos', - 'IdentiteBilan' => 'IdentiteBilan', - 'IdentiteBourse' => 'IdentiteBourse', - 'AutreSiren' => 'AutreSiren', - 'EntrepriseCriteres' => 'EntrepriseCriteres', - 'DirigeantCriteres' => 'DirigeantCriteres', - 'EntrepriseItem' => 'EntrepriseItem', - 'EntrepriseDirItem' => 'EntrepriseDirItem', - 'Etablissement' => 'Etablissement', - 'Dirigeant' => 'Dirigeant', - 'AnnonceFilter' => 'AnnonceFilter', - 'Annonce' => 'Annonce', - 'AnnonceEvenement' => 'AnnonceEvenement', - 'AnnonceNum' => 'AnnonceNum', - 'Actionnaire' => 'Actionnaire', - 'Participation' => 'Participation', - 'InseeEven' => 'InseeEven', - 'InfosReg' => 'InfosReg', - 'InfosBourse' => 'InfosBourse', - 'ListeBilans' => 'ListeBilans', - 'SurveillancesFiltre' => 'SurveillancesFiltre', - 'Surveillance' => 'Surveillance', - 'SurveillanceSource' => 'SurveillanceSource', - 'Bilan' => 'Bilan', - 'BilanPoste' => 'BilanPoste', - 'RechercheAnnonceCriteres' => 'RechercheAnnonceCriteres', - 'AnnonceItem' => 'AnnonceItem', - 'RatiosBilansInfos' => 'RatiosBilansInfos', - 'RatiosInfos' => 'RatiosInfos', - 'RatiosSecteur' => 'RatiosSecteur', - 'Ratios' => 'Ratios', - 'Rapport' => 'Rapport', - 'Indiscore' => 'Indiscore', - 'Scores' => 'Scores', - 'IndiscoreVariables' => 'IndiscoreVariables', - 'CA_Y' => 'CA_Y', - 'IndiscoreImportExport' => 'IndiscoreImportExport', - 'IndiscoreInfosNotations' => 'IndiscoreInfosNotations', - 'IndiscorePaiement' => 'IndiscorePaiement', - 'IndiscorePaiementDetail' => 'IndiscorePaiementDetail', - 'IndiscoreNotesStructure' => 'IndiscoreNotesStructure', - 'IndiscoreBilans' => 'IndiscoreBilans', - 'AdresseDomEnt' => 'AdresseDomEnt', - 'InfosIris' => 'InfosIris', - 'BanquesReturn' => 'BanquesReturn', - 'Banque' => 'Banque', - 'ListeCompetencesReturn' => 'ListeCompetencesReturn', - 'Competence' => 'Competence', - 'IdentiteProcol' => 'IdentiteProcol', - 'Organe' => 'Organe', - 'AutreSiret' => 'AutreSiret', - 'SearchRefClientReturn' => 'SearchRefClientReturn', - 'SearchRefClient' => 'SearchRefClient', - 'SearchRefClientInfo' => 'SearchRefClientInfo', -); \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.6/Service.php b/library/WsScore/Entreprise/v0.6/Service.php deleted file mode 100644 index 1e3a2a43..00000000 --- a/library/WsScore/Entreprise/v0.6/Service.php +++ /dev/null @@ -1,3501 +0,0 @@ -authenticate(); - $this->permission('identite'); - - //Initialisation - if (empty($id)) { $id = 0; } - $forceVerif = false; - - $tdeb = microtime(1); - $ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ..."; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if ($siren*1==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep) || empty($entrep['id']) ) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->AncienSiege = $entrep['AncienSiege']; - $identite->AncienSiegeDateFin = $entrep['AncienSiegeDateFin']; - $identite->TribunalCode = prepareString($entrep['Tribunal']); - $identite->TribunalLib = prepareString($entrep['TribunalLib']); - //'NumGreffe' = $entrep['numGreffe'], // Ajouté le 4 08 2009 - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->ActifEco = $entrep['ActifEco']; // Etab éco actif, ajout le 28/04/2011 - $identite->ActifEcoDate = $entrep['ActifEcoDate']; // Date si éco inactif et jur actif - $identite->ActifEcoType = $entrep['ActifEcoType']; // vide ou NPAI ou PFER ou ECOF - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = prepareString(strtr($entrep['Nom'],'/*',' ')); - $identite->Nom2 = prepareString($entrep['Nom2']); - $identite->NomLong = prepareString($entrep['nomLong']); // Ajouté le 4 08 2009 - $identite->NomCommercial = prepareString($entrep['NomCommercial']); // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = prepareString($entrep['Sigle']); - $identite->SigleLong = prepareString($entrep['sigleLong']); // Ajouté le 4 08 2009 - $identite->Enseigne = prepareString($entrep['Enseigne']); - $identite->EnseigneLong = prepareString($entrep['enseigneLong']); // Ajouté le 16 11 2010 - $identite->Adresse = prepareString($entrep['Adresse']); - $identite->Adresse2 = prepareString($entrep['Adresse2']); - $identite->AdresseNum = prepareString($entrep['AdresseNum']); - $identite->AdresseBtq = prepareString($entrep['AdresseBtq']); - $identite->AdresseVoie = prepareString($entrep['AdresseVoie']); - $identite->AdresseRue = prepareString($entrep['AdresseRue']); - $identite->CP = $entrep['CP']; - $identite->Ville = prepareString($entrep['Ville']); - $identite->Pays = prepareString($entrep['Pays']); // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = prepareString($entrep['Tel']); - $identite->Fax = prepareString($entrep['Fax']); - $identite->Web = prepareString($entrep['Web']); - $identite->Mail = prepareString($entrep['Mail']); - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - - $geoInfos = new GeoInfos(); - $geoInfos->CUCS = $entrep['GeoInfos']['CUCS']; - $geoInfos->NCUCS = $entrep['GeoInfos']['NCUCS']; - $geoInfos->ZRU = $entrep['GeoInfos']['ZRU']; - $geoInfos->NZRU = $entrep['GeoInfos']['NZRU']; - $geoInfos->ZFU = $entrep['GeoInfos']['ZFU']; - $geoInfos->NZFU = $entrep['GeoInfos']['NZFU']; - $geoInfos->ZUS = $entrep['GeoInfos']['ZUS']; - $geoInfos->NZUS = $entrep['GeoInfos']['NZUS']; - $geoInfos->AFR = $entrep['GeoInfos']['AFR']; - $geoInfos->NAFR = $entrep['GeoInfos']['NAFR']; - $geoInfos->ZRR = $entrep['GeoInfos']['ZRR']; - $geoInfos->NZRR = $entrep['GeoInfos']['NZRR']; - $identite->GeoInfos = $geoInfos; - - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = prepareString($entrep['APRM_Lib']); - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = prepareString($entrep['CapitalType']); // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - //'DateMajRCS' = $entrep['DateMajRCS'], // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = prepareString($entrep['codeCommune']); - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->TrancheCAType = $entrep['TrancheCAType']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = prepareString($entrep['dir1Titre']); - $identite->dir1NomPrenom = prepareString($entrep['dir1NomPrenom']); - $identite->dir1DateFct = prepareString($entrep['dir1DateFct']); //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = prepareString($entrep['dir1LieuNaiss']); // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = prepareString($entrep['dir2Titre']); - $identite->dir2NomPrenom = prepareString($entrep['dir2NomPrenom']); - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = prepareString($entrep['dir2DateNaiss']); //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = prepareString($entrep['dir2LieuNaiss']); // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = prepareString($entrep['InfosIris']['libIris']); - $identite->InfosIris->typIris = prepareString($entrep['InfosIris']['typIris']); - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $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->Millesime = $entrep['bilanAnnee']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->CAestime = $entrep['bilanFLestime']; - $identite->Bilan->Resultat = prepareString($entrep['bilanHN']); - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $tabAutreSiret = array(); - if (count($entrep['AutreSiret'])) { - foreach($entrep['AutreSiret'] as $type => $item) { - $autreSiret = new AutreSiret(); - $autreSiret->type = $type; - $autreSiret->siren = $item['siren']; - $autreSiret->nic = $item['nic']; - $autreSiret->apeEtab = $item['apeEtab']; - $autreSiret->codeEve = $item['codeEve']; - $autreSiret->dateEve = $item['dateEve']; - $autreSiret->adrL1 = $item['adrL1']; - $autreSiret->adrL2 = $item['adrL2']; - $autreSiret->adrL3 = $item['adrL3']; - $autreSiret->adrL4 = $item['adrL4']; - $autreSiret->adrL5 = $item['adrL5']; - $autreSiret->adrL6 = $item['adrL6']; - $autreSiret->adrL7 = $item['adrL7']; - $autreSiret->depCom = $item['depCom']; - $autreSiret->rivoli = $item['rivoli']; - $autreSiret->siege = $item['siege']; - $autreSiret->destinat = $item['destinat']; - $autreSiret->typEtab = $item['typeEtab']; - $autreSiret->origine = $item['origine']; - $tabAutreSiret[] = $autreSiret; - } - } - $identite->AutreSiret = $tabAutreSiret; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - //'importExport' = $entrep['importExport'], - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = prepareString($entrep2['apen4_lib']); - $identite->Naf4EtabLib = prepareString($entrep2['apet4_lib']); - } - - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - $duree=round(microtime(1)-$tdeb,3); - $ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!"; - $fp=fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - - return $identite; - } - - /** - * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé - * @param string $siret Siren de l'entreprise ou siret de l'établissement - * @param integer $id Identifiant S&D de l'établissement - * @return IdentiteProcol Fiche d'identité de l'établissement - */ - public function getIdentiteProcol($siret, $id=0, $forceVerif=false) - { - $this->authenticate(); - $this->permission('idprocol'); - - debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - $siret = trim($siret); - $len = strlen($siret); - $siren = substr($siret,0,9); - if ($len == 14) { - $nic = substr($siret,9,5)*1; - } elseif ($len == 9) { - $nic = 0; - } - - if (intval($siren)==0 && $id==0) { - $this->sendError('1010'); - } elseif ($len!=14 && $len!=9) { - $this->sendError('1020'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif); - debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $duree = round(microtime(1)-$tdeb,3); - $ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)"; - $fp = fopen(LOG_PATH.'/accesDistant.log', 'a'); - fwrite($fp,$ligne.EOL); - fclose($fp); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - - $identiteProcol = new IdentiteProcol(); - - //Element identite - $identite = new Identite(); - $identite->id = $entrep['id']; - $identite->Siret = $entrep['Siret']; - $identite->SiretSiege = $entrep['SiretSiege']; - $identite->Siege = $entrep['Siege']; - $identite->TribunalCode = $entrep['Tribunal']; - $identite->TribunalLib = $entrep['TribunalLib']; - $identite->NumRC = $entrep['numRC']; // Ajouté le 4 08 2009 - $identite->Actif = $entrep['Actif']; - $identite->EntActiveRCS = $entrep['EntActiveRCS']; - $identite->AutreId = $entrep['AutreId']; - $identite->Source = $entrep['Source']; - $identite->SourceId = $entrep['SourceId']; - $identite->Isin = $entrep['Isin']; - $identite->Nom = strtr($entrep['Nom'],'/*',' '); - $identite->Nom2 = $entrep['Nom2']; - $identite->NomLong = $entrep['nomLong']; // Ajouté le 4 08 2009 - $identite->NomCommercial = $entrep['NomCommercial']; // Ajouté le 16 11 2010 - $identite->Siret = $entrep['Siret']; - $identite->Sigle = $entrep['Sigle']; - $identite->SigleLong = $entrep['sigleLong']; // Ajouté le 4 08 2009 - $identite->Enseigne = $entrep['Enseigne']; - $identite->EnseigneLong = $entrep['enseigneLong']; // Ajouté le 16 11 2010 - $identite->Adresse = $entrep['Adresse']; - $identite->Adresse2 = $entrep['Adresse2']; - $identite->AdresseNum = $entrep['AdresseNum']; - $identite->AdresseBtq = $entrep['AdresseBtq']; - $identite->AdresseVoie = $entrep['AdresseVoie']; - $identite->AdresseRue = $entrep['AdresseRue']; - $identite->CP = $entrep['CP']; - $identite->Ville = $entrep['Ville']; - $identite->Pays = $entrep['Pays']; // Ajouté le 18 02 2008 - $identite->PaysIso2 = $entrep['PaysIso2']; - $identite->AdresseDom = $entrep['AdresseDom']; - - $tabAdresseDomEnt = array(); - if (isset($entrep['AdresseDomEnt']) && count($entrep['AdresseDomEnt'])>0){ - foreach ($entrep['AdresseDomEnt'] as $element){ - $adresseDomEnt = new AdresseDomEnt(); - $adresseDomEnt->siren = $element['siren']; - $adresseDomEnt->nom = $element['nom']; - $tabAdresseDomEnt[] = $adresseDomEnt; - } - } - $identite->AdresseDomEnt = $tabAdresseDomEnt; - - $identite->AdresseDomNb = $entrep['AdresseDomNb']; - $identite->Civilite = $entrep['Civilite']; - $identite->NbEtab = $entrep['NbEtab']; - $identite->Tel = $entrep['Tel']; - $identite->Fax = $entrep['Fax']; - $identite->Web = $entrep['Web']; - $identite->Mail = $entrep['Mail']; - $identite->GeoLat = $entrep['GeoLat']; - $identite->GeoLon = $entrep['GeoLon']; - $identite->GeoPrecis = $entrep['GeoPrecis']; - $identite->GeoInfos = $entrep['GeoInfos']; - $identite->TvaNumero = $entrep['TvaNumero']; - $identite->TvaAttribue = $entrep['TvaAttribue']; - $identite->FJ = $entrep['FJ']; - $identite->FJ_Lib = $entrep['FJ_lib']; - $identite->FJ2 = $entrep['FJ2']; // Ajouté le 4 08 2009 - $identite->FJ2_Lib = $entrep['FJ2_Lib']; // Ajouté le 4 08 2009 - $identite->Siren = $entrep['Siren']; - $identite->Nic = $entrep['Nic']; - $identite->NafEnt = $entrep['NafEnt']; - $identite->NafEntLib = $entrep['NafEntLib']; - $identite->NafEtab = $entrep['NafEtab']; - $identite->NafEtabLib = $entrep['NafEtabLib']; - $identite->NaceEtab = $entrep['NaceEtab']; - $identite->NaceEnt = $entrep['NaceEnt']; - $identite->Nafa = $entrep['APRM']; - $identite->NafaLib = $entrep['APRM_Lib']; - $identite->NumRM = $entrep['NumRM']; - $identite->Activite = $entrep['Activite']; - $identite->Capital = $entrep['Capital']; - $identite->CapitalDev = $entrep['CapitalDev']; - $identite->CapitalLib = $entrep['CapitalLib']; // Ajouté le 18 02 2008 - $identite->CapitalType = $entrep['CapitalType']; // Ajouté le 4 08 2009 - $identite->DateCreaEt = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEt']); - $identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']); - $identite->DateClotEt = $entrep['DateClotEt']; //@todo : date - $identite->DateImmat = $entrep['dateImmat']; // Ajouté le 4 08 2009 - $identite->DateRadiation = $entrep['dateRad']; // Ajouté le 4 08 2009 - $identite->EffEnTr = $entrep['EffEnTr']; - $identite->EffEnTrLib = $entrep['EffEnTrLib']; - $identite->Effectif = $entrep['Effectif']; - $identite->EffEtTr = $entrep['EffEtTr']; // Ajout le 11 08 2010 - $identite->EffEtTrLib = $entrep['EffEtTrLib']; // Ajout le 11 08 2010 - $identite->EffectifEtab = $entrep['EffectifEtab']; // Ajout le 11 08 2010 - $identite->Dept = $entrep['Dept']; - $identite->codeCommune = $entrep['codeCommune']; - $identite->AnneeEffEn = $entrep['AnneeEffEn']; - $identite->AnneeEffEt = $entrep['AnneeEffEt']; - $identite->AnneeTCA = $entrep['AnneeTCA']; - $identite->TrancheCA = $entrep['TrancheCA']; - $identite->TrancheCALib = $entrep['TrancheCALib']; - $identite->dir1Code = $entrep['dir1Code']; - $identite->dir1Titre = $entrep['dir1Titre']; - $identite->dir1NomPrenom = $entrep['dir1NomPrenom']; - $identite->dir1DateFct = $entrep['dir1DateFct']; //@todo : date - $identite->dir1DateNaiss = $entrep['dir1DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir1LieuNaiss = $entrep['dir1LieuNaiss']; // Ajouté le 4 08 2009 - $identite->dir2Code = $entrep['dir2Code']; - $identite->dir2Titre = $entrep['dir2Titre']; - $identite->dir2NomPrenom = $entrep['dir2NomPrenom']; - $identite->dir2DateFct = $entrep['dir2DateFct']; //@todo : date - $identite->dir2DateNaiss = $entrep['dir2DateNaiss']; //@todo : date // Ajouté le 4 08 2009 - $identite->dir2LieuNaiss = $entrep['dir2LieuNaiss']; // Ajouté le 4 08 2009 - $identite->Rivoli = $entrep['Rivoli']; - $identite->InfosIris->codIris = $entrep['InfosIris']['codIris']; - $identite->InfosIris->codComIris = $entrep['InfosIris']['codComIris']; - $identite->InfosIris->libIris = $entrep['InfosIris']['libIris']; - $identite->InfosIris->typIris = $entrep['InfosIris']['typIris']; - $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']; - $identite->Auxiliaire = $entrep['Auxiliaire']; // 1=Auxiliaire / 0=Non auxiliaire - $identite->Saisonnalite = $entrep['Saisonnalite']; // P=Activité permanente / S=Activité saisonnière - $identite->SituationJuridique = $entrep['SituationJuridique']; - $identite->Bilan->Cloture = $entrep['bilanDate']; //@todo : date - $identite->Bilan->Duree = $entrep['bilanMois']; - $identite->Bilan->Devise = $entrep['bilanDevise']; - $identite->Bilan->Capital = $entrep['bilanDA']; - $identite->Bilan->CA = $entrep['bilanFL']; - $identite->Bilan->Resultat = $entrep['bilanHN']; - $identite->Bilan->Effectif = $entrep['bilanYP']; - $identite->Bourse->placeCotation = $bourse['placeCotation']; - $identite->Bourse->nombreTitres = $bourse['nombreTitres']; - $identite->Bourse->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $identite->Bourse->derCoursDate = $bourse['date']; //@todo : date - $identite->Bourse->derCoursCloture = $bourse['close']; //@todo : date - - $tabAutreSiren = array(); - if (isset($entrep['AutreSiren'])) { - $autreSiren = new AutreSiren(); - $autreSiren->siren = $entrep['AutreSiren']['listeSiren']['siren']; - $autreSiren->type = $entrep['AutreSiren']['listeSiren']['type']; - $tabAutreSiren[] = $autreSiren; - } - $identite->AutreSiren = $tabAutreSiren; - - $identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date - $identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date - $identite->DateMajBILAN = $entrep['bilanDateMaj']; //@todo : date - $identite->DateMajANN = $entrep['dateMajANN']; //@todo : date - $identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date - - if (preg_match('/NAF4/i', $this->User->pref)) - { - $entrep2 = $iInsee->getNaf4($siren, $nic, $id); - $identite->Naf4Ent = $entrep2['apen4']; - $identite->Naf4Etab = $entrep2['apet4']; - $identite->Naf4EntLib = $entrep2['apen4_lib']; - $identite->Naf4EtabLib = $entrep2['apet4_lib']; - } - - $identiteProcol->Identite = $identite; - - //Eléments annonces légales - $tabRetAnn = $tabLastEven = array(); - if (intval($siren)!=0) { - $anns = $this->getAnnonces($siren, 1); - $anns = $anns->result; - $tribunalProcol = false; - foreach ($anns as $nb=>$ann) - { - $tabRetEven = array(); - foreach ($ann->evenements as $tabEven) { - // On ignore les éléments suivants - if ($tabEven->CodeEven>=7000) continue; - if ($tabEven->CodeEven>=4000 && $tabEven->CodeEven<=4999) continue; - - // Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol - if ($tribunalProcol==false && $tabEven->CodeEven>=1000 && $tabEven->CodeEven<2000 && $ann->BodaccCode=='BODA') { - $identiteProcol->TribunalCode = $ann->TribunalCode; - $identiteProcol->TribunalLib = prepareString($ann->Tribunal); - $tribunalProcol=true; - } - - // On ne prend que le dernier élément de chaque type - if (in_array($tabEven->CodeEven, $tabLastEven)) continue; - - $tabLastEven[] = $tabEven->CodeEven; - $tabRetEven[] = $tabEven; - } - - if (count($tabRetEven)>0) { - $annonce = new Annonce(); - $annonce->id = $ann->id; - $annonce->BodaccCode = $ann->BodaccCode; - $annonce->BodaccNum = $ann->BodaccNum; - $annonce->NumAnnonce = $ann->NumAnnonce; - $annonce->DateParution = $ann->DateParution; //@todo : date - $annonce->Departement = $ann->Departement; - $annonce->Tribunal = $ann->Tribunal; - $annonce->TribunalCode = $ann->TribunalCode; - $annonce->TribunalSiret = $ann->TribunalSiret; - $annonce->Rubrique = $ann->Rubrique; - $annonce->typeAnnonce = $ann->typeAnnonce; - $annonce->texteRectificatif = $ann->texteRectificatif; - $annonce->texteAnnonce = utf8_encode($ann->texteAnnonce); - $annonce->dateEffet = $ann->dateEffet; //@todo : date - $annonce->dateJugement = $ann->dateJugement; //@todo : date - $annonce->dateInsertionSD = $ann->dateInsertionSD; //@todo : date - $annonce->evenements = $tabRetEven; - $annonce->Lien_Annonce_Pdf = $ann->Lien_Annonce_Pdf; - $tabRetAnn[] = $annonce; - } - } - $identiteProcol->Annonces = $tabRetAnn; - - $iRncs = new Metier_Partenaires_MRncs(); - if ($entrep['Siege']==1 || $entrep['Siege']==11) { - $identiteProcol->LibTypeEtab = 'Etablissement Siege'; - } else { - $tabEtabRncs = $iRncs->getIdentiteEtab($siren, $entrep['Nic']); - if ($tabEtabRncs['Siege']==2) $identiteProcol->LibTypeEtab = 'Etablissement Principal'; - elseif ($tabEtabRncs['Siege']==1) $identiteProcol->LibTypeEtab = 'Etablissement Complementaire'; - elseif ($tabEtabRncs['Siege']==0) $identiteProcol->LibTypeEtab = 'Etablissement Secondaire'; - } - - //@todo - $tabJuge = $iRncs->getIntervenants($siren); - $tabDepots=array(); - foreach ($tabJuge as $iDepot=>$depot) { - $organe = new Organe(); - $organe->codEven = $depot['codEven']; - $organe->libEven = prepareString($depot['libEven']); - $organe->dateEffet = $depot['dateEffet']; - $organe->admcode = $depot['admcode']; - $organe->admfonction = prepareString($depot['admfonction']); - $organe->admnom = prepareString($depot['admnom']); - $organe->admadrNum = $depot['admadrNum']; - $organe->admadrInd = $depot['admadrInd']; - $organe->admadrVoie = $depot['admadrVoie']; // @todo : adm1adr1, adm1adr2, adm1adr3, - $organe->admadrCP = $depot['admadrCP']; - $organe->admadrVille = $depot['admadrVille']; - $tabDepots[] = $organe; - } - $identiteProcol->Organes = $tabDepots; - - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, 1); - $nbA = count($tabA); - $tabAct = array(); - foreach ($tabA as $i=>$lien) { - $liens = new Actionnaire(); - $liens->Pmin = $lien['Pmin']; - $liens->MajMin = $lien['MajMin']; - $liens->RaisonSociale = $lien['RaisonSociale']; - $liens->Pays = $lien['Pays']; - $liens->Siren = $lien['Siren']; - $liens->Actif = $lien['Actif']; - $tabAct[] = $liens; - } - $identiteProcol->Actionnaires = $tabAct; - - $iGreffes = new Metier_Partenaires_MGreffes(); - $tabActes = $iGreffes->getListeActes($siren); - - $identiteProcol->StatutsModifDepot = $identiteProcol->StatutsModif = '0000-00-00'; - foreach ($tabActes as $i=>$acte) { - if ('_'.$acte['acte_type']=='_04') { // STATUTS CONSTITUTIFS - $identiteProcol->StatutsConstDepot = $acte['depot_date']; // => 1997-12-18 - $identiteProcol->StatutsConst = $acte['acte_date']; // => 1997-11-13 - break; - } elseif (in_array('_'.$acte['acte_type'], array( - //'_04', // STATUTS CONSTITUTIFS - '_06', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_07', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55 - '_08', // STATUTS A JOUR ET DECLARATION DE CONFORMITE 9 0000-00-00 2009-09-02 17:05:55 - '_09', // STATUTS APRES TRANSFERT DE SIEGE 9 0000-00-00 2009-09-02 17:05:55 - '_A1', // STATUTS 9 0000-00-00 2009-09-02 17:05:55 - '_AH', // AVENANT AUX STATUTS - ))) { - // On ne prend que la dernière modif - if ($identiteProcol->StatutsModifDepot=='0000-00-00' && $identiteProcol->StatutsModif=='0000-00-00') { - $identiteProcol->StatutsModifDepot = $acte['depot_date'];// => 1997-12-18 - $identiteProcol->StatutsModif = $acte['acte_date']; // => 1997-11-13 - } - } - } - - /** Y a t il eu des informations relatives à une cession ? **/ - $tabCes = $iGreffes->getInfosCessions($siren); - if ($tabCes) { - $identiteProcol->CessionJugeLib = $tabCes['cessJuge']; - $identiteProcol->CessionJugeDate = $tabCes['cessDateJuge']; - $identiteProcol->CessionAvisBodac = $tabCes['cessDateBod']; - $identiteProcol->CessionInvenDate = $tabCes['cessDateInv']; - $identiteProcol->CessionCAdeclare = $tabCes['cessCAdec']; - $identiteProcol->CessionEffectif = $tabCes['cessEffectif']; - $identiteProcol->CessionDesc = $tabCes['cessDesc']; - $identiteProcol->CessionDescDate = $tabCes['cessDateDesc']; - $identiteProcol->CessionOffreDate = $tabCes['cessDateLim']; - $identiteProcol->CessionMandataire = $tabCes['cessMand']; - } - } - debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('identite',$siret,$id); - - return $identiteProcol; - } - - /** - * Retourne les liens financiers pour une entreprise. - * @param string $siren Siren de l'entreprise - * @param boolean $actifsUniquement Uniquement les liens Actifs - * @return LiensReturn - */ - public function getLiens($siren, $actifsUniquement = true) - { - $this->authenticate(); - $this->permission('liens'); - - //Initialisation - if (empty($actifsUniquement)) { $actifsUniquement = true; } - $tabAct = $tabPar = array(); - - debugLog('I',"Liens entreprises demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mLiens = new Metier_Partenaires_MLiens($siren); - $tabA = $mLiens->getActionnaires($siren, $actifsUniquement); - $nbA = count($tabA); - $tabAct = array(); - if ($nbA > 0) { - foreach ($tabA as $i => $lien) { - $actionnaire = new Actionnaire(); - $actionnaire->Pmin = $lien['Pmin']; - $actionnaire->MajMin = $lien['MajMin']; - $actionnaire->RaisonSociale = $lien['RaisonSociale']; - $actionnaire->TypeEntrep = $lien['TypeEntrep']; - $actionnaire->Pays = $lien['Pays']; - $actionnaire->Siren = $lien['Siren']; - $actionnaire->Actif = $lien['Actif']; - $actionnaire->Source = $lien['Source']; - $actionnaire->DateLien = $lien['DateLien']; //@todo : date - $actionnaire->DateMaj = $lien['DateMaj']; //@todo : date - $tabAct[] = $actionnaire; - } - } - debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $tabP = $mLiens->getParticipations($siren, $actifsUniquement); - $nbP = count($tabP); - $tabPar = array(); - if ($nbP > 0) { - foreach ($tabP as $i => $lien) { - $participation = new Participation(); - $participation->Pmin = $lien['Pmin']; - $participation->MajMin = $lien['MajMin']; - $participation->RaisonSociale = $lien['RaisonSociale']; - $participation->TypeEntrep = $lien['TypeEntrep']; - $participation->Pays = $lien['Pays']; - $participation->Siren = $lien['Siren']; - $participation->Actif = $lien['Actif']; - $participation->Source = $lien['Source']; - $participation->DateLien = $lien['DateLien']; //@todo : date - $participation->DateMaj = $lien['DateMaj']; //@todo : date - $tabPar[] = $participation; - } - } - debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('liens',$siren); - - $output = new LiensReturn(); - $output->actionnaires = $tabAct; - $output->participations = $tabPar; - return $output; - } - - - /** - * Liste des établissements d'une entreprise - * @param string $siren Siren de l'entreprise - * @param integer $departement Limiter aux établissements du departement - * @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous - * @param integer $position - * @param integer $nbRep - * @return ListeEtablissementsReturn - */ - public function getListeEtablissements($siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20) - { - $this->authenticate(); - $this->permission('etablissements'); - - //Initialisation - if (empty($dep)) { $dep = 0; } - if (!in_array($actif, array(0,1))) { $actif = -1; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 20; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - $departement = $dep; - - debugLog('I',"Liste des établissements demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif); - $etabs = $rep['reponses']; - $nbReponses = $rep['nbReponsesTotal']; - $result = array(); - if (count($etabs)>0) - { - foreach ($etabs as $nb => $etab) - { - $etablissement = new Etablissement(); - $etablissement->id = $etab['id']; - $etablissement->Siege = $etab['Siege']; - $etablissement->Enseigne = $etab['Enseigne']; - $etablissement->Adresse = $etab['Adresse']; - $etablissement->Adresse2 = $etab['Adresse2']; - $etablissement->CP = $etab['CP']; - $etablissement->Ville = $etab['Ville']; - $etablissement->Tel = $etab['Tel']; - $etablissement->Fax = $etab['Fax']; - $etablissement->Nic = $etab['Nic']; - $etablissement->Actif = $etab['Actif']; - $etablissement->NafEtab = $etab['NafEtab']; - $etablissement->NafEtabLib = $etab['NafEtabLib']; - $etablissement->EffEtTr = $etab['EffEtTr']; - $etablissement->EffEtTrLib = $etab['EffEtTrLib']; - - $result[] = $etablissement; - } - } - debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('etablissements',$siren); - $output = new ListeEtablissementsReturn(); - $output->nbReponses = $nbReponses; - $output->result = $result; - return $output; - } - - /** - * Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise - * @param string $siren Siren de l'entreprise - * @param bool $histo Afficher l'historique des dirigeants - * @return DirigeantsReturn Liste des dirigeants actifs de l'entreprise - */ - public function getDirigeants( $siren , $histo = false) - { - $this->authenticate(); - $this->permission('dirigeants'); - - //Initialisation - if (empty($histo)) { $histo = false; } - - //Zend_Registry::get('WsLogger')->info('HISTO : '.$histo); - - debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $dirs = $iInsee->getDirigeants($siren, $histo); - //debugLog('W', print_r($dirs, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $liste = array(); - foreach ($dirs as $nb => $dir) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $dirigeant = new Dirigeant(); - $dirigeant->Code = $dir['Fonction']; - $dirigeant->Titre = $dir['Titre']; - $dirigeant->Societe = $dir['Societe']; - $dirigeant->Civilite = $dir['Civilite']; - $dirigeant->Nom = $dir['Nom']; - $dirigeant->Prenom = $dir['Prenom']; - $dirigeant->NomUsage = $dir['NomUsage']; - $dirigeant->NaissDate = $dir['NaissDate']; //@todo : date - $dirigeant->NaissVille = $dir['NaissVille']; - $dirigeant->NaissDepPays = $dir['NaissDepPays']; - $dirigeant->Ancien = $dir['Ancien']; - $dirigeant->DateFct = $dir['DateFct']; //@todo : date - $liste[] = $dirigeant; - } - $this->wsLog('dirigeants',$siren,$option); - debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $output = new DirigeantsReturn(); - $output->result = $liste; - return $output; - } - - /** - * Retourne la liste des annonces légales relative à une entreprise - * - * @todo Revoir cette fonction pour la faire marcher avec les associations - * - * @param string $siren Siren de l'entreprise - * @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp - * @param string $idAnn Identifiant de l'annonce - * @param integer $position - * @param integer $nbRep - * @return AnnoncesReturn - */ - public function getAnnonces($siren, $filtre = 0, $idAnn = '', $position = 0, $nbRep = 100) - { - $this->authenticate(); - $this->permission('annonces'); - - //Initialisation - if (empty($filtre)) { $filtre = 0; } - if (empty($idAnn)) { $idAnn = ''; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 100; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - - debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $liste = array(); - - if (strlen($siren)<>9) { - debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0 && $idAnn=='') { - debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - /* - if ($siren>100 && $filtre==3) $asso=true; - else { - $asso=false; - $tabIdentite=$this->iInsee->getIdentiteLight($siren); - if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || - $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; - }*/ - if ($idAnn=='') { - $anns=$iInsee->getAnnoncesLegales($siren); - $annsB=$iInsee->getAnnoncesBalo($siren); - $annsA=$iInsee->getAnnoncesAsso($siren); - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } elseif ($filtre==1) - $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); - elseif ($filtre==2) - $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); - elseif ($filtre==3) - $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); - elseif ($filtre==4) - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) - { - debugLog('W', "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $error->errnum = 102; - $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; - } - else - { - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - $annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = prepareString($ann['texteAnnonce']); - $annonce->libFJ = $ann['libFJ']; - $annonce->codFJ = $ann['codFJ']; - $annonce->capital = $ann['capital']; - $annonce->capitalDev = $ann['capitalDev']; - - $annonce->raisonSociale = $ann['raisonSociale']; - $annonce->nomCommercial = $ann['nomCommercial']; - $annonce->sigle = $ann['sigle']; - $annonce->adresse = $ann['adresse']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - - if (is_array($annsB)) - { - foreach ($annsB as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsA)) - { - foreach ($annsA as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - //@todo : date - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsM)) - { - foreach ($annsM as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = prepareString($ann['texteRectificatif']); - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - } - - $nbReponses = count($liste); - if ($nbReponses>0){ - //$liste = array_slice($liste, $position, $nbRep); - } - debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); - - $output = new AnnoncesReturn(); - $output->nbReponses = $nbReponses; - $output->result = $liste; - return $output; - } - - /** - * Evaluation indiScore d'une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic Nic de l'établissement - * @param integer $niveau Niveau des commentaires - * @param bool $plus Si true, mise en surveillance privilèges - * @param string $ref Si $plus=true, référence de la mise en Surveillance - * @param integer $encours Si $plus=true, encours client demandé lors de la mise en Surveillance - * @param string $email Si $plus=true, email client pour la mise en surveillance - * @return Indiscore - */ - public function getIndiScore($siren, $nic=0, $niveau=2, $plus=false, $ref='', $encours=0, $email='') - { - $this->authenticate(); - - //Initialisation - $accesDist = true; - if (empty($nic)) { $nic = 0; } - if (empty($niveau)) { $niveau = 2; } - if (empty($plus)) { $plus = false; } - if ( !in_array($niveau, array(0,1,2,3,4,5)) ) { $niveau = 2; } - $perm = false; - //@todo : Gestion des droits - switch($niveau){ - case 3: $perms = array('indiscore3', 'indiscore3p'); break; - case 2: $perms = array('indiscore2', 'indiscore2p', 'indiscore3', 'indiscore3p'); break; - case 1: $perms = array('indiscore', 'indiscorep'); break; - } - foreach($perms as $item){ - if ( $this->checkPerm($item) ){ - $perm = true; - break; - } - } - if ($perm === false) { - $this->sendError('0902'); - } - - $tabRet = array(); - debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 ){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; - $tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau); - $duree = round(microtime(true)-$tDeb,3); - debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new Indiscore(); - foreach($tabRet as $key => $value){ - if ($key=='paiements'){ - $parMont = $value['parMont']; - $parTrim = $value['parTrim']; - $tabMont = array(); - foreach($parMont as $parMontK => $parMontV){ - $paiementMont = new IndiscorePaiementDetail(); - $paiementMont->id = $parMontK; - $paiementMont->nb = $parMontV['nb']; - if (array_key_exists('d=180', $parMontV)){ - $paiementMont->d180 = $parMontV['d=180']; - } - if (array_key_exists('d=150', $parMontV)){ - $paiementMont->d150 = $parMontV['d=150']; - } - if (array_key_exists('d=120', $parMontV)){ - $paiementMont->d120 = $parMontV['d=120']; - } - if (array_key_exists('d=90', $parMontV)){ - $paiementMont->d90 = $parMontV['d=90']; - } - if (array_key_exists('d=60', $parMontV)){ - $paiementMont->d60 = $parMontV['d=60']; - } - if (array_key_exists('d=30', $parMontV)){ - $paiementMont->d30 = $parMontV['d=30']; - } - $tabMont[] = $paiementMont; - } - $tabTrim = array(); - foreach($parTrim as $parTrimK => $parTrimV){ - $paiementTrim = new IndiscorePaiementDetail(); - $paiementTrim->id = $parTrimK; - $paiementTrim->nb = $parTrimV['nb']; - if (array_key_exists('d=180', $parTrimV)){ - $paiementTrim->d180 = $parTrimV['d=180']; - } - if (array_key_exists('d=150', $parTrimV)){ - $paiementTrim->d150 = $parTrimV['d=150']; - } - if (array_key_exists('d=120', $parTrimV)){ - $paiementTrim->d120 = $parTrimV['d=120']; - } - if (array_key_exists('d=90', $parTrimV)){ - $paiementTrim->d90 = $parTrimV['d=90']; - } - if (array_key_exists('d=60', $parTrimV)){ - $paiementTrim->d60 = $parTrimV['d=60']; - } - if (array_key_exists('d=30', $parTrimV)){ - $paiementTrim->d30 = $parTrimV['d=30']; - } - $tabTrim[] = $paiementTrim; - } - $paiement = new IndiscorePaiement(); - $paiement->parMont = $tabMont; - $paiement->parTrim = $tabTrim; - $output->paiements = $paiement; - - } elseif ($key=='Notes_Structure') { - - $notesStructure = new IndiscoreNotesStructure(); - $notesStructure->activite = $value['activite']; - $notesStructure->naf4 = $value['naf4']; - $notesStructure->age = $value['age']; - $notesStructure->capital = $value['capital']; - $notesStructure->effectif = $value['effectif']; - $notesStructure->fj = $value['fj']; - $notesStructure->localite = $value['localite']; - $notesStructure->singulier = $value['singulier']; - $output->Notes_Structure = $notesStructure; - - } elseif ($key=='tabBilans') { - - $tabRet = array(); - foreach($value as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - $output->tabBilans = $tabRet; - - } elseif ($key=='tabBilan') { - - $tabRet = array(); - foreach($value as $bilan){ - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($bilan as $bilan_key => $bilan_value){ - if(!in_array($bilan_key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $bilan_key; - $resultPoste->val = $bilan_value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$bilan_key = $bilan_value; - } - } - $resultBilan->POSTES = $tabPoste; - $tabRet[] = $resultBilan; - } - $output->tabBilan = $tabRet; - - } elseif ($key=='tabInfosNotations') { - - $infosNotation = new IndiscoreInfosNotations(); - $infosNotation->SituationFinanciere = $value['SituationFinanciere']; - $infosNotation->Notation = $value['Notation']; - $infosNotation->ProbabiliteDefaut = $value['ProbabiliteDefaut']; - $output->tabInfosNotations = $infosNotation; - - } elseif ($key=='tabImportExport') { - - $tabRet = array(); - foreach($value as $element){ - $importExport = new IndiscoreImportExport(); - $importExport->importExport = $element['importExport']; - $importExport->annee = $element['annee']; - $importExport->rangNational = $element['rangNational']; - $importExport->deptSiege = $element['deptSiege']; - $tabRet[] = $importExport; - } - $output->tabImportExport = $tabRet; - - } elseif ($key=='tabCommentaires') { - - $tab = array(); - foreach($value as $comment) { - $tab[] = Scores_Locale_String::fixEncoding($comment); - } - $output->tabCommentaires = $tab; - - } elseif ($key=='tabVariables') { - - $tab = $value['CA_Y']; - $tabVar = array(); - if (count($tab)>0) { - foreach($tab as $varName => $varVal){ - $var = new CA_Y(); - $var->id = $varName; - $var->val = $varVal; - $tabVar[] = $var; - } - } - $variables = new IndiscoreVariables(); - $variables->CA_Y = $tabVar; - $output->tabVariables = $variables; - - } elseif ($key=='Bilans') { - - $tab = array(); - foreach($value as $item) - { - $objet = new IndiscoreBilans(); - $objet->Millesime = $item['Millesime']; - $objet->FraisPerso = $item['FraisPerso']; - $objet->CA = $item['CA']; - $objet->EBE = $item['EBE']; - $objet->TxInvest = $item['TxInvest']; - $objet->TxEndett = $item['TxEndett']; - $objet->DettesCT = $item['DettesCT']; - $objet->FraisFi = $item['FraisFi']; - $objet->BFR = $item['BFR']; - $objet->FR = $item['FR']; - $objet->FondsPr = $item['FondsPr']; - $objet->DelaiCli = $item['DelaiCli']; - $objet->DelaiFour = $item['DelaiFour']; - $tab[] = $objet; - } - $output->$key = $tab; - } else { - $output->$key = $value; - } - } - - if ($plus) { - if (empty($ref)) $ref='Indiscore+'; - if (empty($email)) $email=$this->User->email; - $this->setSurveillance($siren, $email, $ref, 'privileges'); - $this->setSurveillance($siren, $email, $ref, 'score', false, $encours); - if ($this->User->idClient==89) - $this->setSurveillance($siren, $email, $ref, 'annonces'); - $this->wsLog('indiscore+',$siren); - } else - $this->wsLog('indiscore',$siren); - return $output; - } - - /** - * Liste de tous les évènements enregistrés à l'INSEE pour une entreprise - * @param string $siren Siren de l'entreprise - * @param string $nic - * @param integer $position - * @param integer $nbRep - * @return InseeReturn - **/ - public function getListeEvenements($siren, $nic=0, $position=0, $nbRep=1000) - { - $this->authenticate(); - $this->permission('eveninsee'); - - //Initialisation - if (empty($nic)) { $nic = 0; } - if (empty($position)) { $position = 0; } - if (empty($nbRep) || $nbRep>1000) { $nbRep = 1000; } - - debugLog('I',"Liste des évènements pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $evens = $iInsee->getEvenements($siren, $nic, $position, $nbRep); - $tabRet = array(); - if (count($evens)>0) { - foreach ($evens as $key => $row) { - $date[$key] = $row['dateMAJ']; - } - array_multisort($date, SORT_DESC, $evens); - foreach ($evens as $nb=>$even) { - $iEven = new InseeEven(); - $iEven->Nic = $even['nic']; - $iEven->Siege = $even['siege']; - $iEven->SiretAss = $even['siretAssocie']; - $iEven->TypeSiretAss = $even['typeSiretAss']; - $iEven->EvenCode = $even['codeEven']; - $iEven->EvenLib = $even['libEven']; - $iEven->EvenLibDet = $even['libEvenDet']; - $iEven->EvenDate = $even['dateEven']; //@todo : date - $iEven->DateInfo = $even['dateMAJ']; //@todo : date - $tabRet[] = $iEven; - } - } - - debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('evenements',$siren); - $output = new InseeReturn(); - $output->nbReponses = count($tabRet); // @todo : retrouver le nombre total d'évenements - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche - * @param EntrepriseCriteres $criteres - * @param integer $position Position de parcours des résultats retournées (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut) - * @param integer $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut) - * @param boolean $avecSiren Seulement les entités sirénées (false par défaut) - * @return SearchEntrepriseReturn - */ - public function searchEntreprise($criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false) - { - $this->authenticate(); - - if (empty($position)) { $position = 0;} - if (empty($nbRep)) { $nbRep = 20; } - if (empty($maxRep)) { $maxRep = 200; } - - $entCriteres = new EntrepriseCriteres(); - $entCriteres = $criteres; - $identifiant = $entCriteres->identifiant; - $typeId = ''; - - //Detection autour de l'identifiant - if ($identifiant!='') { - $len = strlen($identifiant); - //Numéro WALDEC - if (strtoupper(substr($identifiant,0,1))=='W') { - $typeId = 'W'; - //Code ISIN - } elseif ($len==12){ - $typeId = 'I'; - //TVA Intracommunautaire - } elseif (in_array(substr($identifiant,0,2), - array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES', - 'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL', - 'PT','RO','SE','SI','SK'))){ - //"La recherche par numéro de TVA n'est pas encore possible sur ce pays !"; - //Pour la france - } elseif (substr($identifiant,0,2)=='FR') { - $typeId = 'S'; - if ($len==13) $identifiant = substr($identifiant,4,9); - else $identifiant = ''; - //Numéro RC - } elseif (preg_match('/A|B|C|D/i', $identifiant)) { - $typeId = 'R'; - //Siren normal on enleve tout ce qui n'est pas un chiffre - } else { - $typeId = 'S'; - } - } - - $adresse = trim($entCriteres->adresse); - - //Détection Tel/Fax uniquement - if ( empty($typeId) - && empty($entCriteres->raisonSociale) - && empty($adresse) - && empty($entCriteres->codePostal) - && empty($entCriteres->ville) - && empty($entCriteres->naf) ){ - $typeId = 'TEL'; - } - - if (in_array($typeId, array('R', 'W', 'I'))){ - - $O = $this->searchAutreId( - $typeId, - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } elseif ($typeId == 'S'){ - - $O = $this->searchSiren( - $identifiant, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - $entCriteres->codePostal - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - $output->info = $O->info; - return $output; - - } elseif ($typeId == 'TEL'){ - - $O = $this->searchTelFax( - $entCriteres->telFax, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - - } else { - - $O = $this->searchNomAdr( - Scores_Locale_String::cleanstring($entCriteres->raisonSociale), - Scores_Locale_String::cleanstring($entCriteres->adresse), - $entCriteres->codePostal, - Scores_Locale_String::cleanstring($entCriteres->ville), - empty($entCriteres->siege) ? false : $entCriteres->siege, - empty($entCriteres->actif) ? false : $entCriteres->actif, - empty($position) ? 0 : $position, - empty($nbRep) ? 20 : $nbRep, - empty($maxRep) ? 200 : $maxRep, - empty($pertinence) ? false : $pertinence, - empty($avecSiren) ? false : $avecSiren, - $entCriteres->naf - ); - - $output = new SearchEntrepriseReturn(); - $output->nbReponses = $O->nbReponses; - $output->nbReponsesTotal = $O->nbReponsesTotal; - $output->result = $O->result; - return $output; - } - } - - /** - * Recherche d'entreprise par dirigeants - * @param DirigeantCriteres $criteres - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchDirReturn - */ - public function searchDir($criteres, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - $nom = $criteres->nom; - $prenom = $criteres->prenom; - $dateNaiss = $criteres->dateNaiss; - $lieuNaiss = $criteres->lieuNaiss; - $pertinence = $criteres->pertinence; - - debugLog('I',"Recherche Dirigeant de $nom, $prenom, $dateNaiss, $lieuNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($prenom)) $prenom = ''; - if (empty($dateNaiss)) $dateNaiss = ''; - if (empty($lieuNaiss)) $lieuNaiss = ''; - if (empty($pertinence)) $pertinence = false; - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheDir($nom, $prenom, '', $dateNaiss, $lieuNaiss, $deb, $nbRep, $maxRep, $pertinence); - - $tabRet = array(); - foreach ($etabs['reponses'] as $etab) { - $item = new EntrepriseDirItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($iInsee->getLibelleNaf($etab['NafEtab'])); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($iInsee->getLibelleNaf($etab['NafEnt'])); - - // Dirigeant - $item->DirRs = prepareString($etab['DirRs']); - $item->DirNom = prepareString($etab['DirNom']); - $item->DirPrenom = prepareString($etab['DirPrenom']); - $item->DirNomUsage = prepareString($etab['DirNomUsage']); - $item->DirDateEffet = $etab['DirDateEffet']; - $item->DirFonction = prepareString($etab['DirFonction']); - $item->DirDepart = $etab['DirDepart']; - $tabRet[] = $item; - } - - if ($etabs['nbReponses']==0){ - debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - } - - $search = new SearchDirReturn(); - $search->nbReponses = $etabs['nbReponses']; - $search->nbReponsesTotal = $etabs['nbReponsesTotal']; - $search->result = $tabRet; - return $search; - } - - /** - * Recherche d'entreprise ou d'établissement par un autre Identifiant - * - * @param string $typeId I=Code Isin, W=N°Waldec (Associations) ou R=N°RC (Registre Greffe) - * @param string $identifiant Identifiant recherché - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchAutreId($typeId, $identifiant, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - if (empty($dep)) $dep = 0; - - $typeId = substr(trim(strtoupper($typeId)),0,1); - - if ($typeId!='I' && $typeId!='W' && $typeId!='R') { - debugLog('I',"Type d'identifiant $typeId inexistant",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1021'); - } - $tabRet = array(); - debugLog('I',"Recherche par identifiant $typeId de $identifiantavec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if ($typeId=='W' || $typeId=='R') - { - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('AUTRE', $identifiant, $deb, $nbRep, $maxRep, $dep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } else { - $iBourse = new Metier_Partenaires_MBourse($siren); - $siren = $iBourse->getCodeSiren($identifiant); - return $this->searchSiren($siren, $deb, $nbRep, $maxRep); - } - } - - - /** - * Recherche d'entreprise ou d'établissement par leur TEL FAX - * - * @param string $telFax Téléphone ou fax de l'établissement (ex: 0175438010) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @return SearchReturn - */ - public function searchTelFax($telFax, $deb=0, $nbRep=20, $maxRep=200) - { - $this->authenticate(); - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 0; - if (empty($maxRep)) $maxRep = 0; - - $tabRet = array(); - debugLog('I',"Recherche par Tel/Fax de $telFax avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - //$assocs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $nbRep, $pertinence); - /** @todo A FAIRE **/ - if (strlen($telFax)<10 || strlen($telFax)>14) { - debugLog('W', "Tel/Fax $telFax incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1011'); - } - - $iInsee = new Metier_Insee_MInsee(); - $rep = $iInsee->getEtablissementsParId('TEL', $telFax, $deb, $nbRep, $maxRep); - $etabs = $rep['reponses']; - foreach ($etabs as $nb=>$etab) - { - $item = new EntrepriseItem(); - $item->id = $etab['id']; - $item->Pertinence = $etab['Pertinence']; - $item->Siret = $etab['Siret']; - $item->Siege = $etab['Siege']; - $item->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $item->Nom2 = prepareString($etab['Nom2']); - $item->Sigle = prepareString($etab['Sigle']); - $item->Enseigne = prepareString($etab['Enseigne']); - $item->Adresse = prepareString($etab['Adresse']); - $item->Adresse2 = prepareString($etab['Adresse2']); - $item->CP = $etab['CP']; - $item->Ville = prepareString($etab['Ville']); - $item->Tel = $etab['Tel']; - $item->Fax = $etab['Fax']; - $item->FJ = $etab['FJ']; - $item->FJLib = prepareString($etab['FJLib']); - $item->Siren = $etab['Siren']; - $item->Nic = $etab['Nic']; - $item->Actif = $etab['Actif']; - $item->NafEtab = $etab['NafEtab']; // Etablissement - $item->NafEtabLib = prepareString($etab['NafEtabLib']); // Etablissement - $item->NafEnt = $etab['NafEnt']; // Entreprise - $item->NafEntLib = prepareString($etab['NafEntLib']); - $tabRet[] = $item; - } - - $output = new SearchReturn(); - $output->nbReponses = $rep['nbReponses']; - $output->nbReponsesTotal = $rep['nbReponsesTotal']; - $output->result = $tabRet; - return $output; - } - - - /** - * Recherche entreprise par nom et adresse - * @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle - * @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes - * @param string $codePostal Code postal (ex: 75014) - * @param string $ville Ville - * @param boolean $siege Limitation de la recherche au sièges (si true) - * @param boolean $actif Limitation aux établissements actifs (si true) - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param boolean $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true) - * @param boolean $avecSiren Ne proposer que les entités sirénées - * @param string $ape_etab - * @return SearchReturn - */ - public function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege=false, $actif=false, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') - { - $this->authenticate(); - - debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (empty($adresse)) $adresse = ''; - if (empty($codePostal)) $codePostal = ''; - if (empty($ville)) $ville = ''; - if (empty($siege)) $siege = false; - - if ( $actif ) { - $actif = 1; - } else { - $actif = 2; - } - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($pertinence)) $pertinence = false; - if (empty($avecSiren)) $avecSiren = false; - if (empty($ape_etab)) $ape_etab = ''; - - $iInsee = new Metier_Insee_MInsee(); - $etabs = $iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab); - - $result = new SearchReturn(); - $tabRet = array(); - if (count($etabs['reponses'])) { - foreach ($etabs['reponses'] as $etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = strtr($etab['Nom'],'/*',' '); - $reponse->Nom2 = $etab['Nom2']; - $reponse->Sigle = $etab['Sigle']; - $reponse->Enseigne = $etab['Enseigne']; - $reponse->Adresse = $etab['Adresse']; - $reponse->Adresse2 = $etab['Adresse2']; - $reponse->CP = $etab['CP']; - $reponse->Ville = $etab['Ville']; - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = $iInsee->getLibelleFJ($etab['FJ']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $iInsee->getLibelleNaf($etab['NafEtab']); // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $iInsee->getLibelleNaf($etab['NafEnt']); - - $tabRet[] = $reponse; - } - } - - $fp=fopen(LOG_PATH.'/recherches.log','a'); - - $siretTrouve = 0; - if ($etabs['nbReponses']==0) { - - $str="NbRep=0, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - fwrite($fp, $str.EOL); - fclose($fp); - debugLog('I', "rechercheEtab : AUCUN RESULTAT, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = count($tabRet); - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - - return $result; - - } - - if ($etabs['nbReponses']==1) $siretTrouve=$etabs['reponses'][0]['Siret']; - $str="NbRep=".$etabs['nbReponses'].", S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve"; - fwrite($fp, $str.EOL); - fclose($fp); - debugLog('I', "rechercheEtab : ".$etabs['nbReponses']." RESULTATS, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $result->nbReponses = $etabs['nbReponses']; - $result->nbReponsesTotal = $etabs['nbReponsesTotal']; - $result->result = $tabRet; - return $result; - } - - /** - * Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET - * @param string $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs - * @param integer $deb Position du curseur dans la liste des réponses (0 par défaut) - * @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut) - * @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut) - * @param integer $dep Département - * @return SearchReturn - */ - public function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) - { - $this->authenticate(); - - debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ( strlen($siret)!=14 && strlen($siret)!=9 ){ - debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - if (empty($deb)) $deb = 0; - if (empty($nbRep)) $nbRep = 20; - if (empty($maxRep)) $maxRep = 200; - if (empty($dep)) $dep = 0; - - $nbReponsesTotal = $nbReponses = 0; - - $siren = substr($siret,0,9); - if (strlen($siret)==14) $nic = substr($siret,9,5); - elseif (strlen($siret)== 9) $nic = ''; - - $iInsee = new Metier_Insee_MInsee(); - - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep); - if (count($rep['reponses'])==0 && $dep>0) { - $rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep); - } - $etabs = $rep['reponses']; - $tabRet = array(); - if (count($etabs)>0){ - foreach ($etabs as $nb=>$etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString(strtr($etab['Nom'],'/*',' ')); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = prepareString($etab['FJLib']); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; // Etablissement - $reponse->NafEtabLib = $etab['NafEtabLib']; // Etablissement - $reponse->NafEnt = $etab['NafEnt']; // Entreprise - $reponse->NafEntLib = $etab['NafEntLib']; - $tabRet[] = $reponse; - } - } - $nbReponsesTotal = $rep['nbReponsesTotal']; - $nbReponses = $rep['nbReponses']; - - /** Si le siren est valide, on part chez Infogreffe **/ - if (count($tabRet)==0 && $iInsee->valideSiren($siren)) { - $iGeffes = new Metier_Partenaires_MGreffes(); - $etab = $iGeffes->getIdentite($siren); - if ($etab) { - $reponse = new EntrepriseItem(); - $reponse->id = $etab['id']; - $reponse->Pertinence = $etab['Pertinence']; - $reponse->Siret = $etab['Siret']; - $reponse->Siege = $etab['Siege']; - $reponse->Nom = prepareString($etab['Nom']); - $reponse->Nom2 = prepareString($etab['Nom2']); - $reponse->Sigle = prepareString($etab['Sigle']); - $reponse->Enseigne = prepareString($etab['Enseigne']); - $reponse->Adresse = prepareString($etab['Adresse']); - $reponse->Adresse2 = prepareString($etab['Adresse2']); - $reponse->CP = $etab['CP']; - $reponse->Ville = prepareString($etab['Ville']); - $reponse->Tel = $etab['Tel']; - $reponse->Fax = $etab['Fax']; - $reponse->FJ = $etab['FJ']; - $reponse->FJLib = utf8_encode(prepareString(utf8_decode($etab['FJLib']))); - $reponse->Siren = $etab['Siren']; - $reponse->Nic = $etab['Nic']; - $reponse->Actif = $etab['Actif']; - $reponse->NafEtab = $etab['NafEtab']; - $reponse->NafEtabLib = $etab['NafEtabLib']; - $reponse->NafEnt = $etab['NafEnt']; - $reponse->NafEntLib = $etab['NafEntLib']; - - $tabRet[] = $reponse; - $nbReponses = 1; - $nbReponsesTotal = 1; - - } else { - $iDb = new WDB(); - $iDb->insert('siren_inexistants', - array( 'siren'=>$siren, - 'nic'=>$nic, - 'dep'=>$dep, - 'login'=>$this->User->login, - 'client'=>$this->User->idClient, - 'dateInsert'=>date('YmdHis'))); - $nbReponses = 0; - $nbReponsesTotal = 0; - } - } - - $output = new SearchReturn(); - $output->nbReponses = $nbReponses; - $output->nbReponsesTotal = $nbReponsesTotal; - $output->result = $tabRet; - $output->info = $rep['info']; - return $output; - } - - - - - /** - * Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA. - * @param string $siren Identifiant Siren de l'entreprise - * @return TvaReturn - */ - public function getTVA($siren) - { - $this->authenticate(); - - //Initialisation - $siren = trim($siren); - debugLog('I',"TVA demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I', "Avant getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->getIdentiteEntreprise($siren); - debugLog('I', "Après getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($entrep)) - { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1020'); - } - - debugLog('I', "Avant MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $iTva = new Metier_Partenaires_MTva($siren); - if ($iTva->vatDefined) $tva=$iTva->vatNumber; - else $tva='N/A'; - debugLog('I', "Après MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - - $output = new TvaReturn(); - $output->id = $entrep['id']; - $output->AutreId = $entrep['AutreId']; - $output->Nom = $entrep['Nom']; - $output->Sigle = $entrep['Sigle']; - $output->Enseigne = $entrep['Enseigne']; - $output->Adresse = $entrep['Adresse']; - $output->Adresse2 = $entrep['Adresse2']; - $output->CP = $entrep['CP']; - $output->Ville = $entrep['Ville']; - $output->Siren = $entrep['Siren']; - $output->Tva = $tva; - - debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('tva',$siren); - - return $output; - } - - /** - * Retourne tout ou patie des informations règlementées sur l'entreprise - * @param string $siren SIREN de l'entreprise - * @param mixed $id Id du communiqué - * @return InfosRegReturn - */ - public function getInfosReg( $siren, $id = false ) - { - $this->authenticate(); - $this->permission('infosreg'); - - //Initialisation - if (empty($id)) $id = false; - $tabRet = array(); - $siren = substr($siren,0,9); - - debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - $iBourse = new Metier_Partenaires_MBourse($siren); - $anns = $iBourse->getInfosReg($siren, $id); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ( empty($anns) ){ - debugLog('W', "Aucune info règlementée pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - foreach ($anns as $nb=>$ann) - { - //debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if ($id == false) { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } else { - $infos = new InfosReg(); - $infos->id = $ann['id']; - $infos->source = $ann['source']; - $infos->DateParution = $ann['DateParution']; //@todo : date - $infos->raisonSociale = $ann['raisonSociale']; - $infos->titre = $ann['titre']; - $infos->communique = $ann['communique']; - $infos->communiqueHtml = $ann['communiqueHtml']; - $infos->pj = $ann['pj']; - $infos->url = $ann['url']; - $infos->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $tabRet[] = $infos; - } - } - debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('infosreg',$siren,$id); - $output = new InfosRegReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne les informations boursières de l'entreprise - * @param string $siren SIREN de l'entreprise - * @return InfosBourse - */ - public function getInfosBourse($siren) - { - $this->authenticate(); - $this->permission('bourse'); - - //Initialisation - $error = new ErrorType(); - debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $siren = substr($siren,0,9); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iBourse = new Metier_Partenaires_MBourse($siren); - $bourse = $iBourse->getInfosBourse($siren); - //debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - if (empty($bourse)) { - debugLog('W', "Aucune info bourse pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1030'); - } - - $result = new InfosBourse(); - $result->Siren = $bourse['siren']; - $result->RaisonSociale = $bourse['raisonSociale']; - $result->Adresse = $bourse['adresse']; - $result->Effectif = $bourse['effectif']; - $result->CodeSicovam = $bourse['code_sicovam']; - $result->CodeMnemo = $bourse['code_mnemo']; - $result->CodeBloomberg = $bourse['code_bloomberg']; - $result->CodeDatastream = $bourse['code_datastream']; - $result->Isin = $bourse['code_isin']; - $result->CodeRic = $bourse['code_ric']; - $result->DateIntroduction = $bourse['dateIntroduction']; //@todo : date - $result->DateDerAG = $bourse['dateDerAG']; //@todo : date - $result->DateRadiation = $bourse['dateRadiation']; //@todo : date - $result->AutreIsin = $bourse['autre_isin']; - $result->EligibleSRD = $bourse['eligibleSRD']; - $result->EligiblePEA = $bourse['eligiblePEA']; - $result->Tel = $bourse['tel1']; - $result->Tel2 = $bourse['tel2']; - $result->Fax = $bourse['fax1']; - $result->Fax2 = $bourse['fax2']; - $result->Web = $bourse['web']; - $result->Mail = $bourse['mail']; - - $result->Marche = $bourse['marche']; - $result->Description = $bourse['description']; - $result->Secteur = $bourse['secteur']; - $result->Activite = $bourse['activite']; - $result->ActiviteDet = $bourse['activiteDet']; - - $result->placeCotation = $bourse['placeCotation']; - $result->nombreTitres = $bourse['nombreTitres']; - $result->capitalisation = $bourse['close']*$bourse['nombreTitres']; - $result->derCoursDate = $bourse['date']; //@todo : date - $result->derCoursCloture = $bourse['close']; - $result->derCoursOuverture = $bourse['open']; - $result->derCoursPlusHaut = $bourse['high']; - $result->derCoursPlusBas = $bourse['low']; - - $result->derCoursVolume = $bourse['volume']; - $result->coursMin = $bourse['coursMin']; - $result->coursMoy = $bourse['coursMoy']; - $result->coursMax = $bourse['coursMax']; - - $this->wsLog('bourse',$siren,$id); - return $result; - } - - /** - * Ajout d'une surveillance - * @param string $siret Siret/Siren - * @param string $email Adresse email du client - * @param string $ref Référence de la surveillance - * @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants, paiements, liens) - * @param boolean $delete Suppression de la ligne - * @param integer $encoursClient Encours demandé par le client - * @return SetSurveillanceReturn - */ - public function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) - { - $this->authenticate(); - $source = strtolower($source); - switch ($source) { - case 'insee': - $this->permission('survinsee'); - break; - case 'bilans': - $this->permission('survbilan'); - break; - case 'actes': - $this->permission('survactes'); - break; - case 'privileges': - $this->permission('survpriv'); - break; - case 'dirigeants': - $this->permission('survdirigeants'); - break; - case 'score': - $this->permission('survscore'); - break; - case 'paiements': - $this->permission('survpaiements'); - break; - case 'liens': - $this->permission('survliens'); - break; - case 'annonces': - default: - $this->permission('survannonce'); - break; - } - - //Initialisation - if (empty($ref)) $ref = ''; - if (empty($delete)) $delete = false; - if (empty($encoursClient)) $encoursClient = false; - $result = false; - $siren = substr($siret,0,9); - $nic = substr($siret,9,5); - - debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $iDb = new WDB(); - $login = $this->User->login; - switch ($source) { - case 'insee': - case 'annonces': - case 'bilans': - case 'actes': - case 'privileges': - case 'paiements': - case 'liens': - case 'dirigeants': $encoursClient=0; break; - case 'score': $encoursClient=$encoursClient*1; break; - default: $source='annonces'; break; - } - - if ($delete) { - - $tabUpdate = array('dateSuppr'=>date('Y-m-d')); - $result = $iDb->update('surveillances_site', - $tabUpdate, - "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'" - ); - - } else { - - $where = "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'"; - - //Si la donnée existe déjà alors il faut mettre à jour l'encours client - $detect = $iDb->select('surveillances_site', 'siren', $where, false, MYSQL_ASSOC); - if ( count($detect)>0 ) { - - $data = array( - 'encoursClient' => $encoursClient, - ); - $result = $iDb->update('surveillances_site', $data, $where); - - } else { - - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($siren, $nic); - - $data = array( - 'source' => $source, - 'login' => $login, - 'email' => $email, - 'siren' => $siren, - 'nic' => $nic, - 'ref' => $ref, - 'encoursClient' => $encoursClient, - 'rs' => $tabIdentite['Nom'], - 'cp' => $tabIdentite['CP'], - 'ville' => $tabIdentite['Ville'], - 'dateAjout'=>date('Y-m-d'), - 'dateSuppr'=>0, - ); - $result = $iDb->insert('surveillances_site', $data); - } - } - $output = new SetSurveillanceReturn(); - $output->result = $result; - return $output; - } - - /** - * getSurveillances - * @param SurveillancesFiltre $filtre - * @param integer $deb - * @param integer $nbRep - * @return SurveillancesReturn - */ - public function getSurveillances($filtre, $position=0, $nbRep=100) - { - $this->authenticate(); - $this->permission('survliste'); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 100; - - $error = new ErrorType(); - $tabRet = array(); - $siren = 0; - $login = $this->User->login; - - $strSiren = ""; - if (!empty($filtre->item) && $filtre->itemMode == 'siren'){ - $siren = substr($filtre->item,0,9); - $nic = substr($filtre->item,9,5); - $strSiren = " AND siren='$siren'"; - } elseif (!empty($filtre->item) && $filtre->itemMode == 'search') { - $strSiren = " AND ( siren='$filtre->item' OR ref='$filtre->item' OR rs='$filtre->item' )"; - } - - //Ordre pour le tri - $triMode = strtoupper(trim($filtre->triMode)); - if ($triMode == 'DESC') { - $triMode = 'DESC'; - } else { - $triMode = 'ASC'; - } - - //Option de tri - $tri = strtolower(trim($filtre->tri)); - switch ($tri) { - case 'ref': $orderBy='ORDER BY ref'; break; - case 'dateAjout': $orderBy='ORDER BY dateAjout'; break; - case 'dateDerEnvoi': $orderBy='ORDER BY dateDerEnvoi'; break; - case 'rs': $orderBy='ORDER BY rs'; break; - case 'cp': $orderBy='ORDER BY cp'; break; - case 'ville': $orderBy='ORDER BY ville'; break; - default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre - } - $orderBy = $orderBy.' '.$triMode; - - if ($filtre->detail) { - $strSelect = 'source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi'; - } else { - $strSelect = 'source, email, siren, nic, ref, dateAjout, dateDerEnvoi'; - } - if ($filtre->source!='') $strSource = " AND source='$filtre->source' "; - else $strSource = ''; - - $iDb = new WDB(); - - if ($filtre->source!='') { - - // Il faut compter le nombre de siren au total - $tabTmp = $iDb->select( - 'surveillances_site', - 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", - false, MYSQL_ASSOC - ); - $nbRepTot = $tabTmp[0]['nb']; - - // Récupération des résultats - $tabTmp = $iDb->select( - 'surveillances_site', $strSelect, - "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $position,$nbRep", - false, MYSQL_ASSOC - ); - - } else { - - // Il faut compter le nombre de siren au total - $tabTmp = $iDb->select( - 'surveillances_site', - 'siren', "login='$login' AND dateSuppr=0 $strSiren GROUP BY siren", - false, MYSQL_ASSOC - ); - $nbRepTot = count($tabTmp); - - // Récupération des résultats - if ($nbRepTot>0){ - $tabTmp = $iDb->select( - 'surveillances_site', - 'siren', "login='$login' AND dateSuppr=0 $strSiren GROUP BY siren ORDER BY siren LIMIT $position,$nbRep", - false, MYSQL_ASSOC - ); - $listeSiren = array(); - foreach($tabTmp as $i => $v) { - $listeSiren[] = $v['siren']; - } - $tabTmp = $iDb->select( - 'surveillances_site', $strSelect, - "login='$login' AND dateSuppr=0 AND siren IN (".join(',',$listeSiren).") $strSiren ORDER BY siren", - false, MYSQL_ASSOC - ); - } - } - - if (count($tabTmp)>0) - { - //Tri pour avoir le nombre de réponse correct suivant la structure - $listeRetour = array(); - foreach ($tabTmp as $i => $tabSurv) - { - $rs = ''; - $cp = ''; - $ville = ''; - if ($filtre->detail) { - if (trim($tabSurv['rs'])<>'') { - $rs = $tabSurv['rs']; - $cp = $tabSurv['cp']; - $ville = $tabSurv['ville']; - } else { - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']); - $rs = $tabIdentite['Nom']; - $cp = $tabIdentite['CP']; - $ville = $tabIdentite['Ville']; - $iDb->update('surveillances_site', array( - 'rs' => $rs, - 'cp' => $cp, - 'ville' => $ville), - "login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", - false - ); - } - } - - $listeRetour[$tabSurv['siren']][] = array( - 'rs' => $rs, - 'cp' => $cp, - 'ville' => $ville, - 'source' => $tabSurv['source'], - 'email' => $tabSurv['email'], - 'nic' => $tabSurv['nic'], - 'ref' => $tabSurv['ref'], - 'dateAjout' => $tabSurv['dateAjout'], - 'dateDerEnvoi' => $tabSurv['dateDerEnvoi'], - ); - } - - foreach ($listeRetour as $siren => $item) - { - $liste = new Surveillance(); - $liste->siren = $siren; - foreach($item as $s) { - $source = new stdClass(); - $source->rs = $s['rs']; - $source->cp = $s['cp']; - $source->ville = $s['ville']; - $source->source = $s['source']; - $source->email = $s['email']; - $source->nic = $s['nic']; - $source->ref = $s['ref']; - $source->encoursClient = $s['encoursClient']; - $source->dateAjout = $s['dateAjout']; //@todo : date - $source->dateDerEnvoi = $s['dateDerEnvoi']; //@todo : date - $liste->sources[] = $source; - } - $tabRet[] = $liste; - } - } - $output = new SurveillancesReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Recherche par référence client - * @param string $search - * @param integer $position - * @param integer $nbRep - * @return SearchRefClientReturn - */ - public function searchRefClient($search, $position=0, $nbRep=20) - { - $this->authenticate(); - - //Initialisation - if (empty($position)) $position = 0; - if (empty($nbRep)) $nbRep = 20; - - $iDb = new WDB(); - $login = $this->User->login; - $orderBy = " ORDER BY dateAjout ASC"; - - if ($this->User->rechRefType=='CLI'){ - //On cherche les logins actifs pour le client - $idClient = $this->User->idClient; - - $where = "u.idClient='$idClient' AND u.actif=1 AND s.dateSuppr=0 AND ( s.siren='$search' OR s.ref='$search' OR s.rs='$search' )"; - // Il faut compter le nombre au total - $tabTmp = $iDb->select('surveillances_site s, utilisateurs u', 'count(*) as nb', $where.$orderBy, false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - // Execution de la requete - $tabTmp = $iDb->select('surveillances_site s, utilisateurs u', - "siren, nic, ref, source, login, email, DATE_FORMAT(dateAjout, '%Y-%m-%d') as dateAjout, DATE_FORMAT(dateDerEnvoi, '%Y-%m-%d') as dateEnvoi", - $where.$orderBy." LIMIT $position,$nbRep", false, MYSQL_ASSOC); - } else { - $where = "login='$login' AND dateSuppr=0 AND ( siren='$search' OR ref='$search' OR rs='$search' )"; - // Il faut compter le nombre au total - $tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', $where.$orderBy, false, MYSQL_ASSOC); - $nbRepTot = $tabTmp[0]['nb']; - - // Execution de la requete - $tabTmp = $iDb->select('surveillances_site', - "siren, nic, ref, source, login, email, DATE_FORMAT(dateAjout, '%Y-%m-%d') as dateAjout, DATE_FORMAT(dateDerEnvoi, '%Y-%m-%d') as dateEnvoi", - $where.$orderBy." LIMIT $position,$nbRep", false, MYSQL_ASSOC); - } - - $tabRet = array(); - if (count($tabTmp)>0) - { - foreach ($tabTmp as $i => $item) - { - $info = new SearchRefClientInfo(); - $info->ref = $item['ref']; - $info->source = $item['source']; - $info->login = $item['login']; - $info->email = $item['email']; - $info->dateAjout = $item['dateAjout']; - $info->dateEnvoi = $item['dateEnvoi']; - - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteLight($item['siren'], $item['nic']); - - $reponse = new SearchRefClient(); - $reponse->id = $tabIdentite['id']; - $reponse->Siret = $tabIdentite['Siret']; - $reponse->Siege = $tabIdentite['Siege']; - $reponse->Nom = prepareString(strtr($tabIdentite['Nom'],'/*',' ')); - $reponse->Nom2 = prepareString($tabIdentite['Nom2']); - $reponse->Sigle = prepareString($tabIdentite['Sigle']); - $reponse->Enseigne = prepareString($tabIdentite['Enseigne']); - $reponse->Adresse = prepareString($tabIdentite['Adresse']); - $reponse->Adresse2 = prepareString($tabIdentite['Adresse2']); - $reponse->CP = $tabIdentite['CP']; - $reponse->Ville = prepareString($tabIdentite['Ville']); - $reponse->Tel = $tabIdentite['Tel']; - $reponse->Fax = $tabIdentite['Fax']; - $reponse->FJ = $tabIdentite['FJ']; - $reponse->FJLib = prepareString($tabIdentite['FJ_lib']); - $reponse->Siren = $tabIdentite['Siren']; - $reponse->Nic = $tabIdentite['Nic']; - $reponse->Actif = $tabIdentite['Actif']; - $reponse->NafEtab = $tabIdentite['NafEtab']; - $reponse->NafEtabLib = $tabIdentite['NafEtabLib']; - $reponse->NafEnt = $tabIdentite['NafEnt']; - $reponse->NafEntLib = $tabIdentite['NafEntLib']; - $reponse->Infos = $info; - $tabRet[] = $reponse; - } - } - $output = new SearchRefClientReturn(); - $output->nbReponses = count($tabRet); - $output->nbReponsesTotal = $nbRepTot; - $output->result = $tabRet; - return $output; - } - - /** - * Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé - * @param string $siren Siren de l'entreprise - * @param string $millesime Date du bilan au format AAAAMMJJ - * @param string $typeBilan N:Réel Normal, S:Réel Simplifié, C:Consolidé - * @param string $ref Référence S&D obligatoire - * @return Bilan - */ - public function getBilan($siren, $millesime, $typeBilan='N', $ref='') - { - $this->authenticate(); - $this->permission('liasse'); - - //Initialisation - if (empty($typeBilan)) { $typeBilan = 'N'; } - if (empty($ref)) { $ref = ''; } - - debugLog('I',"Bilan $millesime $typeBilan demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $tabRet = array(); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $millesime = WDate::dateT('Ymd','d/m/Y',$millesime); - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilan = $mBil->getBilan($millesime, $typeBilan, $ref, true); - - $resultBilan = new Bilan(); - $tabPoste = array(); - foreach($tabBilan as $key => $value){ - if(!in_array($key, array('SIREN', 'DATE_FRAICHE_BILAN', - 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', - 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ - $resultPoste = new BilanPoste(); - $resultPoste->id = $key; - $resultPoste->val = $value; - $tabPoste[] = $resultPoste; - } else { - $resultBilan->$key = $value; - } - } - $this->wsLog('bilan',$siren, $millesime.':'.$typeBilan.':'.$ref); - $resultBilan->POSTES = $tabPoste; - return $resultBilan; - } - - /** - * Retourne la liste des bilans disponible pour une entreprise - * @param string $siren Siren de l'entreprise - * @return ListeBilansReturn - */ - public function getListeBilans($siren) - { - $this->authenticate(); - $this->permission('liasse'); - - //Initialisation - $tabRet = array(); - debugLog('I',"Liste des Bilans demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9) { - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - foreach($tabBilans as $bilan) - { - $element = new ListeBilans(); - $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date - $element->dateInsert = $bilan['dateInsert']; //@todo : date - $element->typeBilan = $bilan['typeBilan']; - $element->dureeExercice = $bilan['dureeExercice']; - $element->dateExercice = $bilan['dateExercice']; //@todo : date - $element->millesime = $bilan['millesime']; - $element->dateExercicePre = $bilan['dateExercicePre']; //@todo : date - $element->dureeExercicePre = $bilan['dureeExercicePre']; - $element->monnaie = $bilan['monnaie']; - $element->source = $bilan['source']; - $tabRet[] = $element; - } - - debugLog('I', 'Nb Bilans retournés = '. count($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->wsLog('listebilans', $siren); - $output = new ListeBilansReturn(); - $output->nbReponses = count($tabRet); - $output->result = $tabRet; - return $output; - } - - /** - * Vérifie si un siren existe en base Scores & Décisions - * @param string $siren Siren de l'entité - * @return boolean - */ - public function isSirenExistant($siren) - { - $this->authenticate(); - - //Initialisation - $tabRet = array(); - $siren = trim(substr($siren,0,9)); - $result = false; - debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - $entrep = $iInsee->sirenExiste($siren); - if (empty($entrep)) { - debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = false; - } else { - debugLog('I', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $result = true; - } - $this->wsLog('sirenExiste',$siren); - return $result; - } - - /** - * Retourne une annonce en fonction de sa référence - * @param string $siren Siren de l'entreprise - * @param string $dateAnnee - * @param integer $numParution - * @param integer $numAnnonce - * @return RechercheAnnonceReturn - */ - public function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) - { - $this->authenticate(); - $this->permission('histobodacc'); - - //Initialisation - $tabRet = array(); - - debugLog('I',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (strlen($dateAnnee)==4) $annee = $dateAnnee; - else $annee = substr($dateAnnee,0,4); - - $iDb = new WDB('jo'); - - switch (strtoupper($source)) - { - case 'BODA': - case 'BODB': - case 'BODC': - $lettre = substr(strtoupper($source),3,1); - if ($annee<2005) { - if ($lettre=='A'){ $numJAL=1; } - elseif ($lettre=='B'){ $numJAL=200; } - else{ break; } - $anneeDeb = $annee.'0101'; - $anneeFin = $annee.'1231'; - $res = $iDb->select('historiques.entrep e, texte t', - "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce", - "e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum", false, MYSQL_ASSOC); - } else { - $res = $iDb->select('bodacc', - 'Bodacc_Annee_Parution AS Annee_Parution, Bodacc_Num AS Num_Parution, Num_Annonce, Bodacc_Page AS Num_Page, Bodacc_Date_Parution AS Date_Parution, Tribunal_Dept AS Departement, Tribunal_Code, typeAnnonce, annonce', - "Bodacc_Code='$lettre' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$numParution AND Num_Annonce=$numAnnonce", false, MYSQL_ASSOC); - } - break; - case 'ASSO': - $res = $iDb->select('asso', - 'YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Annonce, pageDeb AS Num_Page, Date_Parution, Departement, codTribunal AS Tribunal_Code, typeAnnonce, Annonce_Html AS annonce', "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$annee".sprintf('%04d', $numParution)." AND Num_Annonce=$numAnnonce", - false, MYSQL_ASSOC); - break; - case 'BALO': - $res = $iDb->select('balo', - "YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Affaire AS Num_Annonce, '' AS Num_Page, Date_Parution, '' AS Departement, '' AS Tribunal_Code, 'Insertion' AS typeAnnonce, Annonce_Html AS annonce", "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$numParution AND Num_Affaire=$numAnnonce", - false, MYSQL_ASSOC); - break; - } - - if (count($res)>0) - { - $iBodacc = new Metier_Bodacc_MBodacc(); - foreach ($res as $i => $etab) - { - $annonces = new AnnonceItem(); - $annonces->Annee_Parution = $etab['Annee_Parution']; - $annonces->Num_Parution = $etab['Num_Parution']; - $annonces->Num_Annonce = $etab['Num_Annonce']; - $annonces->Num_Page = $etab['Num_Page']; - $annonces->Date_Parution = $etab['Date_Parution']; //@todo : date - $annonces->Departement = $etab['Departement']; - $annonces->Tribunal_Code = $etab['Tribunal_Code']; - $annonces->Tribunal = $iBodacc->getTribunalNom($etab['Tribunal_Code']); - $annonces->Type_Annonce = $etab['typeAnnonce']; - $annonces->Annonce = strip_tags(strtr( - html_entity_decode($etab['annonce']), - array('>'=>'>','&'=>'&','<'=>'<','’'=>"'") - )); - - $tabRet[] = $annonces; - } - } - $nbTot = count($tabRet); - $output = new RechercheAnnonceReturn(); - $output->criteres = $criteres; - $output->nbReponses = $nbTot; - $output->nbReponsesTotal = $nbTot; - $output->result = $tabRet; - return $output; - } - - /** - * getRatios - * @param string $siren - * @param string $page - * @return RatiosReturn - */ - public function getRatios($siren, $page='ratios') - { - $this->authenticate(); - $this->permission('ratios'); - - global $tva, $tabFormules, $mBil, $tabBilan, $efftr, $tabInfla; - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Variables/CacheTabFormules.php'; - require_once 'Metier/scores/Variables/configMRatios.php'; - - //Initialisation - if (empty($page)) $page = 'ratios'; - $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); - $tabRatios2 = $tabRatiosEvol = array(); - $tabRet = array(); - debugLog('I',"Liste des Ratios demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - if (strlen($siren)<>9){ - debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } elseif ($siren*1==0) { - debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); - $this->sendError('1010'); - } - - debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); - debugLog('I',"Liste des Ratios demandée pour $siren après getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $naf = $tabIdentite['NafEnt']; - $nafLib = $tabIdentite['NafEntLib']; - $efftr = $tabIdentite['Effectif']*1; - $fj = $tabIdentite['FJ']; - - $mBil = new Metier_Partenaires_MBilans($siren); - $tabBilans = $mBil->listeBilans(true); - $nbBilans = count($tabBilans); - $tabBilan = $tabBil = array(); - if ($nbBilans>0){ - $tabRatios = calculRatios($tabBilans, $tabIdentite, true); - } - $nbRatios = count($tabRatios); - debugLog('I',"Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - /** Tableau d'infos sur les formules **/ - $tabBorneMin = $tabBorneMax = array(); - foreach ($tabFormules as $formule) { - $id = $formule['id']*1; - $libelle = $formule['libelle']; - $unite = $formule['unite']; - $commentaires = $formule['commentaires']; - $tabFormulesInfos[$id] = $formule; //Pour la gestion des unités des ratios secteur - $ratiosInfos = new RatiosInfos(); - $ratiosInfos->id = 'r'.$id; - $ratiosInfos->libelle = $formule['libelle']; - $ratiosInfos->unite = $formule['unite']; - $ratiosInfos->commentaires = $formule['commentaires']; - $tabRatiosInfos[] = $ratiosInfos; - $tabBorneMin[$id] = $formule['borneMin']; - $tabBorneMax[$id] = $formule['borneMax']; - } - - $tabAnnees = array(); - foreach ($tabRatios as $i=>$R) { - - //Informations sur le bilan - $bilansInfos = new RatiosBilansInfos(); - $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date - $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; - $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; - $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; - $bilansInfos->unite = 'U'; - if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ - $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); - } - - $tabRatiosEntrep = array(); - $tabRatiosEntrepEvol = array(); - foreach ( $R as $Ridx=>$Rmont ){ - - if ($Rmont<>'NS') { - if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ - $Rmont='<'.$tabBorneMin[$Ridx]; - } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ - $Rmont='>'.$tabBorneMax[$Ridx]; - } - } - - // RatiosEntrep - $ratiosEntrep = new Ratios(); - if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = $Rmont; - } else { - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = round($Rmont,2); - } - $tabRatiosEntrep[] = $ratiosEntrep; - - if (($tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) || - ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); - elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - || ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']))) - ) - $Rmont=(($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); - else - $Rmont='NS'; - - // RatiosEntrepEvol - $ratiosEntrepEvol = new Ratios(); - if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = 'NS'; - } else { - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); - } - $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; - } - $bilansInfos->RatiosEntrep = $tabRatiosEntrep; - $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; - $tabBilansR[] = $bilansInfos; - } - - debugLog('I',"Liste des Ratios demandée pour $siren après EVOLUTION",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - // Tableau des ratios secteurs - - if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; - else $strNaf = " AND naf4='$naf' "; - $strAnnees = implode(',', $tabAnnees); - - $tabRatiosSecteurs = array(); - - $tabAnnees = array_unique($tabAnnees); - - if ( count($tabAnnees)>0 ) - { - $iDb = new WDB('jo'); - $tabTmp = $iDb->select('ratios_secteurs', - 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', - "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", - false, MYSQL_ASSOC); - - $nbRatiosSec = 0; - foreach($tabAnnees as $annee) - { - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $annee; - foreach ($tabTmp as $tmp) - { - if ($tmp['annee']== $annee) - { - $Ridx = $tmp['id']; - if ($tmp['nombre']>$nbRatiosSec){ - $nbRatiosSec = $tmp['nombre']; - } - - $unite = $tabFormulesInfos[$Ridx]['unite']; - if ($unite=='EUR'){ - $montant = round($tmp['ratio']*1000); - } else { - $montant = round($tmp['ratio']); - } - if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ - $montant='<'.$tabBorneMin[$Ridx]; - } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ - $montant='>'.$tabBorneMax[$Ridx]; - } - - $ratiosSecteurListe = new Ratios(); - if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = $montant; - } else { - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = round($montant,2); - } - $ratiosSecteur->liste[] = $ratiosSecteurListe; - } - } - $tabRatiosSecteurs[] = $ratiosSecteur; - } - } - - //$tabRatiosSecteurs=array(count($tabTmp), "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC"); - - $output = new RatiosReturn(); - $output->Nom = $tabIdentite['Nom']; - $output->NafEnt = $tabIdentite['NafEnt']; - $output->NafEntLib = $tabIdentite['NafEntLib']; - $output->FJ = $fj; - $output->FJ_lib = $tabIdentite['FJ_lib']; - $output->Siren = $siren; - $output->NbEntNaf = $nbRatiosSec; - $output->BilansInfos = $tabBilansR; - $output->RatiosInfos = $tabRatiosInfos; - $output->RatiosSecteur = $tabRatiosSecteurs; - - debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $this->wsLog($page, $siren); - return $output; - - } - - /** - * getRapport - * @param string $siren Siren de l'entreprise - * @param integer $niveau Niveau du rapport 1, 2 ou 3 - * @param integer $id Identifiant interne S&D de l'entreprise - * @param boolean $plus Si true, mise en surveillance privilèges - * @param string $ref Si $plus=true, référence facultative de la mise en Surveillance - * @param integer $encours Si $plus=true, encours facultatif Demandé par le client lors de la mise en Surveillance - * @param string $email Si $plus=true, email facultatif pour le suivi - * @return Rapport - */ - public function getRapport($siren, $niveau=3, $id=0, $plus=false, $ref='', $encours=0, $email='') - { - $this->authenticate(); - if (empty($niveau)) $niveau = 3; - if (empty($id)) $id = 0; - $result = new Rapport(); - $filtre = 0; - $idAnn = 0; - - //@todo : Gestion des droits - $perm = false; - switch($niveau){ - case 1: $perms = array('indiscore', 'indiscorep'); break; - case 2: $perms = array('indiscore2', 'indiscore2p'); break; - case 3: $perms = array('indiscore3', 'indiscore3p'); break; - } - foreach($perms as $item){ - if ( $this->checkPerm($item) ){ - $perm = true; - break; - } - } - if ($perm === false) { - $this->sendError('0902'); - } - - $accesDist=true; - $nivComment=2; - if ($niveau==1){ - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - } elseif ($niveau==2) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - } elseif ($niveau==3) { - $result->Identite = $this->getIdentite($siren, $id=0); - $result->Indiscore = $this->getIndiScore($siren, 0, $nivComment, $plus, $ref, $encours, $email); - $result->Dirigeants = $this->getDirigeants($siren, false); - $result->Liens = $this->getLiens($siren, true); - $result->Ratios = $this->getRatios($siren, $page="rapport$niveau"); - $result->Annonces = $this->getAnnonces($siren, $filtre, $idAnn); - } - return $result; - } - - /** - * Retourne la liste des banques connues pour une entreprise - * @param string $siren Siren de l'entreprise - * @return BanquesReturn - */ - public function getBanques($siren) - { - $this->authenticate(); - $this->permission('banque'); - - //Initialisation - $iDb = new WDB('sdv1'); - $tabRet = array(); - debugLog('I',"Liste des banques demandée pour siren $siren", - __LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if (intval($siren)<=1000) { - $this->sendError('1010'); - } - - $res=$iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC); - $tmp=$iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC); - $res=array_merge($res, $tmp); - foreach ($res as $tabBanque){ - $dateSource=$tabBanque['dateSource']; - $codBanque=$tabBanque['codeBanque']; - $codGuichet=$tabBanque['codeGuichet']; - $libBanque=trim($tabBanque['libBanqueGuichet']); - $found=false; - $adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille=''; - - if ($codBanque>0 && $codGuichet>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs b, insee.BDF_Guichets g', - 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", - false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - $found=true; - }; - } - if (!$found && $codBanque>0 && - $dateSource>(date('Y')-4)*10000+101 && - $dateSourceselect('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC); - if (isset($tmp[0])){ - $libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']); - $adrBanque1=$tmp[0]['adresse1']; - $adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']); - $adrBanqueCP=$tmp[0]['CP']; - $adrBanqueVille=$tmp[0]['Ville']; - } else continue; - } else continue; - - $banque = new Banque(); - $banque->codeBanque = $codBanque; - $banque->codeGuichet = $codGuichet; - $banque->libBanque = $libBanque; - $banque->adresse1 = $adrBanque1; - $banque->adresse2 = $adrBanque2; - $banque->cp = $adrBanqueCP; - $banque->ville = $adrBanqueVille; - $tabRet[] = $banque; - } - debugLog('I',"Liste des banques pour siren $siren : ".count($tabRet).' banques',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - $this->wsLog('banque', $siren); - $output = new BanquesReturn(); - $output->result = $tabRet; - return $output; - } - - /** - * Retourne la liste des compétences territoriales pour un établissement à une adresse donnée. - * @param string $siret Siret de l'établissement - * @param string $type Type de compétence (pre:prefectures et s/prefectures, jal;journaux d'annonces légales, tri:tribunaux, adm:administrateurs et mandataires judiciaires, hui:huissiers, cfe:centres de formalités des entreprises) - * @param string $codeInsee Code Insee de la commune de l'établissement - * @return ListeCompetencesReturn - */ - public function getListeCompetences($siret, $type, $codeInsee) - { - $this->authenticate(); - $this->permission('competences'); - - //Initialisation - $error = new ErrorType(); - $type = strtolower($type); - - debugLog('I',"Liste des compétences $type demandée pour la commune $codeInsee",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - $iBodacc = new Metier_Bodacc_MBodacc(); - $cp=$codeInsee*1; - $dep=false; - if (substr($codeInsee,0,2)=='2A' || substr($codeInsee,0,2)=='2B') - { - $dep=20; $cp=20000+(substr($codeInsee,2,3))*1; - } - elseif ($cp>0 && $cp<100) $dep=$cp; - elseif ($cp>970 && $cp<977) $dep=$cp; - elseif ($cp>999 && $cp<10000) $dep='0'.substr($cp,0,1); - elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2); - elseif ($cp>=99000) $dep=substr($cp,0,2); - elseif ($cp>=98000) $dep=substr($cp,0,3); - elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3); - - if ($type=='pre'){ - - $iDb = new WDB('jo'); - $tabTmp2 = $iDb->select('villes', 'DEP, COM, AR, CT', 'codeInsee='.$codeInsee, false, MYSQL_ASSOC); - $arrond = $tabTmp2[0]['AR']; - unset($iDb); - $iDb = new WDB('insee'); - $tabTmp2 = $iDb->select('insee_tabArrond', 'CHEFLIEU, ARTMAJ, NCC', "DEP='$dep' AND AR='$arrond'", false, MYSQL_ASSOC); - $nomSousPref = trim(strtr($tabTmp2[0]['ARTMAJ'],array('('=>'',')'=>'',' '=>'', "'"=>'')).' '.$tabTmp2[0]['NCC']); - unset($iDb); - $tabTmp = $iBodacc->getTribunauxParDep($dep); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='A' || $tribunal['triType']=='B') - { - $pref = levenshtein($tribunal['triNom'], 'PREFECTURE DE '.$nomSousPref); - $spref = levenshtein($tribunal['triNom'], 'SOUS PREFECTURE DE '.$nomSousPref); - - if ($tribunal['triType']=='B' && ($pref>7 || $spref>5)) continue; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType'].$typeP; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper( - preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - $tabRet[] = $competence; - - } - } - - } elseif ($type=='jal') { - - $tabTmp = $iBodacc->getJALparDep($dep); - foreach ($tabTmp as $i=>$comp) - { - $infos=''; - if (trim($comp['parution'])<>'') $infos.='Parution '.$comp['parution'].'. '; - if (trim($comp['aboAnnuel'])>0) $infos.='Abonnement Annuel : '.$comp['aboAnnuel'].' euros. '; - if (trim($comp['infos'])<>'') $infos.=$comp['infos']; - - $competence = new Competence(); - $competence->Id = 9000+$comp['id']*1; - $competence->IdSup = 0; - $competence->Code = ''; - $competence->Type = ''; - $competence->Nom = strtoupper($comp['nomJal']); - $competence->Siret = ''; - $competence->Adr = strtoupper($comp['adresse']); - $competence->AdrComp = ''; - $competence->CP = $comp['cp']; - $competence->Ville = strtoupper($comp['ville']); - $competence->CodeInsee = ''; - $competence->Tel = $comp['tel']; - $competence->Fax = $comp['fax']; - $competence->Web = $comp['siteWeb']; - $competence->Mail = $comp['email']; - $competence->Statut = 'Actif'; - $competence->DateCessation = ''; - $competence->Remarque = trim($infos); - $tabRet[] = $competence; - } - - } elseif ($type=='tri' || $type=='adm' || $type=='hui') { - - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if (//$tribunal['triType']=='C' || - $tribunal['triType']=='G'// || - /*$tribunal['triType']=='I'*/) { - $idCA = $tribunal['triIdSup']; - $codeTGI = $tribunal['triCode']; - $code = strtoupper(substr($tribunal['triCode'],0,3)); - } - debugLog('D',"Liste des compétences $type demandée pour la commune $codeInsee ($dep) : ". - "Type=".$tribunal['triType'].', '. - "Code=".$tribunal[$codeTGI],__LINE__,__FILE__, __FUNCTION__, __CLASS__); - - if ($tribunal['triType']<>'E' && $tribunal['triType']<>'O' && - $tribunal['triType']<>'T' && $tribunal['triType']<>'R' && - $tribunal['triType']<>'N' && $tribunal['triType']<>'U' && - $tribunal['triType']<>'Z') - { - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper(Scores_Locale_String::cleanstring($tribunal['triNom'])); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(Scores_Locale_String::cleanstring(preg_replace('/ +/',' ', - $tribunal['triAdrNum'].' '. - $tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '. - $tribunal['triAdrVoie']))); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $tribunal['triCommentaire']; - if ($tribunal['triNumGreffe']*1>0) - { - $competence->IdentifiantGreffe = $tribunal['triNumGreffe']; - } - $tabRet[] = $competence; - } - } - } - - if ($type=='adm') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getMandataires(array($idCA), false); - $tabRet = array(); - $nbAff=0; - foreach ($tabTmp as $i=>$tribunal) - { /** @todo A revoir Debut **/ - if (stripos($tribunal['tribunal'], $code)!==false || - stripos($tribunal['tribunal'], 'SAINT')!==false) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - $nbAff++; - } - } - if ($nbAff==0) - { - foreach ($tabTmp as $i=>$tribunal) - { - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($tribunal['adresse']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $tribunal['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation'], - $competence->Remarque = $tribunal['contact']; - //,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact - $tabRet[] = $competence; - } - }/** @todo A revoir Fin : Lier correctement les mandataires à un TI principal **/ - } - elseif ($type=='hui') - { - $iInsee = new Metier_Insee_MInsee(); - $tabTmp = $iInsee->getHuissiers(array($codeTGI), false); - - $tabRet = array(); - $nbAff = 0; - foreach ($tabTmp as $i=>$tribunal) - { - $adr = $iInsee->structureVoie($tribunal['adresse']); - $competence = new Competence(); - $competence->Id = $tribunal['id']; - $competence->IdSup = $tribunal['sirenGrp']; - $competence->Code = $tribunal['tribunal'].'/'.$code; - $competence->Type = $tribunal['type']; - $competence->Nom = $tribunal['Nom'].' '.$tribunal['Prenom']; - $competence->Siret = $tribunal['sirenMand']; - $competence->Adr = strtoupper($adr['num'].' '.$adr['adr_btq'].' '. - $adr['typeVoie'].' '.$adr['libVoie']); - $competence->AdrComp = strtoupper($tribunal['adresseComp']); - $competence->CP = $adr['cp']; - $competence->Ville = strtoupper($tribunal['ville']); - //'CodeInsee'=>$tribunal['CodeInsee'], - $competence->Tel = $tribunal['tel']; - $competence->Fax = $tribunal['fax']; - $competence->Web = $tribunal['web']; - $competence->Mail = $tribunal['email']; - $competence->Statut = $tribunal['Statut']; - //'DateCessation'=>$tribunal['triDateCessation']; - $competence->Remarque = strtr($tribunal['contact'], - array( '
'=>', ', '
'=>', ', - '
'=>', ', - )); - $tabRet[] = $competence; - } - $nbComp = count($tabTmp); - debugLog('I',"$nbComp compétences $type trouvées pour le tribunal $codeTGI",__LINE__,__FILE__, __FUNCTION__, __CLASS__); - } - elseif ($type=='cfe') - { - $tabTmp = $iBodacc->getTribunauxParCommune($codeInsee); - foreach ($tabTmp as $i=>$tribunal) - { - if ($tribunal['triType']=='C' || $tribunal['triType']=='O' || - $tribunal['triType']=='T' || $tribunal['triType']=='R' || - $tribunal['triType']=='N' || $tribunal['triType']=='U' || - $tribunal['triType']=='Z') - { - if (strlen($tribunal['triCommentaire'])==32 && - strpos($tribunal['triCommentaire'], ' ')===false) - $remarque=''; - else $remarque=$tribunal['triCommentaire']; - - $competence = new Competence(); - $competence->Id = $tribunal['triId']; - $competence->IdSup = $tribunal['triIdSup']; - $competence->Code = $tribunal['triCode']; - $competence->Type = $tribunal['triType']; - $competence->Nom = strtoupper($tribunal['triNom']); - $competence->Siret = $tribunal['triSiret']; - $competence->Adr = strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '. - $tribunal['triAdrTypeVoie'].' '.$tribunal['triAdrVoie'])); - $competence->AdrComp = strtoupper($tribunal['triAdrComp']); - $competence->CP = $tribunal['triCP']; - $competence->Ville = strtoupper($tribunal['triVille']); - $competence->CodeInsee = $tribunal['CodeInsee']; - $competence->Tel = $tribunal['triTel']; - $competence->Fax = $tribunal['triFax']; - $competence->Web = $tribunal['triWeb']; - $competence->Mail = $tribunal['triMail']; - $competence->Statut = $tribunal['triStatut']; - $competence->DateCessation = $tribunal['triDateCessation']; //@todo : date - $competence->Remarque = $remarque; - $tabRet[] = $competence; - } - } - } - $this->wsLog('competences',$siret,$type.'/'.$codeInsee); - $output = new ListeCompetencesReturn(); - $output->result = $tabRet; - $output->nbReponses = count($tabRet); - return $output; - } - - /** - * Retourne le statut du webservice - * @return StatusReturn - */ - public function status() - { - /* @todo tester les différents éléments qui peuvent conduire - * à un problème dans les services tel que la connexion à la - * base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier - */ - - //Enregistrement des accès à la requête getIdentite - Zend_Registry::get('WsLogger')->info("status - ip:". - $_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']. - ", hash:".$_SERVER['PHP_AUTH_PW']); - - $error = new StatusReturn(); - //Test connexion à la base de données - $db = new WDB('jo'); - if (!$db) { - $error->statusCode = 9000; - $error->statusMsg = $this->listError['9000']; - } else { - $error->statusCode = 3000; - $error->statusMsg = $this->listError['3000']; - } - return $error; - } - -} - -?> \ No newline at end of file diff --git a/library/WsScore/Entreprise/v0.6/Types.php b/library/WsScore/Entreprise/v0.6/Types.php deleted file mode 100644 index 8fbb428c..00000000 --- a/library/WsScore/Entreprise/v0.6/Types.php +++ /dev/null @@ -1,3790 +0,0 @@ -permission('ratios'); global $tva, $tabFormules, $mBil, $tabBilan, $efftr, $tabInfla; - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Data/TabFormules.php'; + $tabFormules = include APPLICATION_PATH . '/../library/Metier/Scores/Data/TabFormules.php'; //Initialisation if (empty($page)) $page = 'ratios'; diff --git a/library/WsScore/Entreprise/v0.8/Service.php b/library/WsScore/Entreprise/v0.8/Service.php index 509472af..5dc16f12 100644 --- a/library/WsScore/Entreprise/v0.8/Service.php +++ b/library/WsScore/Entreprise/v0.8/Service.php @@ -2265,7 +2265,7 @@ class Entreprise extends Scores_Ws_Server } $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; + require_once 'Metier/Scores/MScores.php'; $tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau, false, 'scores'); $duree = round(microtime(true)-$tDeb,3); debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); @@ -2506,7 +2506,7 @@ class Entreprise extends Scores_Ws_Server } $tDeb = microtime(true); - require_once 'Metier/scores/classMScores.php'; + require_once 'Metier/Scores/MScores.php'; $tabRet = calculIndiScore($siren, $nic, $accesPartenaire, $niveau, false, 'valo'); $duree = round(microtime(true)-$tDeb,3); debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__); @@ -2706,7 +2706,7 @@ class Entreprise extends Scores_Ws_Server $output->Indiscore = $Indiscore; //Tableau d'infos sur les formules - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Data/Formules.php'; + $tabFormules = include APPLICATION_PATH . '/../library/Metier/Scores/Data/Formules.php'; $tabBorneMin = $tabBorneMax = array(); foreach ($tabFormules as $formule) { $id = $formule['id']*1; @@ -2726,7 +2726,7 @@ class Entreprise extends Scores_Ws_Server //Ratios global $tva, $mBil, $efftr, $tabInfla; - require_once 'Metier/scores/classMRatios.php'; + require_once 'Metier/Scores/MRatios.php'; $mBil = new Metier_Partenaires_MBilans($siren); $tabBilans = $mBil->listeBilans($accesPartenaire, 5); $nbBilans = count($tabBilans); @@ -3880,7 +3880,7 @@ class Entreprise extends Scores_Ws_Server $survM = new Application_Model_JoScoresSurveillance(); $item = $survM->find($siren); if ( $item === null ) { - require_once 'Metier/scores/classMScores.php'; + require_once 'Metier/Scores/MScores.php'; calculIndiScore($siren, 0, false, 0); } } @@ -4604,7 +4604,7 @@ class Entreprise extends Scores_Ws_Server /** * Tableau d'infos sur les formules */ - $tabFormules = include APPLICATION_PATH . '/../library/Metier/scores/Data/Formules.php'; + $tabFormules = include APPLICATION_PATH . '/../library/Metier/Scores/Data/Formules.php'; $tabBorneMin = $tabBorneMax = array(); foreach ($tabFormules as $formule) { $id = $formule['id']*1; @@ -4643,7 +4643,7 @@ class Entreprise extends Scores_Ws_Server $i++; } } - require_once 'Metier/scores/classMRatios.php'; + require_once 'Metier/Scores/MRatios.php'; $mRatios = new Metier_Scores_MRatios(); $mRatios->setTrancheEffectif($efftr); $tabRatios = $mRatios->calcul($tabBilan); diff --git a/library/WsScore/ServicesConfig.php b/library/WsScore/ServicesConfig.php index 6aabd478..fb9938f0 100644 --- a/library/WsScore/ServicesConfig.php +++ b/library/WsScore/ServicesConfig.php @@ -13,11 +13,6 @@ return array( '0.9' => array( 'actif' => true, 'defaut' => 'beta' ), '0.8' => array( 'actif' => true, 'defaut' => true, 'start' => '2014-04-01' ), '0.7' => array( 'actif' => true, 'defaut' => false, 'start' => '2012-01-01', 'end' => '2014-03-31'), - '0.6' => array( 'actif' => false, 'defaut' => false ), - '0.5' => array( 'actif' => false, 'defaut' => false ), - '0.4' => array( 'actif' => false, 'defaut' => false ), - '0.3' => array( 'actif' => false, 'defaut' => false ), - '0.2' => array( 'actif' => false, 'defaut' => false ), ), ), 'gestion' => array( @@ -70,5 +65,5 @@ return array( ), 'idClient' => array(1), ), - + ); \ No newline at end of file diff --git a/library/framework/common/mysql.new.php b/library/framework/common/mysql.new.php deleted file mode 100644 index 13936126..00000000 --- a/library/framework/common/mysql.new.php +++ /dev/null @@ -1,338 +0,0 @@ -db = Zend_Db_Table::getDefaultAdapter(); - } - } - - /** - * INSERTION d'un tableau dans une table. - * Les index doivent avoir les mêmes noms que les champs. - * @param string Table - * @param array Valeurs insérer - * @return int Dernière valeur de l'auto-incrément, 1 si pas d'auto-incrément et 0 si erreur - */ - public function insert($table, $toAdd, $debug=false, $low_priority=false) - { - $this->errorCode = 0; - $this->errorMsg = ''; - - $fields = implode(array_keys($toAdd), ','); - foreach (array_values($toAdd) as $key=>$array_values) - $tmp[$key]=checkaddslashes($array_values); - - $values = "'".implode(array_values($tmp), "','")."'"; # better - $values = str_replace("'NULL'", 'NULL', $values); - - if ($low_priority) { - $query = 'INSERT DELAYED INTO '.$table.' ('.$fields.') VALUES ('.$values.');'; - } else { - $query = 'INSERT INTO '.$table.' ('.$fields.') VALUES ('.$values.');'; - } - if ($debug) $tdeb=microtime_float(); - - try { - $stmt = $this->db->query($query); - $res = $this->db->lastInsertId(); - if ($debug) $this->trace($query, $res, $tdeb); - if ( $res == 0 ) { - return true; - } - return $res; - } catch(Zend_Db_Exception $e) { - $this->errorCode = $e->getCode(); - $this->errorMsg = $e->getMessage(); - $this->trace($query, $res, $tdeb); - return false; - } - - return false; - } - - /** - * Database Update - * @param unknown $table - * @param unknown $update - * @param unknown $where - * @param string $debug - * @param number $limit - * @param string $low_priority - * @return resource - */ - public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false) - { - $this->errorCode = 0; - $this->errorMsg = ''; - - if ($low_priority) { - $query='UPDATE LOW_PRIORITY '.$table.' SET '; - } else { - $query='UPDATE '.$table.' SET '; - } - $i=0; - foreach ($update as $field => $value) { - $query.= ' '.$field."=".$this->db->quote($value); - $i++; - if ($i0) $query.=" LIMIT $limit"; - - if ($debug) $tdeb=microtime_float(); - - try { - $stmt = $this->db->query($query); - $res = $stmt->rowCount(); - if ($debug) $this->trace($query, $res, $tdeb); - if ( $res == 0 ) { - return false; - } - return $res; - } catch(Zend_Db_Exception $e) { - $this->errorCode = $e->getCode(); - $this->errorMsg = $e->getMessage(); - $this->trace($query, $res, $tdeb); - return false; - } - - return false; - } - - /** - * Database delete - * @param string $table - * @param string $where - * @param string $debug - * @param string $low_priority - * @return resource - */ - public function delete($table, $where, $debug=false, $low_priority=false) - { - $this->errorCode = 0; - $this->errorMsg = ''; - - if ($low_priority) - $query='DELETE LOW_PRIORITY QUICK FROM '.$table.' WHERE '.$where.';'; - else - $query='DELETE FROM '.$table.' WHERE '.$where.';'; - - if ($debug) $tdeb=microtime_float(); - - try { - $stmt = $this->db->query($query); - $res = $this->db->lastInsertId(); - if ($debug) $this->trace($query, $res, $tdeb); - if ( $res == 0 ) { - $res = true; - } - return $res; - } catch(Zend_Db_Exception $e) { - $this->errorCode = $e->getCode(); - $this->errorMsg = $e->getMessage(); - $this->trace($query, $res, $tdeb); - return false; - } - - return false; - } - - /** - * Database select - * @param string $table - * @param string $fields - * @param string $where - * @param string $debug - * @param string $assoc - * @param string $huge - * @return boolean|multitype:multitype: |number - */ - public function select($table, $fields, $where, $debug=false, $assoc=MYSQL_BOTH, $huge=false) - { - $this->errorCode = 0; - $this->errorMsg = ''; - - $query="SELECT $fields FROM $table WHERE $where;"; - - if ($debug) $tdeb=microtime_float(); - - try { - $stmt = $this->db->query($query); - } catch(Zend_Db_Exception $e) { - $this->errorCode = $e->getCode(); - $this->errorMsg = $e->getMessage(); - $this->trace($query); - return false; - } - - if ( !$huge ) { - switch($assoc) { - case MYSQL_NUM: - $mode = Zend_Db::FETCH_NUM; - break; - case MYSQL_ASSOC: - $mode = Zend_Db::FETCH_ASSOC; - break; - case MYSQL_BOTH: - $mode = Zend_Db::FETCH_BOTH; - break; - } - $tab = $stmt->fetchAll($mode); - if ($debug) $this->trace($query, sizeof($tab), $tdeb); - return $tab; - } else { - $nbRows = $stmt->rowCount(); - if ($debug) $this->trace($query, $nbRows, $tdeb); - return $nbRows; - } - } - - /** - * - * @param string $assoc - * @return multitype: - */ - public function fetch($assoc=MYSQL_BOTH) - { - switch($assoc) { - case MYSQL_NUM: - $mode = Zend_Db::FETCH_NUM; - break; - case MYSQL_ASSOC: - $mode = Zend_Db::FETCH_ASSOC; - break; - case MYSQL_BOTH: - $mode = Zend_Db::FETCH_BOTH; - break; - } - return $this->result->fetch($mode); - } - - /** - * Trace - * @param string $query - * @param string $error - * @param int $tdeb - */ - public function trace($query, $res='', $tdeb = null) - { - if ( $tdeb === null) { - $duree = substr(''.microtime_float()-$tdeb, 0, 5); - } else { - $duree = 'N/D'; - } - if ($this->errorCode == 0) { - $msg = date('Y-m-d H:i:s') ." - DEBUG - ".$this->errorCode.":".$this->errorMsg." - ".$query." - ".$duree; - } else { - $msg = date('Y-m-d H:i:s') ." - ERROR - ".$this->errorCode.":".$this->errorMsg." - ".$query." - ".$duree; - } - file_put_contents(LOG_PATH . '/mysql.log', $msg . "\n", FILE_APPEND); - } - - /** - * Exécute la requête passé en paramètre - */ - public function query($query, $debug=false) - { - $this->errorCode = 0; - $this->errorMsg = ''; - - try { - $stmt = $this->db->query($query); - $this->result = $stmt; - } catch(Zend_Db_Exception $e) { - $this->errorCode = $e->getCode(); - $this->errorMsg = $e->getMessage(); - $this->trace($query); - return false; - } - - return $this->result->fetchAll(Zend_Db::FETCH_ASSOC); - } - - /** Retourne le libellé de la dernière erreur **/ - public function getLastErrorMsg() - { - return $this->errorMsg; - } - /** - * Retourne le numéro de la dernière erreur - */ - public function getLastErrorNum() - { - return $this->errorCode; - } - - /** Retourne le libellé et le numéro de la dernière erreur **/ - public function getLastError() - { - return $this->errorMsg.' ('.$this->errorCode.')'; - } - - /** Retourne le nombre de lignes modifiées par la dernière requête **/ - public function getAffectedRows() - { - return $this->result->rowCount(); - } - - /** - * Génère le fichier CSV pour la requete SQL - * - * @param string $query - * @param string $fileCsv - * @return bool - */ - public function exportCSV($query, $fileCsv, $sep=',', $eol=EOL) - { - $i = 0; - $fp = fopen($fileCsv, 'w'); - if (!$fp) return false; - - $res = $this->query($query); - $nbLignes = count($res); - for($i=0; $i<$nbLignes; $i++) { - $ligne = $res[$i]; - - //Header - if ($i==0) { - $nbCols = count($ligne); - $header = array(); - foreach ($ligne as $libCol => $col) { - $header[] = $libCol; - } - fputcsv($fp, $header, $sep, '"'); - } - - //Content - $fields = array(); - foreach ($ligne as $libCol => $col) { - $fields[] = $col; - } - fputcsv($fp, $fields, $sep, '"'); - } - - fclose($fp); - return $nbLignes; - } -} -?> \ No newline at end of file diff --git a/library/framework/common/mysql.old.php b/library/framework/common/mysql.old.php deleted file mode 100644 index 78d49d96..00000000 --- a/library/framework/common/mysql.old.php +++ /dev/null @@ -1,228 +0,0 @@ -host=MYSQL_HOST; - else $this->host=$host; - if ($user=='') $this->user=MYSQL_USER; - else $this->user=$user; - if ($password=='') $this->password=MYSQL_PASS; - else $this->password=$password; - if ($database=='') $this->database=MYSQL_DEFAULT_DB; - else $this->database=$database; - - $this->con_id = mysql_pconnect($this->host, $this->user, $this->password); - if (!($this->con_id === false)) { - if (mysql_select_db($this->database, $this->con_id) === false) { - echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL; - echo date ('Y/m/d - H:i:s'). mysql_error(); - die(); - } - } - return mysql_query("SET NAMES 'utf8';", $this->con_id); - } - - public function setCharSet($charSet) { - return (mysql_query("SET CHARACTER SET $charSet;", $this->con_id)); - } - - private function setDB() { - return (mysql_query("USE $this->database;", $this->con_id)); - } - - /** INSERTION d'un tableau dans une table. - ** Les index doivent avoir les mêmes noms que les champs. - ** @param string Table - ** @param array Valeurs insérer - ** @return int Dernière valeur de l'auto-incrément, 1 si pas d'auto-incrément et 0 si erreur - **/ - public function insert($table, $toAdd, $debug=false, $low_priority=false) - { - $fields = implode(array_keys($toAdd), '`,`'); - foreach (array_values($toAdd) as $key=>$array_values) - $tmp[$key]=checkaddslashes($array_values); - - $values = "'".implode(array_values($tmp), "','")."'"; # better - $values = str_replace("'NULL'", 'NULL', $values); - - if ($low_priority) - $query = 'INSERT DELAYED INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');'; - else - $query = 'INSERT INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');'; - - if ($debug) $tdeb=microtime_float(); - $res = mysql_query($query, $this->con_id); - if ($res!==false) - { - if (mysql_insert_id()>0) - $res=mysql_insert_id(); - else - $res=true; - } - if ($debug) $this->trace($query, $res, $tdeb); - return $res; - } - - public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false) - { - $fields = array_keys($update); - $values = array_values($update); - $i=0; - if ($low_priority) - $query='UPDATE LOW_PRIORITY `'.$table.'` SET '; - else - $query='UPDATE `'.$table.'` SET '; - while(isset($fields[$i])){ - if($i>0) { $query.=', '; } - $query.=' `'.$fields[$i]."`='".checkaddslashes($values[$i])."'"; - $i++; - } - $query = str_replace("'NULL'", 'NULL', $query); - $query.=' WHERE '.$where; - if ($limit>0) $query.=" LIMIT $limit"; - if ($debug) $tdeb=microtime_float(); - $res=mysql_query($query, $this->con_id); - if ($debug) $this->trace($query, $res, $tdeb); - return $res; - } - - public function delete($table, $where, $debug=false, $low_priority=false) - { - if ($low_priority) - $query='DELETE LOW_PRIORITY QUICK FROM `'.$table.'` WHERE '.$where.' LIMIT 1;'; - else - $query='DELETE FROM `'.$table.'` WHERE '.$where.' LIMIT 1;'; - if ($debug) $tdeb=microtime_float(); - $res=mysql_query($query, $this->con_id); - if ($debug) $this->trace($query, $res, $tdeb); - return $res; - } - - public function select($table, $fields, $where, $debug=false, $assoc=MYSQL_BOTH, $huge=false) { - if (mysql_select_db($this->database, $this->con_id) === false) { - echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL; - echo date ('Y/m/d - H:i:s'). mysql_error(); - die(); - } - $query="SELECT $fields FROM $table WHERE $where;"; - if ($debug) $tdeb=microtime_float(); - $this->result=mysql_query($query, $this->con_id);// or die(mysql_error()); - if (mysql_errno()) { - $fpErr=fopen(LOG_PATH.'/sqlerror.log','a'); - fwrite($fpErr, date('YmdHis'). ' - '.$query .EOL); - fwrite($fpErr, date('YmdHis'). ' - '.mysql_errno() .' - '. mysql_error().EOL); - return false; - } - // echo ; - if (!$huge) { - $tab=array(); - while ($ligne = mysql_fetch_array($this->result, $assoc)) - $tab[]=$ligne; - - if ($debug) $this->trace($query, sizeof($tab), $tdeb); - return $tab; - } else { - $nbRows=mysql_num_rows($this->result); - if ($debug) $this->trace($query, $nbRows, $tdeb); - return $nbRows; - } - } - - public function fetch($assoc=MYSQL_BOTH) { - return mysql_fetch_array($this->result, $assoc); - } - - public function trace($query, $res='', $tdeb=-1) { - if (!$fp=fopen(LOG_PATH.'/mysql_insert.log', 'a')) - return false; - $errnum=mysql_errno($this->con_id); - if ($tdeb>-1) $duree=substr(''.microtime_float()-$tdeb, 0, 5); - else $duree='N/D'; - if (!fwrite($fp, date('Y/m/d - H:i:s') ." - $errnum - $res - $duree - $query\n")) - return false; - if (!fclose($fp)) - return false; - return true; - } - - /** Exécute la requête passé en paramètre **/ - public function query($query, $debug=false) - { - $this->result=mysql_query($query, $this->con_id); - return $this->result; - } - - /** Retourne le nombre de records de la dernière requête de sélection ** - public function getNumRows() { - return mysql_num_rows($this->con_id); - } - */ - /** Retourne le libellé de la dernière erreur **/ - public function getLastErrorMsg() { - return mysql_error($this->con_id); - } - /** Retourne le numéro de la dernière erreur **/ - public function getLastErrorNum() - { - return mysql_errno($this->con_id); - } - - /** Retourne le libellé et le numéro de la dernière erreur **/ - public function getLastError() - { - return mysql_error($this->con_id).' ('.mysql_errno($this->con_id).')'; - } - - /** Retourne le nombre de lignes modifiées par la dernière requête **/ - public function getAffectedRows() - { - return mysql_affected_rows($this->con_id); - } - - /** Génère le fichier CSV pour la requete SQL - ** - ** @param string $query - ** @param string $fileCsv - ** @return bool - */ - public function exportCSV($query, $fileCsv, $sep=',', $eol=EOL) { - $i=$c=0; - $fp = fopen($fileCsv, 'w'); - if (!$fp) return false; - - $res=$this->query($query); - $nbLignes=mysql_num_rows($res); - - while ($ligne=$this->fetch(MYSQL_ASSOC)) { - if ($i==0) { - $nbCols=count($ligne); - foreach ($ligne as $libCol=>$col) { - $c++; - if ($c<$nbCols) fwrite($fp, str_replace($sep,' ', $libCol).$sep); - else fwrite($fp, str_replace($sep,' ', $libCol)); - } - fwrite($fp, $eol); - } - $c=0; - foreach ($ligne as $libCol=>$col) { - $c++; - if ($c<$nbCols) fwrite($fp, str_replace($sep,' ', $col).$sep); - else fwrite($fp, str_replace($sep,' ', $col)); - } - fwrite($fp, $eol); - $i++; - } - fclose($fp); - return $nbLignes;//$this->getAffectedRows(); - } - -} -?> \ No newline at end of file diff --git a/library/framework/fwk.php b/library/framework/fwk.php index b6001883..0bed58a2 100644 --- a/library/framework/fwk.php +++ b/library/framework/fwk.php @@ -1,7 +1,7 @@ generate == 'Tribunaux' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/bodacc/Cache' . DIRECTORY_SEPARATOR . 'Tribunaux.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Bodacc/Cache' . DIRECTORY_SEPARATOR . 'Tribunaux.php','w'); fwrite($fp, "generate == 'FctDir' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/bodacc/Cache' . DIRECTORY_SEPARATOR . 'FctDir.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Bodacc/Cache' . DIRECTORY_SEPARATOR . 'FctDir.php','w'); fwrite($fp, "generate == 'Evenements' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/bodacc/Cache' . DIRECTORY_SEPARATOR . 'Evenements.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Bodacc/Cache' . DIRECTORY_SEPARATOR . 'Evenements.php','w'); fwrite($fp, "generate == 'Devises' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/bodacc/Cache' . DIRECTORY_SEPARATOR . 'Devises.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Bodacc/Cache' . DIRECTORY_SEPARATOR . 'Devises.php','w'); fwrite($fp, "generate == 'RncsTribunaux' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/partenaires/Cache' . DIRECTORY_SEPARATOR . 'Tribunaux.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Partenaires/Cache' . DIRECTORY_SEPARATOR . 'Tribunaux.php','w'); fwrite($fp, "generate == 'DevisesInpi' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/partenaires/Cache' . DIRECTORY_SEPARATOR . 'DevisesInpi.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Partenaires/Cache' . DIRECTORY_SEPARATOR . 'DevisesInpi.php','w'); fwrite($fp, "generate == 'Jugements' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/partenaires/Cache' . DIRECTORY_SEPARATOR . 'Jugements.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Partenaires/Cache' . DIRECTORY_SEPARATOR . 'Jugements.php','w'); fwrite($fp, "generate == 'PaysInpi' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/partenaires/Cache' . DIRECTORY_SEPARATOR . 'PaysInpi.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Partenaires/Cache' . DIRECTORY_SEPARATOR . 'PaysInpi.php','w'); fwrite($fp, "generate == 'CodesNaf' ) { $c = new Zend_Config($application->getOptions()); $db = Zend_Db::factory($c->profil->db->metier); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/insee/Cache' . DIRECTORY_SEPARATOR . 'CodesNaf.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Insee/Cache' . DIRECTORY_SEPARATOR . 'CodesNaf.php','w'); fwrite($fp, "generate == 'CodesNace' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/insee/Cache' . DIRECTORY_SEPARATOR . 'CodesNace.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Insee/Cache' . DIRECTORY_SEPARATOR . 'CodesNace.php','w'); fwrite($fp, "generate == 'CodesNafa' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/insee/Cache' . DIRECTORY_SEPARATOR . 'CodesNafa.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Insee/Cache' . DIRECTORY_SEPARATOR . 'CodesNafa.php','w'); fwrite($fp, "generate == 'CodesFJ' ) { $result->setFetchMode(Zend_Db::FETCH_OBJ); $rows = $result->fetchAll(); - $fp=fopen(APPLICATION_PATH . '/../library/Metier/insee/Cache' . DIRECTORY_SEPARATOR . 'CodesFJ.php','w'); + $fp=fopen(APPLICATION_PATH . '/../library/Metier/Insee/Cache' . DIRECTORY_SEPARATOR . 'CodesFJ.php','w'); fwrite($fp, "tabcache) { $c = new Zend_Config($application->getOptions()); $db = Zend_Db::factory($c->profil->db->metier); - $pathCache = APPLICATION_PATH . '/../library/Metier/scores/Data'; + $pathCache = APPLICATION_PATH . '/../library/Metier/Scores/Data'; //Variables $fp=fopen($pathCache . DIRECTORY_SEPARATOR . 'Variables.php','w'); @@ -368,12 +368,12 @@ function genereCacheRatios() $tabMoy = array(); $iDb = new WDB(); - $configFile = APPLICATION_PATH.'/../library/Metier/scores/classMRatios.php'; + $configFile = APPLICATION_PATH.'/../library/Metier/Scores/MRatios.php'; $fp=fopen($configFile, 'w'); fwrite($fp, 'select( diff --git a/scripts/build/loadCodeRatios.php b/scripts/build/loadCodeRatios.php index c00fe301..08843120 100644 --- a/scripts/build/loadCodeRatios.php +++ b/scripts/build/loadCodeRatios.php @@ -290,7 +290,7 @@ else echo "\n***********************************************\n"; } - $pathCache = APPLICATION_PATH . '/../library/Metier/scores/Variables'; + $pathCache = APPLICATION_PATH . '/../library/Metier/Scores/Variables'; $copy_fic = $nomfichier; if($nomfichier) // Si le nom du fichier comprend 'scores' ou 'valo'... diff --git a/scripts/jobs/calculRatios.php b/scripts/jobs/calculRatios.php index 831d76e2..aebd967f 100644 --- a/scripts/jobs/calculRatios.php +++ b/scripts/jobs/calculRatios.php @@ -73,7 +73,6 @@ for ($i=1; isset($argv[$i]); $i++) { $iInsee = new Metier_Insee_MInsee($db); if ($updateCache) { - include_once 'Metier/scores/classMRatios.php'; if (genereCacheRatios()) echo date('Y/m/d - H:i:s') ." - Le cache des ratios a été généré avec succès !".EOL; else