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 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 IndiscoreReturn */ public function getIndiScore($siren, $nic=0, $accesDist=true, $niveau=2) { //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(); $tabRet = array(); debugLog('I',"IndiScore demandée pour $siren en niveau $niveau",__LINE__,__FILE__, __FUNCTION__, __CLASS__); if (strlen($siren)>9 || (substr($siren,0,9)*1)<100 ) { debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $error->errnum = 102; $error->errmsg = 'Siren incorrect'; } else { $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); } $output = new IndiscoreReturn(); $output->error = $error; $output->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 * @return array */ 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 if (empty($detail)) $detail = false; if (empty($tabTypes)) $tabTypes = array('03','04'); $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; } /** * Ajout d'une surveillance * * @param string $siret Siret/Siren * @param string $email Adresse email du client * @param string $ref Référence de la surveillance * @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants) * @param boolean $delete Suppression de la ligne * @param integer $encoursClient Encours demandé par le client * @return SetSurveillanceReturn */ public function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) { //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); debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $tabIdentite = $this->iInsee->getIdentiteLight($siren, $nic); $iDb = new WDB(); $login = $this->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'")) { $error->errnum = 76841; $error->errmsg = 'Mise a jour impossible'; $result = 0; } else { $result = 1; } } else { $result = 1; } $output = new SetSurveillanceReturn(); $output->error = $error; $output->result = $result; } /** * 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) { case 'ref': $orderBy='ORDER BY ref'; break; case 'dateAjout': $orderBy='ORDER BY dateAjout'; break; case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break; case 'rs': $orderBy='ORDER BY rs'; break; case 'cp': $orderBy='ORDER BY cp'; break; case 'ville': $orderBy='ORDER BY ville'; break; default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre } $iDb = new WDB(); $login = $this->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 ); } $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; } } $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; } /** * 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 MandatairesReturn */ public function searchMandataires($nom, $type=array('A','M'), $cpDep=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($type)) $type = array('A','M'); if (empty($cpDep)) $cpDep = 0; $error = new ErrorType(); $tabRet = array(); debugLog('I',"Recherche de Mandataires '$nom' (Dep=$cpDep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__); $tabTmp = $this->iInsee->searchMandataires($nom, true, $type, $cpDep); foreach ($tabTmp as $i=>$mand) { $mandataire = new Mandataire(); $mandataire->id = 'm'.$i; $mandataire->mand = $mand; $tabRet[] = $mandataire; } $output = new MandatairesReturn(); $output->error = $error; $output->result = $tabRet; return $output; } /** * Retourne le bilan correspondant au siren, à l'exercice et au formalisme demandé. * * @param string $siren Siren de l'entreprise * @param string $millesime Date du bilan au format 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 BilanReturn */ public 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 = ''; } $error = new ErrorType(); 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__); $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); $tabBilan = $mBil->getBilan($millesime, $typeBilan, $ref, true); } $output = new BilanReturn(); $output->error = $error; $output->result = $tabBilan; return $output; } /** * 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 string $siren Siren de l'entité * @return SirenExistantReturn */ public function isSirenExistant($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(); $siren = trim(substr($siren,0,9)); $result = false; debugLog('I',"Siren existant demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__); if ($siren*1==0) { debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__); return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet); } else { $entrep = $this->iInsee->sirenExiste($siren); 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', "Siren $siren présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__); $result = true; } } wsLog('sirenExiste',$siren); $output = new SirenExistantReturn(); $output->error = $error; $output->result = $result; return $output; } /** * Retourne une annonce en fonction de sa référence * * @param string $siren Siren de l'entreprise * @param string $dateAnnee * @param integer $numParution * @param integer $numAnnonce * @return RechercheAnnonceReturn */ public function rechercheAnnonce($source, $dateAnnee, $numParution, $numAnnonce) { //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',"Annonce précise demandée pour $source, $dateAnnee, $numParution, $numAnnonce",__LINE__,__FILE__, __FUNCTION__, __CLASS__); if (strlen($dateAnnee)==4) $annee=$dateAnnee; else $annee=substr($dateAnnee,0,4); $iDb = new WDB('jo'); switch (strtoupper($source)) { case 'BODA': case 'BODB': case 'BODC': $lettre = substr(strtoupper($source),3,1); if ($annee<2005) { if ($lettre=='A'){ $numJAL=1; } elseif ($lettre=='B'){ $numJAL=200; } else{ break; } $anneeDeb = $annee.'0101'; $anneeFin = $annee.'1231'; $res = $iDb->select('historiques.entrep e, texte t', "$annee AS Annee_Parution, e.NOBOD AS Num_Parution, e.NOANN AS Num_Annonce, e.NOPAGE AS Num_Page, e.`DATE` AS Date_Parution, e.DEPT AS Departement, e.CODTRI AS Tribunal_Code, 'I' AS typeAnnonce, CONCAT(e.NOANN,' - ',t.annonceTxt) AS annonce", "e.JAL=$numJAL AND e.NOBOD=$numParution AND e.`DATE` BETWEEN $anneeDeb AND $anneeFin AND e.NOANN=$numAnnonce AND e.ANBASE=t.annonceNum"); } 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; } if (count($res)>0) { $iBodacc = new MBodacc(); foreach ($res as $i=>$etab) { $annonces = RechercheAnnonce(); $annonces->Annee_Parution = $etab['Annee_Parution']; $annonces->Num_Parution = $etab['Num_Parution']; $annonces->Num_Annonce = $etab['Num_Annonce']; $annonces->Num_Page = $etab['Num_Page']; $annonces->Date_Parution = $etab['Date_Parution']; $annonces->Departement = $etab['Departement']; $annonces->Tribunal_Code = $etab['Tribunal_Code']; $annonces->Tribunal = $iBodacc->getTribunalNom($etab['Tribunal_Code']); $annonces->Type_Annonce = $etab['typeAnnonce']; $annonces->Annonce = strip_tags(strtr( html_entity_decode($etab['annonce']), array('>'=>'>','&'=>'&','<'=>'<','’'=>"'") )); $tabRet[] = $annonces; } } $nbTot = count($tabRet); $result = new RechercheAnnonceResult(); $result->criteres = $criteres; $result->nbReponses = $nbTot; $result->nbReponsesTotal = $nbTot; $result->liste = $tabRet; $output = new RechercheAnnonceReturn(); $output->error = $error; $output->result = $result; return $output; } /** * 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; } } ?>