Ajout du service pour véolia, simple copier coller des méthodes originales, issue #0001036

This commit is contained in:
Michael RICOIS 2012-01-17 11:00:02 +00:00
parent 28baffaa41
commit 03b6888c14
5 changed files with 2034 additions and 0 deletions

View File

@ -2,4 +2,9 @@
actif = true;
idClient = 39;
user[] = mricois
user[] = ylenaour
[veolia]
actif = true;
user[] = mricois
user[] = ylenaour

View File

@ -0,0 +1,4 @@
; Listes des versions des services
[0.1]
actif = true;
defaut = true;

View File

@ -0,0 +1,12 @@
Type[] = "Identite"
Type[] = "IdentiteBourse"
Type[] = "IdentiteBilan"
Type[] = "AutreSiren"
Type[] = "AutreSiret"
Type[] = "GeoInfos"
Type[] = "AdresseDomEnt"
Type[] = "SearchEntrepriseReturn"
Type[] = "EntrepriseItem"
Type[] = "EntrepriseCriteres"
Type[] = "SearchReturn"
Type[] = "InfosIris"

View File

@ -0,0 +1,800 @@
<?php
require_once 'WsScore/WsScore.php';
require_once realpath(dirname(__FILE__)).'/Types.php';
class Entreprise extends WsScore
{
public function __construct()
{
parent::__construct();
}
/**
* 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 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 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->tabInfoUser['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;
}
/**
* 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; }
require_once 'i18n/cleanchar.php';
$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(
cleanstring($entCriteres->raisonSociale),
cleanstring($entCriteres->adresse),
$entCriteres->codePostal,
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 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 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 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 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->tabInfoUser['login'],
'client'=>$this->tabInfoUser['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;
}
/**
* 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 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 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 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;
}
}

File diff suppressed because it is too large Load Diff