2010-08-30 07:49:44 +00:00
< ? php
require_once realpath ( dirname ( __FILE__ )) . '/functions.php' ;
2010-11-18 16:53:20 +00:00
require_once realpath ( dirname ( __FILE__ )) . '/Types/EntrepriseTypes.php' ;
2010-08-30 07:49:44 +00:00
2010-11-05 09:54:50 +00:00
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' ;
2010-09-13 09:54:49 +00:00
class WsEntreprise
{
2010-09-21 15:19:32 +00:00
protected $wsdl = null ;
protected $wsdlOptions = array ();
2010-11-05 09:54:50 +00:00
protected $iInsee ;
2010-11-08 17:25:06 +00:00
protected $iDbCrm ;
protected $tabInfoUser ;
2010-09-21 15:19:32 +00:00
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 ;
2010-11-05 09:54:50 +00:00
$this -> iInsee = new MInsee ();
2010-11-08 17:25:06 +00:00
$this -> iDbCrm = new WDB ( 'sdv1' );
2010-09-21 15:19:32 +00:00
}
2010-08-30 07:49:44 +00:00
/**
* Retourne les informations identitaires de l 'entreprise ou de l' établissement demandé
2010-11-10 13:37:07 +00:00
* @ param string $siret Siren de l 'entreprise ou siret de l' établissement
* @ param int $id Identifiant interne
* @ param boolean $forceVerif
2010-11-08 17:25:06 +00:00
* @ return IdentiteReturn
2010-08-30 07:49:44 +00:00
*/
2010-11-08 17:25:06 +00:00
public function getIdentite ( $siret , $id = 0 , $forceVerif = false )
2010-09-13 09:54:49 +00:00
{
2010-11-10 13:37:07 +00:00
//Authentification
2010-11-08 17:25:06 +00:00
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 ;
}
2010-11-10 13:37:07 +00:00
//Initialisation
2010-11-10 15:22:15 +00:00
if ( empty ( $id )) { $id = 0 ; }
if ( empty ( $forceVerif )) { $forceVerif = false ; }
2010-11-10 13:37:07 +00:00
2010-11-08 17:25:06 +00:00
$outputParams = new IdentiteReturn ();
2010-11-05 09:54:50 +00:00
$error = new ErrorType ();
2010-11-08 17:25:06 +00:00
$result = new IdentiteResult ();
2010-11-05 09:54:50 +00:00
$tdeb = microtime ( 1 );
$ligne = date ( 'YmdHis' ) . " ; $siret ;Ws->getIdentite Avant ... " ;
$fp = fopen ( LOG_PATH . '/accesDistant.log' , 'a' );
fwrite ( $fp , $ligne . EOL );
fclose ( $fp );
2010-09-13 09:54:49 +00:00
2010-11-05 09:54:50 +00:00
debugLog ( 'I' , " Identités demandée pour siret $siret (id= $id ) " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$tabRet = array ();
$siret = trim ( $siret );
$len = strlen ( $siret );
2010-11-10 13:37:07 +00:00
$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 )
{
2010-11-05 09:54:50 +00:00
debugLog ( 'W' , " Siren/Siret $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$error -> errnum = 102 ;
$error -> errmsg = 'Siren Siret inexistant' ;
2010-11-10 13:37:07 +00:00
}
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 !' );
2010-10-18 10:04:21 +00:00
exit ;
2010-08-30 07:49:44 +00:00
}
2010-11-10 13:37:07 +00:00
//Initialisation
2010-11-10 15:22:15 +00:00
if ( empty ( $id )) { $id = 0 ; }
if ( empty ( $forceVerif )) { $forceVerif = false ; }
2010-11-10 13:37:07 +00:00
$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 )
{
2010-11-05 09:54:50 +00:00
debugLog ( 'W' , " Siren $siren inexistant " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$error -> errnum = 102 ;
$error -> errmsg = 'Siren inexistant' ;
}
2010-11-10 13:37:07 +00:00
elseif ( $len != 14 || $len != 9 )
{
debugLog ( 'W' , " Siren/Siret $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
2010-11-05 09:54:50 +00:00
$error -> errnum = 102 ;
2010-11-10 13:37:07 +00:00
$error -> errmsg = 'Siren Siret inexistant' ;
2010-11-05 09:54:50 +00:00
}
2010-11-10 13:37:07 +00:00
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 ();
2010-11-10 15:22:15 +00:00
if ( $nbA > 0 )
2010-11-10 13:37:07 +00:00
{
2010-11-10 15:22:15 +00:00
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 ;
}
2010-11-10 13:37:07 +00:00
}
$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 );
}
2010-11-05 09:54:50 +00:00
}
2010-11-10 13:37:07 +00:00
return array ( 'error' => array ( 'errnum' => 0 , 'errmsg' => '' ), 'result' => $tabRet );
}
2010-11-05 09:54:50 +00:00
2010-11-10 13:37:07 +00:00
/**
* Retourne les liens financiers pour une entreprise .
*
* @ param integer $siren Siren de l ' entreprise
* @ param boolean $actifsUniquement Uniquement les liens Actifs
* @ return LiensReturn
*/
2010-11-10 13:42:16 +00:00
public function getLiens ( $siren , $actifsUniquement = true )
2010-11-10 13:37:07 +00:00
{
//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
2010-11-10 15:22:15 +00:00
if ( empty ( $actifsUniquement )) { $actifsUniquement = true ; }
2010-11-10 13:37:07 +00:00
$error = new ErrorType ();
$tabAct = $tabPar = array ();
2010-11-05 09:54:50 +00:00
2010-11-10 13:37:07 +00:00
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 );
2010-11-10 15:22:15 +00:00
$tabAct = array ();
2010-11-10 13:37:07 +00:00
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 );
2010-11-10 15:22:15 +00:00
$tabPar [] = array ();
2010-11-10 13:37:07 +00:00
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 ;
2010-08-30 07:49:44 +00:00
}
2010-09-08 13:40:57 +00:00
2010-11-10 13:37:07 +00:00
2010-11-08 17:25:06 +00:00
/**
* 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 )
{
2010-11-10 13:37:07 +00:00
//Authentification
2010-11-08 17:25:06 +00:00
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 ;
}
2010-11-09 08:21:01 +00:00
//Initialisation
2010-11-10 15:22:15 +00:00
if ( empty ( $dep )) { $dep = 0 ; }
if ( empty ( $actif )) { $actif = - 1 ; }
if ( empty ( $position )) { $position = 0 ; }
if ( empty ( $nbRep )) { $nbRep = 20 ; }
2010-11-09 08:21:01 +00:00
//Valeur max
if ( $nbRep > 200 ) { $nbRep = 200 ; }
2010-11-08 17:25:06 +00:00
$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 )
{
2010-11-10 13:37:07 +00:00
//Authentification
2010-11-08 17:25:06 +00:00
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 ;
}
2010-11-10 13:37:07 +00:00
//Initialisation
2010-11-10 15:22:15 +00:00
if ( empty ( $histo )) { $histo = false ; }
2010-11-08 17:25:06 +00:00
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 ;
}
2010-11-10 13:37:07 +00:00
/**
* 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
2010-11-10 15:22:15 +00:00
if ( empty ( $filtre )) { $filtre = 0 ; }
if ( empty ( $idAnn )) { $idAnn = 0 ; }
if ( empty ( $position )) { $position = 0 ; }
if ( empty ( $nbRep )) { $nbRep = 20 ; }
2010-11-10 13:37:07 +00:00
//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 );
2010-11-08 17:25:06 +00:00
2010-11-10 13:37:07 +00:00
//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 ;
}
2010-11-08 17:25:06 +00:00
2010-11-10 15:22:15 +00:00
/**
* 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 ;
}
2010-11-08 17:25:06 +00:00
2010-09-08 13:40:57 +00:00
/**
* Recherche
2010-09-21 15:19:32 +00:00
* @ 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 )
2010-11-08 17:25:06 +00:00
* @ return RechercheEntrepriseReturn
2010-09-08 13:40:57 +00:00
*/
2010-11-08 17:25:06 +00:00
public function rechercheEntreprise ( $type , $criteres , $position = 0 , $nbRep = 20 , $maxRep = 200 , $pertinence = false , $avecSiren = false )
2010-09-15 16:18:38 +00:00
{
2010-09-21 15:19:32 +00:00
//Enregistrement des accès à la requête getIdentite
Zend_Registry :: get ( 'WsLogger' ) -> info ( " rechercheEntreprise - ip: " .
2010-09-22 07:22:40 +00:00
$_SERVER [ 'REMOTE_ADDR' ] . " , login: " . $_SERVER [ 'PHP_AUTH_USER' ]);
2010-09-21 15:19:32 +00:00
switch ( $type )
{
case 'ent' :
$entCriteres = new CriteresEntreprise ();
$entCriteres = $criteres -> elementEntreprise ;
$client = new SoapClient ( $this -> wsdl , $this -> wsdlOptions );
2010-09-23 16:20:08 +00:00
$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 ));
2010-10-18 10:04:21 +00:00
throw new SoapFault ( $fault -> faultcode , $fault -> faultstring );
exit ;
2010-09-23 16:20:08 +00:00
}
} 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 ));
2010-10-18 10:04:21 +00:00
throw new SoapFault ( $fault -> faultcode , $fault -> faultstring );
exit ;
2010-09-23 16:20:08 +00:00
}
} 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 ));
2010-10-18 10:04:21 +00:00
throw new SoapFault ( $fault -> faultcode , $fault -> faultstring );
exit ;
2010-09-23 16:20:08 +00:00
}
2010-09-21 15:19:32 +00:00
}
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 ,
2010-09-23 16:20:08 +00:00
empty ( $position ) ? 0 : $position ,
2010-09-21 15:19:32 +00:00
empty ( $nbRep ) ? 20 : $nbRep ,
empty ( $maxRep ) ? 200 : $maxRep ,
empty ( $pertinence ) ? false : $pertinence
);
} catch ( SoapFault $fault ) {
Zend_Registry :: get ( 'WsLogger' ) -> err ( " rechercheEntreprise - " . serialize ( $criteres ));
2010-10-18 10:04:21 +00:00
throw new SoapFault ( $fault -> faultcode , $fault -> faultstring );
exit ;
2010-09-21 15:19:32 +00:00
}
break ;
}
2010-09-15 16:18:38 +00:00
$error = new ErrorType ();
2010-09-21 15:19:32 +00:00
$error = arrayToClass ( $O [ 'error' ], 'ErrorType' );
$results = new RechercheEntrepriseResult ();
$results = arrayToClass ( $O [ 'results' ], 'RechercheEntrepriseResult' );
2010-11-08 17:25:06 +00:00
$outputParams = new RechercheEntrepriseReturn ();
2010-09-15 16:18:38 +00:00
$outputParams -> error = $error ;
$outputParams -> results = $results ;
return $outputParams ;
2010-09-08 13:40:57 +00:00
}
2010-11-15 14:51:46 +00:00
/**
* Retourne la fiche d 'identité simplifié d' une entreprise avec son numéro de TVA .
*
* @ param string $siren Identifiant Siren de l ' entreprise
2010-11-15 14:58:54 +00:00
* @ return TvaReturn
2010-11-15 14:51:46 +00:00
*/
2010-11-15 14:58:54 +00:00
public function getTVA ( $siren )
2010-11-15 14:51:46 +00:00
{
//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 ;
}
2010-11-15 15:40:01 +00:00
/**
* 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 ;
}
2010-09-08 13:40:57 +00:00
2010-11-17 16:45:20 +00:00
/**
* 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 ;
}
2010-11-18 16:53:20 +00:00
/**
* 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 ;
}
2010-11-19 13:27:30 +00:00
/**
* 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 );
else
$ret = $iPriv -> getPrivilegesCumul ( $siren , $tabTypes );
return $ret ;
}
2010-11-19 13:51:10 +00:00
/**
* Ajout d ' une surveillance
*
* @ param string $siret Siret / Siren
* @ param string $email Adresse email du client
* @ param string $ref Référence de la surveillance
* @ param string $source Type de source en surveillance ( insee , annonces , bilans , actes , privileges , score , dirigeants )
* @ param boolean $delete Suppression de la ligne
* @ param integer $encoursClient Encours demandé par le client
* @ return SetSurveillanceReturn
2010-11-19 13:27:30 +00:00
*/
2010-11-19 13:51:10 +00:00
public function setSurveillance ( $siret , $email , $ref = '' , $source = 'annonces' , $delete = false , $encoursClient = 0 )
{
//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 ( $ref )) $ref = '' ;
if ( empty ( $delete )) $delete = false ;
if ( empty ( $encoursClient )) $encoursClient = false ;
$error = new ErrorType ();
$tabRet = array ();
$siren = substr ( $siret , 0 , 9 );
$nic = substr ( $siret , 9 , 5 );
2010-11-19 13:27:30 +00:00
debugLog ( 'I' , " setSurveillances(siret= $siret , email= $email , ref= $ref , source= $source , delete= $delete ) " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
2010-11-19 13:51:10 +00:00
$tabIdentite = $this -> iInsee -> getIdentiteLight ( $siren , $nic );
$iDb = new WDB ();
$login = $this -> tabInfoUser [ 'login' ];
$source = strtolower ( $source );
switch ( $source )
{
2010-11-19 13:27:30 +00:00
case 'insee' :
case 'annonces' :
case 'bilans' :
case 'actes' :
case 'privileges' :
2010-11-19 13:51:10 +00:00
case 'dir1igeants' : $encoursClient = 0 ; break ;
case 'score' : $encoursClient = $encoursClient * 1 ; break ;
default : $source = 'annonces' ; break ;
2010-11-19 13:27:30 +00:00
}
2010-11-19 13:51:10 +00:00
$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' ],
);
2010-11-19 13:27:30 +00:00
if ( $delete )
2010-11-19 13:51:10 +00:00
{
$tabUpdate = array_merge (
$tabUpdate ,
array ( 'dateSuppr' => date ( 'Y-m-d' ))
);
}
2010-11-19 13:27:30 +00:00
else
2010-11-19 13:51:10 +00:00
{
$tabUpdate = array_merge (
$tabUpdate ,
array ( 'dateAjout' => date ( 'Y-m-d' ), 'dateSuppr' => 0 )
);
}
if ( $delete || ! $iDb -> insert ( 'surveillances_site' , $tabUpdate ))
{
2010-11-19 13:27:30 +00:00
/*@ sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " debugSurv pour $login " ,
2010-11-19 13:51:10 +00:00
" source=' $source ' AND login=' $login ' AND email=' $email ' AND siren= $siren AND nic= $nic AND ref=' $ref ' " . EOL .
print_r ( $tabUpdate , true ) . EOL
); */
2010-11-19 13:27:30 +00:00
if ( ! $iDb -> update ( 'surveillances_site' , $tabUpdate , " source=' $source ' AND login=' $login ' AND email=' $email ' AND siren= $siren AND nic= $nic AND ref=' $ref ' " ))
2010-11-19 13:51:10 +00:00
{
$error -> errnum = 76841 ;
$error -> errmsg = 'Mise a jour impossible' ;
$result = 0 ;
}
else
{
$result = 1 ;
}
2010-11-19 13:27:30 +00:00
}
2010-11-19 13:51:10 +00:00
else
{
$result = 1 ;
}
$output = new SetSurveillanceReturn ();
$output -> error = $error ;
$output -> result = $result ;
2010-11-19 13:27:30 +00:00
}
2010-11-19 14:36:27 +00:00
/**
* Enter description here ...
* @ param string $siret
* @ param string $source
* @ param boolean $detail
* @ param integer $deb
* @ param integer $nbRet
* @ param string $tri
* @ return SurveillancesReturn
*/
public function getSurveillances ( $siret = '' , $source = 'annonces' , $detail = false , $deb = 0 , $nbRet = 100 , $tri = '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
if ( empty ( $siret )) $siret = '' ;
if ( empty ( $source )) $source = 'annonces' ;
if ( empty ( $detail )) $detail = false ;
if ( empty ( $deb )) $deb = 0 ;
if ( empty ( $nbRet )) $nbRet = 100 ;
if ( empty ( $tri )) $tri = 'siren' ;
$error = new ErrorType ();
$tabRet = array ();
$siren = substr ( $siret , 0 , 9 ) * 1 ;
$nic = substr ( $siret , 9 , 5 ) * 1 ;
$tri = strtolower ( trim ( $tri ));
switch ( $tri )
{
2010-11-19 13:27:30 +00:00
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
}
2010-11-19 14:36:27 +00:00
$iDb = new WDB ();
$login = $this -> tabInfoUser [ 'login' ];
2010-11-19 13:27:30 +00:00
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
2010-11-19 14:36:27 +00:00
$tabTmp = $iDb -> select ( 'surveillances_site' , 'count(*) as nb' , " login=' $login ' AND dateSuppr=0 $strSiren $strSource " , false , MYSQL_ASSOC );
$nbRepTot = $tabTmp [ 0 ][ 'nb' ];
2010-11-19 13:27:30 +00:00
2010-11-19 14:36:27 +00:00
$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 )
{
2010-11-19 13:27:30 +00:00
if ( ! $detail )
2010-11-19 14:36:27 +00:00
{
2010-11-19 13:27:30 +00:00
$tabRet [] = array ( 'source' => $tabSurv [ 'source' ],
'email' => $tabSurv [ 'email' ],
'siren' => $tabSurv [ 'siren' ],
'nic' => $tabSurv [ 'nic' ],
'ref' => prepareString ( $tabSurv [ 'ref' ]),
'dateAjout' => $tabSurv [ 'dateAjout' ],
'dateDerEnvoi' => $tabSurv [ 'dateDerEnvoi' ],
);
2010-11-19 14:36:27 +00:00
}
else
{
2010-11-19 13:27:30 +00:00
if ( trim ( $tabSurv [ 'rs' ]) <> '' ) {
2010-11-19 14:36:27 +00:00
$rs = $tabSurv [ 'rs' ];
$cp = $tabSurv [ 'cp' ];
$ville = $tabSurv [ 'ville' ];
2010-11-19 13:27:30 +00:00
} else {
2010-11-19 14:36:27 +00:00
$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
);
2010-11-19 13:27:30 +00:00
}
2010-11-19 14:36:27 +00:00
$liste = new Surveillance ();
$liste -> source = $tabSurv [ 'source' ];
$liste -> email = $tabSurv [ 'email' ];
$liste -> siren = $tabSurv [ 'siren' ];
$liste -> nic = $tabSurv [ 'nic' ];
$liste -> ref = $tabSurv [ 'ref' ];
$liste -> dateAjout = $tabSurv [ 'dateAjout' ];
$liste -> encoursClient = $tabSurv [ 'encoursClient' ];
$liste -> rs = $rs ;
$liste -> cp = $cp ;
$liste -> ville = $ville ;
$liste -> dateDerEnvoi = $tabSurv [ 'dateDerEnvoi' ];
$tabRet [] = $liste ;
2010-11-19 13:27:30 +00:00
}
}
2010-11-19 14:36:27 +00:00
$criteres = new SurveillanceCriteres ();
$criteres -> siren = $siren ;
$criteres -> nic = $nic ;
$criteres -> source = $source ;
$result = new SurveillanceResult ();
$result -> criteres = $criteres ;
$result -> nbReponses = count ( $tabRet );
$result -> nbREponsesTotal = $nbRepTot ;
$result -> liste = $tabRet ;
$output = new SurveillanceReturn ();
$output -> error = $error ;
$output -> result = $result ;
return $output ;
2010-11-19 13:27:30 +00:00
}
/** 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 );
}
2010-11-17 16:45:20 +00:00
2010-09-08 13:40:57 +00:00
/**
2010-10-14 14:08:04 +00:00
* Retourne le statut du webservice
2010-11-08 17:25:06 +00:00
* @ return StatusReturn
2010-09-08 13:40:57 +00:00
*/
2010-11-08 17:25:06 +00:00
public function status ()
2010-09-15 16:18:38 +00:00
{
2010-09-13 09:54:49 +00:00
/* @ 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
2010-09-08 13:40:57 +00:00
*/
2010-09-23 16:20:08 +00:00
//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' ]);
2010-11-08 17:25:06 +00:00
$error = new StatusReturn ();
2010-10-18 10:04:21 +00:00
//Test connexion à la base de données
2010-11-05 09:54:50 +00:00
$db = new WDB ( 'jo' );
2010-10-18 10:04:21 +00:00
if ( $db === false )
{
$error -> statusCode = 1 ;
$error -> statusMsg = 'Erreur critique' ;
}
else
{
$error -> statusCode = 0 ;
$error -> statusMsg = 'Services disponible (beta)' ;
}
2010-09-08 13:40:57 +00:00
return $error ;
}
2010-11-15 14:51:46 +00:00
/**
* checkAuth
* @ param string $login
* @ param string $password
* @ param string $ipConnexion
*/
2010-11-08 17:25:06 +00:00
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 ;
}
2010-08-30 07:49:44 +00:00
2010-11-08 17:25:06 +00:00
}
2010-08-30 07:49:44 +00:00
?>