Renommage des fichiers de service

This commit is contained in:
Michael RICOIS 2015-06-02 07:38:39 +00:00
parent 7860bfde5d
commit 0784096e2f
30 changed files with 6 additions and 58349 deletions

View File

@ -1,482 +0,0 @@
<?php
require_once __DIR__ . '/Types.php';
class Catalog extends Scores_Ws_Server
{
/**
* Naf5
* @param string $id
* @param array $columns
* @throws SoapFault
* @return string
*/
public function getNaf5($id=null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'codNaf5',
'libNaf5',
'libNaf5en',
'codNaf4',
'codNaf3',
'codNaf2',
'codNaf1',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('codNaf5', 'libNaf5', 'codNaf4', 'codNaf3', 'codNaf2', 'codNaf1');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$model = new Application_Model_JoTabNaf5();
$sql = $model->select()->from($model, $columnsDisplay);
if ( $id!==null ) {
$sql->where('codNaf5=?', $id);
}
$result = $model->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
foreach ( $result as $item ) {
$tab[$item->codNaf5] = $item->toArray();
}
}
return json_encode($tab);
}
/**
* Cities
* @param string $id
* @param array $columns
* @throws SoapFault
* @return string
*/
public function getCity($id=null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'codePostal',
'LIBGEO',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('codePostal', 'LIBGEO');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$model = new Application_Model_InseeTabVilles();
$sql = $model->select()->from($model, $columnsDisplay);
if ( $id!==null ) {
$sql->where('codePostal=?', $id);
}
$result = $model->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
$i=0;
foreach ( $result as $item ) {
//$tab[] = $item->toArray();
$tab[$i]['code'] = $item->codePostal;
$tab[$i]['libelle'] = $item->LIBGEO;
$i++;
}
}
return json_encode($tab);
}
/**
* Departements
* @param string $id
* @param array $columns
* @throws SoapFault
* @return string
*/
public function getDepartements($id=null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'numdep',
'libdep',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('numdep', 'libdep');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$model = new Application_Model_InseeDepartements();
$sql = $model->select()->from($model, $columnsDisplay);
if ( $id!==null ) {
$sql->where('numdep=?', $id);
}
$result = $model->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
$i=0;
foreach ( $result as $item ) {
//$tab[] = $item->toArray();
$tab[$i]['numdep'] = $item->numdep;
$tab[$i]['libdep'] = $item->libdep;
$i++;
}
}
return json_encode($tab);
}
/**
* Legal Form
* @param string $id
* @param array $columns
* @throws SoapFault
* @return string
*/
public function getLegalForm($id=null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'code',
'libelle',
'libelleEn',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('code', 'libelle');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$model = new Application_Model_JoTabFJur();
$sql = $model->select()->from($model, $columnsDisplay);
if ( $id!==null ) {
$sql->where('code=?', $id);
}
$result = $model->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
foreach ( $result as $item ) {
$tab[$item->code] = $item->toArray();
}
}
return json_encode($tab);
}
/**
* Event
* @param string $id
* @param array $columns
* @throws SoapFault
* @return string
*/
public function getEvent($id=null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'codEven',
'libEven',
'libEvenEn',
'Bodacc_Code',
'Rubrique',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('codEven', 'libEven','Bodacc_Code', 'Rubrique');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$model = new Application_Model_JoTabEvenements();
$sql = $model->select()->from($model, $columnsDisplay);
if ( $id!==null ) {
$sql->where('codeEven=?', $id);
}
$result = $model->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
foreach ( $result as $item ) {
$tab[$item->codEven] = $item->toArray();
}
}
return json_encode($tab);
}
/**
* Countries List
* @param string $id Code Pays 3
* @param array $columns Column list to be return
* @throws SoapFault
* @return string
*/
public function getCountry($id = null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'codPays',
'numPays',
'codPays3',
'codePaysInpi',
'codePaysInsee',
'codeFips',
'codeTld',
'codeIoc',
'codeITU',
'codeDS',
'codeWMO',
'codeGAUL',
'codeMARC',
'dependance',
'libPaysEN',
'libPays',
'libPaysMajAuto',
'zone',
'drapeau',
'devise',
'indTel',
'remarques',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('codPays3', 'libPays');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$countryM = new Application_Model_JoTabPays();
$sql = $countryM->select()->from($countryM, $columnsDisplay);
if ( $id!==null ) {
$sql->where('codPays3=?', $id);
} else {
$sql->where('codPays3 IS NOT NULL');
}
$result = $countryM->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', "Application error");
}
$tabPays = array();
if ( $result->count()>0 ) {
foreach ( $result as $item ) {
$tabPays[$item->codPays3] = $item->toArray();
}
}
return json_encode($tabPays);
}
/**
* Currencies
* @param string $id
* @throws SoapFault
* @return string
*/
public function getCurrency($id = null)
{
$this->authenticate();
$columnsDisplay = array('devIso', 'devNom');
try {
$currencyM = new Application_Model_JoTabDevises();
$sql = $currencyM->select()->from($currencyM, $columnsDisplay);
if ( $id!==null ) {
$sql->where('devIso=?', $id);
} else {
$sql->where("devIso!=''");
}
$result = $currencyM->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
foreach ( $result as $item ) {
$tab[$item->devIso] = $item->toArray();
}
}
return json_encode($tab);
}
/**
* Bodacc Fonctions
* @param string $id
* @param array $columns
* @throws SoapFault
* @return string
*/
public function getDirFonction($id = null, $columns = array())
{
$this->authenticate();
$columnsList = array(
'codeFct',
'libelle',
'libelleEn',
);
if (empty($columns) || count($columns)==0) {
$columnsDisplay = array('codeFct', 'libelle');
}
// Check authorize column
else {
foreach ( $columns as $column ) {
if ( in_array($column, $columnsList) ) {
$columnsDisplay[] = $column;
}
}
}
try {
$model = new Application_Model_JoBodaccFonctions();
$sql = $model->select()->from($model, $columnsDisplay);
if ( $id!==null ) {
$sql->where('codeFct=?', $id);
}
$result = $model->fetchAll($sql);
} catch (Zend_Db_Adapter_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
} catch (Zend_Exception $e) {
throw new SoapFault('ERR', $e->getMessage());
}
$tab = array();
if ( $result->count()>0 ) {
foreach ( $result as $item ) {
$tab[$item->codeFct] = $item->toArray();
}
}
return json_encode($tab);
}
protected function getHelp($app, $category, $name)
{
}
protected function setHelp($app, $category, $name, $label, $content)
{
}
}

View File

@ -1,270 +0,0 @@
<?php
require_once 'framework/fwk.php';
require_once 'framework/mail/sendMail.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/insee/classMSirene.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once __DIR__ . '/Types.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Afnic';
$this->serviceName = 'Entreprise';
}
/**
* Retourne une fiche identite entreprise
* @param string $siret Siren de l'entreprise ou siret de l'établissement
* @param int $id Identifiant interne
* @param int $dept
* @param string $waldec Identifiant Registre National des Associations ou Waldec
* @return EntrepResult
*/
public function getIdentite($siret, $id, $dept, $waldec)
{
$forceVerif=false;
debugLog('W',"Recherche par identifiant Siren=$siret, Dept=$dep, Id=$id, Waldec=$waldec",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$iInsee = new MInsee();
$result = new EntrepResult();
if ($waldec<>'' && substr($waldec,0,1)=='W' && $siret*1==0) {
debugLog('I',"AFNIC Recherche par identifiant Waldec $waldec (Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$rep=$iInsee->getEtablissementsParId('AUTRE', $waldec, 0, 20, 20);
$etabs=$rep['reponses'];
if ($rep['nbReponses']>0) {
foreach ($etabs as $nb=>$etab) {
$siret=$etab['Siret'];
$id=$etab['id'];
break;
}
} else {
debugLog('W', "Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error = new ErrorElement();
$error->errnum = 108;
$error->errmsg = 'Waldec inconnu';
$result->error = $error;
return $result;
}
}
$tabRet=array();
$siret=trim($siret);
$len=strlen($siret);
$id=trim($id)*1;
if ($len==14) $nic=substr(''.$siret,9,5)*1;
elseif ($len== 9) $nic='';
elseif ($len== 0) {
$siren=0; $nic='';
}
else {
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error = new ErrorElement();
$error->errnum = 102;
$error->errmsg = 'Siren Siret inexistant';
$result->error = $error;
$result->result = $tabRet;
return $result;
}
$siren=substr(''.$siret,0,9)*1;
if ($siren==0 && $id==0) {
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error = new ErrorElement();
$error->errnum = 102;
$error->errmsg = 'Siren inexistant';
$result->error = $error;
$result->result = $tabRet;
return $result;
}
if ($id==0 && !$iInsee->valideSiren($siren, $nic)) {
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error = new ErrorElement();
$error->errnum = 105;
$error->errmsg = 'Siren invalide';
$result->error = $error;
$result->result = $tabRet;
return $result;
}
if ($dep==974) {
debugLog('I',"AFNIC Recherche par Siren/Dept (Waldec=$waldec, Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$rep=$iInsee->getEtablissements($siren, $nic, 0, 20, 20, $dep);
$etabs=$rep['reponses'];
if ($rep['nbReponses']>0) {
foreach ($etabs as $nb=>$etab) {
$siren=$etab['siren'];
$nic=$etab['nic'];
$id=$etab['id'];
break;
}
} else {
debugLog('W', "Siren $siren/Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error = new ErrorElement();
$error->errnum = 107;
$error->errmsg = 'Entreprise ou Association non présente dans le département demandé';
$result->error = $error;
$result->result = $tabRet;
return $result;
}
}
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$entrep=$iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
if (empty($entrep)) {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error = new ErrorElement();
$error->errnum = 102;
$error->errmsg = 'Siren inexistant';
$result->error = $error;
$result->result = $tabRet;
return $result;
}
$codePaysIso2='FR';
if ($entrep['Dept']>98) {
$codePaysInsee=$entrep['codeCommune'];
$iDb=new WDB();
$tabTmp=$iDb->select(
'jo.tabPays j, insee.insee_tabPays i',
'j.codPays, j.numPays, j.codPays3, j.codePaysInpi, j.libPays, i.LIBCOG, i.ACTUAL',
"j.codePaysInsee=$codePaysInsee AND j.codePaysInsee=substring( i.COG, 3, 3 ) AND i.ACTUAL IN (1,4) AND j.numPays is NOT NULL", true, MYSQL_ASSOC);
if (count($tabTmp)==1) {
$codePaysIso2=$tabTmp[0]['codPays'];
} else {
$codePaysIso2='';
foreach ($tabTmp as $tabTmp2) {
if (trim(strtoupper(strtr($tabTmp2['libPays'],
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ',
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY")))==trim(strtoupper($tabTmp2['LIBCOG']))) {
$codePaysIso2=$tabTmp2['codPays'];
break;
}
}
if ($codePaysIso2=='') {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep) Plusieurs Codes Pays", "Siret $siret
Waldec $waldec
Département $dep
Id=$id".EOL.
print_r($entrep, true).EOL.
print_r($tabTmp, true));
}
}
}
$autreId=$entrep['AutreId'];
if ($params->siret>0 && $waldec<>'')
$autreId=$waldec;
// Source RNCS prioritaire pour les infos entreprises
$nom=$entrep['nomLong'];
if ($nom=='') $nom=$entrep['Nom'];
$sigle=$entrep['sigleLong'];
if ($sigle=='') $sigle=$entrep['Sigle'];
// Actif RNCS
if ($entrep['EntActiveRCS']) $actif=1;
// Inactif RNCS
elseif (isset($entrep['EntActiveRCS']) && $entrep['EntActiveRCS']==0) $actif=0;
// Actif Insee et périmètre Insee
elseif ($entrep['Actif'] || $entrep['NbEtab']) $actif=1;
else $actif=0;
// Source INSEE prioritaire sur l'établissement
$enseigne=$entrep['Enseigne'];
if ($enseigne=='') $enseigne=$entrep['enseigneLong'];
$tabCarInvalides=array('/'=>' ','*'=>' ', '&amp;'=>' ET ', '&'=>' ET ', '&AMP;'=>' ET ',
'"'=>' ', "'"=>' ');
$item = new EntrepElement();
$item->id = $entrep['id'];
$item->Siret = $entrep['Siret'];
$item->SiretSiege = $entrep['SiretSiege'];
$item->Siege = $entrep['Siege'];
$item->Actif = $actif;
$item->AutreId = $autreId;
$item->idSd = $entrep['Source'].'-'.$entrep['SourceId'];
$item->Nom = trim(prepareString(preg_replace('/ +/',' ', strtr($nom,$tabCarInvalides))));
$item->Nom2 = trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['Nom2'],$tabCarInvalides))));
$item->NomCommercial = trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NomCommercial'],$tabCarInvalides))));
$item->Sigle = trim(prepareString(preg_replace('/ +/',' ', strtr($sigle,$tabCarInvalides))));
$item->Enseigne = trim(prepareString(preg_replace('/ +/',' ', strtr($enseigne,$tabCarInvalides))));
$item->Adresse = prepareString($entrep['Adresse']);
$item->Adresse2 = prepareString($entrep['Adresse2']);
$item->AdresseNum = prepareString($entrep['AdresseNum']);
$item->AdresseBtq = prepareString($entrep['AdresseBtq']);
$item->AdresseVoie = prepareString($entrep['AdresseVoie']);
$item->AdresseRue = prepareString($entrep['AdresseRue']);
$item->CP = $entrep['CP'];
$item->Ville = prepareString($entrep['Ville']);
$item->Pays = prepareString($entrep['Pays']); // Ajouté le 18 02 2008
$item->PaysIso2 = $codePaysIso2;
$item->Civilite = $entrep['Civilite'];
$item->NbEtab = $entrep['NbEtab'];
$item->Tel = prepareString($entrep['Tel']);
$item->Fax = prepareString($entrep['Fax']);
$item->Web = prepareString($entrep['Web']);
$item->Mail = prepareString($entrep['Mail']);
$item->FJ = $entrep['FJ'];
$item->FJ_lib = trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['FJ_lib'],$tabCarInvalides))));
$item->Siren = $entrep['Siren'];
$item->Nic = $entrep['Nic'];
$item->NafEnt = $entrep['NafEnt'];
$item->NafEntLib = trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NafEntLib'],$tabCarInvalides))));
$item->Capital = $entrep['Capital'];
$item->CapitalDev = $entrep['CapitalDev'];
$item->CapitalLib = prepareString($entrep['CapitalLib']); // Ajouté le 18 02 2008
$item->DateCreaEt = $entrep['DateCreaEt'];
$item->DateCreaEn = $entrep['DateCreaEn'];
$item->DateClotEn = $entrep['DateClotEn'];
$item->EffEnTr = prepareString($entrep['EffEnTr']);
$item->EffEnTrLib = prepareString($entrep['EffEnTrLib']);
$item->Effectif = prepareString($entrep['Effectif']);
$item->Dept = $entrep['Dept'];
$item->codeCommune = prepareString($entrep['codeCommune']);
$item->TrancheCA = prepareString($entrep['TrancheCA']);
$item->TrancheCALib = prepareString($entrep['TrancheCALib']);
$item->dir1Titre = prepareString($entrep['dir1Titre']);//utf8
$item->dir1NomPrenom = prepareString($entrep['dir1NomPrenom']);
$item->dir1DateFct = prepareString($entrep['dir1DateFct']);
$item->SituationJuridique = strtoupper(substr($entrep['SituationJuridique'],0,1));
if (preg_match('/NAF4/i', $this->User->pref)) {
$entrep2 = $iInsee->getNaf4($siren, $nic, $id);
$item->Naf4Ent = $entrep2['apen4'];
$item->Naf4Etab = $entrep2['apet4'];
$item->Naf4EntLib = prepareString($entrep2['apen4_lib']);
$item->Naf4EtabLib = prepareString($entrep2['apet4_lib']);
}
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->wsLog('identite',$siret,$id);
$error = new ErrorElement();
$error->errmsg = '';
$error->errnum = 0;
$result->result = $item;
return $result;
}
}

View File

@ -1,304 +0,0 @@
<?php
require_once __DIR__ . '/Types.php';
require_once 'framework/fwk.php';
require_once 'Metier/partenaires/classMTel.php';
require_once 'Metier/insee/classMInsee.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Mixdata';
$this->serviceName = 'Entreprise';
}
/**
* Méthode spécifique
* @param string $siren
* @return Data
*/
public function getData($siren)
{
$this->authenticate();
$len = strlen($siren);
if ($len != 9)
{
$this->sendError('1010');
}
if (intval($siren)<100)
{
$this->sendError('1020');
}
//Get default DB
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->setFetchMode(Zend_Db::FETCH_OBJ);
//Identite
$modelIdentite = new Data();
$identiteEtabRncsSql = $db->select()
->from('rncs_etab', array(
'LPAD(siren,9,0) AS siren',
'LPAD(nic,5,0) AS nic',
'siege',
'enseigne',
'nomCommercial',
'naf',
), 'jo')
->where('siren=?', $siren)
->where('actif=1')
->where('siege=1');
$identiteEtabRncsResult = $db->fetchRow($identiteEtabRncsSql);
if ($identiteEtabRncsResult === null)
{
$this->sendError('1020');
}
$nic = $identiteEtabRncsResult->nic;
$identiteEntrepRncsSql = $db->select()
->from('rncs_entrep', array(
'raisonSociale',
'sigle',
'naf',
'cj',
'dateImma',
'capitalMontant',
'capitalDevIso',
), 'jo')
->where('siren=?', $siren);
$identiteEntrepRncsResult = $db->fetchRow($identiteEntrepRncsSql);
$modelIdentite->Siret = $identiteEtabRncsResult->siren.$identiteEtabRncsResult->nic;
$modelIdentite->Ape = $identiteEntrepRncsResult->naf;
$modelIdentite->Siege = $identiteEtabRncsResult->siege;
$modelIdentite->RaisonSociale = $identiteEntrepRncsResult->raisonSociale;
$modelIdentite->NomCommercial = $identiteEtabRncsResult->nomCommercial;
$modelIdentite->Enseigne = $identiteEtabRncsResult->enseigne;
$modelIdentite->Sigle = $identiteEntrepRncsResult->sigle;
$modelIdentite->FormeJuridique = substr($identiteEntrepRncsResult->cj, 0, 2);
$modelIdentite->ImmatDate = $identiteEntrepRncsResult->dateImma;
$modelIdentite->Capital = $identiteEntrepRncsResult->capitalMontant;
$modelIdentite->CapitalDev = $identiteEntrepRncsResult->capitalDevIso;
$mTel = new MTel();
$telephones = $mTel->getTel($siren, $nic, true, 1);
if ($telephones > 0)
{
$modelIdentite->Telephone = $telephones[0]['telephone'];
}
try {
$identiteEntrepInseeSql = $db->select()->from('identite', array('EFF_ENT'), 'insee')
->where('SIREN=?', $siren)
->where('NIC=?', $nic);
$identiteEntrepInseeResult = $db->fetchRow($identiteEntrepInseeSql);
if ($identiteEntrepInseeResult !== null) {
$modelIdentite->Eff = $identiteEntrepInseeResult->EFF_ENT;
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', __LINE__ . ' : ' . $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
$inseeM = new MInsee();
$tabProcol = $inseeM->getAnnoncesLegales($siren, 0, 'P', false);
if ( count($tabProcol)>0 ) {
$modelIdentite->JugementDate = $tabProcol[0]['dateJugement'];
$modelIdentite->JugementTypeEven = $tabProcol[0]['evenements'][0]['CodeEven'];
}
try {
$bilanSql = $db->select()->from('bilans_postes', array(
'dateExercice',
'YP',
'FL',
'FK',
'HN',
), 'jo')
->where('consolide=0')
->where('siren=?', $siren)
->order('dateExercice DESC')
->limit(1);
$bilanResult = $db->fetchRow($bilanSql);
if ($bilanResult !== null)
{
$modelIdentite->BilanYP = $bilanResult->YP;
$modelIdentite->BilanType = 'R';
$modelIdentite->BilanClotureDate = substr($bilanResult->dateExercice,0,4).'-'.substr($bilanResult->dateExercice,4,2).'-'.substr($bilanResult->dateExercice,6,2);
$modelIdentite->BilanFL = round($bilanResult->FL/1000);
$modelIdentite->BilanFK = round($bilanResult->FK/1000);
$modelIdentite->BilanHN = round($bilanResult->HN/1000);
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', __LINE__ . ' : ' . $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
try {
$bodaccSql = $db->select()->from('bodacc_activite', array('activite'), 'jo')
->where('siren=?', $siren)
->limit(1);
$bodaccResult = $db->fetchRow($bilanSql);
if ($bilanResult !== null)
{
$modelIdentite->ActiviteReel = $bodaccResult->activite;
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', __LINE__ . ' : ' . $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
//Etablissemements actifs
$modelEtablissements = array();
try {
$etabSql = $db->select()
->from('etablissements', array(
'LPAD(siren,9,0) AS siren',
'LPAD(nic,5,0) AS nic',
'siege',
'adr_num',
'adr_typeVoie',
'adr_libVoie',
'adr_comp',
'adr_cp',
'adr_ville'
), 'jo')
->where('actif=1')
->where('siren=?', $siren)
->order('siege DESC');
$etabResult = $db->fetchAll($etabSql);
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', __LINE__ . ' : ' . $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
if (count($etabResult) > 0)
{
foreach ($etabResult as $item)
{
if ($item->siege == 1)
{
$modelIdentite->AdrNum = $item->adr_num;
$modelIdentite->AdrTypeVoie = $item->adr_typeVoie;
$modelIdentite->AdrLibVoie = $item->adr_libVoie;
$modelIdentite->AdrComp = $item->adr_comp;
$modelIdentite->AdrCp = $item->adr_cp;
$modelIdentite->AdrVille = $item->adr_ville;
}
$etablissement = new Etablissement();
$etablissement->Siret = $item->siren.$item->nic;
$etablissement->Siege = $item->siege;
$itemEtabRncsResult = null;
try {
$itemEtabRncsSql = $db->select()
->from('rncs_etab', array(
'LPAD(siren,9,0) AS siren',
'LPAD(nic,5,0) AS nic',
'siege',
'enseigne',
'nomCommercial',
'naf',
), 'jo')
->where('siren=?', $item->siren)
->where('nic=?', $item->nic);
$itemEtabRncsResult = $db->fetchRow($itemEtabRncsSql);
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', __LINE__ . ' : ' . $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
if ($itemEtabRncsResult)
{
$etablissement->Siret = $itemEtabRncsResult->siren.$itemEtabRncsResult->nic;
$etablissement->Ape = $itemEtabRncsResult->naf;
$etablissement->Siege = $itemEtabRncsResult->siege;
$etablissement->NomCommercial = $itemEtabRncsResult->nomCommercial;
$etablissement->Enseigne = $itemEtabRncsResult->enseigne;
}
$etablissement->AdrNum = $item->adr_num;
$etablissement->AdrTypeVoie = $item->adr_typeVoie;
$etablissement->AdrLibVoie = $item->adr_libVoie;
$etablissement->AdrComp = $item->adr_comp;
$etablissement->AdrCp = $item->adr_cp;
$etablissement->AdrVille = $item->adr_ville;
$mTel = new MTel();
$telephones = $mTel->getTel($item->siren, $item->nic, true, 1);
if ($telephones > 0)
{
$etablissement->Telephone = $telephones[0]['telephone'];
}
$modelEtablissements[] = $etablissement;
}
}
//Dirigeants actifs
try {
$dirigeantSql = $db->select()->from('rncs_dirigeants',
array(
'dirRS',
'nom',
'prenom',
'naissance_nom',
'fonction_code',
'fonction_lib'
), 'jo')
->where('siren=?', $siren)->where('actif%10=1');
$dirigeantResult = $db->fetchAll($dirigeantSql);
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', __LINE__ . ' : ' . $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
$modelDirigeants = array();
if (count($dirigeantResult) > 0)
{
foreach ($dirigeantResult as $item)
{
$dirigeant = new Dirigeant();
$dirigeant->RaisonSociale = $item->dirRS;
$dirigeant->Nom = $item->nom;
$dirigeant->Prenom = $item->prenom;
$dirigeant->NomNaissance = $item->naissance_nom;
$dirigeant->FonctionCode = $item->fonction_code;
$dirigeant->FonctionLib = $item->fonction_lib;
$modelDirigeants[] = $dirigeant;
}
}
//Return
$modelIdentite->Etablissements = $modelEtablissements;
$modelIdentite->Dirigeants = $modelDirigeants;
$this->wsLog('identite', $siren);
return $modelIdentite;
}
}

View File

@ -1,173 +0,0 @@
<?php
require_once __DIR__ . '/Types.php';
require_once 'framework/fwk.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/scores/classMScores.php';
require_once 'Metier/partenaires/classMRnvp.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Rrg';
$this->serviceName = 'Entreprise';
}
/**
* Méthode spécifique
* @param string $siren
* @return Infos
*/
public function getData($siren)
{
$this->authenticate();
// --- Vérification du siren
if ( strlen($siren) != 9 ) {
$this->sendError('1010');
}
$classInsee = new MInsee();
// --- Vérifier SIREN valide
if( !$classInsee->valideSiren($siren) ) {
$this->sendError('1010');
}
// --- Vérifier SIREN existe
if ( !$classInsee->sirenExiste($siren) ) {
$this->sendError('1020');
}
// --- Evaluation
$evaluation = calculIndiScore($siren, 0, false, 1);
$db = Zend_Db_Table::getDefaultAdapter();
$sql = $db->select()
->from('etablissements', array('LPAD(source_id,10,0) AS source_id'), 'jo')
->where('siren=?', $evaluation['Siren'])->where('nic=?', $evaluation['Nic']);
$etablissement = $db->fetchRow($sql, null, Zend_Db::FETCH_OBJ);
$Infos = new Infos();
$Infos->SourceId = $etablissement->source_id;
$Infos->Siren = $evaluation['Siren'];
$Infos->Nic = $evaluation['Nic'];
$Infos->Nom = $evaluation['Nom'];
$Infos->Sigle = $evaluation['Sigle'];
$Infos->Enseigne = $evaluation['Enseigne'];
$Infos->FJ = $evaluation['FJ'];
if ( $evaluation['DateCreaEt'] > 0 && $evaluation['DateCreaEt'] < $evaluation['DateCreaEn'] ) {
$DateCreaEn = $evaluation['DateCreaEt'];
} elseif ( $evaluation['DateCreaEn'] > 0 ) {
$DateCreaEn = $evaluation['DateCreaEn'];
}
if ( !empty($DateCreaEn) ) {
if (substr($DateCreaEn, -2) * 1 == 0) {
$Infos->DateCreaEn = substr($DateCreaEn,0,6).'01';
} else {
$Infos->DateCreaEn = $DateCreaEn;
}
}
$Infos->AdresseNum = str_pad($evaluation['AdresseNum'], 5, 0, STR_PAD_LEFT);
$Infos->AdresseBtq = $evaluation['AdresseBtq'];
$Infos->AdresseVoie = $evaluation['AdresseVoie'];
if ($evaluation['AdresseRue'] != '') {
$Infos->AdresseVoie.= ' '.$evaluation['AdresseRue'];
}
$Infos->CP = $evaluation['CP'];
$Infos->AdresseVille = $evaluation['Ville'];
try {
$sql = $db->select()->from('identite', array(
'insL1_NOMEN',
'insL2_COMP',
'insL3_CADR',
'insL4_VOIE',
'insL5_DISP',
'insL6_POST',
), 'insee')->where('SIREN=?', $Infos->Siren)->where('NIC=?', $Infos->Nic);
$inseeLResult = $db->fetchRow($sql, null, Zend_Db::FETCH_OBJ);
} catch (Zend_Db_Exception $e) {
}
if ($inseeLResult !== null) {
$rnvp = new MRnvp();
$rnvpResult = $rnvp->normaliseAdresse(
$inseeLResult->insL1_NOMEN,
$inseeLResult->insL2_COMP,
$inseeLResult->insL3_CADR,
$inseeLResult->insL4_VOIE,
$inseeLResult->insL5_DISP,
$inseeLResult->insL6_POST
);
}
if (is_array($rnvpResult) && array_key_exists('HexaViaMat', $rnvpResult)) {
$Infos->AdresseComplement = $rnvpResult['L3'];
$Infos->AdresseDistributionSpecial = $rnvpResult['L5'];
$Infos->AdresseComplementPostal = $rnvpResult['L6'];
$Infos->AdresseHexaviaMatricule = $rnvpResult['HexaViaMat'];
}
$Infos->PaiementCS = $evaluation['cs'];
$PaiementInfo = '';
if ( in_array($PaiementCS, array('0', 'I', 'P', 'D')) ) {
$iFacto = new MFacto();
$info = $iFacto->getLibInfoCS($PaiementCS);
$PaiementInfo = $info['LibCS'];
}
$Infos->PaiementInfo = $PaiementInfo;
if ($evaluation['NbBilansScore'] > 0)
{
$bilan = $evaluation['tabBilan'][0];
$Infos->BilanCA = $bilan['FL'];
$Infos->BilanDateCloture = $bilan['DATE_CLOTURE'];
$Infos->BilanDuree = $bilan['DUREE_MOIS'];
$Infos->BilanUnite = $bilan['MONNAIE_LIV_UNITE'];
$Infos->BilanDevise = $bilan['MONNAIE'];
}
$Infos->Indiscore = $evaluation['Indiscore20'];
$Infos->Encours = round($evaluation['encours']/1000) * 1000;
// --- Ajouter en surveillance
$survM = new Application_Model_JoSurveillancesSite();
try {
$sql = $survM->select()->where('login=?', $this->User->login)->where('siren=', $Infos->Siren);
$survExist = $survM->fetchRow($sql);
} catch (Zend_Db_Exception $e) {}
if ( empty($survExist) ) {
$data = array(
'source' => 'score',
'login' => $this->User->login,
'email' => '',
'siren' => $Infos->Siren,
'nic' => $Infos->Nic,
'ref' => $Infos->SourceId,
'encoursClient' => 0,
'rs' => $Infos->Nom,
'cp' => $Infos->CP,
'ville' => $Infos->AdresseVille,
'dateAjout' => date('Y-m-d'),
'dateSuppr' => 0,
);
try {
$survM->insert($data);
} catch (Zend_Db_Exception $e) {}
}
// --- Fin ajout surveillance
$this->wsLog('identite', $siren);
return $Infos;
}
}

View File

@ -1,71 +0,0 @@
<?php
require_once 'framework/fwk.php';
require_once 'framework/mail/sendMail.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/insee/classMSirene.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once __DIR__ . '/Types.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Sfr';
$this->serviceName = 'Entreprise';
}
/**
* Evaluation
* @param string $siren
* Identifiant de l'entreprise (9 chiffres)
* @return Evaluation
*/
public function getEvaluate($siren)
{
$this->authenticate();
if ( strlen($siren) != 9 ) {
$this->sendError('1010');
}
require_once 'Metier/insee/classMInsee.php';
$classInsee = new MInsee();
//Vérifier SIREN valide
if( !$classInsee->valideSiren($siren) ) {
$this->sendError('1010');
}
//Vérifier SIREN existe
if ( !$classInsee->sirenExiste($siren) ) {
$this->sendError('1020');
}
$sfrM = new SdMetier_Sfr_Scoring();
$sfrM->forceIdentite = true;
$sfrM->evaluate($siren);
//Calculate
$eval = new Evaluation();
$eval->indicateur = $sfrM->getIndicateur($value);
$eval->po = $sfrM->getPo();
$eval->comment = $sfrM->getComment();
$eval->dateScore = $sfrM->getDateCalculIndiscore();
$this->wsLog('indiscore', $siren);
return $eval;
}
}

View File

@ -1,707 +0,0 @@
<?php
require_once 'framework/fwk.php';
require_once 'framework/mail/sendMail.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/insee/classMSirene.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once __DIR__ . '/Types.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Veolia';
$this->serviceName = 'Entreprise';
}
/**
* 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;
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, false);
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
if (empty($entrep) || empty($entrep['id']) ) {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->sendError('1020');
}
// Adresse Normalisé
$adresse = $iInsee->getAdresse($siren, $nic);
$adresseNorme = new AdresseNorme();
$adresseNorme->L1 = $adresse['L1_NOM'];
$adresseNorme->L2 = $adresse['L2_NOM2'];
$adresseNorme->L3 = $adresse['L3_ADRCOMP'];
$adresseNorme->L4 = $adresse['L4_VOIE'];
$adresseNorme->L5 = $adresse['L5_DISTSP'];
$adresseNorme->L6 = $adresse['L6_POST'];
$adresseNorme->L7 = $adresse['L7_PAYS'];
//Formattage du retour
$identite = new Identite();
$identite->id = $entrep['id'];
$identite->Siret = $entrep['Siret'];
$identite->SiretSiege = $entrep['SiretSiege'];
$identite->Siege = $entrep['Siege'];
$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->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->AdresseNorme = $adresseNorme;
$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'];
$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->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
$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->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->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->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
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->wsLog('identite',$siret,$id);
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; }
$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 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 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->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;
}
/**
* 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;
}
}

View File

@ -1,790 +0,0 @@
<?php
require_once 'framework/fwk.php';
require_once 'framework/mail/sendMail.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/insee/classMSirene.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once __DIR__ . '/Types.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Veolia';
$this->serviceName = 'Entreprise';
}
/**
* 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;
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, false);
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
if (empty($entrep) || empty($entrep['id']) ) {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->sendError('1020');
}
// Adresse Normalisé
$adresse = $iInsee->getAdresse($siren, $nic);
$adresseNorme = new AdresseNorme();
$adresseNorme->L1 = $adresse['L1_NOM'];
$adresseNorme->L2 = $adresse['L2_NOM2'];
$adresseNorme->L3 = $adresse['L3_ADRCOMP'];
$adresseNorme->L4 = $adresse['L4_VOIE'];
$adresseNorme->L5 = $adresse['L5_DISTSP'];
$adresseNorme->L6 = $adresse['L6_POST'];
$adresseNorme->L7 = $adresse['L7_PAYS'];
//Formattage du retour
$identite = new Identite();
$identite->id = $entrep['id'];
$identite->Siret = $entrep['Siret'];
$identite->SiretSiege = $entrep['SiretSiege'];
$identite->Siege = $entrep['Siege'];
$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->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->AdresseNorme = $adresseNorme;
$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'];
$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->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
$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->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->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->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
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->wsLog('identite',$siret,$id);
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; }
$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 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 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->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;
}
/**
* 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;
}
/**
* 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, -1=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 (empty($actif)) { $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 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'];
// Adresse Normalisé
$adresse = $iInsee->getAdresse($siren, $etab['Nic']);
$adresseNorme = new AdresseNorme();
$adresseNorme->L1 = $adresse['L1_NOM'];
$adresseNorme->L2 = $adresse['L2_NOM2'];
$adresseNorme->L3 = $adresse['L3_ADRCOMP'];
$adresseNorme->L4 = $adresse['L4_VOIE'];
$adresseNorme->L5 = $adresse['L5_DISTSP'];
$adresseNorme->L6 = $adresse['L6_POST'];
$adresseNorme->L7 = $adresse['L7_PAYS'];
$etablissement->AdresseNorme = $adresseNorme;
$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;
}
}

View File

@ -1,620 +0,0 @@
<?php
require_once 'framework/fwk.php';
require_once 'framework/mail/sendMail.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/insee/classMSirene.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once __DIR__ . '/Types.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Vwbank';
$this->serviceName = 'Entreprise';
}
/**
* 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);
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__);
if (empty($entrep) || empty($entrep['id']) ) {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->sendError('1020');
}
$identite = new Identite();
$identite->id = $entrep['id'];
$identite->Siret = $entrep['Siret'];
$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'];
$identite->NbEtab = $entrep['NbEtab'];
$identite->TvaNumero = $entrep['TvaNumero'];
$identite->TvaAttribue = $entrep['TvaAttribue'];
$identite->FJ = $entrep['FJ'];
$identite->FJ_Lib = $entrep['FJ_lib'];
$identite->NafEtab = $entrep['NafEtab'];
$identite->NafEtabLib = $entrep['NafEtabLib'];
$identite->Effectif = $entrep['Effectif'];
$identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date
$identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date
$identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->wsLog('identite',$siret,$id);
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; }
$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 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 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->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;
}
/**
* 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
*/
protected 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;
}
}

View File

@ -1,806 +0,0 @@
<?php
require_once 'framework/fwk.php';
require_once 'framework/mail/sendMail.php';
require_once 'Metier/insee/classMInsee.php';
require_once 'Metier/insee/classMSirene.php';
require_once 'Metier/partenaires/classMBilans.php';
require_once 'Metier/partenaires/classMBourse.php';
require_once 'Metier/partenaires/classMTva.php';
require_once 'Metier/partenaires/classMMap.php';
require_once 'Metier/partenaires/classMGreffes.php';
require_once 'Metier/partenaires/classMPrivileges.php';
require_once 'Metier/scores/classMFinancier.php';
require_once 'Metier/scores/classMSolvabilite.php';
require_once __DIR__ . '/Types.php';
class Entreprise extends Scores_Ws_Server
{
public function __construct()
{
parent::__construct();
$this->serviceClient = true;
$this->serviceClientName = 'Vwbank';
$this->serviceName = 'Entreprise';
}
/**
* 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);
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, false);
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
if (empty($entrep) || empty($entrep['id']) ) {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->sendError('1020');
}
$identite = new Identite();
$identite->id = $entrep['id'];
$identite->Siret = $entrep['Siret'];
$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'];
$identite->NbEtab = $entrep['NbEtab'];
$identite->TvaNumero = $entrep['TvaNumero'];
$identite->TvaAttribue = $entrep['TvaAttribue'];
$identite->FJ = $entrep['FJ'];
$identite->FJ_Lib = $entrep['FJ_lib'];
$identite->NafEtab = $entrep['NafEtab'];
$identite->NafEtabLib = $entrep['NafEtabLib'];
$identite->Effectif = $entrep['Effectif'];
$identite->DateMajINSEE = $entrep['DateMajINSEE']; //@todo : date
$identite->DateMajRCS = $entrep['DateMajRCS']; //@todo : date
$identite->DateMajID = $entrep['dateMajIdentite']; //@todo : date
$identite->SituationJuridique = $entrep['SituationJuridique'];
$identite->Capital = $entrep['Capital'];
$identite->CapitalDev = $entrep['CapitalDev'];
$identite->CapitalLib = $entrep['CapitalLib'];
$identite->CapitalType = prepareString($entrep['CapitalType']);
$identite->DateCreaEn = WDate::dateT('Ymd','Y-m-d',$entrep['DateCreaEn']);
//Présence de privilèges
$identite->Privileges = false;
$nbPrivileges = 0;
$iPriv = new MPrivileges();
$ret = $iPriv->getPrivilegesDetail($siren);
$nbPrivileges = count($ret);
if ($nbPrivileges>0) {
$identite->Privileges = true;
} else {
$iDb = new WDB();
$sql = "SELECT count(*) AS nbPriv FROM sdv1.ge_cs2 WHERE cs = 'P' AND dateFin >= NOW() AND dateSuppr=0 AND siren=$siren;";
$ret = $iDb->query($sql);
if ($ret[0]['nbPriv']>0) {
$identite->Privileges = true;
}
}
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->wsLog('identite',$siret,$id);
return $identite;
}
/**
* 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 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->Siren = (array_key_exists('Siren', $dir) && intval($dir['Siren'])!=0) ? $dir['Siren'] : '' ;
$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;
}
/**
* 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,
$entCriteres->codePostal,
($entCriteres->actif==false) ? 2 : 1,
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;
} elseif ($typeId == 'S'){
$O = $this->searchSiren(
$identifiant,
$entCriteres->codePostal,
($entCriteres->actif==false) ? 2 : 1,
$entCriteres->siege,
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;
$output->info = $O->info;
return $output;
} elseif ($typeId == 'TEL'){
$O = $this->searchTelFax(
$entCriteres->telFax,
($entCriteres->actif==false) ? 2 : 1,
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,
($entCriteres->actif==false) ? 2 : 1,
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 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 $dep Département
* @param integer $actif 0 : Filtre sur les inactfis, 1: Filtre sur les actifs, 2 : Tous (defaut)
* @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, $dep=0, $actif=2, $deb=0, $nbRep=20, $maxRep=200)
{
$this->authenticate();
if (empty($deb)) $deb = 0;
if (empty($nbRep)) $nbRep = 0;
if (empty($maxRep)) $maxRep = 0;
if (empty($dep)) $dep = 0;
if (!in_array($actif, array(0,1,2))) $actif = 2;
$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 $identifiant avec 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, $actif);
$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, $dep, $actif, $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 $actif 0 : Filtre sur les inactfis, 1: Filtre sur les actifs, 2 : Tous (defaut)
* @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
*/
protected function searchTelFax($telFax, $actif=2, $deb=0, $nbRep=20, $maxRep=200)
{
$this->authenticate();
if (empty($deb)) $deb = 0;
if (empty($nbRep)) $nbRep = 0;
if (empty($maxRep)) $maxRep = 0;
if (!in_array($actif, array(0,1,2))) $actif = 2;
$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, 0, $actif);
$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 aux sièges (si true)
* @param integer $actif 0 : Filtre sur les inactfis, 1: Filtre sur les actifs, 2 : Tous (defaut)
* @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=2, $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 (!in_array($actif, array(0,1,2))) $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 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 $dep Département
* @param integer $actif 0 : Filtre sur les inactfis, 1: Filtre sur les actifs, 2 : Tous (defaut)
* @param integer $siege 1 : Filtre au siege, 0 : Filtre aux établissements
* @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 searchSiren($siret, $dep=0, $actif=2, $siege=null, $deb=0, $nbRep=20, $maxRep=200)
{
$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;
if (!in_array($actif, array(0,1,2))) $actif = 2;
if ( $actif==2 ) $actif = -1;
$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, $actif, $siege);
if ( count($rep['reponses'])==0 && $dep>0 ) {
$rep = $iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, 0, $actif, $siege);
}
$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'];
if (count($tabRet)==0)
{
if ($siege===null || $actif==2)
{
/** Si le siren est valide, on part chez Infogreffe **/
if ($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 = prepareString($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('jo.siren_inexistants', array(
'siren'=>$siren,
'nic'=>$nic,
'dep'=>$dep,
'login'=>$this->User->login,
'client'=>$this->User->idClient,
'dateInsert'=>date('YmdHis')));
$nbReponses = 0;
$nbReponsesTotal = 0;
$rep['info'] = 'Siren inexistant';
}
}
} else {
if ($iInsee->sirenExiste($siren) ) {
$info = 'Aucun ';
if ( $siege == 1 ) $info.= 'siege';
else $info.= 'etablissement';
if ( $actif == 0 ) $info.= ' inactif';
elseif ( $actif == 1) $info.= ' actif';
$rep['info'] = $info;
} else {
$rep['info'] = 'Siren inexistant';
}
}
}
$output = new SearchReturn();
$output->nbReponses = $nbReponses;
$output->nbReponsesTotal = $nbReponsesTotal;
$output->result = $tabRet;
$output->info = $rep['info'];
return $output;
}
/**
* Retourne les liens financiers pour une entreprise.
* @param string $siren Siren de l'entreprise
* @return Actionnaire[]
*/
public function getLiens($siren)
{
$this->authenticate();
//Initialisation
$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');
}
//Actionnaires
require_once 'Metier/partenaires/classMLiens2.php';
$mLiens = new MLiens2($siren, 'siren');
$tabA = $mLiens->getActionnaires(null, $actifsUniquement);
$nbA = count($tabA);
$tabAct = array();
if ($nbA > 0) {
foreach ($tabA as $i => $lien) {
$sirenLien = str_pad($lien->siren, 9, "0", STR_PAD_LEFT);
$actionnaire = new Actionnaire();
$actionnaire->Pmin = $lien->PDetention;
$actionnaire->MajMin = $lien->MajMin;
$actionnaire->RaisonSociale = $lien->RS;
if ($lien->PpPm=='PP') {
$actionnaire->RaisonSociale = $lien->civilite.' '.$lien->nom.' '.$lien->prenom;
}
$actionnaire->TypeEntrep = $lien->PpPm;
$actionnaire->Pays = $lien->adresse_pays;
$actionnaire->Siren = $sirenLien;
$actionnaire->Actif = 1;
$actionnaire->DateLien = $lien->dateEffetLien;
if ($item->dateUpdate=='0000-00-00 00:00:00'){
$actionnaire->DateMaj = substr($lien->dateInsert,0,10);
} else {
$actionnaire->DateMaj = substr($lien->dateUpdate,0,10);
}
$actionnaire->Identite = new ActionnaireIdentite();
if ( intval($sirenLien)>1000 ) {
$iInsee = new MInsee();
$identite = $iInsee->getIdentiteLight($sirenLien);
$actionnaire->Identite->Adresse = $identite['Adresse'];
$actionnaire->Identite->Adresse2 = $identite['Adresse2'];
$actionnaire->Identite->AdresseNum = $identite['AdresseNum'];
$actionnaire->Identite->AdresseBtq = $identite['AdresseBtq'];
$actionnaire->Identite->AdresseVoie = $identite['AdresseVoie'];
$actionnaire->Identite->CP = $identite['CP'];
$actionnaire->Identite->Ville = $identite['Ville'];
$actionnaire->Identite->DateCreaEn = $identite['DateCreaEn'];
$actionnaire->Identite->DateImmat = $identite['DateImmat'];
$actionnaire->Identite->FJ = $identite['FJ'];
$actionnaire->Identite->FJ_Lib = $identite['FJ_Lib'];
}
$tabAct[] = $actionnaire;
}
}
$this->wsLog('liens',$siren);
return $tabAct;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,444 +0,0 @@
<?php
require_once __DIR__ . '/Types.php';
class Order extends Scores_Ws_Server
{
/**
* Financial account : Place an order to have number enter in database
* @param string $siren
* @param string $date
* @param string $type N:Normal, S:Simplifié, C:Consolidé
* @param string $source
* @param integer $private
* @throws SoapFault
* @return string
*/
public function setBilanInput($siren, $date, $type, $source, $private = 0)
{
$this->authenticate();
$this->permission('UPLOADBILAN');
//Check siren
$refCommande = uniqid();
$data = array(
'refCommande' => $refCommande,
'siren' => $siren,
'userId' => $this->User->id,
'bilanConfidentiel' => $private,
'bilanSource' => $source,
'bilanCloture' => $date,
'bilanType' => $type,
'dateInsert' => date('YmdHis'),
);
try {
$commandeM = new Application_Model_Sdv1OrderBilanInput();
$commandeM->insert($data);
return $refCommande;
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
}
/**
* Financial account : Tag file is sent
* @param string $ref
* @param string $filename
* @throws SoapFault
* @return boolean
*/
public function setBilanInputFile($ref, $filename)
{
$this->authenticate();
$this->permission('UPLOADBILAN');
$data = array(
'bilanFileSent' => date('YmdHis'),
'bilanFile' => $filename,
);
try {
$commandeM = new Application_Model_Sdv1OrderBilanInput();
$commandeM->update($data, 'refCommande="'.$ref.'"');
return true;
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient==1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return false;
}
/**
* Liste des commandes de saisie de bilan
* @param string $month
* @throws SoapFault
* @return BilanInput[]
*/
public function getBilanInputList($month = null)
{
$this->authenticate();
if ($month === null) {
$month = date('Y-m');
}
$dateStart = $month.'-01 00:00:00';
$dateEnd = $month.'-31 23:59:59';
$list = array();
try {
$commandeM = new Application_Model_Sdv1OrderBilanInput();
$sql = $commandeM->select()->where('userId=?', $this->User->id)->order('dateInsert DESC');
$result = $commandeM->fetchAll($sql);
if (count($result) > 0) {
foreach($result as $item) {
$cmd = new BilanInput();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Siren = $item->siren;
$cmd->BilanFileRecv = $item->bilanFileRecv;
$cmd->BilanCloture = $item->bilanCloture;
$cmd->BilanType = $item->bilanType;
$cmd->ErreurDate = $item->erreurDate;
$cmd->ErreurLabel = $item->erreurTxt;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateSaisie = $item->dateSaisie;
$list[] = $cmd;
}
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return $list;
}
/**
* Détail d'un bilan en commande saisie
* @param string $ref
* @throws SoapFault
* @return BilanInput|NULL
*/
protected function getBilanInputDetail($ref)
{
$this->authenticate();
try {
$commandeM = new Application_Model_Sdv1OrderBilanInput();
$sql = $commandeM->select()->where('userId=?', $this->User->id)->where('refCommande=?', $ref);
$item = $commandeM->fetchRow($sql);
if ($item !== null) {
$cmd = new BilanInput();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Siren = $item->siren;
$cmd->BilanFileRecv = $item->bilanFileRecv;
$cmd->BilanCloture = $item->bilanCloture;
$cmd->BilanType = $item->bilanType;
$cmd->ErreurDate = $item->erreurDate;
$cmd->ErreurLabel = $item->erreurTxt;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateSaisie = $item->dateSaisie;
return $cmd;
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return null;
}
/**
* Liste des commandes KBIS
* @param string $month
* @throws SoapFault
* @return PieceKbis[]
*/
public function getKbisList($month = null)
{
$this->authenticate();
if ($month === null) {
$month = date('Y-m');
}
$dateStart = $month.'-01 00:00:00';
$dateEnd = $month.'-31 23:59:59';
$list = array();
try {
$commandeM = new Application_Model_Sdv1GreffeCommandesKb();
$sql = $commandeM->select()->where('login=?', $this->User->login)->order('dateInsert DESC');
$result = $commandeM->fetchAll($sql);
if (count($result) > 0) {
foreach($result as $item) {
$cmd = new PieceKbis();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Mode = $item->mode;
$cmd->Error = $item->cmdError;
$cmd->CompanyName = $item->raisonSociale;
$cmd->CompanySiren = $item->siren;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateEnvoi = $item->dateEnvoi;
$list[] = $cmd;
}
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return $list;
}
/**
* Detail de la commande d'un KBIS
* @param unknown $ref
* @throws SoapFault
* @return BilanInput|NULL
*/
protected function getKbisDetail($ref)
{
$this->authenticate();
try {
$commandeM = new Application_Model_Sdv1GreffeCommandesKb();
$sql = $commandeM->select()->where('login=?', $this->User->login)->where('refCommande=?', $ref);
$item = $commandeM->fetchRow($sql);
if ($item !== null) {
$cmd = new BilanInput();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Mode = $item->mode;
$cmd->Error = $item->cmdError;
$cmd->CompanyName = $item->raisonSociale;
$cmd->CompanySiren = $item->siren;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateEnvoi = $item->dateEnvoi;
return $cmd;
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return null;
}
protected function getKbisFile($ref)
{
$this->authenticate();
// --- Paramètres
$hostname = 'http://'.$_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT']!='80'){
$hostname.= ':'.$_SERVER['SERVER_PORT'];
}
$c = Zend_Registry::get('config');
$path = realpath($c->profil->path->secure).'/kbis';
$file = null;
// --- Lecture des informations de la commande
try {
$commandeM = new Application_Model_Sdv1GreffeCommandesKb();
$sql = $commandeM->select()->where('login=?', $this->User->login)->where('refCommande=?', $ref);
$item = $commandeM->fetchRow($sql);
if ($item !== null) {
$cmd = new BilanInput();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Mode = $item->mode;
$cmd->Error = $item->cmdError;
$cmd->CompanyName = $item->raisonSociale;
$cmd->CompanySiren = $item->siren;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateEnvoi = $item->dateEnvoi;
return $cmd;
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
}
/**
* Liste des commandes d'acte infogreffe
* @param string $month
* @throws SoapFault
* @return Acte[]
*/
public function getActeList($month = null)
{
$this->authenticate();
if ($month === null) {
$month = date('Y-m');
}
$dateStart = $month.'-01 00:00:00';
$dateEnd = $month.'-31 23:59:59';
$list = array();
try {
$commandeM = new Application_Model_Sdv1GreffeCommandesAc();
$sql = $commandeM->select()->where('login=?', $this->User->login)->order('dateInsert DESC');
$result = $commandeM->fetchAll($sql);
if (count($result) > 0) {
foreach($result as $item) {
$cmd = new Acte();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Mode = $item->mode;
$cmd->Error = $item->cmdError;
$cmd->DocLabel = ''; //@todo : Génére le libellé du document
$cmd->DocDepotNum = $item->depotNum;
$cmd->DocDepotDate = $item->depotDate;
$cmd->DocActeNum = $item->acteNum;
$cmd->DocActeType = $item->acteType;
$cmd->DocActeDate = $item->acteDate;
$cmd->CompanyName = $item->raisonSociale;
$cmd->CompanySiren = $item->siren;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateEnvoi = $item->dateEnvoi;
$list[] = $cmd;
}
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return $list;
}
protected function getActeDetail($ref){}
protected function getActeFile($ref){}
/**
* Liste des commandes de bilan infogreffe
* @param string $month
* @throws SoapFault
* @return Bilan[]
*/
public function getBilanList($month = null)
{
$this->authenticate();
if ($month === null) {
$month = date('Y-m');
}
$dateStart = $month.'-01 00:00:00';
$dateEnd = $month.'-31 23:59:59';
$list = array();
try {
$commandeM = new Application_Model_Sdv1GreffeCommandesBi();
$sql = $commandeM->select()->where('login=?', $this->User->login)->order('dateInsert DESC');
$result = $commandeM->fetchAll($sql);
if (count($result) > 0) {
foreach($result as $item) {
$cmd = new Bilan();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Mode = $item->mode;
$cmd->Error = $item->cmdError;
$cmd->DocBilanCloture = $item->bilanCloture;
$cmd->DocBilanType = $item->bilanType;
$cmd->CompanyName = $item->raisonSociale;
$cmd->CompanySiren = $item->siren;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateEnvoi = $item->dateEnvoi;
$list[] = $cmd;
}
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return $list;
}
/**
* Détail de la commande de bilan Infogreffe
* @param unknown $ref
* @throws SoapFault
* @return BilanInput|NULL
*/
protected function getBilanDetail($ref)
{
$this->authenticate();
try {
$commandeM = new Application_Model_Sdv1GreffeCommandesKb();
$sql = $commandeM->select()->where('login=?', $this->User->login)->where('refCommande=?', $ref);
$item = $commandeM->fetchRow($sql);
if ($item !== null) {
$cmd = new BilanInput();
$cmd->Reference = strtoupper($item->refCommande);
$cmd->Mode = $item->mode;
$cmd->Error = $item->cmdError;
$cmd->DocBilanCloture = $item->bilanCloture;
$cmd->DocBilanType = $item->bilanType;
$cmd->CompanyName = $item->raisonSociale;
$cmd->CompanySiren = $item->siren;
$cmd->DateInsert = $item->dateInsert;
$cmd->DateEnvoi = $item->dateEnvoi;
return $cmd;
}
} catch (Zend_Db_Exception $e) {
if ($this->User->idClient == 1) {
throw new SoapFault('ERR', $e->getMessage());
} else {
throw new SoapFault('ERR', "Application error");
}
}
return null;
}
protected function getBilanFile($ref){}
protected function setInvestigation()
{
$this->authenticate();
$this->permission('enquetec');
//Table pour le stockage des demandes d'investigation
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -55,20 +55,20 @@ class Source extends Scores_Ws_Server
}
// --- Mathematic control
require_once 'Metier/partenaires/classMBilansInput.php';
$control = new MBilansInput();
try {
$control->control($data->typeBilan, $tabPostes);
} catch (Exception $e) {
//@todo : Liste des postes en erreur
throw new SoapFault('ERR', $e->getMessage());
}
// --- End of Mathematic control
// --- Insertion dans la bdd
@ -195,5 +195,5 @@ class Source extends Scores_Ws_Server
return $id;
}
}