2241 lines
84 KiB
PHP
2241 lines
84 KiB
PHP
<?php
|
|
require_once realpath(dirname(__FILE__)).'/functions.php';
|
|
require_once realpath(dirname(__FILE__)).'/Types/EntrepriseTypes.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/classMLiens.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 'Metier/tmp/configMRatios.php';
|
|
|
|
require_once 'framework/mail/sendMail.php';
|
|
|
|
class WsEntreprise
|
|
{
|
|
protected $wsdl = null;
|
|
protected $wsdlOptions = array();
|
|
protected $iInsee;
|
|
protected $iDbCrm;
|
|
protected $tabInfoUser;
|
|
|
|
function __construct()
|
|
{
|
|
$webservicesConfig = Zend_Registry::get('webservicesConfig')->webservice->scores;
|
|
$wsdl = !empty($webservicesConfig->wsdl) ? $webservicesConfig->wsdl : null ;
|
|
$options = array();
|
|
foreach ($webservicesConfig->options as $optionName => $optionValue){
|
|
$options[$optionName] = $optionValue;
|
|
}
|
|
$options['login'] = $_SERVER['PHP_AUTH_USER'];
|
|
$options['password'] = $_SERVER['PHP_AUTH_PW'];
|
|
$this->wsdl = $wsdl;
|
|
$this->wsdlOptions = $options;
|
|
|
|
$this->iInsee = new MInsee();
|
|
$this->iDbCrm = new WDB('sdv1');
|
|
}
|
|
|
|
/**
|
|
* 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
|
|
* @param boolean $forceVerif
|
|
* @return IdentiteReturn
|
|
*/
|
|
public function getIdentite($siret, $id = 0, $forceVerif = false)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($id)) { $id = 0; }
|
|
if (empty($forceVerif)) { $forceVerif = false; }
|
|
|
|
$outputParams = new IdentiteReturn();
|
|
$error = new ErrorType();
|
|
$result = new IdentiteResult();
|
|
|
|
$tdeb = microtime(1);
|
|
$ligne = date('YmdHis').";$siret;Ws->getIdentite Avant ...";
|
|
$fp = fopen(LOG_PATH.'/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
|
|
debugLog('I',"Identités demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet = array();
|
|
$siret = trim($siret);
|
|
$len = strlen($siret);
|
|
$siren = substr($siret,0,9);
|
|
if ($len == 14)
|
|
{
|
|
$nic = substr($siret,9,5)*1;
|
|
}
|
|
elseif ($len == 9)
|
|
{
|
|
$nic = 0;
|
|
}
|
|
elseif ($siren*1==0 && $id==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($len!=14 || $len!=9)
|
|
{
|
|
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren Siret inexistant';
|
|
}
|
|
else
|
|
{
|
|
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$entrep = $this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
|
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$duree = round(microtime(1)-$tdeb,3);
|
|
$ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)";
|
|
$fp = fopen(LOG_PATH.'/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
if (empty($entrep)) {
|
|
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$iBourse = new MBourse($siren);
|
|
$bourse = $iBourse->getInfosBourse($siren);
|
|
|
|
$tabRet = array(
|
|
'id' =>$entrep['id'],
|
|
'Siret' =>$entrep['Siret'],
|
|
'SiretSiege' =>$entrep['SiretSiege'],
|
|
'Siege' =>$entrep['Siege'],
|
|
'TribunalCode' =>$entrep['Tribunal'],
|
|
'TribunalLib' =>$entrep['TribunalLib'],
|
|
//'NumGreffe' =>$entrep['numGreffe'], // Ajouté le 4 08 2009
|
|
'NumRC' =>$entrep['numRC'], // Ajouté le 4 08 2009
|
|
'Actif' =>$entrep['Actif'],
|
|
'EntActiveRCS' =>$entrep['EntActiveRCS'],
|
|
'AutreId' =>$entrep['AutreId'],
|
|
'Source' =>$entrep['Source'],
|
|
'SourceId' =>$entrep['SourceId'],
|
|
'Isin' =>$entrep['Isin'],
|
|
'Nom' =>strtr($entrep['Nom'],'/*',' '),
|
|
'Nom2' =>$entrep['Nom2'],
|
|
'NomLong' =>$entrep['nomLong'], // Ajouté le 4 08 2009
|
|
'Siret' =>$entrep['Siret'],
|
|
'Sigle' =>$entrep['Sigle'],
|
|
'SigleLong' =>$entrep['sigleLong'], // Ajouté le 4 08 2009
|
|
'Enseigne' =>$entrep['Enseigne'],
|
|
'Adresse' =>$entrep['Adresse'],
|
|
'Adresse2' =>$entrep['Adresse2'],
|
|
'AdresseNum' =>$entrep['AdresseNum'],
|
|
'AdresseBtq' =>$entrep['AdresseBtq'],
|
|
'AdresseVoie' =>$entrep['AdresseVoie'],
|
|
'AdresseRue' =>$entrep['AdresseRue'],
|
|
'CP' =>$entrep['CP'],
|
|
'Ville' =>$entrep['Ville'],
|
|
'Pays' =>$entrep['Pays'], // Ajouté le 18 02 2008
|
|
'PaysIso2' =>$entrep['PaysIso2'],
|
|
|
|
'AdresseDom' =>$entrep['AdresseDom'],
|
|
'AdresseDomEnt' =>$entrep['AdresseDomEnt'],
|
|
'AdresseDomNb' =>$entrep['AdresseDomNb'],
|
|
|
|
'Civilite' =>$entrep['Civilite'],
|
|
'NbEtab' =>$entrep['NbEtab'],
|
|
'Tel' =>$entrep['Tel'],
|
|
'Fax' =>$entrep['Fax'],
|
|
'Web' =>$entrep['Web'],
|
|
'Mail' =>$entrep['Mail'],
|
|
'GeoLat' =>$entrep['GeoLat'],
|
|
'GeoLon' =>$entrep['GeoLon'],
|
|
'GeoPrecis' =>$entrep['GeoPrecis'],
|
|
'GeoInfos' =>$entrep['GeoInfos'],
|
|
'TvaNumero' =>$entrep['TvaNumero'],
|
|
'TvaAttribue' =>$entrep['TvaAttribue'],
|
|
'FJ' =>$entrep['FJ'],
|
|
'FJ_lib' =>$entrep['FJ_lib'],
|
|
'FJ2' =>$entrep['FJ2'], // Ajouté le 4 08 2009
|
|
'FJ2_Lib' =>$entrep['FJ2_Lib'], // Ajouté le 4 08 2009
|
|
'Siren' =>$entrep['Siren'],
|
|
'Nic' =>$entrep['Nic'],
|
|
'NafEnt' =>$entrep['NafEnt'],
|
|
'NafEntLib' =>$entrep['NafEntLib'],
|
|
'NafEtab' =>$entrep['NafEtab'],
|
|
'NafEtabLib' =>$entrep['NafEtabLib'],
|
|
'NaceEtab' =>$entrep['NaceEtab'],
|
|
'NaceEnt' =>$entrep['NaceEnt'],
|
|
'Nafa' =>$entrep['APRM'],
|
|
'NafaLib' =>$entrep['APRM_Lib'],
|
|
'NumRM' =>$entrep['NumRM'],
|
|
'Activite' =>$entrep['Activite'],
|
|
'Capital' =>$entrep['Capital'],
|
|
'CapitalDev' =>$entrep['CapitalDev'],
|
|
'CapitalLib' =>$entrep['CapitalLib'], // Ajouté le 18 02 2008
|
|
'CapitalType' =>$entrep['CapitalType'],// Ajouté le 4 08 2009
|
|
'DateCreaEt' =>$entrep['DateCreaEt'],
|
|
'DateCreaEn' =>$entrep['DateCreaEn'],
|
|
'DateClotEt' =>$entrep['DateClotEt'],
|
|
'DateImmat' =>$entrep['dateImmat'], // Ajouté le 4 08 2009
|
|
'DateRadiation' =>$entrep['dateRad'], // Ajouté le 4 08 2009
|
|
// 'DateMajRCS' =>$entrep['DateMajRCS'], // Ajouté le 4 08 2009
|
|
'EffEnTr' =>$entrep['EffEnTr'],
|
|
'EffEnTrLib' =>$entrep['EffEnTrLib'],
|
|
'Effectif' =>$entrep['Effectif'],
|
|
|
|
'EffEtTr' =>$entrep['EffEtTr'], // Ajout le 11 08 2010
|
|
'EffEtTrLib' =>$entrep['EffEtTrLib'], // Ajout le 11 08 2010
|
|
'EffectifEtab' =>$entrep['EffectifEtab'],// Ajout le 11 08 2010
|
|
|
|
'Dept' =>$entrep['Dept'],
|
|
'codeCommune' =>$entrep['codeCommune'],
|
|
|
|
'AnneeEffEn' =>$entrep['AnneeEffEn'],
|
|
'AnneeEffEt' =>$entrep['AnneeEffEt'],
|
|
'AnneeTCA' =>$entrep['AnneeTCA'],
|
|
|
|
'TrancheCA' =>$entrep['TrancheCA'],
|
|
'TrancheCALib' =>$entrep['TrancheCALib'],
|
|
'dir1Code' =>$entrep['dir1Code'],
|
|
'dir1Titre' =>$entrep['dir1Titre'],//utf8
|
|
'dir1NomPrenom' =>$entrep['dir1NomPrenom'],
|
|
'dir1DateFct' =>$entrep['dir1DateFct'],
|
|
'dir1DateNaiss' =>$entrep['dir1DateNaiss'],// Ajouté le 4 08 2009
|
|
'dir1LieuNaiss' =>$entrep['dir1LieuNaiss'],// Ajouté le 4 08 2009
|
|
'dir2Code' =>$entrep['dir2Code'],
|
|
'dir2Titre' =>$entrep['dir2Titre'],//utf8
|
|
'dir2NomPrenom' =>$entrep['dir2NomPrenom'],
|
|
'dir2DateFct' =>$entrep['dir2DateFct'],
|
|
'dir2DateNaiss' =>$entrep['dir2DateNaiss'],// Ajouté le 4 08 2009
|
|
'dir2LieuNaiss' =>$entrep['dir2LieuNaiss'],// Ajouté le 4 08 2009
|
|
'Rivoli' =>$entrep['Rivoli'],
|
|
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
|
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
|
'TypeExploitation' =>$entrep['TypeExploitation'],
|
|
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
|
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
|
'SituationJuridique'=>$entrep['SituationJuridique'],
|
|
'Bilan' =>array(
|
|
'Cloture' => $entrep['bilanDate'],
|
|
'Duree' => $entrep['bilanMois'],
|
|
'Devise' => $entrep['bilanDevise'],
|
|
'Capital' => $entrep['bilanDA'],
|
|
'CA' => $entrep['bilanFL'],
|
|
'Resultat' => $entrep['bilanHN'],
|
|
'Effectif' => $entrep['bilanYP'],
|
|
),
|
|
'Bourse' =>array(
|
|
'placeCotation'=>$bourse['placeCotation'],
|
|
'nombreTitres'=>$bourse['nombreTitres'],
|
|
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
|
'derCoursDate'=>$bourse['date'],
|
|
'derCoursCloture'=>$bourse['close']
|
|
),
|
|
'AutreSiren' =>$entrep['AutreSiren'],
|
|
'DateMajINSEE' =>$entrep['DateMajINSEE'],
|
|
'DateMajRCS' =>$entrep['DateMajRCS'],
|
|
'DateMajBILAN' =>$entrep['bilanDateMaj'],
|
|
'DateMajANN' =>$entrep['dateMajANN'],
|
|
'DateMajID' =>$entrep['dateMajIdentite'],
|
|
//'importExport' =>$entrep['importExport'],
|
|
);
|
|
|
|
if (preg_match('/NAF4/i', $this->tabInfoUser['pref']))
|
|
{
|
|
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
|
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
|
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
|
$tabRet['Naf4EntLib'] = $entrep2['apen4_lib'];
|
|
$tabRet['Naf4EtabLib'] = $entrep2['apet4_lib'];
|
|
}
|
|
|
|
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('identite',$siret,$id);
|
|
$duree=round(microtime(1)-$tdeb,3);
|
|
$ligne=date('YmdHis').";$siret;Ws->getIdentite APRES ($duree s) !!!";
|
|
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
|
|
$result = arrayToClass($tabRet, 'IdentiteResult');
|
|
$error->errnum = 0;
|
|
$error->errmsg = '';
|
|
}
|
|
}
|
|
$outputParams->error = $error;
|
|
$outputParams->result = $result;
|
|
return $outputParams;
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
|
*
|
|
* @param string $siret Siren de l'entreprise ou siret de l'établissement
|
|
* @param integer $id Identifiant S&D de l'établissement
|
|
* @return IdentiteAGSReturn
|
|
*/
|
|
protected function getIdentiteAGS( $siret, $id = 0, $forceVerif = false )
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($id)) { $id = 0; }
|
|
if (empty($forceVerif)) { $forceVerif = false; }
|
|
$error = new ErrorType();
|
|
|
|
debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet = array();
|
|
$siret = trim($siret);
|
|
$len = strlen($siret);
|
|
$siren = substr($siret,0,9);
|
|
if ($len==14)
|
|
{
|
|
$nic=substr($siret,9,5)*1;
|
|
}
|
|
elseif ($len== 9)
|
|
{
|
|
$nic=0;
|
|
}
|
|
elseif ($siren*1==0 && $id==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($len!=14 || $len!=9)
|
|
{
|
|
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren Siret inexistant';
|
|
}
|
|
else
|
|
{
|
|
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$entrep = $this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
|
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$duree = round(microtime(1)-$tdeb,3);
|
|
$ligne = date('YmdHis').";$siret;Ws->getIdentite juste apres iInsee->... ($duree s)";
|
|
$fp = fopen(PATH_LOG.'/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
if (empty($entrep))
|
|
{
|
|
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$tabRet = array(
|
|
'id' =>$entrep['id'],
|
|
'Siret' =>$entrep['Siret'],
|
|
'SiretSiege' =>$entrep['SiretSiege'],
|
|
'Siege' =>$entrep['Siege'],
|
|
'TribunalCode' =>$entrep['Tribunal'],
|
|
'TribunalLib' =>$entrep['TribunalLib'],
|
|
//'NumGreffe' =>$entrep['numGreffe'], // Ajouté le 4 08 2009
|
|
'NumRC' =>$entrep['numRC'], // Ajouté le 4 08 2009
|
|
'Actif' =>$entrep['Actif'],
|
|
'EntActiveRCS' =>$entrep['EntActiveRCS'],
|
|
'AutreId' =>$entrep['AutreId'],
|
|
'Source' =>$entrep['Source'],
|
|
'SourceId' =>$entrep['SourceId'],
|
|
'Isin' =>$entrep['Isin'],
|
|
'Nom' =>strtr($entrep['Nom'],'/*',' '),
|
|
'Nom2' =>$entrep['Nom2'],
|
|
'NomLong' =>$entrep['nomLong'], // Ajouté le 4 08 2009
|
|
'Siret' =>$entrep['Siret'],
|
|
'Sigle' =>$entrep['Sigle'],
|
|
'SigleLong' =>$entrep['sigleLong'], // Ajouté le 4 08 2009
|
|
'Enseigne' =>$entrep['Enseigne'],
|
|
'Adresse' =>$entrep['Adresse'],
|
|
'Adresse2' =>$entrep['Adresse2'],
|
|
'AdresseNum' =>$entrep['AdresseNum'],
|
|
'AdresseBtq' =>$entrep['AdresseBtq'],
|
|
'AdresseVoie' =>$entrep['AdresseVoie'],
|
|
'AdresseRue' =>$entrep['AdresseRue'],
|
|
'CP' =>$entrep['CP'],
|
|
'Ville' =>$entrep['Ville'],
|
|
'Pays' =>$entrep['Pays'], // Ajouté le 18 02 2008
|
|
'PaysIso2' =>$entrep['PaysIso2'],
|
|
|
|
'AdresseDom' =>$entrep['AdresseDom'],
|
|
'AdresseDomEnt' =>$entrep['AdresseDomEnt'],
|
|
'AdresseDomNb' =>$entrep['AdresseDomNb'],
|
|
|
|
'Civilite' =>$entrep['Civilite'],
|
|
'NbEtab' =>$entrep['NbEtab'],
|
|
'Tel' =>$entrep['Tel'],
|
|
'Fax' =>$entrep['Fax'],
|
|
'Web' =>$entrep['Web'],
|
|
'Mail' =>$entrep['Mail'],
|
|
'GeoLat' =>$entrep['GeoLat'],
|
|
'GeoLon' =>$entrep['GeoLon'],
|
|
'GeoPrecis' =>$entrep['GeoPrecis'],
|
|
'GeoInfos' =>$entrep['GeoInfos'],
|
|
'TvaNumero' =>$entrep['TvaNumero'],
|
|
'TvaAttribue' =>$entrep['TvaAttribue'],
|
|
'FJ' =>$entrep['FJ'],
|
|
'FJ_lib' =>$entrep['FJ_lib'],
|
|
'FJ2' =>$entrep['FJ2'], // Ajouté le 4 08 2009
|
|
'FJ2_Lib' =>$entrep['FJ2_Lib'], // Ajouté le 4 08 2009
|
|
'Siren' =>$entrep['Siren'],
|
|
'Nic' =>$entrep['Nic'],
|
|
'NafEnt' =>$entrep['NafEnt'],
|
|
'NafEntLib' =>$entrep['NafEntLib'],
|
|
'NafEtab' =>$entrep['NafEtab'],
|
|
'NafEtabLib' =>$entrep['NafEtabLib'],
|
|
'NaceEtab' =>$entrep['NaceEtab'],
|
|
'NaceEnt' =>$entrep['NaceEnt'],
|
|
'Nafa' =>$entrep['APRM'],
|
|
'NafaLib' =>$entrep['APRM_Lib'],
|
|
'NumRM' =>$entrep['NumRM'],
|
|
'Activite' =>$entrep['Activite'],
|
|
'Capital' =>$entrep['Capital'],
|
|
'CapitalDev' =>$entrep['CapitalDev'],
|
|
'CapitalLib' =>$entrep['CapitalLib'], // Ajouté le 18 02 2008
|
|
'CapitalType' =>$entrep['CapitalType'],// Ajouté le 4 08 2009
|
|
'DateCreaEt' =>$entrep['DateCreaEt'],
|
|
'DateCreaEn' =>$entrep['DateCreaEn'],
|
|
'DateClotEt' =>$entrep['DateClotEt'],
|
|
'DateImmat' =>$entrep['dateImmat'], // Ajouté le 4 08 2009
|
|
'DateRadiation' =>$entrep['dateRad'], // Ajouté le 4 08 2009
|
|
// 'DateMajRCS' =>$entrep['DateMajRCS'], // Ajouté le 4 08 2009
|
|
'EffEnTr' =>$entrep['EffEnTr'],
|
|
'EffEnTrLib' =>$entrep['EffEnTrLib'],
|
|
'Effectif' =>$entrep['Effectif'],
|
|
|
|
'EffEtTr' =>$entrep['EffEtTr'], // Ajout le 11 08 2010
|
|
'EffEtTrLib' =>$entrep['EffEtTrLib'], // Ajout le 11 08 2010
|
|
'EffectifEtab' =>$entrep['EffectifEtab'],// Ajout le 11 08 2010
|
|
|
|
'Dept' =>$entrep['Dept'],
|
|
'codeCommune' =>$entrep['codeCommune'],
|
|
|
|
'AnneeEffEn' =>$entrep['AnneeEffEn'],
|
|
'AnneeEffEt' =>$entrep['AnneeEffEt'],
|
|
'AnneeTCA' =>$entrep['AnneeTCA'],
|
|
|
|
'TrancheCA' =>$entrep['TrancheCA'],
|
|
'TrancheCALib' =>$entrep['TrancheCALib'],
|
|
'dir1Code' =>$entrep['dir1Code'],
|
|
'dir1Titre' =>$entrep['dir1Titre'],//utf8
|
|
'dir1NomPrenom' =>$entrep['dir1NomPrenom'],
|
|
'dir1DateFct' =>$entrep['dir1DateFct'],
|
|
'dir1DateNaiss' =>$entrep['dir1DateNaiss'],// Ajouté le 4 08 2009
|
|
'dir1LieuNaiss' =>$entrep['dir1LieuNaiss'],// Ajouté le 4 08 2009
|
|
'dir2Code' =>$entrep['dir2Code'],
|
|
'dir2Titre' =>$entrep['dir2Titre'],//utf8
|
|
'dir2NomPrenom' =>$entrep['dir2NomPrenom'],
|
|
'dir2DateFct' =>$entrep['dir2DateFct'],
|
|
'dir2DateNaiss' =>$entrep['dir2DateNaiss'],// Ajouté le 4 08 2009
|
|
'dir2LieuNaiss' =>$entrep['dir2LieuNaiss'],// Ajouté le 4 08 2009
|
|
'Rivoli' =>$entrep['Rivoli'],
|
|
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
|
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
|
'TypeExploitation' =>$entrep['TypeExploitation'],
|
|
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
|
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
|
'SituationJuridique'=>$entrep['SituationJuridique'],
|
|
'Bilan' =>array(
|
|
'Cloture' => $entrep['bilanDate'],
|
|
'Duree' => $entrep['bilanMois'],
|
|
'Devise' => $entrep['bilanDevise'],
|
|
'Capital' => $entrep['bilanDA'],
|
|
'CA' => $entrep['bilanFL'],
|
|
'Resultat' => $entrep['bilanHN'],
|
|
'Effectif' => $entrep['bilanYP'],
|
|
),
|
|
'Bourse' =>$entrep['Bourse'],
|
|
'AutreSiren' =>$entrep['AutreSiren'],
|
|
'DateMajINSEE' =>$entrep['DateMajINSEE'],
|
|
'DateMajRCS' =>$entrep['DateMajRCS'],
|
|
'DateMajBILAN' =>$entrep['bilanDateMaj'],
|
|
'DateMajANN' =>$entrep['dateMajANN'],
|
|
'DateMajID' =>$entrep['dateMajIdentite'],
|
|
//'importExport' =>$entrep['importExport'],
|
|
);
|
|
|
|
//Annonces
|
|
$reponses = $this->getAnnonces($siren, 1, 0, 0, 200);
|
|
$anns = $reponses->result->liste;
|
|
$tabRetAnn = $tabLastEven = array();
|
|
$tribunalProcol = false;
|
|
foreach ($anns as $nb => $ann)
|
|
{
|
|
$tabRetEven=array();
|
|
|
|
foreach ($ann->evenements as $even)
|
|
{
|
|
// On ignore les éléments suivants
|
|
if ($even->CodeEven>=7000){
|
|
continue;
|
|
}
|
|
if ($even->CodeEven>=4000 &&
|
|
$even->CodeEven<=4999){
|
|
continue;
|
|
}
|
|
// Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol
|
|
if ($tribunalProcol==false &&
|
|
$even->CodeEven>=1000 &&
|
|
$even->CodeEven<2000 &&
|
|
$ann->BodaccCode=='BODA')
|
|
{
|
|
$tabRet['TribunalCode'] = $ann->TribunalCode;
|
|
$tabRet['TribunalLib'] = $ann->Tribunal;
|
|
$tribunalProcol=true;
|
|
}
|
|
// On ne prend que le dernier élément de chaque type
|
|
if (in_array($even->CodeEven, $tabLastEven))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$tabLastEven[] = $even->CodeEven;
|
|
|
|
$tabRetEven[] = array(
|
|
'CodeEven'=>$even->CodeEven,
|
|
'LibEven' =>$even->LibEven
|
|
);
|
|
}
|
|
if (count($tabRetEven)>0)
|
|
{
|
|
$tabRetAnn[] = array(
|
|
'id' => $ann->id,
|
|
'BodaccCode' => $ann->BodaccCode,
|
|
'BodaccNum' => $ann->BodaccNum,
|
|
'NumAnnonce' => $ann->NumAnnonce,
|
|
'DateParution' => $ann->DateParution,
|
|
'Departement' => $ann->Departement,
|
|
'Tribunal' => $ann->Tribunal,
|
|
'TribunalSiret' => $ann->TribunalSiret,
|
|
'Rubrique' => $ann->Rubrique,
|
|
'typeAnnonce' => $ann->typeAnnonce,
|
|
'texteRectificatif' => $ann->texteRectificatif,
|
|
'texteAnnonce' => $ann->texteAnnonce,
|
|
'dateEffet' => $ann->dateEffet,
|
|
'dateJugement' => $ann->dateJugement,
|
|
'dateInsertionSD' => $ann->dateInsertionSD,
|
|
'evenements' => $tabRetEven,
|
|
'Lien_Annonce_Pdf' => $ann->Lien_Annonce_Pdf
|
|
);
|
|
}
|
|
}
|
|
$tabRet['Annonces'] = $tabRetAnn;
|
|
|
|
//Identite Etab
|
|
$iRncs=new MRncs();
|
|
if ($entrep['Siege']==1 || $entrep['Siege']==11)
|
|
{
|
|
$tabRet['LibTypeEtab']='Etablissement Siege';
|
|
}
|
|
else
|
|
{
|
|
$tabEtabRncs = $iRncs->getIdentiteEtab($siren, $entrep['Nic']);
|
|
if ($tabEtabRncs['Siege']==2)
|
|
{
|
|
$tabRet['LibTypeEtab']='Etablissement Principal';
|
|
}
|
|
elseif ($tabEtabRncs['Siege']==1)
|
|
{
|
|
$tabRet['LibTypeEtab']='Etablissement Complementaire';
|
|
}
|
|
elseif ($tabEtabRncs['Siege']==0)
|
|
{
|
|
$tabRet['LibTypeEtab']='Etablissement Secondaire';
|
|
}
|
|
}
|
|
|
|
//Intervenants
|
|
$tabJuge=$iRncs->getIntervenants($siren);
|
|
$tabDepots=array();
|
|
foreach ($tabJuge as $iDepot=>$depot)
|
|
{
|
|
$tabDepots[]=array(
|
|
'codEven' => $depot['codEven'],
|
|
'libEven' => $depot['libEven'],
|
|
'dateEffet' => $depot['dateEffet'],
|
|
'admcode' => $depot['admcode'],
|
|
'admfonction' => $depot['admfonction'],
|
|
'admnom' => $depot['admnom'],
|
|
'admadrNum' => $depot['admadrNum'],
|
|
'admadrInd' => $depot['admadrInd'],
|
|
'admadrVoie' => $depot['admadrVoie'], // @todo : adm1adr1, adm1adr2, adm1adr3,
|
|
'admadrCP' => $depot['admadrCP'],
|
|
'admadrVille' => $depot['admadrVille'],
|
|
);
|
|
}
|
|
$tabRet['Organes'] = $tabDepots;
|
|
|
|
//Liens
|
|
$mLiens = new MLiens($siren);
|
|
$tabA = $mLiens->getActionnaires($siren, 1);
|
|
$nbA = count($tabA);
|
|
$tabAct = array();
|
|
if ($nbA > 0)
|
|
{
|
|
foreach ($tabA as $i => $lien)
|
|
{
|
|
$actionnaire = new Actionnaire();
|
|
$actionnaire->Pmin = $lien['Pmin'];
|
|
$actionnaire->MajMin = $lien['MajMin'];
|
|
$actionnaire->RaisonSociale = $lien['RaisonSociale'];
|
|
$actionnaire->Pays = $lien['Pays'];
|
|
$actionnaire->Siren = $lien['Siren'];
|
|
$actionnaire->Actif = $lien['Actif'];
|
|
$actionnaire->Source = $lien['Source'];
|
|
$actionnaire->DateLien = $lien['DateLien'];
|
|
$actionnaire->DateMaj = $lien['DateMaj'];
|
|
$tabAct[] = $actionnaire;
|
|
}
|
|
}
|
|
$tabRet['Actionnaires'] = $tabAct;
|
|
|
|
//Greffes
|
|
$iGreffes = new MGreffes();
|
|
$tabActes = $iGreffes->getListeActes($siren);
|
|
$tabRet['StatutsModifDepot'] = $tabRet['StatutsModif'] = '0000-00-00';
|
|
foreach ($tabActes as $i=>$acte)
|
|
{
|
|
if ('_'.$acte['acte_type']=='_04')
|
|
{ // STATUTS CONSTITUTIFS
|
|
$tabRet['StatutsConstDepot'] = $acte['depot_date'];// => 1997-12-18
|
|
$tabRet['StatutsConst'] = $acte['acte_date']; // => 1997-11-13
|
|
break;
|
|
}
|
|
elseif (in_array('_'.$acte['acte_type'],
|
|
array( //'_04', // STATUTS CONSTITUTIFS
|
|
'_06', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55
|
|
'_07', // STATUTS A JOUR 9 0000-00-00 2009-09-02 17:05:55
|
|
'_08', // STATUTS A JOUR ET DECLARATION DE CONFORMITE 9 0000-00-00 2009-09-02 17:05:55
|
|
'_09', // STATUTS APRES TRANSFERT DE SIEGE 9 0000-00-00 2009-09-02 17:05:55
|
|
'_A1', // STATUTS 9 0000-00-00 2009-09-02 17:05:55
|
|
'_AH', // AVENANT AUX STATUTS
|
|
))) {
|
|
// On ne prend que la dernière modif
|
|
if ($tabRet['StatutsModifDepot']=='0000-00-00' &&
|
|
$tabRet['StatutsModif']=='0000-00-00')
|
|
{
|
|
$tabRet['StatutsModifDepot'] = $acte['depot_date'];// => 1997-12-18
|
|
$tabRet['StatutsModif'] = $acte['acte_date']; // => 1997-11-13
|
|
}
|
|
}
|
|
}
|
|
|
|
/** Y a t il eu des informations relatives à une cession ? **/
|
|
$tabCes = $iGreffes->getInfosCessions($siren);
|
|
if ($tabCes)
|
|
{
|
|
$tabRet['CessionJugeLib'] = $tabCes['cessJuge'];
|
|
$tabRet['CessionJugeDate'] = $tabCes['cessDateJuge'];
|
|
$tabRet['CessionAvisBodac'] = $tabCes['cessDateBod'];
|
|
$tabRet['CessionInvenDate'] = $tabCes['cessDateInv'];
|
|
$tabRet['CessionCAdeclare'] = $tabCes['cessCAdec'];
|
|
$tabRet['CessionEffectif'] = $tabCes['cessEffectif'];
|
|
$tabRet['CessionDesc'] = $tabCes['cessDesc'];
|
|
$tabRet['CessionDescDate'] = $tabCes['cessDateDesc'];
|
|
$tabRet['CessionOffreDate'] = $tabCes['cessDateLim'];
|
|
$tabRet['CessionMandataire'] = $tabCes['cessMand'];
|
|
}
|
|
|
|
if (preg_match('/NAF4/i', $this->tabInfoUser['pref']))
|
|
{
|
|
$entrep2 = $this->iInsee->getNaf4($siren, $nic, $id);
|
|
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
|
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
|
$tabRet['Naf4EntLib'] = $entrep2['apen4_lib'];
|
|
$tabRet['Naf4EtabLib'] = $entrep2['apet4_lib'];
|
|
}
|
|
|
|
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('identite',$siret,$id);
|
|
}
|
|
}
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
|
}
|
|
|
|
/**
|
|
* Retourne les liens financiers pour une entreprise.
|
|
*
|
|
* @param integer $siren Siren de l'entreprise
|
|
* @param boolean $actifsUniquement Uniquement les liens Actifs
|
|
* @return LiensReturn
|
|
*/
|
|
public function getLiens($siren, $actifsUniquement = true)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($actifsUniquement)) { $actifsUniquement = true; }
|
|
$error = new ErrorType();
|
|
$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__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$mLiens = new MLiens($siren);
|
|
$tabA = $mLiens->getActionnaires($siren, $actifsUniquement);
|
|
$nbA = count($tabA);
|
|
$tabAct = array();
|
|
if ($nbA > 0)
|
|
{
|
|
foreach ($tabA as $i => $lien)
|
|
{
|
|
$actionnaire = new Actionnaire();
|
|
$actionnaire->Pmin = $lien['Pmin'];
|
|
$actionnaire->MajMin = $lien['MajMin'];
|
|
$actionnaire->RaisonSociale = $lien['RaisonSociale'];
|
|
$actionnaire->Pays = $lien['Pays'];
|
|
$actionnaire->Siren = $lien['Siren'];
|
|
$actionnaire->Actif = $lien['Actif'];
|
|
$actionnaire->Source = $lien['Source'];
|
|
$actionnaire->DateLien = $lien['DateLien'];
|
|
$actionnaire->DateMaj = $lien['DateMaj'];
|
|
$tabAct[] = $actionnaire;
|
|
}
|
|
}
|
|
debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$tabP = $mLiens->getParticipations($siren, $actifsUniquement);
|
|
$nbP = count($tabP);
|
|
$tabPar[] = array();
|
|
if ($nbP > 0)
|
|
{
|
|
foreach ($tabP as $i => $lien)
|
|
{
|
|
$participation = new Participation();
|
|
$participation->Pmin = $lien['Pmin'];
|
|
$participation->MajMin = $lien['MajMin'];
|
|
$participation->RaisonSociale = $lien['RaisonSociale'];
|
|
$participation->Pays = $lien['Pays'];
|
|
$participation->Siren = $lien['Siren'];
|
|
$participation->Actif = $lien['Actif'];
|
|
$participation->Source = $lien['Source'];
|
|
$participation->DateLien = $lien['DateLien'];
|
|
$participation->DateMaj = $lien['DateMaj'];
|
|
$tabPar[] = $participation;
|
|
}
|
|
}
|
|
debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('liens',$siren);
|
|
}
|
|
$result = new LiensResult();
|
|
$result->actionnaires = $tabAct;
|
|
$result->participations = $tabPar;
|
|
$output = new LiensReturn();
|
|
$output->error = $error;
|
|
$output->result = $result;
|
|
return $output;
|
|
}
|
|
|
|
|
|
/**
|
|
* Liste des établissements d'une entreprise
|
|
* @param string $siren Siren de l'entreprise
|
|
* @param integer $departement Limiter aux établissements du departement
|
|
* @param integer $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous
|
|
* @param integer $position
|
|
* @param integer $nbRep
|
|
*
|
|
* @return ListeEtablissementsReturn
|
|
*/
|
|
public function getListeEtablissements( $siren, $dep = 0, $actif = -1, $position = 0, $nbRep = 20)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
|
|
//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;
|
|
$error = new ErrorType();
|
|
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__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$rep = $this->iInsee->getEtablissements($siren, '', $position, $nbRep, 200, $departement, $actif);
|
|
$etabs = $rep['reponses'];
|
|
$nbReponses = $rep['nbReponsesTotal'];
|
|
$result = array();
|
|
if (count($etabs)>0)
|
|
{
|
|
foreach ($etabs as $nb => $etab)
|
|
{
|
|
$etablissement = new Etablissement();
|
|
$etablissement->id = $etab['id'];
|
|
$etablissement->Siege = $etab['Siege'];
|
|
$etablissement->Enseigne = $etab['Enseigne'];
|
|
$etablissement->Adresse = $etab['Adresse'];
|
|
$etablissement->Adresse2 = $etab['Adresse2'];
|
|
$etablissement->CP = $etab['CP'];
|
|
$etablissement->Ville = $etab['Ville'];
|
|
$etablissement->Tel = $etab['Tel'];
|
|
$etablissement->Fax = $etab['Fax'];
|
|
$etablissement->Nic = $etab['Nic'];
|
|
$etablissement->Actif = $etab['Actif'];
|
|
$etablissement->NafEtab = $etab['NafEtab'];
|
|
$etablissement->NafEtabLib = $etab['NafEtabLib'];
|
|
$etablissement->EffEtTr = $etab['EffEtTr'];
|
|
$etablissement->EffEtTrLib = $etab['EffEtTrLib'];
|
|
|
|
$result[] = $etablissement;
|
|
}
|
|
}
|
|
debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($result), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('etablissements',$siren);
|
|
}
|
|
$reponse = new ListeEtablissementsResult();
|
|
$reponse->nbReponses = $nbReponses;
|
|
$reponse->liste = $result;
|
|
$output = new ListeEtablissementsReturn();
|
|
$output->error = $error;
|
|
$output->result = $reponse;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise
|
|
*
|
|
* @param integer $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)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($histo)) { $histo = false; }
|
|
|
|
debugLog('I',"Dirigeants demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet = array();
|
|
if (strlen($siren)<>9)
|
|
{
|
|
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren Siret inexistant';
|
|
}
|
|
elseif ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
if ($histo) $option='histo';
|
|
else $option='';
|
|
$dirs = $this->iInsee->getDirigeants($siren, $histo);
|
|
//debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$liste = array();
|
|
foreach ($dirs as $nb => $dir)
|
|
{
|
|
//debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$dirigeant = new Dirigeant();
|
|
$dirigeant->Code = $dir['Fonction'];
|
|
$dirigeant->Titre = $dir['Titre'];
|
|
$dirigeant->Societe = $dir['Societe'];
|
|
$dirigeant->Civilite = $dir['Civilite'];
|
|
$dirigeant->Nom = $dir['Nom'];
|
|
$dirigeant->Prenom = $dir['Prenom'];
|
|
$dirigeant->NaissDate = $dir['NaissDate'];
|
|
$dirigeant->NaissVille = $dir['NaissVille'];
|
|
$dirigeant->NaissDepPays = $dir['NaissDepPays'];
|
|
$dirigeant->Ancien = $dir['Ancien'];
|
|
$dirigeant->DateFct = $dir['DateFct'];
|
|
|
|
$liste[] = $dirigeant;
|
|
}
|
|
|
|
wsLog('dirigeants',$siren,$option);
|
|
debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
}
|
|
$output = new DirigeantsReturn();
|
|
$output->error = $error;
|
|
$output->result = $liste;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Retourne la liste des annonces légales relative à une entreprise
|
|
*
|
|
* @todo Revoir cette fonction pour la faire marcher avec les associations
|
|
*
|
|
* @param string $siren Siren de l'entreprise
|
|
* @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp
|
|
* @param integer $idAnn Identifiant de l'annonce
|
|
* @param integer $position
|
|
* @param integer $nbRep
|
|
* @return AnnoncesReturn
|
|
*/
|
|
public function getAnnonces( $siren, $filtre = 0, $idAnn = 0, $position = 0, $nbRep = 20)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
|
|
//Initialisation
|
|
if (empty($filtre)) { $filtre = 0; }
|
|
if (empty($idAnn)) { $idAnn = 0; }
|
|
if (empty($position)) { $position = 0; }
|
|
if (empty($nbRep)) { $nbRep = 20; }
|
|
|
|
//Valeur max
|
|
if($nbRep > 200) { $nbRep = 200; }
|
|
|
|
debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$liste = array();
|
|
|
|
if (strlen($siren)<>9)
|
|
{
|
|
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren Siret inexistant';
|
|
}
|
|
elseif ($siren*1==0 && $idAnn==0)
|
|
{
|
|
debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant A';
|
|
}
|
|
else
|
|
{
|
|
/*
|
|
if ($siren>100 && $filtre==3) $asso=true;
|
|
else {
|
|
$asso=false;
|
|
$tabIdentite=$this->iInsee->getIdentiteLight($siren);
|
|
if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 ||
|
|
$tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true;
|
|
}*/
|
|
if ($idAnn==0) {
|
|
$anns=$this->iInsee->getAnnoncesLegales($siren);
|
|
$annsB=$this->iInsee->getAnnoncesBalo($siren);
|
|
$annsA=$this->iInsee->getAnnoncesAsso($siren);
|
|
$annsM=$this->iInsee->getAnnoncesBoamp($siren, $idAnn);
|
|
} elseif ($filtre==1)
|
|
$anns=$this->iInsee->getAnnoncesLegales($siren, $idAnn);
|
|
elseif ($filtre==2)
|
|
$annsB=$this->iInsee->getAnnoncesBalo($siren, $idAnn);
|
|
elseif ($filtre==3)
|
|
$annsA=$this->iInsee->getAnnoncesAsso($siren, $idAnn);
|
|
elseif ($filtre==4)
|
|
$annsM=$this->iInsee->getAnnoncesBoamp($siren, $idAnn);
|
|
|
|
//debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM))
|
|
{
|
|
debugLog('W', "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn;
|
|
}
|
|
else
|
|
{
|
|
foreach ($anns as $nb=>$ann)
|
|
{
|
|
//debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$evens = array();
|
|
foreach ($ann['evenements'] as $tabEven)
|
|
{
|
|
$even = new AnnonceEvenement();
|
|
$even->CodeEven = $tabEven['CodeEven'];
|
|
$even->LibEven = $tabEven['LibEven'];
|
|
$evens[] = $even;
|
|
}
|
|
$annonce = new Annonce();
|
|
$annonce->id = $ann['id'];
|
|
$annonce->BodaccCode = $ann['BodaccCode'];
|
|
$annonce->BodaccNum = $ann['BodaccNum'];
|
|
$annonce->NumAnnonce = $ann['NumAnnonce'];
|
|
$annonce->DateParution = $ann['DateParution'];
|
|
$annonce->Departement = $ann['Departement'];
|
|
$annonce->Tribunal = $ann['Tribunal'];
|
|
$annonce->TribunalCode = $ann['TribunalCode'];
|
|
$annonce->TribunalSiret = $ann['TribunalSiret'];
|
|
$annonce->Rubrique = $ann['Rubrique'];
|
|
$annonce->typeAnnonce = $ann['typeAnnonce'];
|
|
$annonce->texteRectificatif = $ann['texteRectificatif'];
|
|
$annonce->texteAnnonce = $ann['texteAnnonce'];
|
|
$annonce->libFJ = $ann['libFJ'];
|
|
$annonce->codFJ = $ann['codFJ'];
|
|
$annonce->capital = $ann['capital'];
|
|
$annonce->capitalDev = $ann['capitalDev'];
|
|
$annonce->dateEffet = $ann['dateEffet'];
|
|
$annonce->dateJugement = $ann['dateJugement'];
|
|
$annonce->dateInsertionSD = $ann['dateInsertionSD'];
|
|
$annonce->evenements = $evens;
|
|
$annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf'];
|
|
|
|
$liste[] = $annonce;
|
|
}
|
|
|
|
if (is_array($annsB))
|
|
{
|
|
foreach ($annsB as $nb=>$ann)
|
|
{
|
|
//debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$evens = array();
|
|
foreach ($ann['evenements'] as $tabEven)
|
|
{
|
|
$even = new AnnonceEvenement();
|
|
$even->CodeEven = $tabEven['CodeEven'];
|
|
$even->LibEven = $tabEven['LibEven'];
|
|
$evens[] = $even;
|
|
}
|
|
$annonce = new Annonce();
|
|
$annonce->id = $ann['id'];
|
|
$annonce->BodaccCode = $ann['BodaccCode'];
|
|
$annonce->BodaccNum = $ann['BodaccNum'];
|
|
$annonce->NumAnnonce = $ann['NumAnnonce'];
|
|
$annonce->DateParution = $ann['DateParution'];
|
|
$annonce->Departement = $ann['Departement'];
|
|
$annonce->Tribunal = $ann['Tribunal'];
|
|
//$annonce->TribunalCode = $ann['TribunalCode'];
|
|
$annonce->TribunalSiret = $ann['TribunalSiret'];
|
|
$annonce->Rubrique = $ann['Rubrique'];
|
|
$annonce->typeAnnonce = $ann['typeAnnonce'];
|
|
$annonce->texteRectificatif = $ann['texteRectificatif'];
|
|
$annonce->texteAnnonce = $ann['texteAnnonce'];
|
|
//$annonce->libFJ = $ann['libFJ'];
|
|
//$annonce->codFJ = $ann['codFJ'];
|
|
//$annonce->capital = $ann['capital'];
|
|
//$annonce->capitalDev = $ann['capitalDev'];
|
|
$annonce->dateEffet = $ann['dateEffet'];
|
|
$annonce->dateJugement = $ann['dateJugement'];
|
|
$annonce->dateInsertionSD = $ann['dateInsertionSD'];
|
|
$annonce->evenements = $evens;
|
|
$annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf'];
|
|
|
|
$liste[] = $annonce;
|
|
}
|
|
}
|
|
|
|
if (is_array($annsA))
|
|
{
|
|
foreach ($annsA as $nb=>$ann)
|
|
{
|
|
//debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$evens = array();
|
|
foreach ($ann['evenements'] as $tabEven)
|
|
{
|
|
$even = new AnnonceEvenement();
|
|
$even->CodeEven = $tabEven['CodeEven'];
|
|
$even->LibEven = $tabEven['LibEven'];
|
|
$evens[] = $even;
|
|
}
|
|
|
|
$annonce = new Annonce();
|
|
$annonce->id = $ann['id'];
|
|
$annonce->BodaccCode = $ann['BodaccCode'];
|
|
$annonce->BodaccNum = $ann['BodaccNum'];
|
|
$annonce->NumAnnonce = $ann['NumAnnonce'];
|
|
$annonce->DateParution = $ann['DateParution'];
|
|
$annonce->Departement = $ann['Departement'];
|
|
$annonce->Tribunal = $ann['Tribunal'];
|
|
//$annonce->TribunalCode = $ann['TribunalCode'];
|
|
$annonce->TribunalSiret = $ann['TribunalSiret'];
|
|
$annonce->Rubrique = $ann['Rubrique'];
|
|
$annonce->typeAnnonce = $ann['typeAnnonce'];
|
|
$annonce->texteRectificatif = $ann['texteRectificatif'];
|
|
$annonce->texteAnnonce = $ann['texteAnnonce'];
|
|
//$annonce->libFJ = $ann['libFJ'];
|
|
//$annonce->codFJ = $ann['codFJ'];
|
|
//$annonce->capital = $ann['capital'];
|
|
//$annonce->capitalDev = $ann['capitalDev'];
|
|
$annonce->dateEffet = $ann['dateEffet'];
|
|
$annonce->dateJugement = $ann['dateJugement'];
|
|
$annonce->dateInsertionSD = $ann['dateInsertionSD'];
|
|
$annonce->evenements = $evens;
|
|
$annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf'];
|
|
|
|
$liste[] = $annonce;
|
|
}
|
|
}
|
|
|
|
if (is_array($annsM))
|
|
{
|
|
foreach ($annsM as $nb=>$ann)
|
|
{
|
|
$evens = array();
|
|
foreach ($ann['evenements'] as $tabEven)
|
|
{
|
|
$even = new AnnonceEvenement();
|
|
$even->CodeEven = $tabEven['CodeEven'];
|
|
$even->LibEven = $tabEven['LibEven'];
|
|
$evens[] = $even;
|
|
}
|
|
|
|
$annonce = new Annonce();
|
|
$annonce->id = $ann['id'];
|
|
$annonce->BodaccCode = $ann['BodaccCode'];
|
|
$annonce->BodaccNum = $ann['BodaccNum'];
|
|
$annonce->NumAnnonce = $ann['NumAnnonce'];
|
|
$annonce->DateParution = $ann['DateParution'];
|
|
$annonce->Departement = $ann['Departement'];
|
|
$annonce->Tribunal = $ann['Tribunal'];
|
|
//$annonce->TribunalCode = $ann['TribunalCode'];
|
|
$annonce->TribunalSiret = $ann['TribunalSiret'];
|
|
$annonce->Rubrique = $ann['Rubrique'];
|
|
$annonce->typeAnnonce = $ann['typeAnnonce'];
|
|
$annonce->texteRectificatif = $ann['texteRectificatif'];
|
|
$annonce->texteAnnonce = $ann['texteAnnonce'];
|
|
//$annonce->libFJ = $ann['libFJ'];
|
|
//$annonce->codFJ = $ann['codFJ'];
|
|
//$annonce->capital = $ann['capital'];
|
|
//$annonce->capitalDev = $ann['capitalDev'];
|
|
$annonce->dateEffet = $ann['dateEffet'];
|
|
$annonce->dateJugement = $ann['dateJugement'];
|
|
$annonce->dateInsertionSD = $ann['dateInsertionSD'];
|
|
$annonce->evenements = $evens;
|
|
$annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf'];
|
|
|
|
$liste[] = $annonce;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$nbReponses = count($liste);
|
|
if ($nbReponses>0){
|
|
$liste = array_slice($liste, $position, $nbRep);
|
|
}
|
|
debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('annonces',$siren,$filtre.'/'.$idAnn);
|
|
file_put_contents(PATH_LOG.'/annonces.log', print_r($liste,1));
|
|
|
|
$output = new AnnoncesReturn();
|
|
$output->error = $error;
|
|
$result = new AnnoncesResult();
|
|
$result->nbReponses = $nbReponses;
|
|
$result->liste = $liste;
|
|
$output->result = $result;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Evaluation indiScore d'une entreprise
|
|
*
|
|
* @param string $siren Siren de l'entreprise
|
|
* @param string $nic
|
|
* @param bool $accesDist
|
|
* @param int $niveau
|
|
* @return
|
|
*/
|
|
protected function getIndiScore($siren, $nic=0, $accesDist=true, $niveau=2)
|
|
{
|
|
//@todo
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($nic)) { $nic = 0; }
|
|
if (empty($accesDist)) { $accesDist = true; }
|
|
if (empty($niveau)) { $niveau = 2; }
|
|
if ( !in_array($niveau, array(0,1,2,3,4,5)) ) { $niveau = 2; }
|
|
$error = new ErrorType();
|
|
|
|
debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet=array();
|
|
if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 )
|
|
{
|
|
debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren incorrect';
|
|
}
|
|
$tDeb = microtime(true);
|
|
require_once 'Metier/scores/classMScores.php';
|
|
$tabRet = calculIndiScore($siren, $nic, $accesDist, $niveau);
|
|
$duree = round(microtime(true)-$tDeb,3);
|
|
debugLog('W', "indiscore DUREE = $duree s", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('indiscore',$siren);
|
|
|
|
|
|
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
|
}
|
|
|
|
/**
|
|
* Liste de tous les évènements enregistrés à l'INSEE pour une entreprise
|
|
* @param string $siren Siren de l'entreprise
|
|
* @param string $nic
|
|
* @param integer $deb
|
|
* @param integer $max
|
|
* @return InseeReturn
|
|
**/
|
|
public function getListeEvenements($siren, $nic=0, $deb=0, $max=1000)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($nic)) { $nic = 0; }
|
|
if (empty($max) || $max>1000) { $max = 1000; }
|
|
$error = new ErrorType();
|
|
|
|
debugLog('I',"Liste des évènements pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet=array();
|
|
if (strlen($siren)<>9)
|
|
{
|
|
debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$evens = $this->iInsee->getEvenements($siren, $nic, $deb, $max);
|
|
$tabRet = array();
|
|
if (count($evens)>0)
|
|
{
|
|
foreach ($evens as $nb=>$even)
|
|
{
|
|
$iEven = new InseeEven();
|
|
$iEven->Nic = $even['nic'];
|
|
$iEven->Siege = $even['siege'];
|
|
$iEven->SiretAss = $even['siretAssocie'];
|
|
$iEven->TypeSiretAss = $even['typeSiretAss'];
|
|
$iEven->EvenCode = $even['codeEven'];
|
|
$iEven->EvenLib = $even['libEven'];
|
|
$iEven->EvenLibDet = $even['libEvenDet'];
|
|
$iEven->EvenDate = $even['dateEven'];
|
|
$iEven->DateInfo = $even['dateMAJ'];
|
|
$tabRet[] = $iEven;
|
|
}
|
|
}
|
|
}
|
|
debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
//wsLog('etablissements',$siren);
|
|
|
|
$result = new InseeResult();
|
|
$result->nbReponses = count($tabRet);
|
|
$output = new InseeReturn();
|
|
$output->error = $error;
|
|
$output->result = $result;
|
|
return $output;
|
|
}
|
|
|
|
|
|
/**
|
|
* Recherche
|
|
* @param string $type Type de la recherche (recherche entreprise : 'ent', recherche dirigeant : 'dir')
|
|
* @param RechercheEntrepriseCriteres $criteres
|
|
* @param int $position Position de parcours des résultats retournées (0 par défaut)
|
|
* @param int $nbRep Nombre de réponses retournées lors d'une requête (20 par défaut)
|
|
* @param int $maxRep Nombre de réponses maximum pouvant être retournées lors d'une requête (200 par défaut)
|
|
* @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (false par défaut)
|
|
* @param bool $avecSiren Seulement les entités sirénées (false par défaut)
|
|
* @return RechercheEntrepriseReturn
|
|
*/
|
|
public function rechercheEntreprise($type, $criteres, $position = 0, $nbRep = 20, $maxRep = 200, $pertinence = false, $avecSiren = false)
|
|
{
|
|
//Enregistrement des accès à la requête getIdentite
|
|
Zend_Registry::get('WsLogger')->info("rechercheEntreprise - ip:".
|
|
$_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER']);
|
|
switch ($type)
|
|
{
|
|
case 'ent':
|
|
$entCriteres = new CriteresEntreprise();
|
|
$entCriteres = $criteres->elementEntreprise;
|
|
$client = new SoapClient($this->wsdl, $this->wsdlOptions);
|
|
$identifiant = $entCriteres->identifiant;
|
|
$typeId = '';
|
|
if ($identifiant!='') {
|
|
$len = strlen($identifiant);
|
|
//Numéro WALDEC
|
|
if (strtoupper(substr($identifiant,0,1))=='W') {
|
|
$typeId = 'W';
|
|
//Code ISIN
|
|
} elseif ($len==12){
|
|
$typeId = 'I';
|
|
//TVA Intracommunautaire
|
|
} elseif (in_array(substr($identifiant,0,2),
|
|
array('AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES',
|
|
'FI','GB','HU','IE','IT','LT','LU','LV','MT','NL','PL',
|
|
'PT','RO','SE','SI','SK'))){
|
|
//"La recherche par numéro de TVA n'est pas encore possible sur ce pays !";
|
|
//Pour la france
|
|
} elseif (substr($identifiant,0,2)=='FR') {
|
|
$typeId = 'S';
|
|
if ($len==13) $identifiant = substr($identifiant,4,9);
|
|
else $identifiant = '';
|
|
//Numéro RC
|
|
} elseif (preg_match('/A|B|C|D/i', $identifiant)) {
|
|
$typeId='R';
|
|
//Siren normal on enleve tout ce qui n'est pas un chiffre
|
|
} else {
|
|
$typeId = 'S';
|
|
}
|
|
}
|
|
|
|
if (in_array($typeId, array('R', 'W', 'I'))){
|
|
try {
|
|
$O = $client->searchAutreId(
|
|
$typeId,
|
|
$identifiant,
|
|
empty($position) ? 0 : $position,
|
|
empty($nbRep) ? 20 : $nbRep,
|
|
empty($maxRep) ? 200 : $maxRep,
|
|
$entCriteres->codePostal
|
|
);
|
|
} catch (SoapFault $fault) {
|
|
Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres));
|
|
throw new SoapFault($fault->faultcode, $fault->faultstring);
|
|
exit;
|
|
}
|
|
} elseif ($typeId == 'S'){
|
|
try {
|
|
$O = $client->searchSiren(
|
|
$identifiant,
|
|
empty($position) ? 0 : $position,
|
|
empty($nbRep) ? 20 : $nbRep,
|
|
empty($maxRep) ? 200 : $maxRep,
|
|
$entCriteres->codePostal
|
|
);
|
|
} catch (SoapFault $fault) {
|
|
Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres));
|
|
throw new SoapFault($fault->faultcode, $fault->faultstring);
|
|
exit;
|
|
}
|
|
} else {
|
|
|
|
try {
|
|
$O = $client->searchNomAdr(
|
|
$entCriteres->raisonSociale,
|
|
$entCriteres->adresse,
|
|
$entCriteres->codePostal,
|
|
$entCriteres->ville,
|
|
empty($entCriteres->siege) ? false : $entCriteres->siege,
|
|
empty($entCriteres->actif) ? false : $entCriteres->actif,
|
|
empty($position) ? 0 : $position,
|
|
empty($nbRep) ? 20 : $nbRep,
|
|
empty($maxRep) ? 200 : $maxRep,
|
|
empty($pertinence) ? false : $pertinence,
|
|
empty($avecSiren) ? false : $avecSiren,
|
|
$entCriteres->naf
|
|
);
|
|
} catch (SoapFault $fault) {
|
|
Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres));
|
|
throw new SoapFault($fault->faultcode, $fault->faultstring);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
break;
|
|
case 'dir':
|
|
$dirCriteres = new CriteresDirigeant();
|
|
$dirCriteres = $criteres->elementDirigeant;
|
|
$client = new SoapClient($this->wsdl, $this->wsdlOptions);
|
|
try {
|
|
$O = $client->searchDir(
|
|
$dirCriteres->dirNom,
|
|
$dirCriteres->dirPrenom,
|
|
$dirCriteres->dirDateNaiss,
|
|
$dirCriteres->dirVille,
|
|
empty($position) ? 0 : $position,
|
|
empty($nbRep) ? 20 : $nbRep,
|
|
empty($maxRep) ? 200 : $maxRep,
|
|
empty($pertinence) ? false : $pertinence
|
|
);
|
|
} catch (SoapFault $fault) {
|
|
Zend_Registry::get('WsLogger')->err("rechercheEntreprise - ".serialize($criteres));
|
|
throw new SoapFault($fault->faultcode, $fault->faultstring);
|
|
exit;
|
|
}
|
|
break;
|
|
}
|
|
|
|
$error = new ErrorType();
|
|
$error = arrayToClass($O['error'], 'ErrorType');
|
|
$results = new RechercheEntrepriseResult();
|
|
$results = arrayToClass($O['results'], 'RechercheEntrepriseResult');
|
|
$outputParams = new RechercheEntrepriseReturn();
|
|
$outputParams->error = $error;
|
|
$outputParams->results = $results;
|
|
return $outputParams;
|
|
}
|
|
|
|
/**
|
|
* Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA.
|
|
*
|
|
* @param string $siren Identifiant Siren de l'entreprise
|
|
* @return TvaReturn
|
|
*/
|
|
public function getTVA($siren)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
$error = new ErrorType();
|
|
$result = new TvaResult();
|
|
|
|
$siren = trim($siren);
|
|
debugLog('I',"TVA demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet = array();
|
|
if (strlen($siren)<>9)
|
|
{
|
|
debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
debugLog('I', "Avant getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$entrep = $this->iInsee->getIdentiteEntreprise($siren);
|
|
debugLog('I', "Après getIdentiteEntreprise($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
if (empty($entrep))
|
|
{
|
|
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
debugLog('I', "Avant MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$iTva = new MTva($siren);
|
|
if ($iTva->vatDefined) $tva=$iTva->vatNumber;
|
|
else $tva='N/A';
|
|
debugLog('I', "Après MTva($siren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$result->id = $entrep['id'];
|
|
$result->AutreId = $entrep['AutreId'];
|
|
$result->Nom = $entrep['Nom'];
|
|
$result->Sigle = $entrep['Sigle'];
|
|
$result->Enseigne = $entrep['Enseigne'];
|
|
$result->Adresse = $entrep['Adresse'];
|
|
$result->Adresse2 = $entrep['Adresse2'];
|
|
$result->CP = $entrep['CP'];
|
|
$result->Ville = $entrep['Ville'];
|
|
$result->Siren = $entrep['Siren'];
|
|
$result->Tva = $tva;
|
|
|
|
debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('tva',$siren);
|
|
}
|
|
}
|
|
$output = new TvaReturn();
|
|
$output->error = $error;
|
|
$output->result = $result;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Retourne la liste des tribunaux ou Compétences demandées
|
|
* @param array|string $tabTypes Tableau des types de Compétences demandés 'C':Commerce, 'I':Instance, 'G':TGI, 'A':Préfectures, 'B':Sous-préf, 'D':Tribunal Administratif, 'H':Prud'hommes, 'L': Cour d'Appel, 'M': Tribunal Mixte, 'O':CCI, 'V': Cour Administrative d'Appel
|
|
* @return TribunauxReturn
|
|
**/
|
|
public function getTribunaux($tabTypes)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($tabTypes)) $tabTypes = array();
|
|
if (is_string($tabTypes)) $tabTypes = (array)$tabTypes;
|
|
$error = new ErrorType();
|
|
|
|
$iBodacc = new MBodacc();
|
|
debugLog('I',"Liste des tribunaux demandées",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabTmp = $iBodacc->getListeTribunaux();
|
|
$tabRet = array();
|
|
if (count($tabTypes)==0)
|
|
{
|
|
foreach ($tabTmp as $i=>$tribunal)
|
|
{
|
|
$tri = new TribunalNom();
|
|
$tri->nom = $tribunal['nom'];
|
|
$tabRet[$i] = $tri;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach ($tabTmp as $i=>$tribunal)
|
|
{
|
|
$type = substr($i,-1);
|
|
if (in_array($type, $tabTypes))
|
|
{
|
|
$tri = new TribunalNom();
|
|
$tri->nom = $tribunal['nom'];
|
|
$tabRet[$i] = $tri;
|
|
}
|
|
}
|
|
}
|
|
$output = new TribunauxReturn();
|
|
$output->error = $error;
|
|
$output->result = $tabRet;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Retourne tout ou patie des informations règlementées sur l'entreprise
|
|
*
|
|
* @param int $siren SIREN de l'entreprise
|
|
* @param mixed $id Id du communiqué
|
|
* @return InfosRegReturn
|
|
*/
|
|
public function getInfosReg( $siren, $id = false )
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($id)) $id = false;
|
|
$tabRet = array();
|
|
$error = new ErrorType();
|
|
$siren = substr($siren,0,9);
|
|
|
|
debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
if ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$iBourse = new MBourse($siren);
|
|
$anns = $iBourse->getInfosReg($siren, $id);
|
|
//debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
if ( empty($anns) )
|
|
{
|
|
debugLog('W', "Aucune info règlementée pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Aucune info réglementé pour le siren';
|
|
}
|
|
else
|
|
{
|
|
foreach ($anns as $nb=>$ann)
|
|
{
|
|
//debugLog('I', "Siren/Siret $siren trouvé : ".$etab['Siren'].' '.$etab['Nic'].', '.$etab['Nom'] .', '.$etab['CP'].', '.$etab['Ville'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
if ($id == false)
|
|
{
|
|
$infos = new InfosReg();
|
|
$infos->id = $ann['id'];
|
|
$infos->source = $ann['source'];
|
|
$infos->DateParution = $ann['DateParution'];
|
|
$infos->raisonSociale = $ann['raisonSociale'];
|
|
$infos->titre = $ann['titre'];
|
|
$infos->pj = $ann['pj'];
|
|
$infos->url = $ann['url'];
|
|
$infos->dateInsertionSD = $ann['dateInsertionSD'];
|
|
|
|
$tabRet[] = $infos;
|
|
}
|
|
else
|
|
{
|
|
$infos = new InfosReg();
|
|
$infos->id = $ann['id'];
|
|
$infos->source = $ann['source'];
|
|
$infos->DateParution = $ann['DateParution'];
|
|
$infos->raisonSociale = $ann['raisonSociale'];
|
|
$infos->titre = $ann['titre'];
|
|
$infos->communique = $ann['communique'];
|
|
$infos->communiqueHtml = $ann['communiqueHtml'];
|
|
$infos->pj = $ann['pj'];
|
|
$infos->url = $ann['url'];
|
|
$infos->dateInsertionSD = $ann['dateInsertionSD'];
|
|
|
|
$tabRet[] = $infos;
|
|
}
|
|
|
|
}
|
|
}
|
|
debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('infosreg',$siren,$id);
|
|
}
|
|
|
|
$output = new InfosRegReturn();
|
|
$output->error = $error;
|
|
$output->result = $tabRet;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Retourne les informations boursières de l'entreprise
|
|
* @param string $siren SIREN de l'entreprise
|
|
* @return InfosBourseReturn
|
|
*/
|
|
public function getInfosBourse($siren)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
$error = new ErrorType();
|
|
debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$siren = substr($siren,0,9);
|
|
|
|
if ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$iBourse = new MBourse($siren);
|
|
$bourse = $iBourse->getInfosBourse($siren);
|
|
//debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
if (empty($bourse))
|
|
{
|
|
debugLog('W', "Aucune info bourse pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$result = new InfosBourse();
|
|
$result->Siren = $bourse['siren'];
|
|
$result->RaisonSociale = prepareString($bourse['raisonSociale']);
|
|
$result->Adresse = prepareString($bourse['adresse']);
|
|
$result->Effectif = $bourse['effectif'];
|
|
$result->CodeSicovam = $bourse['code_sicovam'];
|
|
$result->CodeMnemo = $bourse['code_mnemo'];
|
|
$result->CodeBloomberg = $bourse['code_bloomberg'];
|
|
$result->CodeDatastream = $bourse['code_datastream'];
|
|
$result->Isin = $bourse['code_isin'];
|
|
$result->CodeRic = $bourse['code_ric'];
|
|
$result->DateIntroduction = prepareString($bourse['dateIntroduction']);
|
|
$result->DateDerAG = prepareString($bourse['dateDerAG']);
|
|
$result->DateRadiation = prepareString($bourse['dateRadiation']);
|
|
$result->AutreIsin = $bourse['autre_isin'];
|
|
$result->EligibleSRD = $bourse['eligibleSRD'];
|
|
$result->EligiblePEA = $bourse['eligiblePEA'];
|
|
$result->Tel = $bourse['tel1'];
|
|
$result->Tel2 = $bourse['tel2'];
|
|
$result->Fax = $bourse['fax1'];
|
|
$result->Fax2 = $bourse['fax2'];
|
|
$result->Web = $bourse['web'];
|
|
$result->Mail = $bourse['mail'];
|
|
|
|
$result->Marche = prepareString($bourse['marche']);
|
|
$result->Description = prepareString($bourse['description']);
|
|
$result->Secteur = prepareString($bourse['secteur']);
|
|
$result->Activite = prepareString($bourse['activite']);
|
|
$result->ActiviteDet = prepareString($bourse['activiteDet']);
|
|
|
|
$result->placeCotation = prepareString($bourse['placeCotation']);
|
|
$result->nombreTitres = $bourse['nombreTitres'];
|
|
$result->capitalisation = $bourse['close']*$bourse['nombreTitres'];
|
|
$result->derCoursDate = $bourse['date'];
|
|
$result->derCoursCloture = $bourse['close'];
|
|
$result->derCoursOuverture = $bourse['open'];
|
|
$result->derCoursPlusHaut = $bourse['high'];
|
|
$result->derCoursPlusBas = $bourse['low'];
|
|
|
|
$result->derCoursVolume = $bourse['volume'];
|
|
$result->coursMin = $bourse['coursMin'];
|
|
$result->coursMoy = $bourse['coursMoy'];
|
|
$result->coursMax = $bourse['coursMax'];
|
|
|
|
wsLog('bourse',$siren,$id);
|
|
}
|
|
}
|
|
$output = new InfosBourseReturn();
|
|
$output->error = $error;
|
|
$output->result = $result;
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Liste des privilèges pour une entreprise en suivi Privilèges
|
|
* @param string $siren
|
|
* @param bool $detail
|
|
* @param array $tabTypes
|
|
*/
|
|
protected function getPrivileges($siren, $detail=false, $tabTypes=array('03','04'))
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
$error = new ErrorType();
|
|
|
|
debugLog('I',"Liste des privilèges $detail sur $siren ".print_r($tabTypes, true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$iPriv=new MPrivileges();
|
|
if ($detail)
|
|
$ret=$iPriv->getPrivilegesDetail($siren, $tabTypes);
|
|
//foreach ($ret as )
|
|
else
|
|
$ret=$iPriv->getPrivilegesCumul($siren, $tabTypes);
|
|
return $ret;
|
|
}
|
|
|
|
/** Ajout d'une surveillance
|
|
**
|
|
** @param integer $siret Siret/Siren à surveiller
|
|
** @param string $email Adresse email du client
|
|
** @param string $ref Référence de la surveillance
|
|
** @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants)
|
|
** @param boolean $delete Suppression de la ligne
|
|
** @param integer $encoursClient Encours demandé par le client
|
|
** @return unknown
|
|
*/
|
|
protected function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) {
|
|
debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet=array();
|
|
$siren=substr(''.$siret,0,9)*1;
|
|
$nic=substr(''.$siret,9,5)*1;
|
|
$tabIdentite=$this->iInsee->getIdentiteLight($siren, $nic);
|
|
$iDb=new WDB();
|
|
global $tabInfoUser;
|
|
$login=$tabInfoUser['login'];
|
|
$source=strtolower($source);
|
|
switch ($source) {
|
|
case 'insee':
|
|
case 'annonces':
|
|
case 'bilans':
|
|
case 'actes':
|
|
case 'privileges':
|
|
case 'dir1igeants':
|
|
$encoursClient=0;
|
|
break;
|
|
case 'score':
|
|
$encoursClient=$encoursClient*1;
|
|
break;
|
|
default:
|
|
$source='annonces';
|
|
break;
|
|
}
|
|
$tabUpdate=array( 'source'=>$source,
|
|
'login'=>$login,
|
|
'email'=>$email,
|
|
'siren'=>$siren,
|
|
'nic'=>$nic,
|
|
'ref'=>$ref,
|
|
'encoursClient'=>$encoursClient,
|
|
'rs'=>$tabIdentite['Nom'],
|
|
'cp'=>$tabIdentite['CP'],
|
|
'ville'=>$tabIdentite['Ville'],
|
|
);
|
|
if ($delete)
|
|
$tabUpdate=array_merge($tabUpdate, array('dateSuppr'=>date('Y-m-d')));
|
|
else
|
|
$tabUpdate=array_merge($tabUpdate, array('dateAjout'=>date('Y-m-d'), 'dateSuppr'=>0));
|
|
|
|
if ( $delete || !$iDb->insert('surveillances_site', $tabUpdate)) {
|
|
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "debugSurv pour $login",
|
|
"source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'".EOL.
|
|
print_r($tabUpdate,true).EOL
|
|
);*/
|
|
if (!$iDb->update('surveillances_site', $tabUpdate, "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'"))
|
|
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
|
}
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
|
}
|
|
|
|
function getSurveillances($siret=0, $source='annonces', $detail=false, $deb=0, $nbRet=100, $tri='siren') {
|
|
$tri=strtolower(trim($tri));
|
|
switch ($tri) {
|
|
case 'ref': $orderBy='ORDER BY ref'; break;
|
|
case 'dateAjout': $orderBy='ORDER BY dateAjout'; break;
|
|
case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break;
|
|
case 'rs': $orderBy='ORDER BY rs'; break;
|
|
case 'cp': $orderBy='ORDER BY cp'; break;
|
|
case 'ville': $orderBy='ORDER BY ville'; break;
|
|
default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre
|
|
}
|
|
|
|
$tabRet=array();
|
|
$siren=substr(''.$siret,0,9)*1;
|
|
$nic=substr(''.$siret,9,5)*1;
|
|
$iDb=new WDB();
|
|
global $tabInfoUser;
|
|
$login=$tabInfoUser['login'];
|
|
|
|
if ($detail) $strSelect='source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi';
|
|
else $strSelect='source, email, siren, nic, ref, dateAjout, dateDerEnvoi';
|
|
|
|
if ($source<>'')$strSource=" AND source='$source' ";
|
|
else $strSource='';
|
|
|
|
if ($siren>0) $strSiren =" AND siren=$siren ";
|
|
else $strSiren ='';
|
|
|
|
// Il faut compter le nombre de siren au total
|
|
$tabTmp=$iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC);
|
|
$nbRepTot=$tabTmp[0]['nb'];
|
|
|
|
|
|
$tabTmp=$iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $deb,$nbRet", false, MYSQL_ASSOC);
|
|
foreach ($tabTmp as $i=>$tabSurv) {
|
|
if (!$detail)
|
|
$tabRet[]=array('source' => $tabSurv['source'],
|
|
'email' => $tabSurv['email'],
|
|
'siren' => $tabSurv['siren'],
|
|
'nic' => $tabSurv['nic'],
|
|
'ref' => prepareString($tabSurv['ref']),
|
|
'dateAjout' => $tabSurv['dateAjout'],
|
|
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
|
|
);
|
|
else {
|
|
if (trim($tabSurv['rs'])<>'') {
|
|
$rs=$tabSurv['rs'];
|
|
$cp=$tabSurv['cp'];
|
|
$ville=$tabSurv['ville'];
|
|
} else {
|
|
$tabIdentite=$this->iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']);
|
|
$rs=$tabIdentite['Nom'];
|
|
$cp=$tabIdentite['CP'];
|
|
$ville=$tabIdentite['Ville'];
|
|
$iDb->update('surveillances_site',array('rs' => $rs,
|
|
'cp' => $cp,
|
|
'ville' => $ville),
|
|
"login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", false);
|
|
}
|
|
$tabRet[]=array('source' => $tabSurv['source'],
|
|
'email' => $tabSurv['email'],
|
|
'siren' => $tabSurv['siren'],
|
|
'nic' => $tabSurv['nic'],
|
|
'ref' => prepareString($tabSurv['ref']),
|
|
'dateAjout' => $tabSurv['dateAjout'],
|
|
'encoursClient' => $tabSurv['encoursClient'],
|
|
'rs' => $rs,
|
|
'cp' => $cp,
|
|
'ville' => $ville,
|
|
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
|
|
);
|
|
}
|
|
}
|
|
|
|
$rep=array( 'criteres'=>array( 'siren'=>$siren, 'nic'=>$nic, 'source'=>$source),
|
|
'nbReponses'=>count($tabRet),
|
|
'nbReponsesTotal'=>$nbRepTot,
|
|
'reponses'=>$tabRet,
|
|
);
|
|
// debugLog('I',"getSurveillances".print_r($tabRet,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
|
}
|
|
|
|
/** Liste les mandataires correspondant à un nom donné
|
|
**
|
|
** @param mixed $codeTribunal Identifiants BODACC du tribunal ou tableau d'Identifiants numériques des cours d'appel
|
|
** @param array $type Type de mandataire (A)dministrateur, (M)andataire, (O)ppositions, (N)otaires, a(V)ocat
|
|
** @param int $cpDep Code postal ou département du mandataire
|
|
** @return Liste des mandataires en tableau
|
|
**/
|
|
protected function searchMandataires($nom, $type=array('A','M'), $cpDep=0) {
|
|
debugLog('I',"Recherche de Mandataires '$nom' (Dep=$cpDep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$tabTmp=$this->iInsee->searchMandataires($nom, true, $type, $cpDep);
|
|
$tabRet=array();
|
|
foreach ($tabTmp as $i=>$mand)
|
|
$tabRet['m'.$i]=prepareString($mand);
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
|
}
|
|
|
|
/**
|
|
* Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé.
|
|
*
|
|
* @param string $siren Siren de l'entreprise
|
|
* @param string $millesime Date du bilan au format JJ\MM\AAAA
|
|
* @param string $typeBilan N=Réel Normal, S=Réel Simplifié, C=Consolidé
|
|
* @param string $ref Référence S&D obligatoire
|
|
* @return Ensemble des postes du Bilan au formalisme demandée
|
|
*/
|
|
protected function getBilan($siren, $millesime, $typeBilan='N', $ref='')
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
if (empty($typeBilan)) { $typeBilan = 'N'; }
|
|
if (empty($ref)) { $ref = ''; }
|
|
|
|
debugLog('I',"Bilan $millesime $typeBilan demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$tabRet=array();
|
|
if (strlen($siren)<>9) {
|
|
debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'results'=>$tabRet);
|
|
}
|
|
$siren=$siren*1;
|
|
if ($siren==0) {
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
|
}
|
|
|
|
$mBil=new MBilans($siren);
|
|
$tabBilan=$mBil->getBilan($millesime, $typeBilan, $ref, true);
|
|
//global $tabInfoUser;
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Bilan Siren=$siren, Millesime=$millesime, Type=$typeBilan, Ref=$ref", print_r($tabBilan,true).EOL.print_r($tabInfoUser,true)) ;
|
|
|
|
/*print_r($rncs->getIdentite($siren));
|
|
echo 'Dernier bilan S (simplifié) : '.$lastBilS.'<br/>';
|
|
echo 'Dernier bilan N (normal) : '.$lastBilN.'<br/>';
|
|
echo 'Dernier bilan C (consolidé) : '.$lastBilC.'<br/>';
|
|
} else {
|
|
debugLog('W', "Aucun bilan pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>102, 'errmsg'=>'Aucun bilan pour le siren'), 'result'=>$tabMillesime);
|
|
}
|
|
*/
|
|
//debugLog('I', 'Nb Annonces retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabBilan);
|
|
}
|
|
|
|
/**
|
|
* Retourne la liste des bilans disponible pour une entreprise
|
|
*
|
|
* @param string $siren Siren de l'entreprise
|
|
* @return ListeBilansReturn
|
|
*/
|
|
public function getListeBilans($siren)
|
|
{
|
|
//Authentification
|
|
if (!$this->checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
|
{
|
|
throw new SoapFault('900','Identifiant ou mot de passe incorrect !');
|
|
exit;
|
|
}
|
|
//Initialisation
|
|
$error = new ErrorType();
|
|
$tabRet = array();
|
|
|
|
debugLog('I',"Liste des Bilans demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
if (strlen($siren)<>9)
|
|
{
|
|
debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
elseif ($siren*1==0)
|
|
{
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$error->errnum = 102;
|
|
$error->errmsg = 'Siren inexistant';
|
|
}
|
|
else
|
|
{
|
|
$mBil = new MBilans($siren);
|
|
$tabBilans = $mBil->listeBilans(false);
|
|
foreach($tabBilans as $bilan)
|
|
{
|
|
$element = new ListeBilans();
|
|
$element->dateProvPartenaire = $bilan['dateProvPartenaire'];
|
|
$element->dateInsert = $bilan['dateInsert'];
|
|
$element->typeBilan = $bilan['typeBilan'];
|
|
$element->dureeExercice = $bilan['dureeExercice'];
|
|
$element->dateExercice = $bilan['dateExercice'];
|
|
$element->millesime = $bilan['millesime'];
|
|
$element->dateExercicePre = $bilan['dateExercicePre'];
|
|
$element->dureeExercicePre = $bilan['dureeExercicePre'];
|
|
$element->monnaie = $bilan['monnaie'];
|
|
$element->source = $bilan['source'];
|
|
$tabRet[] = $element;
|
|
}
|
|
}
|
|
debugLog('I', 'Nb Bilans retournés = '. count($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
$result = new ListeBilansResult();
|
|
$result->nbReponses = count($tabRet);
|
|
$result->liste = $tabRet;
|
|
$output = new ListeBilansReturn();
|
|
$output->error = $error;
|
|
$output->result = $result;
|
|
return $output;
|
|
}
|
|
|
|
/** Vérifie si un siren existe en base Scores & Décisions
|
|
**
|
|
** @param integer $siren Siren de l'entité
|
|
** @return unknown
|
|
**/
|
|
protected function isSirenExistant($siren) {
|
|
debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet=array();
|
|
$siren=trim(substr(''.$siret,0,9))*1;
|
|
if ($siren==0) {
|
|
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
|
}
|
|
$entrep=$this->iInsee->sirenExiste($siren);
|
|
if (empty($entrep)) {
|
|
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
|
}
|
|
|
|
debugLog('I', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
wsLog('sirenExiste',$siren);
|
|
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
|
}
|
|
|
|
/** Retourne une annonce en fonction de sa référence
|
|
**
|
|
** @param integer $siren Siren de l'entreprise
|
|
** @param integer $filtre 0=Pas de Filtre, 1=BODACC, 2=B.A.L.O, 3=JO Association
|
|
** @param integer $idAnn Identifiant de l'annonce
|
|
** @return Liste des annonces légales
|
|
*/
|
|
protected function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) {
|
|
debugLog('I',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$tabRet=array();
|
|
if (strlen($dateAnnee)==4) $annee=$dateAnnee;
|
|
else $annee=substr($dateAnnee,0,4);
|
|
|
|
$iDb=new WDB('jo');
|
|
|
|
switch (strtoupper($source)) {
|
|
case 'BODA':
|
|
case 'BODB':
|
|
case 'BODC':
|
|
$lettre=substr(strtoupper($source),3,1);
|
|
if ($annee<2005) {
|
|
if ($lettre=='A') $numJAL=1;
|
|
elseif ($lettre=='B') $numJAL=200;
|
|
else break;
|
|
$anneeDeb=$annee.'0101';
|
|
$anneeFin=$annee.'1231';
|
|
$res=$iDb->select('historiques.entrep e, texte t', "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce",
|
|
"e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum");
|
|
//if (preg_mat$res=
|
|
//$res= Rectificatif:
|
|
} else
|
|
$res=$iDb->select('bodacc', 'Bodacc_Annee_Parution AS Annee_Parution, Bodacc_Num AS Num_Parution, Num_Annonce, Bodacc_Page AS Num_Page, Bodacc_Date_Parution AS Date_Parution, Tribunal_Dept AS Departement, Tribunal_Code, typeAnnonce, annonce', "Bodacc_Code='$lettre' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$numParution AND Num_Annonce=$numAnnonce");
|
|
break;
|
|
case 'ASSO':
|
|
$res=$iDb->select('asso', 'YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Annonce, pageDeb AS Num_Page, Date_Parution, Departement, codTribunal AS Tribunal_Code, typeAnnonce, Annonce_Html AS annonce', "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$annee".sprintf('%04d', $numParution)." AND Num_Annonce=$numAnnonce");
|
|
break;
|
|
case 'BALO':
|
|
$res=$iDb->select('balo', "YEAR(Date_Parution) AS Annee_Parution, Num_Parution, Num_Affaire AS Num_Annonce, '' AS Num_Page, Date_Parution, '' AS Departement, '' AS Tribunal_Code, 'Insertion' AS typeAnnonce, Annonce_Html AS annonce", "Date_Parution BETWEEN '$annee-01-01' AND '$annee-12-31' AND Num_Parution=$numParution AND Num_Affaire=$numAnnonce");
|
|
break;
|
|
}
|
|
$tabRet=array();$k=0;
|
|
$iBodacc=new MBodacc();
|
|
if (count($res)>0) {
|
|
foreach ($res as $i=>$etab) {
|
|
$tabRet[]=array('Annee_Parution'=> $etab['Annee_Parution'],
|
|
'Num_Parution'=> $etab['Num_Parution'],
|
|
'Num_Annonce'=> $etab['Num_Annonce'],
|
|
'Num_Page'=> $etab['Num_Page'],
|
|
'Date_Parution'=> $etab['Date_Parution'],
|
|
'Departement'=> $etab['Departement'],
|
|
'Tribunal_Code'=> $etab['Tribunal_Code'],
|
|
'Tribunal'=> $iBodacc->getTribunalNom($etab['Tribunal_Code']),
|
|
'Type_Annonce'=> $etab['typeAnnonce'],
|
|
'Annonce'=> prepareString(strip_tags(strtr(html_entity_decode($etab['annonce']),array('>'=>'>','&'=>'&','<'=>'<','’'=>"'")))),
|
|
);
|
|
$k++;
|
|
}
|
|
}
|
|
$nbTot=count($tabRet);
|
|
$duree=$ret['duration'];
|
|
|
|
return array( 'criteres'=>array('source'=>$source, 'annnee'=>$dateAnnee, 'numParution'=>$numParution, 'numAnnonce'=>$numAnnonce),
|
|
'nbReponses'=>$nbTot,
|
|
'nbReponsesTotal'=>$nbTot,
|
|
//'duree'=>$duree,
|
|
'reponses'=>$tabRet);
|
|
}
|
|
|
|
/**
|
|
* Retourne le statut du webservice
|
|
* @return StatusReturn
|
|
*/
|
|
public function status()
|
|
{
|
|
/* @todo tester les différents éléments qui peuvent conduire
|
|
* à un problème dans les services tel que la connexion à la
|
|
* base de données, l'accès FTP, l'accès HTTP, l'accès système de fichier
|
|
*/
|
|
|
|
//Enregistrement des accès à la requête getIdentite
|
|
Zend_Registry::get('WsLogger')->info("status - ip:".
|
|
$_SERVER['REMOTE_ADDR'].", login:".$_SERVER['PHP_AUTH_USER'].
|
|
", hash:".$_SERVER['PHP_AUTH_PW']);
|
|
|
|
$error = new StatusReturn();
|
|
//Test connexion à la base de données
|
|
$db = new WDB('jo');
|
|
if ($db === false)
|
|
{
|
|
$error->statusCode = 1;
|
|
$error->statusMsg = 'Erreur critique';
|
|
}
|
|
else
|
|
{
|
|
$error->statusCode = 0;
|
|
$error->statusMsg = 'Services disponible (beta)';
|
|
}
|
|
return $error;
|
|
}
|
|
|
|
/**
|
|
* checkAuth
|
|
* @param string $login
|
|
* @param string $password
|
|
* @param string $ipConnexion
|
|
*/
|
|
protected function checkAuth($login, $password, $ipConnexion)
|
|
{
|
|
$rep = $this->iDbCrm->select(//'utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC);
|
|
'utilisateurs u, clients c',
|
|
'u.login, u.id, u.email, u.password, u.idClient, u.typeCompte, u.actif, u.filtre_ip, u.civilite, u.nom, u.prenom, u.tel, u.fax, u.mobile, u.profil, u.raisonSociale, u.siret, u.adrNum, u.adrIndRep, u.adrTypeVoie, u.adrLibVoie, u.adrCp, u.adrVille, u.adrComp, u.tel, u.fax, u.mobile, u.pref, u.profil, u.dateInscription, u.dateValidation, u.nombreConnexions, u.dateDerniereConnexion, u.droits, u.referenceParDefaut, u.nbReponses, u.formatMail, u.dateDebutCompte, u.dateFinCompte, u.maxFicheId, c.droits AS droitsClients, c.timeout',
|
|
"u.login='$login' AND u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'",
|
|
true, MYSQL_ASSOC);
|
|
$tabRep = $rep[0];
|
|
if (count($rep)>0)
|
|
{
|
|
if ($tabRep['password']==$password ||
|
|
$tabRep['password']==md5($password) ||
|
|
$password==md5($login.'|'.$tabRep['password']) ||
|
|
(substr($password,0,7)=='iponly:' && checkPlagesIp($tabRep['filtre_ip'], substr($password,7)))) // Controle par IP
|
|
{
|
|
$timeOutSec=$tabRep['timeout']*60;
|
|
if ($timeOutSec==0) $timeOutSec=1800;
|
|
$this->tabInfoUser=array(
|
|
'login'=> $login,
|
|
'id'=> $tabRep['id'],
|
|
'email'=> $tabRep['email'],
|
|
'typeCompte'=> $tabRep['typeCompte'],
|
|
'idClient'=> $tabRep['idClient'],
|
|
'filtre_ip'=> $tabRep['filtre_ip'],
|
|
'ipPasserelle'=> '',
|
|
'ipConnexion'=> $ipConnexion,
|
|
'civilite'=> $tabRep['civilite'],
|
|
'nom'=> $tabRep['nom'],
|
|
'prenom'=> $tabRep['prenom'],
|
|
'raisonSociale'=> $tabRep['raisonSociale'],
|
|
'siret'=> $tabRep['siret'],
|
|
'adrNum'=> $tabRep['adrNum'],
|
|
'adrIndRep'=> $tabRep['adrIndRep'],
|
|
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
|
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
|
'adrCp'=> $tabRep['adrCp'],
|
|
'adrVille'=> $tabRep['adrVille'],
|
|
'adrComp'=> $tabRep['adrComp'],
|
|
'tel'=> $tabRep['tel'],
|
|
'fax'=> $tabRep['fax'],
|
|
'mobile'=> $tabRep['mobile'],
|
|
'pref'=> $tabRep['pref'],
|
|
'profil'=> $tabRep['profil'],
|
|
'dateInscription'=> $tabRep['dateInscription'],
|
|
'dateValidation'=> $tabRep['dateValidation'],
|
|
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
|
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
|
'droits'=> $tabRep['droits'],
|
|
'droitsClients'=> $tabRep['droitsClients'],
|
|
'timeout'=> $timeOutSec,
|
|
'nbReponses'=> $tabRep['nbReponses'],
|
|
'formatMail'=> $tabRep['formatMail'],
|
|
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
|
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
|
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
|
'maxFicheId'=> $tabRep['maxFicheId'],
|
|
);
|
|
$tabTmp = $this->iDbCrm->select('clients', 'typeScore', 'id='.$tabRep['idClient'], true, MYSQL_ASSOC);
|
|
$tabRep = $tabTmp[0];
|
|
$this->tabInfoUser['typeScore'] = $tabRep['typeScore'];
|
|
debugLog('W',"CheckAuth $login/$password OK", __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
return true;
|
|
}
|
|
debugLog('W',"CheckAuth $login/$password incorrect (IP=$ipConnexion)", __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
return false;
|
|
}
|
|
debugLog('W',"CheckAuth $login/$password inexistant ou inactif (IP=$ipConnexion)", __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
return false;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
?>
|