webservice/html/ws/WsEntreprise.php
2011-12-13 16:48:48 +00:00

4799 lines
219 KiB
PHP

<?php
set_time_limit(90);
ini_set('soap.wsdl_cache_enabled', 0);
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMPrivileges.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(FWK_PATH.'mail/sendMail.php');
class WsEntreprise
{
var $iInsee;
/** Constructeur de la classe
** @nodoc
**/
function __construct(){
$this->iInsee=new MInsee();
}
/** Obtention automatique d'un nouveau login pour un client
** @nodoc
**/
function getNextLogin(string $login)
{
global $iDbCrm;
global $tabInfoUser;
if ($tabInfoUser['profil']=='Administrateur' || $tabInfoUser['profil']=='SuperAdministrateur') {
/** Un administrateur veut créer un nouveau login **/
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin, c.droits', "u.login='$login' AND u.idClient=c.id");
$racine=$rep[0]['racineLogin'];
$idClient=$rep[0]['idClient'];
$droitsClients=$rep[0]['droits'];
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
if (count($rep)==0) $racine.='1';
else {
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
$racine.=$last_i+1;
}
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient, 'droitsClients'=>$droitsClients));
}
}
/** Récupère les informations du profil connecté
** @nodoc
**/
function getInfosLogin(string $login, string $ipUtilisateur)
{
global $iDbCrm;
global $tabInfoUser;
debugLog('I',"getInfosLogin pour $login (IP=$ipUtilisateur)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if ($tabInfoUser['login']<>$login && ($tabInfoUser['profil']=='Administrateur' || $tabInfoUser['profil']=='SuperAdministrateur') ) {
//debugLog('I',"getInfosLogin - Un administrateur veut il des infos sur un login",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
/** Un administrateur veut il des infos sur un login ? **/
$rep=$iDbCrm->select(
'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.test AS clientTest, c.timeout, c.typeScore AS typeScore',
"u.login='$login' AND u.idClient=c.id AND u.deleted=0",
true, MYSQL_ASSOC);
$tabRep=$rep[0];
if (count($rep)>0) {
$timeOutSec=$tabRep['timeout']*60;
if ($timeOutSec==0) $timeOutSec=1800;
$rep=array('login'=> $login,
'id'=> $tabRep['id'],
'email'=> $tabRep['email'],
'typeCompte'=> $tabRep['typeCompte'],
'idClient'=> $tabRep['idClient'],
'filtre_ip'=> $tabRep['filtre_ip'],
'civilite'=> $tabRep['civilite'],
'nom'=> prepareString($tabRep['nom']),
'prenom'=> prepareString($tabRep['prenom']),
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
'siret'=> $tabRep['siret'],
'adrNum'=> $tabRep['adrNum'],
'adrIndRep'=> $tabRep['adrIndRep'],
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
'adrCp'=> $tabRep['adrCp'],
'adrVille'=> prepareString($tabRep['adrVille']),
'adrComp'=> prepareString($tabRep['adrComp']),
'tel'=> $tabRep['tel'],
'fax'=> $tabRep['fax'],
'mobile'=> $tabRep['mobile'],
'pref'=> $tabRep['pref'],
'profil'=> prepareString($tabRep['profil']),
'dateInscription'=> $tabRep['dateInscription'],
'dateValidation'=> $tabRep['dateValidation'],
'nombreConnexions'=> $tabRep['nombreConnexions'],
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
'droits'=> $tabRep['droits'],
'droitsClients'=> $tabRep['droitsClients'],
'timeout'=> $timeOutSec,
'clientTest'=> $tabRep['clientTest'],
'typeScore'=> $tabRep['typeScore'],
'nbReponses'=> $tabRep['nbReponses'],
'formatMail'=> $tabRep['formatMail'],
'reference'=> prepareString($tabRep['referenceParDefaut']),
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
'dateFinCompte'=> $tabRep['dateFinCompte'],
'maxFicheId'=> $tabRep['maxFicheId'],
);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($tabMots,true).EOL.$motSignificatif.' trouvé en position '.$posMin) ;
} else {
/** On log l'erreur d'authentification **/
$tabInsert=array( 'login' => $login,
'page' => 'infosLogin',
'params' => 'Erreur Login/Password',
'ipClient' => $ipUtilisateur);
$iDbCrm->insert('logs', $tabInsert);
}
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
}
$ref='OK';
$connected=true;
if (trim($tabInfoUser['filtre_ip'])<>'') {
//debugLog('I',"getInfosLogin test filtre IP",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$connected=checkPlagesIp($tabInfoUser['filtre_ip'], $ipUtilisateur);
if (!$connected) {
debugLog('I',"getInfosLogin Adresse IP $ipUtilisateur non declaree pour le compte $login",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$errnum=10818;
$errmsg="Adresse IP $ipUtilisateur non declaree pour ce compte. Contactez votre administrateur !";
$ref='IP non déclarée';
}
}
$rep=array( 'connected'=> $connected,
'login'=> $tabInfoUser['login'],
'id'=> $tabInfoUser['id'],
'idClient'=> $tabInfoUser['idClient'],
'email'=> $tabInfoUser['email'],
'typeCompte'=> $tabInfoUser['typeCompte'],
'filtre_ip'=> $tabInfoUser['filtre_ip'],
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
'ipConnexion'=> $ipUtilisateur,
'civilite'=> $tabInfoUser['civilite'],
'nom'=> prepareString($tabInfoUser['nom']),
'prenom'=> prepareString($tabInfoUser['prenom']),
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
'siret'=> $tabInfoUser['siret'],
'adrNum'=> $tabInfoUser['adrNum'],
'adrIndRep'=> $tabInfoUser['adrIndRep'],
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
'adrCp'=> $tabInfoUser['adrCp'],
'adrVille'=> prepareString($tabInfoUser['adrVille']),
'adrComp'=> prepareString($tabInfoUser['adrComp']),
'tel'=> $tabInfoUser['tel'],
'fax'=> $tabInfoUser['fax'],
'mobile'=> $tabInfoUser['mobile'],
'pref'=> $tabInfoUser['pref'],
'profil'=> prepareString($tabInfoUser['profil']),
'dateInscription'=> $tabInfoUser['dateInscription'],
'dateValidation'=> $tabInfoUser['dateValidation'],
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
'droits'=> $tabInfoUser['droits'],
'droitsClients'=> $tabInfoUser['droitsClients'],
'timeout'=> $tabInfoUser['timeout'],
'clientTest'=> $tabInfoUser['clientTest'],
'typeScore'=> $tabInfoUser['typeScore'],
'nbReponses'=> $tabInfoUser['nbReponses'],
'formatMail'=> $tabInfoUser['formatMail'],
'reference'=> prepareString($tabInfoUser['referenceParDefaut']),
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
'maxFicheId'=> $tabInfoUser['maxFicheId'],
'typeScore'=> $tabInfoUser['typeScore'],
);
/** On log l'accès à l'authentification **/
if ($tabInfoUser['clientTest']=='Oui' || $tabInfoUser['typeCompte']=='TEST') $test=1;
else $test=0;
$tabInsert=array( 'login' => $tabInfoUser['login'],
'idClient' => $tabInfoUser['idClient'],
'page' => 'infosLogin',
'params' => $ref,
'test' => $test,
'ipClient' => $ipUtilisateur);
$iDbCrm->insert('logs', $tabInsert);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($tabInsert, true).EOL.'Erreur="'.mysql_error().'"'.EOL);
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
}
/** Récupère les informations du profil connecté
** @nodoc
**/
function getListeUtilisateurs(string $login, $idClient=-1)
{
global $iDbCrm;
global $tabInfoUser;
if ($tabInfoUser['profil']<>'Administrateur' && $tabInfoUser['profil']<>'SuperAdministrateur')
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
$idClient=$rep[0][0];
if ($idClient==-1)
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom, referenceParDefaut', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
$tabRet=array();
foreach ($rep as $uti)
$tabRet[]=array( 'idUti'=>$uti['id'],
'idClient'=>$uti['idClient'],
'login'=>$uti['login'],
'email'=>$uti['email'],
'actif'=>$uti['actif'],
'nom'=>prepareString($uti['nom']),
'prenom'=>prepareString($uti['prenom']),
'reference'=>prepareString($uti['referenceParDefaut']),
);
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
}
/** Récupère la liste des clients ou les informations d'un client
** @nodoc
**/
function getListeClients($idClient=0) {
global $iDbCrm;
global $tabInfoUser;
$idClient=$idClient*1;
if ($tabInfoUser['profil']=='Administrateur' && ($idClient==0 || $idClient==$tabInfoUser['idClient']))
$idClient=$tabInfoUser['idClient'];
elseif ($tabInfoUser['profil']<>'SuperAdministrateur')
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
$strClient='';
if ($idClient>0)
$strClient.=" AND id='$idClient' ";
$rep=$iDbCrm->select('clients', 'id, nom, actif, test, racineLogin, siren, nic, tva, editerFacture, fact_detail, fac_dest, fac_adr1, fac_adr2, fac_adr3, fac_email, fac_tel, fact_rib, liv_dest, liv_adr1, liv_adr2, liv_adr3, liv_email, liv_tel, droits, filtres_ip, dateInsert, dateUpdate, respComSD, typeContrat, dateSignature, typeAcces, typeScore, accesPieces, accesKbis, accesInvestigations, accesInternationnal, accesEnquetes, miseSousSurveillance, forfaitExtranetPeriode, forfaitExtranetMontant, reconductionAuto, remarque, forfaitPiecesNb, forfaitPiecesMt, forfaitPiecesDep, forfaitInvestigNb, forfaitInvestigMt, forfaitInvestigDep, tarifIndiscore', "1 $strClient", true, MYSQL_ASSOC);
$tabRet=array();
foreach ($rep as $uti)
$tabRet[]=array( 'idClient'=>$uti['id'],
'nom'=>prepareString($uti['nom']),
'actif'=>$uti['actif'],
'test'=>$uti['test'],
'racineLogin'=>$uti['racineLogin'],
'siren'=>$uti['siren'],
'nic'=>$uti['nic'],
'tva'=>$uti['tva'],
'editerFacture'=>$uti['editerFacture'],
'fact_detail'=>$uti['fact_detail'],
'fac_dest'=>prepareString($uti['fac_dest']),
'fac_adr1'=>prepareString($uti['fac_adr1']),
'fac_adr2'=>prepareString($uti['fac_adr2']),
'fac_adr3'=>prepareString($uti['fac_adr3']),
'fac_email'=>prepareString($uti['fac_email']),
'fac_tel'=>prepareString($uti['fac_tel']),
'fact_rib'=>$uti['fact_rib'],
'liv_dest'=>prepareString($uti['liv_dest']),
'liv_adr1'=>prepareString($uti['liv_adr1']),
'liv_adr2'=>prepareString($uti['liv_adr2']),
'liv_adr3'=>prepareString($uti['liv_adr3']),
'liv_email'=>prepareString($uti['liv_email']),
'liv_tel'=>prepareString($uti['liv_tel']),
'droits'=>$uti['droits'],
'timeout'=>$uti['timeout'],
'filtres_ip'=>$uti['filtres_ip'],
'dateInsert'=>$uti['dateInsert'],
'dateUpdate'=>$uti['dateUpdate'],
'respComSD'=>$uti['respComSD'],
'typeContrat'=>prepareString($uti['typeContrat']),
'dateSignature'=>$uti['dateSignature'],
'typeAcces'=>$uti['typeAcces'],
'typeScore'=>$uti['typeScore'],
'accesPieces'=>$uti['accesPieces'],
'accesKbis'=>$uti['accesKbis'],
'accesInvestigations'=>$uti['accesInvestigations'],
'accesInternationnal'=>$uti['accesInternationnal'],
'accesEnquetes'=>$uti['accesEnquetes'],
'miseSousSurveillance'=>$uti['miseSousSurveillance'],
'forfaitExtranetPeriode'=>$uti['forfaitExtranetPeriode'],
'forfaitExtranetMontant'=>$uti['forfaitExtranetMontant'],
'reconductionAuto'=>$uti['reconductionAuto'],
'remarque'=>prepareString($uti['remarque']),
'forfaitPiecesNb'=>$uti['forfaitPiecesNb'],
'forfaitPiecesMt'=>$uti['forfaitPiecesMt'],
'forfaitPiecesDep'=>$uti['forfaitPiecesDep'],
'forfaitInvestigNb'=>$uti['forfaitInvestigNb'],
'forfaitInvestigMt'=>$uti['forfaitInvestigMt'],
'forfaitInvestigDep'=>$uti['forfaitInvestigDep'],
'tarifIndiscore'=>$uti['tarifIndiscore'],
);
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
}
/** Mise à jour des informations du profil connecté
** @nodoc
**/
function setInfosLogin(string $login, integer $tabInfoUserWS) {
global $iDbCrm;
global $tabInfoUser;
if ($tabInfoUserWS['delete']==1 && ($tabInfoUser['profil']=='Administrateur' || $tabInfoUser['profil']=='SuperAdministrateur') )
$tabUpdate=array('deleted'=>1);
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && ($tabInfoUser['profil']=='Administrateur' || $tabInfoUser['profil']=='SuperAdministrateur') )
$tabUpdate=array('actif'=>0);
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && ($tabInfoUser['profil']=='Administrateur' || $tabInfoUser['profil']=='SuperAdministrateur') )
$tabUpdate=array('actif'=>1);
else {
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
$tabUpdate=array();
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
if ($tabInfoUser['profil']=='Administrateur' || $tabInfoUser['profil']=='SuperAdministrateur') {
$tabUpdate['droits']=$strDroits;
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
}
}
if ($tabInfoUserWS['action']=='new') {
$tabUpdate['login']=$login;
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
else
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
}
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
else
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
/*
[rech_limites] => Array
(
[0] => assocs
[1] => actifs
[2] => radies
[3] => sieges
)
'typeCompte'=> $tabRep['typeCompte'],
'filtre_ip'=> $tabRep['filtre_ip'],
'civilite'=> $tabRep['civilite'],
'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'],
'profil'=> $tabRep['profil'],
'dateInscription'=> $tabRep['dateInscription'],
'dateValidation'=> $tabRep['dateValidation'],
'nombreConnexions'=> $tabRep['nombreConnexions'],
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
'droits'=> $tabRep['droits'],
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
'dateFinCompte'=> $tabRep['dateFinCompte'],
'maxFicheId'=> $tabRep['maxFicheId'],
*/
}
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
**
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
** @param string $codePostal Code postal (ex: 75014)
** @param string $ville Ville
** @param bool $siege Limitation de la recherche au sièges (si true)
** @param bool $actif Limitation aux établissements actifs (si true)
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
** @param bool $avecSiren Ne proposer que les entités sirénées
** @return Tableau d'entreprises ou d'établissements
**/
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
$tabRet2=array();
foreach ($etabs['reponses'] as $etab)
$tabRet2[]=array( 'id'=>$etab['id'],
'Pertinence'=>$etab['Pertinence'],
'Siret'=>$etab['Siret'],
'Siege'=>$etab['Siege'],
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2'=>prepareString($etab['Nom2']),
'Sigle'=>prepareString($etab['Sigle']),
'Enseigne'=>prepareString($etab['Enseigne']),
'Adresse'=>prepareString($etab['Adresse']),
'Adresse2'=>prepareString($etab['Adresse2']),
'CP'=>$etab['CP'],
'Ville'=>prepareString($etab['Ville']),
'Tel'=>$etab['Tel'],
'Fax'=>$etab['Fax'],
'FJ'=>$etab['FJ'],
'FJLib'=>prepareString($this->iInsee->getLibelleFJ($etab['FJ'])),
'Siren'=>$etab['Siren'],
'Nic'=>$etab['Nic'],
'Actif'=>$etab['Actif'],
'NafEtab'=>$etab['NafEtab'], // Etablissement
'NafEtabLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEtab'])), // Etablissement
'NafEnt'=>$etab['NafEnt'], // Entreprise
'NafEntLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEnt'])),
);
$tabRet=$etabs;
$tabRet['reponses']=$tabRet2;
$fp=@fopen(LOG_PATH.'/recherches.log','a');
$siretTrouve=0;
if ($tabRet['nbReponses']==0) {
$str="NbRep=0, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve";
@fwrite($fp, $str.EOL);
@fclose($fp);
debugLog('I', "rechercheEtab : AUCUN RESULTAT, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
}
else {
if ($tabRet['nbReponses']==1) $siretTrouve=$tabRet['reponses'][0]['Siret'];
$str="NbRep=".$tabRet['nbReponses'].", S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab, ($deb, $nbRep, $maxRep, $siege, $actif, $pertinence, $avecSiren), SiretTrouve=$siretTrouve";
@fwrite($fp, $str.EOL);
@fclose($fp);
debugLog('I', "rechercheEtab : ".$tabRet['nbReponses']." RESULTATS, S=$raisonSociale, R=$adresse, L=$codePostal, V=$ville, A=$ape_etab ($siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
}
/** Recherche d'entreprise ou d'établissement par leur dirigeant
**
** @param string $nom Nom du dirigeant (obligatoire)
** @param string $prenom Prénom du dirigeant
** @param date $dateNaiss Date de naissance de la SSAA-MM-JJ, SSAA-MM ou SSAA
** @param string $lieuNaiss Lieu de naissance (CP, Ville ou Pays)
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
** @return Liste des entreprises trouvées
**/
function searchDir($nom, $prenom='', $dateNaiss='', $lieuNaiss='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) {
debugLog('I',"Recherche Dirigeant de $nom, $prenom, $dateNaiss, $lieuNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$etabs=$this->iInsee->rechercheDir($nom, $prenom, /*$fonction=*/'', $dateNaiss, $lieuNaiss, $deb, $nbRep, $maxRep, $pertinence);
$tabRet2=array();
foreach ($etabs['reponses'] as $etab)
$tabRet2[]=array( 'id'=>$etab['id'],
'Pertinence'=>$etab['Pertinence'],
'Siret'=>$etab['Siret'],
'Siege'=>$etab['Siege'],
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2'=>prepareString($etab['Nom2']),
'Sigle'=>prepareString($etab['Sigle']),
'Enseigne'=>prepareString($etab['Enseigne']),
'Adresse'=>prepareString($etab['Adresse']),
'Adresse2'=>prepareString($etab['Adresse2']),
'CP'=>$etab['CP'],
'Ville'=>prepareString($etab['Ville']),
'Tel'=>$etab['Tel'],
'Fax'=>$etab['Fax'],
'FJ'=>$etab['FJ'],
/* 'FJLib'=>prepareString($etab['FJLib']),
'Siren'=>$etab['Siren'],
'Nic'=>$etab['Nic'],
'Actif'=>$etab['Actif'],
'NafEtab'=>$etab['NafEtab'], // Etablissement
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
'NafEnt'=>$etab['NafEnt'], // Entreprise
'NafEntLib'=>prepareString($etab['NafEntLib']),*/
'FJLib'=>prepareString($this->iInsee->getLibelleFJ($etab['FJ'])),
'Siren'=>$etab['Siren'],
'Nic'=>$etab['Nic'],
'Actif'=>$etab['Actif'],
'NafEtab'=>$etab['NafEtab'], // Etablissement
'NafEtabLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEtab'])), // Etablissement
'NafEnt'=>$etab['NafEnt'], // Entreprise
'NafEntLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEnt'])),
// Dirigeant
'DirRs'=>prepareString($etab['DirRs']),
'DirNom'=>prepareString($etab['DirNom']),
'DirPrenom'=>prepareString($etab['DirPrenom']),
'DirNomUsage'=>prepareString($etab['DirNomUsage']),
'DirDateEffet'=>$etab['DirDateEffet'],
'DirFonction'=>prepareString($etab['DirFonction']),
'DirDepart'=>$etab['DirDepart'],
);
$tabRet=$etabs;
$tabRet['reponses']=$tabRet2;
if ($tabRet['nbReponses']==0) {
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
}
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/** Recherche d'entreprise par leur actionnaire
**
** @param string $nom Raison sociale / Nom de l'actionnaire (obligatoire)
** @param string $cpVille CP, Ville
** @param string $siren Siren de l'actionnaire
** @param string $pays Pays de l'actionnaire
** @param string $pctMin Niveau de détention Minimam de l'actionnaire
** @param string $pctMax Niveau de détention Maximum de l'actionnaire
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
** @return Liste des entreprises trouvées
**/
function searchAct($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) {
debugLog('I',"Recherche Actionnaire de $nom, $cpVille (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if (!empty($pays)){
$wdb = new WDB('jo');
$result = $wdb->select('tabPays', 'codPays3', "libPays LIKE '".$pays);
if (count($result>0)){
$pays = $result[0]['codPays3'];
} else {
$pays = '';
}
}
$mLiens = new MLiens('');
$etabs = $mLiens->rechercheActionnaire($nom, $cpVille, $siren, $pays, $pctMin, $pctMax, $deb, $nbRep, $maxRep, $pertinence);
$tabRet2=array();
foreach ($etabs['reponses'] as $etab)
$tabRet2[]=array(
'id'=>$etab['id'],
'Pertinence'=>$etab['Pertinence'],
'Siret'=>$etab['Siret'],
'Siege'=>$etab['Siege'],
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2'=>prepareString($etab['Nom2']),
'Sigle'=>prepareString($etab['Sigle']),
'Enseigne'=>prepareString($etab['Enseigne']),
'Adresse'=>prepareString($etab['Adresse']),
'Adresse2'=>prepareString($etab['Adresse2']),
'CP'=>$etab['CP'],
'Ville'=>prepareString($etab['Ville']),
'Tel'=>$etab['Tel'],
'Fax'=>$etab['Fax'],
'FJ'=>$etab['FJ'],
'FJLib'=>prepareString($this->iInsee->getLibelleFJ($etab['FJ'])),
'Siren'=>$etab['Siren'],
'Nic'=>$etab['Nic'],
'Actif'=>$etab['Actif'],
'NafEtab'=>$etab['NafEtab'], // Etablissement
'NafEtabLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEtab'])), // Etablissement
'NafEnt'=>$etab['NafEnt'], // Entreprise
'NafEntLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEnt'])),
// Actionnaire
'ActNomRs' => prepareString($etab['ActNomRs']),
'ActPays' => prepareString($etab['ActPays']),
'ActDateLien' => $etab['ActDateLien'],
'ActActif' => $etab['ActActif'],
'ActPmin' => $etab['ActPmin'],
);
$tabRet = $etabs;
$tabRet['reponses']=$tabRet2;
if ($tabRet['nbReponses']==0) {
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
}
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
**
** @param string $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @param integer $dep Département
** @return Liste d'établissements
**/
function searchSiren(string $siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0)
{
$tabRet=array();
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
elseif (strlen($siret)== 9) $nic='';
else {
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
}
$siren=substr(''.$siret,0,9);
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
if (count($rep['reponses'])==0 && $dep>0) {
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep);
}
$etabs=$rep['reponses'];
foreach ($etabs as $nb=>$etab) {
$tabRet[]=array( 'id' => $etab['id'],
'Pertinence'=> $etab['Pertinence'],
'Siret' => $etab['Siret'],
'Siege' => $etab['Siege'],
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2' => prepareString($etab['Nom2']),
'Sigle' => prepareString($etab['Sigle']),
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'FJ' => $etab['FJ'],
'FJLib' => prepareString($etab['FJLib']),
'Siren' => $etab['Siren'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'], // Etablissement
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
'NafEnt' => $etab['NafEnt'], // Entreprise
'NafEntLib' => prepareString($etab['NafEntLib']),
);
}
$rep['reponses']=$tabRet;
/** Si le siren est valide, on part chez Infogreffe **/
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
$iGeffes=new MGreffes();
$etab=$iGeffes->getIdentite($siren);
if ($etab) {
$tabRet[]=array( 'id' => $etab['id'],
'Pertinence'=> $etab['Pertinence'],
'Siret' => $etab['Siret'],
'Siege' => $etab['Siege'],
'Nom' => prepareString($etab['Nom']),
'Nom2' => prepareString($etab['Nom2']),
'Sigle' => prepareString($etab['Sigle']),
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'FJ' => $etab['FJ'],
'FJLib' => prepareString($etab['FJLib']),
'Siren' => $etab['Siren'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'],
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
'NafEnt' => $etab['NafEnt'],
'NafEntLib' => prepareString($etab['NafEntLib']),
);
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
'nbReponses'=>1,
'nbReponsesTotal'=>1,
'reponses'=>$tabRet);
} else {
$iDb=new WDB();
global $tabInfoUser;
$iDb->insert('siren_inexistants',
array( 'siren'=>$siren,
'nic'=>$nic,
'dep'=>$dep,
'login'=>$tabInfoUser['login'],
'client'=>$tabInfoUser['idClient'],
'dateInsert'=>date('YmdHis')));
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
'nbReponses'=>0,
'nbReponsesTotal'=>0,
'reponses'=>array());
}
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
/** Recherche d'entreprise ou d'établissement par leur TEL FAX
**
** @param string $telFax Téléphone ou fax de l'établissement (ex: 0175438010)
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @return Liste d'établissements
**/
function searchTelFax(string $telFax, $deb=0, $nbRep=20, $maxRep=200)
{
$tabRet=array();
debugLog('I',"Recherche par Tel/Fax de $telFax avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
//$assocs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $nbRep, $pertinence);
/** @todo A FAIRE
**/
if (strlen($telFax)<10 || strlen($telFax)>14) {
debugLog('W', "Tel/Fax $telFax incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Tel/Fax inexistant'), 'results'=>$tabRet);
}
$rep=$this->iInsee->getEtablissementsParId('TEL', $telFax, $deb, $nbRep, $maxRep);
$etabs=$rep['reponses'];
foreach ($etabs as $nb=>$etab) {
$tabRet[]=array( 'id' => $etab['id'],
'Pertinence'=> $etab['Pertinence'],
'Siret' => $etab['Siret'],
'Siege' => $etab['Siege'],
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2' => prepareString($etab['Nom2']),
'Sigle' => prepareString($etab['Sigle']),
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'FJ' => $etab['FJ'],
'FJLib' => prepareString($etab['FJLib']),
'Siren' => $etab['Siren'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'], // Etablissement
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
'NafEnt' => $etab['NafEnt'], // Entreprise
'NafEntLib' => prepareString($etab['NafEntLib']),
);
}
$rep['reponses']=$tabRet;
//$tabRet=$etabs;
/*if (count($tabRet)==0) {
debugLog('W', "Siren/Siret $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
}
else */return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
{
include_once(FWK_PATH.'sphinx/recherche2.php');
debugLog('I',"rechercheHisto de $recherche ($annee) (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabFiltresAnnee=array();
if ($annee<>'' && $annee*1>=1953 && $annee*1<=date('Y')*1)
$tabFiltresAnnee=array('annee1'=>$annee);
$ret=search2('histo', "$recherche", $tabFiltresAnnee, $deb, $nbRep, $maxRep, $pertinence);
$liste=$ret['results'];
$nbTot=$ret['nbTot'];
$duree=$ret['duration'];
$tabMots=$ret['words'];
$tabRet=array();
$k=0;
foreach ($liste as $n=>$etab) {
$texte=/*preg_replace('/ +/', ' ', */$etab['Texte'];//);
$posMin=100000;
$hitMin=1000000;
foreach ($tabMots as $mot=>$tabMot)
if ($tabMot['hits']<$hitMin){
$hitMin=$tabMot['hits'];
$motSignificatif=$mot;
}
$posMin = stripos($texte, ''.$motSignificatif);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($tabMots,true).EOL.$motSignificatif.' trouvé en position '.$posMin) ;
if ($posMin<150) $posMin=150;
$texte2=substr($texte, $posMin-150, 250);
$tabRet[]=array( 'id'=>$etab['id'],
'Pertinence'=>$etab['Pertinence'],
'Fichier'=>strtr($etab['Fichier'], array('.txt'=>'.pdf', '/mnt/bodacc/'=>'http://tville.scores-decisions.com/bodacc/')),
'Annee'=>$etab['Annee'],
'Code'=>$etab['Code'],
'Texte'=>prepareString(preg_replace('/^[A-Za-z0-9\sàáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝŸ]/','',
$texte2)),
);
$k++;
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($tabRet,true)) ;
return array( 'criteres'=>array('recherche'=>$recherche, 'annee'=>$annee),
'nbReponses'=>count($tabRet),
'nbReponsesTotal'=>$nbTot,
'duree'=>$duree,
'mots'=>array_keys($tabMots),
'reponses'=>$tabRet);
}
/** Retourne une annonce en fonction de sa référence
**
** @param string $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
*/
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('&gt;'=>'>','&amp;'=>'&','&lt;'=>'<','&#146;'=>"'")))),
);
$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);
}
/** Recherche d'entreprise ou d'établissement par un autre Identifiant
**
** @param string $typeId I=Code Isin, W=N°Waldec (Associations) ou R=N°RC (Registre Greffe)
** @param string $identifiant Identifiant recherché
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @return Liste d'établissements
**/
function searchAutreId(string $typeId, string $identifiant, $deb=0, $nbRep=20, $maxRep=200, $dep=0)
{
$tabRet=array();
$typeId=substr(trim(strtoupper($typeId)),0,1);
if ($typeId<>'I' && $typeId<>'W' && $typeId<>'R') {
debugLog('I',"Type d'identifiant $typeId inexistant",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>698987, 'errmsg'=>'Type d\'identifiant inexistant'), 'results'=>$tabRet);
}
debugLog('I',"Recherche par identifiant $typeId de $identifiantavec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if ($typeId=='W' || $typeId=='R') {
$rep=$this->iInsee->getEtablissementsParId('AUTRE', $identifiant, $deb, $nbRep, $maxRep, $dep);
$etabs=$rep['reponses'];
foreach ($etabs as $nb=>$etab) {
$tabRet[]=array( 'id' => $etab['id'],
'Pertinence'=> $etab['Pertinence'],
'Siret' => $etab['Siret'],
'Siege' => $etab['Siege'],
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2' => prepareString($etab['Nom2']),
'Sigle' => prepareString($etab['Sigle']),
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'FJ' => $etab['FJ'],
'FJLib' => prepareString($etab['FJLib']),
'Siren' => $etab['Siren'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'], // Etablissement
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
'NafEnt' => $etab['NafEnt'], // Entreprise
'NafEntLib' => prepareString($etab['NafEntLib']), );
}
$rep['reponses']=$tabRet;
//$tabRet=$etabs;
/*if (count($tabRet)==0) {
debugLog('W', "Siren/Siret $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
}
else */return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
else {
$iBourse=new MBourse($siren);
$siren=$iBourse->getCodeSiren($identifiant);
return $this->searchSiren($siren, $deb, $nbRep, $maxRep);
}
}
/** Vérifie si un siren existe en base Scores & Décisions
**
** @param string $siren Siren de l'entité
** @return unknown
**/
function isSirenExistant(string $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 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 array Fiche d'identité de l'établissement
**/
function getIdentite(string $siret, $id=0, $forceVerif=false)
{
$tdeb=microtime(1);
$ligne=date('YmdHis').";$siret;Ws->getIdentite Avant ...";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
} else {
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
}
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
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);
$id=trim($id)*1;
if ($len==14) $nic=substr(''.$siret,9,5)*1;
elseif ($len== 9) $nic=0;
elseif ($len== 0) { $siren=0; $nic=0; }
else {
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
}
$siren=substr(''.$siret,0,9)*1;
if ($siren==0 && $id==0) {
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
}
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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
}
$iBourse=new MBourse($siren);
$bourse=$iBourse->getInfosBourse($siren);
$tabRet=array( 'id' =>$entrep['id'],
'Siret' =>$entrep['Siret'],
'SiretSiege' =>$entrep['SiretSiege'],
'Siege' =>$entrep['Siege'],
'AncienSiege' =>$entrep['AncienSiege'],
'AncienSiegeDateFin'=>$entrep['AncienSiegeDateFin'],
'TribunalCode' =>prepareString($entrep['Tribunal']),
'TribunalLib' =>prepareString($entrep['TribunalLib']),
//'NumGreffe' =>$entrep['numGreffe'], // Ajouté le 4 08 2009
'NumRC' =>$entrep['numRC'], // Ajouté le 4 08 2009
'Actif' =>$entrep['Actif'],
'ActifEco' =>$entrep['ActifEco'], // Etab éco actif, ajout le 28/04/2011
'ActifEcoDate' =>$entrep['ActifEcoDate'], // Date si éco inactif et jur actif
'ActifEcoType' =>$entrep['ActifEcoType'], // vide ou NPAI ou PFER ou ECOF
'EntActiveRCS' =>$entrep['EntActiveRCS'],
'AutreId' =>$entrep['AutreId'],
'Source' =>$entrep['Source'],
'SourceId' =>$entrep['SourceId'],
'Isin' =>$entrep['Isin'],
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
'Nom2' =>prepareString($entrep['Nom2']),
'NomLong' =>prepareString($entrep['nomLong']), // Ajouté le 4 08 2009
'NomCommercial' =>prepareString($entrep['NomCommercial']), // Ajouté le 16 11 2010
'Siret' =>$entrep['Siret'],
'Sigle' =>prepareString($entrep['Sigle']),
'SigleLong' =>prepareString($entrep['sigleLong']), // Ajouté le 4 08 2009
'Enseigne' =>prepareString($entrep['Enseigne']),
'EnseigneLong' =>prepareString($entrep['enseigneLong']), // Ajouté le 16 11 2010
'Adresse' =>prepareString($entrep['Adresse']),
'Adresse2' =>prepareString($entrep['Adresse2']),
'AdresseNum' =>prepareString($entrep['AdresseNum']),
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
'AdresseRue' =>prepareString($entrep['AdresseRue']),
'CP' =>$entrep['CP'],
'Ville' =>prepareString($entrep['Ville']),
'Pays' =>prepareString($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' =>prepareString($entrep['Tel']),
'Fax' =>prepareString($entrep['Fax']),
'Web' =>prepareString($entrep['Web']),
'Mail' =>prepareString($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' =>prepareString($entrep['FJ_lib']),
'FJ2' =>$entrep['FJ2'], // Ajouté le 4 08 2009
'FJ2_Lib' =>prepareString($entrep['FJ2_Lib']), // Ajouté le 4 08 2009
'Siren' =>$entrep['Siren'],
'Nic' =>$entrep['Nic'],
'NafEnt' =>$entrep['NafEnt'],
'NafEntLib' =>prepareString($entrep['NafEntLib']),
'NafEtab' =>$entrep['NafEtab'],
'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
'NaceEtab' =>$entrep['NaceEtab'],
'NaceEnt' =>$entrep['NaceEnt'],
'Nafa' =>$entrep['APRM'],
'NafaLib' =>prepareString($entrep['APRM_Lib']),
'NumRM' =>$entrep['NumRM'],
'Activite' =>prepareString($entrep['Activite']),
'Capital' =>$entrep['Capital'],
'CapitalDev' =>$entrep['CapitalDev'],
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
'CapitalType' =>prepareString($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' =>prepareString($entrep['EffEnTr']),
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
'Effectif' =>prepareString($entrep['Effectif']),
'EffEtTr' =>prepareString($entrep['EffEtTr']), // Ajout le 11 08 2010
'EffEtTrLib' =>prepareString($entrep['EffEtTrLib']), // Ajout le 11 08 2010
'EffectifEtab' =>prepareString($entrep['EffectifEtab']),// Ajout le 11 08 2010
'Dept' =>$entrep['Dept'],
'codeCommune' =>prepareString($entrep['codeCommune']),
'AnneeEffEn' =>$entrep['AnneeEffEn'],
'AnneeEffEt' =>$entrep['AnneeEffEt'],
'AnneeTCA' =>$entrep['AnneeTCA'],
'TrancheCA' =>prepareString($entrep['TrancheCA']),
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
'TrancheCAType' =>prepareString($entrep['TrancheCAType']),
'dir1Code' =>$entrep['dir1Code'],
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
'dir1DateNaiss' =>$entrep['dir1DateNaiss'],// Ajouté le 4 08 2009
'dir1LieuNaiss' =>prepareString($entrep['dir1LieuNaiss']),// Ajouté le 4 08 2009
'dir2Code' =>$entrep['dir2Code'],
'dir2Titre' =>prepareString($entrep['dir2Titre']),//utf8
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
'dir2DateNaiss' =>$entrep['dir2DateNaiss'],// Ajouté le 4 08 2009
'dir2LieuNaiss' =>prepareString($entrep['dir2LieuNaiss']),// Ajouté le 4 08 2009
'Rivoli' =>$entrep['Rivoli'],
'InfosIris' =>array('codIris' => $entrep['InfosIris']['codIris'],
'codComIris'=> $entrep['InfosIris']['codComIris'],
'libIris' => prepareString($entrep['InfosIris']['libIris']),
'typIris' => prepareString($entrep['InfosIris']['typIris']),
'evoIris' => $entrep['InfosIris']['evoIris'],
'trIris' => $entrep['InfosIris']['trIris'],
'grdQuartier'=>$entrep['InfosIris']['grdQuartier']),
'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
'SurfaceMagasin' =>$entrep['ACTISURF']*1, // 0=N/D, 1=inf. à 300m2,2=300 à 400m2, 3=400 à 2500m2, 4=sup. à 2500m2
'SituationJuridique'=>$entrep['SituationJuridique'],
'Bilan' =>array('Millesime' => $entrep['bilanAnnee'],
'Cloture' => $entrep['bilanDate'],
'Duree' => $entrep['bilanMois'],
'Devise' => $entrep['bilanDevise'],
'Capital' => $entrep['bilanDA'],
'CA' => $entrep['bilanFL'],
'CAestime' => $entrep['bilanFLestime'],
'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'],
'AutreSiret' =>$entrep['AutreSiret'],
'DateMajINSEE' =>$entrep['DateMajINSEE'],
'DateMajRCS' =>$entrep['DateMajRCS'],
'DateMajBILAN' =>$entrep['bilanDateMaj'],
'DateMajANN' =>$entrep['dateMajANN'],
'DateMajID' =>$entrep['dateMajIdentite'],
//'importExport' =>$entrep['importExport'],
);
global $tabInfoUser;
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
$tabRet['Naf4Ent'] = $entrep2['apen4'];
$tabRet['Naf4Etab'] = $entrep2['apet4'];
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
}
/*$tabRet=$entrep;
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
'nombreTitres'=>$bourse['nombreTitres'],
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
'derCoursDate'=>$bourse['date'],
'derCoursCloture'=>$bourse['close']);*/
//$tabRet=$entrep;
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);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne l'ensemble des informations identitaires des dirigeants de l'entreprise
**
** @param string $siren Siren de l'entreprise
** @param bool $histo Afficher l'historique des dirigeants
** @return Liste des dirigeants actifs de l'entreprise
*/
function getDirigeants(string $siren, $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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret 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);
}
if ($histo) $option='histo';
else $option='';
$dirs=$this->iInsee->getDirigeants($siren, $histo);
//debugLog('W', print_r($entrep, true), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
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__);
$tabRet[]=array( 'Code' =>$dir['Fonction'],
'Titre' =>prepareString($dir['Titre']),
'Societe' =>prepareString($dir['Societe']),
'Civilite' =>prepareString($dir['Civilite']),
'Nom' =>prepareString($dir['Nom']),
'Prenom' =>prepareString($dir['Prenom']),
'NomUsage' =>prepareString($dir['NomUsage']),
'NaissDate' =>$dir['NaissDate'],// 07/09/1961
'NaissVille'=>prepareString($dir['NaissVille']), // LE RUSSEY
'NaissDepPays'=>prepareString($dir['NaissDepPays']), // LE RUSSEY
'Ancien' =>$dir['Ancien'],
'DateFct' =>$dir['DateFct'],
);
}
wsLog('dirigeants',$siren,$option);
debugLog('I', 'Nb Dirigeants retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne l'ensemble des informations des dirigeants opérationnels (non statutaires) de l'entreprise
**
** @param string $siren Siren de l'entreprise
** @return Liste des dirigeants opérationnels
*/
function getDirigeantsOp(string $siren)
{
debugLog('I',"Dirigeants opérationnels demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
if (strlen($siren)<>9) {
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret 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);
}
$dirs=$this->iInsee->getDirigeantsOp($siren);
foreach ($dirs as $nb=>$dir) {
$tabRet[]=array( 'Code' =>$dir['Fonction'],
'Titre' =>prepareString($dir['Titre']),
'Societe' =>prepareString($dir['Societe']),
'Civilite' =>prepareString($dir['Civilite']),
'Nom' =>prepareString($dir['Nom']),
'Prenom' =>prepareString($dir['Prenom']),
'NomUsage' =>prepareString($dir['NomUsage']),
'NaissDate' =>$dir['NaissDate'],// 07/09/1961
'NaissVille'=>prepareString($dir['NaissVille']), // LE RUSSEY
'NaissDepPays'=>prepareString($dir['NaissDepPays']), // LE RUSSEY
'Ancien' =>$dir['Ancien'],
'DateFct' =>$dir['DateFct'],
);
}
wsLog('dirigeantsOp',$siren);
debugLog('I', 'Nb Dirigeants Op retournés = '. count($dirs), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** 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
** @return Liste des annonces légales
*/
function getAnnonces(string $siren, $filtre=0, $idAnn=0)
{
debugLog('I',"Annonces demandées pour $siren ($filtre, $idAnn)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
if (strlen($siren)<>9) {
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
}
$siren=$siren*1;
//$filtre=$filtre*1;
if ($siren==0 && $idAnn==0) {
debugLog('W', "Siren $siren ou annonce $idAnn inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant A'), 'result'=>$tabRet);
}
/*
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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant B '.$siren.' '.$idAnn), 'result'=>$tabRet);
}
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__);
$tabRetEven=array();
foreach ($ann['evenements'] as $tabEven)
$tabRetEven[]=array('CodeEven'=>$tabEven['CodeEven'],
'LibEven' =>prepareString($tabEven['LibEven']));
$tabRet[]=array( 'id' =>$ann['id'],
'BodaccCode'=>$ann['BodaccCode'],
'BodaccNum'=>$ann['BodaccNum'],
'NumAnnonce'=>$ann['NumAnnonce'],
'DateParution'=>$ann['DateParution'],
'Departement'=>$ann['Departement'],
'Tribunal'=>$ann['Tribunal'],
'TribunalCode'=>$ann['TribunalCode'],
'TribunalSiret'=>$ann['TribunalSiret'],
'Rubrique'=>$ann['Rubrique'],
'typeAnnonce'=>$ann['typeAnnonce'],
'texteRectificatif'=>prepareString($ann['texteRectificatif']),
'texteAnnonce'=>prepareString($ann['texteAnnonce']),
'libFJ'=>prepareString($ann['libFJ']),
'codFJ'=>$ann['codFJ'],
'capital'=>$ann['capital'],
'capitalDev'=>$ann['capitalDev'],
'raisonSociale'=>prepareString($ann['raisonSociale']),
'nomCommercial'=>prepareString($ann['nomCommercial']),
'sigle'=>prepareString($ann['sigle']),
'adresse'=>prepareString($ann['adresse']),
'dateEffet'=>$ann['dateEffet'],
'dateJugement'=>$ann['dateJugement'],
'dateInsertionSD'=>$ann['dateInsertionSD'],
'evenements'=>$tabRetEven,
'Lien_Annonce_Pdf'=>$ann['Lien_Annonce_Pdf']
);
}
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__);
$tabRetEven=array();
foreach ($ann['evenements'] as $tabEven)
$tabRetEven[]=array('CodeEven'=>$tabEven['CodeEven'],
'LibEven' =>prepareString($tabEven['LibEven']));
$tabRet[]=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'=>prepareString($ann['texteRectificatif']),
'texteAnnonce'=>utf8_encode($ann['texteAnnonce']),//prepareString
'dateEffet'=>$ann['dateEffet'],
'dateJugement'=>$ann['dateJugement'],
'dateInsertionSD'=>$ann['dateInsertionSD'],
'evenements'=>$tabRetEven,
'Lien_Annonce_Pdf'=>$ann['Lien_Annonce_Pdf']
);
}
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__);
$tabRetEven=array();
foreach ($ann['evenements'] as $tabEven)
$tabRetEven[]=array('CodeEven'=>$tabEven['CodeEven'],
'LibEven' =>prepareString($tabEven['LibEven']));
$tabRet[]=array( 'id' =>$ann['id'],
'BodaccCode'=>$ann['BodaccCode'],
'BodaccNum'=>$ann['BodaccNum'],
'NumAnnonce'=>$ann['NumAnnonce'],
'DateParution'=>$ann['DateParution'],
'Departement'=>$ann['Departement'],
'Tribunal'=>prepareString($ann['Tribunal']),
'TribunalSiret'=>$ann['TribunalSiret'],
'Rubrique'=>$ann['Rubrique'],
'typeAnnonce'=>$ann['typeAnnonce'],
'texteRectificatif'=>prepareString($ann['texteRectificatif']),
'texteAnnonce'=>utf8_encode($ann['texteAnnonce']),//prepareString
'dateEffet'=>$ann['dateEffet'],
'dateJugement'=>$ann['dateJugement'],
'dateInsertionSD'=>$ann['dateInsertionSD'],
'evenements'=>$tabRetEven,
'Lien_Annonce_Pdf'=>$ann['Lien_Annonce_Pdf']
);
}
if (is_array($annsM))
foreach ($annsM as $nb=>$ann) {
$tabRetEven=array();
foreach ($ann['evenements'] as $tabEven)
$tabRetEven[]=array('CodeEven'=>$tabEven['CodeEven'],
'LibEven' =>prepareString($tabEven['LibEven']));
$tabRet[]=array( 'id' =>$ann['id'],
'BodaccCode'=>$ann['BodaccCode'],
'BodaccNum'=>$ann['BodaccNum'],
'NumAnnonce'=>$ann['NumAnnonce'],
'DateParution'=>$ann['DateParution'],
'Departement'=>$ann['Departement'],
'Tribunal'=>prepareString($ann['Tribunal']),
'TribunalSiret'=>$ann['TribunalSiret'],
'Rubrique'=>$ann['Rubrique'],
'typeAnnonce'=>$ann['typeAnnonce'],
'texteRectificatif'=>prepareString($ann['texteRectificatif']),
'texteAnnonce'=>utf8_encode($ann['texteAnnonce']),//prepareString
'dateEffet'=>$ann['dateEffet'],
'dateJugement'=>$ann['dateJugement'],
'dateInsertionSD'=>$ann['dateInsertionSD'],
'evenements'=>$tabRetEven,
'Lien_Annonce_Pdf'=>$ann['Lien_Annonce_Pdf']
);
}
debugLog('I', "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('annonces',$siren,$filtre.'/'.$idAnn);
file_put_contents(LOG_PATH.'/annonces.log', print_r($tabRet,1));
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne la fiche d'identité simplifié d'une entreprise avec son numéro de TVA.
**
** @param string $siren Identifiant Siren de l'entreprise
** @return Fiche d'identité avec Numéro de TVA Intracommunautaire
*/
function getTVA(string $siren)
{
$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__);
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);
}
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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
}
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__);
$tabRet=array( 'id' =>$entrep['id'],
'AutreId' =>$entrep['AutreId'],
'Nom' =>prepareString($entrep['Nom']),
'Sigle' =>prepareString($entrep['Sigle']),
'Enseigne' =>prepareString($entrep['Enseigne']),
'Adresse' =>prepareString($entrep['Adresse']),
'Adresse2' =>prepareString($entrep['Adresse2']),
'CP' =>$entrep['CP'],
'Ville' =>prepareString($entrep['Ville']),
'Siren' =>$entrep['Siren'],
'Tva' =>$tva,
);
debugLog('I', "TVA retournée = $tva (".$entrep['Nom'].')', __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('tva',$siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne tout ou patie des informations règlementées sur l'entreprise
**
** @param string $siren SIREN de l'entreprise
** @param integer $id Id du communiqué
** @return Liste des informations règlementées disponible
**/
function getInfosReg(string $siren, $id=false)
{
debugLog('I',"Infos règlementées demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
$tabRet=array();
$siren=substr($siren,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);
}
$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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet); // @todo A voir
}
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)
$tabRet[]=array( 'id' =>$ann['id'],
'source' =>$ann['source'],
'DateParution' =>$ann['DateParution'],
'raisonSociale' =>prepareString($ann['raisonSociale']),
'titre' =>prepareString($ann['titre']),
'pj' =>$ann['pj'],
'url' =>$ann['url'],
'dateInsertionSD' =>$ann['dateInsertionSD'],
);
else
$tabRet[]=array( 'id' =>$ann['id'],
'source' =>$ann['source'],
'DateParution' =>$ann['DateParution'],
'raisonSociale' =>prepareString($ann['raisonSociale']),
'titre' =>prepareString($ann['titre']),
'communique' =>prepareString($ann['communique']),
'communiqueHtml' =>utf8_encode($ann['communiqueHtml']),
'pj' =>$ann['pj'],
'url' =>$ann['url'],
'dateInsertionSD' =>$ann['dateInsertionSD'],
);
}
debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('infosreg',$siren,$id);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne les informations boursières de l'entreprise
**
** @param string $siren SIREN de l'entreprise
** @return Informations boursières disponibles
**/
function getInfosBourse(string $siren)
{
debugLog('I',"Infos bourse demandées pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$siren=substr($siren,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);
}
$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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet); // @todo A voir
}
$tabRet=array( 'Siren'=>$bourse['siren'],
'RaisonSociale'=>prepareString($bourse['raisonSociale']),
'Adresse'=>prepareString($bourse['adresse']),
'Effectif'=>$bourse['effectif'],
'CodeSicovam'=>$bourse['code_sicovam'],
'CodeMnemo'=>$bourse['code_mnemo'],
'CodeBloomberg'=>$bourse['code_bloomberg'],
'CodeDatastream'=>$bourse['code_datastream'],
'Isin'=>$bourse['code_isin'],
'CodeRic'=>$bourse['code_ric'],
'DateIntroduction'=>prepareString($bourse['dateIntroduction']),
'DateDerAG'=>prepareString($bourse['dateDerAG']),
'DateRadiation'=>prepareString($bourse['dateRadiation']),
'AutreIsin'=>$bourse['autre_isin'],
'EligibleSRD'=>$bourse['eligibleSRD'],
'EligiblePEA'=>$bourse['eligiblePEA'],
'Tel'=>$bourse['tel1'],
'Tel2'=>$bourse['tel2'],
'Fax'=>$bourse['fax1'],
'Fax2'=>$bourse['fax2'],
'Web'=>$bourse['web'],
'Mail'=>$bourse['mail'],
'Marche'=>prepareString($bourse['marche']),
'Description'=>prepareString($bourse['description']),
'Secteur'=>prepareString($bourse['secteur']),
'Activite'=>prepareString($bourse['activite']),
'ActiviteDet'=>prepareString($bourse['activiteDet']),
'placeCotation'=>prepareString($bourse['placeCotation']),
'nombreTitres'=>$bourse['nombreTitres'],
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
'derCoursDate'=>$bourse['date'],
'derCoursCloture'=>$bourse['close'],
'derCoursOuverture'=>$bourse['open'],
'derCoursPlusHaut'=>$bourse['high'],
'derCoursPlusBas'=>$bourse['low'],
'derCoursVolume'=>$bourse['volume'],
'coursMin'=>$bourse['coursMin'],
'coursMoy'=>$bourse['coursMoy'],
'coursMax'=>$bourse['coursMax'],
//'dirigeants'=>utf_prepare(unserialize($bourse['dirigeants'])),
//'actionnaires'=>utf_prepare(unserialize($bourse['actionnaires'])),
//'chiffresTrim'=>utf_prepare(unserialize($bourse['chiffresTrim'])),
);
debugLog('I', 'Nb infos retournés = '. count($anns), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('bourse',$siren,$id);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne la liste des bilans disponible pour une entreprise
**
** @param string $siren Siren de l'entreprise
** @return Liste des millésimes de bilan disponibles
*/
function getListeBilans(string $siren)
{
debugLog('I',"Liste des Bilans 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);
//if (ENV=='PRD')
$tabBilans=$mBil->listeBilans(true);
//else $tabBilans=$mBil->listeBilans(false);
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "WsEntreprise::getListeBilans sur $siren", print_r($tabBilans, 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($tabBilans), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabBilans);
}
/** Liste des 3000 premiers établissements d'une entreprise
**
** @param string $siren Siren de l'entreprise
** @param integer $departement Limiter aux établissements du departement
** @param boolean $actif Otpionnel 1=Uniquements les actifs, 0=inactifs, Néant=Tous
**
** @return Liste des établissements disponible
**/
function getListeEtablissements(string $siren, $dep=0, $actif=-1)
{
debugLog('I',"Liste des établissements 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);
}
$rep=$this->iInsee->getEtablissements($siren, '', 0, 3000, 3000, $departement, $actif);
$etabs=$rep['reponses'];
$tabRet=array();
foreach ($etabs as $nb=>$etab) {
$tabRet[]=array( 'id' => $etab['id'],
'Siege' => $etab['Siege'],
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'],
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
'EffEtTr' => $etab['EffEtTr'],
'EffEtTrLib'=> prepareString($etab['EffEtTrLib']),
);
}
debugLog('I', "Nb Etablissements retournés ($departement, $actif) = ". count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('etablissements',$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
** @return Liste des évènements INSEE de l'entreprise
**/
function getListeEvenements(string $siren, $nic='00000', $deb=0, $max=1000)
{
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__);
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);
}
$evens=$this->iInsee->getEvenements($siren, $nic, $deb, $max);
$tabRet=array();
foreach ($evens as $nb=>$even) {
$tabRet[]=array( 'Nic' => $even['nic'],
'Siege' => $even['siege'],
'SiretAss' => $even['siretAssocie'],
'TypeSiretAss'=>prepareString($even['typeSiretAss']),
'EvenCode' => $even['codeEven'],
'EvenLib' => prepareString($even['libEven']),
'EvenLibDet'=> prepareString($even['libEvenDet']),
'EvenDate' => $even['dateEven'],
'DateInfo' => $even['dateMAJ'],
);
}
/*
$iRncs=new MRncs();
$evens=$iRncs->getEvenements($siren);
foreach ($evens as $nb=>$even)
$tabRet[]=array( 'Nic' => $even['nic'],
'Siege' => $even['siege'],
'SiretAss' => $even['siretAssocie'],
'TypeSiretAss'=>prepareString($even['typeSiretAss']),
'EvenCode' => $even['codeEven'],
'EvenLib' => prepareString($even['libEven']),
'EvenLibDet'=> prepareString($even['libEvenDet']),
'EvenDate' => $even['dateEven'],
'DateInfo' => $even['dateMAJ'],
);
*/
debugLog('I', 'Nb évènements retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
//wsLog('etablissements',$siren);
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
*/
function getBilan(string $siren, string $millesime, $typeBilan='N', $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)) ;
/*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);
}
function getRatios(string $siren, $page='ratios')
{
$tabRatiosInfos=$tabRatiosSecteurs=$tabBilansR=$tabRatios2=$tabRatiosEvol=array();
global $tva, $tabFormules, $mBil, $tabBilan, $efftr;
debugLog('I',"Liste des Ratios 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);
}
debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabIdentite=$this->iInsee->getIdentiteEntreprise($siren,0,0,false,false);
debugLog('I',"Liste des Ratios demandée pour $siren après getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$naf=$tabIdentite['NafEnt'];
$nafLib=$tabIdentite['NafEntLib'];
$efftr=$tabIdentite['Effectif']*1;
$fj=$tabIdentite['FJ'];
$mBil=new MBilans($siren);
$tabBilans=$mBil->listeBilans(true);
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getRatios sur $siren", print_r($tabBilans, true));
$nbBilans=count($tabBilans);
$tabBilan=$tabBil=array();
if ($nbBilans>0)
$tabRatios=@calculRatios($tabBilans, $tabIdentite, true);
$nbRatios=count($tabRatios);
debugLog('I',"Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
/** Tableau d'infos sur les formules **/
$tabBorneMin=$tabBorneMax=array();
foreach ($tabFormules as $formule) {
$id=$formule['id']*1;
$libelle=$formule['libelle'];
$unite=$formule['unite'];
$commentaires=$formule['commentaires'];
// Utilisation d'un index texte à cause du webservice
$tabRatiosInfos['r'.$id]=array( 'libelle' => prepareString($formule['libelle']),
'unite' => $formule['unite'],
//'borneMin' => $formule['borneMin'],
//'borneMax' => $formule['borneMax'],
'commentaires' => prepareString($formule['commentaires']),
);
$tabBorneMin[$id]=$formule['borneMin'];
$tabBorneMax[$id]=$formule['borneMax'];
}
/** Tanleau des années de bilans **/
$tabAnnees=array();
// Tableau d'infos sur les bilans
foreach ($tabRatios as $i=>$R) {
$tabBilansR[$i]=array( 'dateCloture' => $tabBilan[$i]['DATE_CLOTURE'],
'duree' => $tabBilan[$i]['DUREE_MOIS'],
'devise' => $tabBilan[$i]['MONNAIE'],
'typeBilan' => $tabBilan[$i]['CONSOLIDE'],
'unite' => 'U',
);
if (substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900)
$tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4);
}
foreach ($tabRatios as $i=>$R) {
// Utilisation d'un index texte à cause du webservice
foreach ($R as $Ridx=>$Rmont) {
if ($Rmont<>'NS') {
if ($tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx])
$Rmont='<'.$tabBorneMin[$Ridx];
elseif ($tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx])
$Rmont='>'.$tabBorneMax[$Ridx];
}
if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>')
$tabRatios2[$i]['r'.$Ridx]=$Rmont;
else
$tabRatios2[$i]['r'.$Ridx]=round($Rmont,2);
if ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='S'||($tabBilan[$i+1]['CONSOLIDE']=='N'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
|| ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N'||($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
)
$Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]);
elseif ( ($tabBilan[$i]['CONSOLIDE']=='S'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='S'||($tabBilan[$i+2]['CONSOLIDE']=='N'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
|| ($tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+2]['CONSOLIDE']=='N'||($tabBilan[$i+2]['CONSOLIDE']=='S'&&$tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])))
)
$Rmont=(($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]);
else
$Rmont='NS';
if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800)
$tabRatiosEvol[$i]['r'.$Ridx]='NS';
else
$tabRatiosEvol[$i]['r'.$Ridx]=@number_format($Rmont,2,',',' ');
// debugLog('I',"Liste des Ratios demandée pour $siren ratio $i, $Ridx=$Rmont",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
}
debugLog('I',"Liste des Ratios demandée pour $siren après EVOLUTION",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
/** Tableau des ratios secteurs */
$tabRatiosSecteurs=array();
if (strlen($naf)>4) $strNaf=" AND naf5='$naf' ";
else $strNaf=" AND naf4='$naf' ";
$strAnnees=implode(',', $tabAnnees);
if (count($tabAnnees)>0) {
$iDb=new WDB('jo');
$tabTmp=$iDb->select('ratios_secteurs', 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", true, MYSQL_ASSOC);
$nbRatiosSec=0;
$anneePre=$tabTmp[0]['annee'];
$iAn=0;
foreach ($tabTmp as $tabTmp2) {
if ($anneePre<>$tabTmp2['annee']) $iAn++;
$Ridx=$tabTmp2['id'];
if ($tabTmp2['nombre']>$nbRatiosSec) $nbRatiosSec=$tabTmp2['nombre'];
if ($tabRatiosInfos['r'.$Ridx]['unite']=='EUR') $montant=round($tabTmp2['ratio']*1000);
else $montant=round($tabTmp2['ratio']);
if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx])
$montant='<'.$tabBorneMin[$Ridx];
elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx])
$montant='>'.$tabBorneMax[$Ridx];
if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>')
$tabRatiosSecteurs[$iAn]['r'.$Ridx]=$montant;
else
$tabRatiosSecteurs[$iAn]['r'.$Ridx]=round($montant,2);
// $tabRatiosSecteurs[$iAn]['r'.$Ridx]=$montant;
$anneePre=$tabTmp2['annee'];
//$tabRatiosSecteurs=array('titi');
}
}
//$tabRatiosSecteurs=array(count($tabTmp), "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC");
$tabRet=array( 'Nom' => prepareString($tabIdentite['Nom']),
'NafEnt' => $tabIdentite['NafEnt'],
'NafEntLib' => prepareString($tabIdentite['NafEntLib']),
'FJ' => $fj,
'FJ_lib' => prepareString($tabIdentite['FJ_lib']),
'Siren' => $siren,
'NbEntNaf' => $nbRatiosSec,
'BilansInfos' => $tabBilansR,
'RatiosInfos' => $tabRatiosInfos,
'RatiosEntrep' => $tabRatios2,
'RatiosEntrepEvol' => $tabRatiosEvol,
'RatiosSecteur' => $tabRatiosSecteurs,
);
debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
wsLog($page, $siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne les liens financiers pour une entreprise.
**
** @param string $siren Siren de l'entreprise
** @param bool $actifsUniquement Uniquement les liens Actifs
** @return Liste des liens financiers
*/
function getLiens(string $siren, $actifsUniquement=true)
{
debugLog('I',"Liens entreprises demandés pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=$tabAct=$tabPar=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);
}
$mLiens=new MLiens($siren);
$tabA=$mLiens->getActionnaires($siren, $actifsUniquement);
$nbA=count($tabA);
foreach ($tabA as $i=>$lien)
$tabAct[]=array( 'Pmin' => $lien['Pmin'],
'MajMin' => $lien['MajMin'],
'RaisonSociale' => prepareString($lien['RaisonSociale']),
'Pays' => prepareString($lien['Pays']),
'Siren' => $lien['Siren'],
'Actif' => $lien['Actif'],
'Source' => prepareString($lien['Source']),
'DateLien' => @$lien['DateLien'],
'DateMaj' => @$lien['DateMaj'],
);
debugLog('W', "$nbA actionnaires pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$tabP=$mLiens->getParticipations($siren, $actifsUniquement);
$nbP=count($tabP);
foreach ($tabP as $i=>$lien)
$tabPar[]=array( 'Pmin' => $lien['Pmin'],
'MajMin' => $lien['MajMin'],
'RaisonSociale' => prepareString($lien['RaisonSociale']),
'Pays' => prepareString($lien['Pays']),
'Siren' => $lien['Siren'],
'Actif' => $lien['Actif'],
'Source' => prepareString($lien['Source']),
'DateLien' => @$lien['DateLien'],
'DateMaj' => @$lien['DateMaj'],
);
debugLog('W', "$nbP participations pour le siren $siren", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('liens',$siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array('actionnaires' =>$tabAct,
'participations'=>$tabPar));
}
/** Evaluation indiScore d'une entreprise
**
** @param string $siren Siren de l'entreprise
** @param string $nic Nic de l'établissement
** @param bool $accesDist Force la mise à jout des informations tel, fax, web issues de tiers
** @param integer $niveau Niveau des commentaires
** @param bool $plus Si true, mise en surveillance privilèges
** @param string $ref Si $plus=true, référence de la mise en Surveillance
** @param integer $encours Si $plus=true, encours Client Demandé lors de la mise en Surveillance
** @return unknown
**/
function getIndiScore(string $siren, $nic='00000', $accesDist=true, $niveau=2, $plus=false, $ref='', $encours=0, $email='')
{
global $tabInfoUser;
$niveau=$niveau*1;
if ($niveau<>0 && $niveau<>1 && $niveau<>2 && $niveau<>3 && $niveau<>4 && $niveau<>5) $niveau=2;
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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
}
$tDeb=microtime(true);
include_once(INCLUDE_PATH.'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__);
if ($plus) {
if ($ref=='') $ref='Indiscore+';
if ($email=='') $email=$tabInfoUser['email'];
$this->setSurveillance($siren, $email, $ref, 'privileges');
$this->setSurveillance($siren, $email, $ref, 'score', false, $encours);
if ($tabInfoUser['idClient']==89)
$this->setSurveillance($siren, $email, $ref, 'annonces');
wsLog('indiscore+',$siren);
} else
wsLog('indiscore',$siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Enter description here...
** @nodoc
** @param unknown_type $from
** @param unknown_type $arrayTo
** @param unknown_type $subject
** @param unknown_type $text
** @param unknown_type $html
** @param unknown_type $priority
** @param unknown_type $tabImgFiles
** @param unknown_type $tabAttachedFiles
**/
function sendMail($from, $arrayTo, $subject, $text='', $html='', $priority='high', $tabImgFiles=array(), $tabAttachedFiles=array()) {
include_once(FWK_PATH.'common/mail.php');
$mail = new htmlMimeMail5();
/** Set the from address **/
$mail->setFrom($from);//'Richard <richard@example.com>
/** Set the subject **/
$mail->setSubject('Test email');
/** Set high priority **/
$mail->setPriority($priority);
/** Set the text of the Email **/
$mail->setText($text);
/** Set the HTML of the email **/
if ($html<>'')
$mail->setHTML($html); //'<b>Sample HTML</b> <img src="background.gif">');
/** Add an embedded image **/
if (count($tabImgFiles)>0)
$mail->addEmbeddedImage(new fileEmbeddedImage('background.gif'));
/** Add an attachment **/
if (count($tabAttachedFiles)>0)
$mail->addAttachment(new fileAttachment('example.zip'));
/** Send the email **/
$mail->send($arrayTo);//array('richard@example.com')
}
/** Enter description here...
** @nodoc
**/
function getListeCompetences(string $siret, string $type, string $codeInsee) {
$type=strtolower($type);
debugLog('I',"Liste des compétences $type demandée pour la commune $codeInsee",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
$iBodacc=new MBodacc();
$cp=$codeInsee*1;
$dep=false;
if (substr($codeInsee,0,2)=='2A' ||
substr($codeInsee,0,2)=='2B') { $dep=20; $cp=20000+(substr($codeInsee,2,3))*1; }
elseif ($cp>0 && $cp<100) $dep=$cp;
elseif ($cp>970 && $cp<977) $dep=$cp;
elseif ($cp>999 && $cp<10000) $dep='0'.substr($cp,0,1);
elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2);
elseif ($cp>=99000) $dep=substr($cp,0,2);
elseif ($cp>=98000) $dep=substr($cp,0,3);
elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3);
if ($type=='pre') {
$iDb=new WDB('jo');
$tabTmp2=$iDb->select('villes', 'DEP, COM, AR, CT', 'codeInsee='.$codeInsee, false, MYSQL_ASSOC);
$arrond=$tabTmp2[0]['AR'];
unset($iDb);
$iDb=new WDB('insee');
$tabTmp2=$iDb->select('insee_tabArrond', 'CHEFLIEU, ARTMAJ, NCC', "DEP='$dep' AND AR='$arrond'", false, MYSQL_ASSOC);
$nomSousPref=trim(strtr($tabTmp2[0]['ARTMAJ'],array('('=>'',')'=>'',' '=>'', "'"=>'')).' '.$tabTmp2[0]['NCC']);
unset($iDb);
$tabTmp=$iBodacc->getTribunauxParDep($dep);
foreach ($tabTmp as $i=>$tribunal) {
if ($tribunal['triType']=='A' || $tribunal['triType']=='B') {
$pref=levenshtein($tribunal['triNom'], 'PREFECTURE DE '.$nomSousPref);
$spref=levenshtein($tribunal['triNom'], 'SOUS PREFECTURE DE '.$nomSousPref);
if ($tribunal['triType']=='B' && ($pref>7 || $spref>5)) continue;
$tabRet[$i]=array( 'Id'=>$tribunal['triId'],
'IdSup'=>$tribunal['triIdSup'],
'Code'=>$tribunal['triCode'],
'Type'=>$tribunal['triType'].$typeP,
'Nom'=>prepareString(strtoupper($tribunal['triNom'])),
'Siret'=>$tribunal['triSiret'],
'Adr'=>strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '.
$tribunal['triAdrTypeVoie'].' '.prepareString($tribunal['triAdrVoie']))),
'AdrComp'=>prepareString(strtoupper($tribunal['triAdrComp'])),
'CP'=>$tribunal['triCP'],
'Ville'=>prepareString(strtoupper($tribunal['triVille'])),
'CodeInsee'=>$tribunal['CodeInsee'],
'Tel'=>$tribunal['triTel'],
'Fax'=>$tribunal['triFax'],
'Web'=>$tribunal['triWeb'],
'Mail'=>$tribunal['triMail'],
'Statut'=>prepareString($tribunal['triStatut']),
'DateCessation'=>$tribunal['triDateCessation'],
'Remarque'=>prepareString($tribunal['triCommentaire']),
);
}
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
} elseif ($type=='jal') {
$tabTmp=$iBodacc->getJALparDep($dep);
foreach ($tabTmp as $i=>$comp) {
$infos='';
if (trim($comp['parution'])<>'') $infos.='Parution '.$comp['parution'].'. ';
if (trim($comp['aboAnnuel'])>0) $infos.='Abonnement Annuel : '.$comp['aboAnnuel'].' euros. ';
if (trim($comp['infos'])<>'') $infos.=$comp['infos'];
$tabRet[$i]=array( 'Id'=>9000+$comp['id']*1,
'IdSup'=>0,
'Code'=>'',
'Type'=>'',
'Nom'=>prepareString(strtoupper($comp['nomJal'])),
'Siret'=>'',
'Adr'=>strtoupper(prepareString($comp['adresse'])),
'AdrComp'=>'',
'CP'=>prepareString($comp['cp']),
'Ville'=>prepareString(strtoupper($comp['ville'])),
'CodeInsee'=>'',
'Tel'=>prepareString($comp['tel']),
'Fax'=>prepareString($comp['fax']),
'Web'=>prepareString($comp['siteWeb']),
'Mail'=>prepareString($comp['email']),
'Statut'=>prepareString('Actif'),
'DateCessation'=>'',
'Remarque'=>prepareString(trim($infos)),
);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
} elseif ($type=='tri' || $type=='adm' || $type=='hui') {
$tabTmp=$iBodacc->getTribunauxParCommune($codeInsee);
foreach ($tabTmp as $i=>$tribunal) {
if (//$tribunal['triType']=='C' ||
$tribunal['triType']=='G'// ||
/*$tribunal['triType']=='I'*/) {
$idCA=$tribunal['triIdSup'];
$codeTGI=$tribunal['triCode'];
$code=strtoupper(substr($tribunal['triCode'],0,3));
}
debugLog('D',"Liste des compétences $type demandée pour la commune $codeInsee ($dep) : ".
"Type=".$tribunal['triType'].', '.
"Code=".$tribunal['$codeTGI'],__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if ($tribunal['triType']<>'E' && $tribunal['triType']<>'O' && $tribunal['triType']<>'T'
&& $tribunal['triType']<>'R' && $tribunal['triType']<>'N'
&& $tribunal['triType']<>'U' && $tribunal['triType']<>'Z') {
$tabRet[$i]=array( 'Id'=>$tribunal['triId'],
'IdSup'=>$tribunal['triIdSup'],
'Code'=>$tribunal['triCode'],
'Type'=>$tribunal['triType'],
'Nom'=>prepareString(strtoupper($tribunal['triNom'])),
'Siret'=>$tribunal['triSiret'],
'Adr'=>strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '.
$tribunal['triAdrTypeVoie'].' '.prepareString($tribunal['triAdrVoie']))),
'AdrComp'=>prepareString(strtoupper($tribunal['triAdrComp'])),
'CP'=>$tribunal['triCP'],
'Ville'=>prepareString(strtoupper($tribunal['triVille'])),
'CodeInsee'=>$tribunal['CodeInsee'],
'Tel'=>$tribunal['triTel'],
'Fax'=>$tribunal['triFax'],
'Web'=>$tribunal['triWeb'],
'Mail'=>$tribunal['triMail'],
'Statut'=>prepareString($tribunal['triStatut']),
'DateCessation'=>$tribunal['triDateCessation'],
'Remarque'=>prepareString($tribunal['triCommentaire']),
);
if ($tribunal['triNumGreffe']*1>0)
$tabRet[$i]['IdentifiantGreffe']=$tribunal['triNumGreffe'];
}
}
if ($type=='tri') return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
if ($type=='adm') {
//die($idCA);
$tabTmp=$this->iInsee->getMandataires(array($idCA), false);
$tabRet=array();
$nbAff=0;
foreach ($tabTmp as $i=>$tribunal) /** @todo A revoir Debut **/
if (stripos($tribunal['tribunal'], $code)!==false || stripos($tribunal['tribunal'], 'SAINT')!==false) {
$tabRet[$i]=array( 'Id'=>$tribunal['id'],
'IdSup'=>$tribunal['sirenGrp'],
'Code'=>prepareString($tribunal['tribunal']).'/'.$code,
'Type'=>prepareString($tribunal['type']),
'Nom'=>prepareString($tribunal['Nom'].' '.$tribunal['Prenom']),
'Siret'=>$tribunal['sirenMand'],
'Adr'=>prepareString(strtoupper($tribunal['adresse'])),
'AdrComp'=>prepareString(strtoupper($tribunal['adresseComp'])),
'CP'=>$tribunal['cp'],
'Ville'=>prepareString(strtoupper($tribunal['ville'])),
//'CodeInsee'=>$tribunal['CodeInsee'],
'Tel'=>$tribunal['tel'],
'Fax'=>$tribunal['fax'],
'Web'=>prepareString($tribunal['web']),
'Mail'=>prepareString($tribunal['email']),
'Statut'=>prepareString($tribunal['Statut']),
//'DateCessation'=>$tribunal['triDateCessation'],
'Remarque'=>prepareString($tribunal['contact']),
);//,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact
$nbAff++;
}
if ($nbAff==0) {
foreach ($tabTmp as $i=>$tribunal)
$tabRet[$i]=array( 'Id'=>$tribunal['id'],
'IdSup'=>$tribunal['sirenGrp'],
'Code'=>prepareString($tribunal['tribunal']).'/'.$code,
'Type'=>prepareString($tribunal['type']),
'Nom'=>prepareString($tribunal['Nom'].' '.$tribunal['Prenom']),
'Siret'=>$tribunal['sirenMand'],
'Adr'=>prepareString(strtoupper($tribunal['adresse'])),
'AdrComp'=>prepareString(strtoupper($tribunal['adresseComp'])),
'CP'=>$tribunal['cp'],
'Ville'=>prepareString(strtoupper($tribunal['ville'])),
//'CodeInsee'=>$tribunal['CodeInsee'],
'Tel'=>$tribunal['tel'],
'Fax'=>$tribunal['fax'],
'Web'=>prepareString($tribunal['web']),
'Mail'=>prepareString($tribunal['email']),
'Statut'=>prepareString($tribunal['Statut']),
//'DateCessation'=>$tribunal['triDateCessation'],
'Remarque'=>prepareString($tribunal['contact']),
);//,,,,Prenom,,,Statut,,,cp,ville,tel,fax,email,web,contact
}/** @todo A revoir Fin : Lier correctement les mandataires à un TI principal **/
} elseif ($type=='hui') {
$tabTmp=$this->iInsee->getHuissiers(array($codeTGI), false);
$tabRet=array();
$nbAff=0;
foreach ($tabTmp as $i=>$tribunal) {
$adr=$this->iInsee->structureVoie($tribunal['adresse']);
$tabRet[$i]=array( 'Id'=>$tribunal['id'],
'IdSup'=>$tribunal['sirenGrp'],
'Code'=>prepareString($tribunal['tribunal']).'/'.$code,
'Type'=>prepareString($tribunal['type']),
'Nom'=>prepareString($tribunal['Nom'].' '.$tribunal['Prenom']),
'Siret'=>$tribunal['sirenMand'],
'Adr'=>prepareString(strtoupper($adr['num'].' '.$adr['adr_btq'].' '.
$adr['typeVoie'].' '.$adr['libVoie'])),
'AdrComp'=>prepareString(strtoupper($tribunal['adresseComp'])),
'CP'=>$adr['cp'],
'Ville'=>prepareString(strtoupper($tribunal['ville'])),
//'CodeInsee'=>$tribunal['CodeInsee'],
'Tel'=>$tribunal['tel'],
'Fax'=>$tribunal['fax'],
'Web'=>prepareString($tribunal['web']),
'Mail'=>prepareString($tribunal['email']),
'Statut'=>prepareString($tribunal['Statut']),
//'DateCessation'=>$tribunal['triDateCessation'],
'Remarque'=>prepareString(strtr($tribunal['contact'],
array( '<br/>'=>', ', '<br>'=>', ',
'<br />'=>', ',
))),
);
}
$nbComp=count($tabTmp);
debugLog('I',"$nbComp compétences $type trouvées pour le tribunal $codeTGI",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
} elseif ($type=='cfe') {
$tabTmp=$iBodacc->getTribunauxParCommune($codeInsee);
foreach ($tabTmp as $i=>$tribunal) {
if ($tribunal['triType']=='C' || $tribunal['triType']=='O' || $tribunal['triType']=='T'
|| $tribunal['triType']=='R' || $tribunal['triType']=='N'
|| $tribunal['triType']=='U' || $tribunal['triType']=='Z') {
if (strlen($tribunal['triCommentaire'])==32 && strpos($tribunal['triCommentaire'], ' ')===false)
$remarque='';
else $remarque=prepareString($tribunal['triCommentaire']);
$tabRet[$i]=array( 'Id'=>$tribunal['triId'],
'IdSup'=>$tribunal['triIdSup'],
'Code'=>$tribunal['triCode'],
'Type'=>$tribunal['triType'],
'Nom'=>prepareString(strtoupper($tribunal['triNom'])),
'Siret'=>$tribunal['triSiret'],
'Adr'=>strtoupper(preg_replace('/ +/',' ',$tribunal['triAdrNum'].' '.$tribunal['triAdrIndRep'].' '.
$tribunal['triAdrTypeVoie'].' '.prepareString($tribunal['triAdrVoie']))),
'AdrComp'=>prepareString(strtoupper($tribunal['triAdrComp'])),
'CP'=>$tribunal['triCP'],
'Ville'=>prepareString(strtoupper($tribunal['triVille'])),
'CodeInsee'=>$tribunal['CodeInsee'],
'Tel'=>$tribunal['triTel'],
'Fax'=>$tribunal['triFax'],
'Web'=>$tribunal['triWeb'],
'Mail'=>$tribunal['triMail'],
'Statut'=>prepareString($tribunal['triStatut']),
'DateCessation'=>$tribunal['triDateCessation'],
'Remarque'=>$remarque,
);
}
}
}
wsLog('competences',$siret,$type.'/'.$codeInsee);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Enter description here...
** @nodoc
**/
function getListeConventions(string $siren)
{
debugLog('I',"Liste des conventions demandée pour le siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabIdentite=$this->iInsee->getIdentiteEntreprise($siren);
if (empty($tabIdentite) && isset($tabIdentite['erreur']) && $tabIdentite['erreur']<>'') {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>123456789, 'errmsg'=>'Evaluation indiScore indisponible pour le siren $siren'), 'result'=>$tabRet);
}
$naf=$tabIdentite['NafEnt'];
$trancheEffectif=$tabIdentite['EffEnTr'];
$effectif=$tabIdentite['Effectif'];
$fj=$tabIdentite['entreprise']['FJCodeEntrep'];
$isolv = new MSolvabilite($siren, $naf, $trancheEffectif, $effectif, $tabIdentite['CP'], $fj, $tabIdentite['Capital'],
$tabIdentite['CapitalDev'], $tabIdentite['DateCreaEn'], $tabIdentite['DateCreaEt']);//, $tabIdentite['Singularite']);
$noteStructure=$isolv->getSolvabilite();
$naf4=$isolv->getNaf4($naf);
$tabTmp=$this->iInsee->listeConventions($naf4, $tabIdentite['Dept']);
$tabRet=array();
foreach ($tabTmp as $i=>$conv) {
$tabRet[$i]=array( 'idCC'=> prepareString($conv['id CC']),
'nomCC'=> prepareString($conv['nom CC']),
'infoCC'=> prepareString($conv['infoCC']),
'editorCC'=>prepareString($conv['editeur CC']),
'nbPageCC'=>$conv['nb page CC'],
'isbnCC'=> $conv['isbn CC'],
'dateCC'=> prepareString($conv['date edition CC']),
'joCCmaj'=> $conv['joCCmaj'],
);
}
wsLog('competences',$siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Liste des marques déposées pour une entreprise donnée
** @nodoc
**/
function getMarques(string $siren, $idDepot=0) {
debugLog('I',"Liste des marques déposées pour le siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$marques=array();
$iDb=new WDB();
include_once(INCLUDE_PATH.'partenaires/classMMarques.php');
$iMarque=new MMarques();
$ret=$iMarque->getMarques($siren, $idDepot);
foreach ($ret as $i=>$marque) {
if (trim($marque['imgLink'])<>'') $idLien=$marque['numeroMarque'];
else $idLien='';
$marques[$i]=array( 'Marques' => prepareString($marque['nomMarque']),
'Date' => $marque['dateDepot'],
'Depot' => $marque['numeroMarque'],
'IdLien' => $idLien,
'UrlLien' => $marque['UrlLien'], // Rempli que si $idDepot<>0
'PdfDispo' => $marque['pdfLink'], // Nouveau
);
if ($idDepot==$marque['numeroMarque']) {
$marques[$i]['Classes'] = $marque['classesMarque']; // Nouveau
$marques[$i]['Perimetre'] = prepareString($marque['periMarque']); // Nouveau
$marques[$i]['DateExpir'] = $marque['dateExpir']; // Nouveau
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array(end($marques)));
}
}
wsLog('marques',$siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$marques);
}
/** Enter description here...
** @nodoc
**/
function getDevises($codeIsoDevise='') {
debugLog('I',"Liste des devises ou devise $codeIsoDevise demandée",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabTmp=$this->iInsee->getDevises($codeIsoDevise);
$tabRet=array();
foreach ($tabTmp as $i=>$devise)
$tabRet[$i]=prepareString($devise);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Retourne la liste des tribunaux ou Compétences demandées
**
** @param array $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 unknown
**/
function getTribunaux($tabTypes=array()) {
$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)
$tabRet[$i]=prepareString($tribunal['nom']);
else
foreach ($tabTmp as $i=>$tribunal) {
$type=substr($i,-1);
if (in_array($type, $tabTypes))
$tabRet[$i]=prepareString($tribunal['nom']);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Enter description here...
** @nodoc
**/
function getListeJalCollecte() {
$iBodacc=new MBodacc();
$tabRet=$iBodacc->getListeJalCollecte();
foreach ($tabRet as $i=>$jal)
$tabRet[$i]=prepareString($jal);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Liste les mandataires compétentes pour une cours d'appel donnée
**
** @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
** @return Liste des mandataires en tableau
**/
function getMandataires($codeTribunal=0, $type=array('A','M'))
{
$trib=serialize($codeTribunal);
debugLog('I',"Liste des Mandaitaires ou Administrateur du Tribunal/Cours d'Appel $trib demandé",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if (!is_array($codeTribunal) && strlen($codeTribunal)>3 && $codeTribunal*1==0) {
// $codeTribunal est un identifiant de tribunal
$iBodacc=new MBodacc();
$tabTmp=$this->iInsee->getMandataires(array($iBodacc->getTribunalIdCA($codeTribunal)), true, $type);
} elseif ($codeTribunal*1==0) {
// On veut tous les mandataires
$tabTmp=$this->iInsee->getMandataires(array(), true, $type);
} elseif (is_array($codeTribunal)) {
// On veut les mandataires d'une CA
$tabTmp=$this->iInsee->getMandataires($codeTribunal, true, $type);
}
$tabRet=array();
foreach ($tabTmp as $i=>$mand)
$tabRet['m'.$i]=prepareString($mand);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** 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
**/
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);
}
/** Récupère le mandataire par son id
** @nodoc
**
** @param integer $idMand Identifiant du mandataire
**
** @return array Information sur le mandataire
**/
function getMandataire($idMand)
{
debugLog('I',"Donne le Mandataires correspondant à $idMand",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=$this->iInsee->getMandataire($idMand);
$tabRet['Nom'] = prepareString($tabRet['Nom']);
$tabRet['Prenom'] = prepareString($tabRet['Prenom']);
$tabRet['tribunal'] = prepareString($tabRet['tribunal']);
$tabRet['adresse'] = prepareString($tabRet['adresse']);
$tabRet['adresseComp'] = prepareString($tabRet['adresseComp']);
$tabRet['ville'] = prepareString($tabRet['ville']);
$tabRet['email'] = prepareString($tabRet['email']);
$tabRet['web'] = prepareString($tabRet['web']);
$tabRet['contact'] = prepareString($tabRet['contact']);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/** Met a jour les informations sur un mandataire
**
** @param array $tabInfos Tableau des informations sur le mandataire à créer ou à ajouter (ajout si id absent)
**
** @return boolean
**/
function setMandataire($tabInfos=array())
{
global $iDbCrm, $tabInfoUser;
$iDb=new WDB();
/** Nom et Identifiant de l'opérateur de saisie **/
$rep=$iDbCrm->select('utilisateurs', 'id', "login='".$tabInfoUser['login']."'");
$idUser=$rep[0][0];
$infos=serialize($tabInfos);
debugLog('I',"Ajout/MAJ de mandaitaire $infos demandée",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$type=substr(strtoupper($tabInfos['type']),0,1);
$stag=substr(strtoupper($tabInfos['type']),1,1);
if ($stag=='S') $stag=1; else $stag=0;
if ($type=='A' || $type=='H' || $type=='M' || $type=='V' || $type=='N' || $type=='T') {
$tabUpdate=array( 'sirenGrp' => substr($tabInfos['sirenGrp'],0,9)*1,
'nicGrp' => substr($tabInfos['sirenGrp'],9,5)*1,
'sirenMand' => substr($tabInfos['sirenMand'],0,9)*1,
'nicMand' => substr($tabInfos['sirenMand'],9,5)*1,
'Nom' => ucwords(strtolower($tabInfos['Nom'])),
'Prenom' => ucwords(strtolower($tabInfos['Prenom'])),
'type' => $type,
'stagiaire' => $stag,
'coursAppel' => $tabInfos['coursAppel']*1,
'coursAppel2' => $tabInfos['coursAppel2']*1,
'tribunal' => $tabInfos['tribunal'],
'Statut' => strtoupper($tabInfos['Statut']),
'adresse' => ucwords($tabInfos['adresse']),
'adresseComp' => strtoupper($tabInfos['adresseComp']),
'cp' => $tabInfos['cp']*1,
'ville' => strtoupper($tabInfos['ville']),
'tel' => $tabInfos['tel'],
'fax' => $tabInfos['fax'],
'email' => $tabInfos['email'],
'web' => $tabInfos['web'],
'contact' => $tabInfos['contact'],
'idUser' => $idUser,
);
}
$id=str_replace('m','', ''.$tabInfos['id'])*1;
if (isset($tabInfos['id']) && $id>0) {
// MAJ
if (!$iDb->update('tabMandataires', $tabUpdate, "id=$id", true))
return array('error'=>array('errnum'=>768521741, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
} else {
// Insertion
if (!$iDb->insert('tabMandataires', array_merge($tabUpdate,array('dateInsert'=>date('YmdHis'))), true))
return array('error'=>array('errnum'=>768657741, 'errmsg'=>'Insertion impossible'), 'result'=>0);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
}
/** Mise à jour d'informations dans la base
** @nodoc
**/
function setInfosEntrep(string $siret, $id, $tabInfos)
{
$tabRet=array();
$iBodacc=new MBodacc();
global $iDbCrm, $tabInfoUser;
if ($tabInfoUser['idClient']<>1)
return array('error'=>array('errnum'=>464561, 'errmsg'=>'Code Client Incorrect'), 'result'=>0);
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$iDb=new WDB();
debugLog('W', print_r($tabInfos,true), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$tabIdentite=$tabInfos['identite'];
$tabJugement=$tabInfos['jugement'];
$tabActio =$tabInfos['actionnaire'];
$tabParti =$tabInfos['participation'];
$tabScores =$tabInfos['score'];
/** Mise à jour de l'identité
**/
if (trim(strtolower($tabIdentite['web']))=='http://') $web='';
else $web=trim($tabIdentite['web']);
$tabUpdate=array( 'isin'=>trim($tabIdentite['isin']),
'tel'=>trim($tabIdentite['tel']),
'fax'=>trim($tabIdentite['fax']),
'web'=>$web,
'mail'=>trim($tabIdentite['mail']),
'activite'=>stripslashes(trim($tabIdentite['activite'])),
'sirenDoublon'=>substr(str_replace(' ','',strtr($tabIdentite['sirenDoublon'], '"\'./- ,\*#()',' ')),0,9),
'waldec'=>trim(str_replace(' ','',strtr($tabIdentite['waldec'], '"\'./- ,\*#()',' '))),
);
/** @todo non traitées : [capital_mt] => 335400, [capital_dev] => EUR **/
if (!$iDb->update('infos_entrep', $tabUpdate, "siren='$siren'"))
if (!$iDb->insert('infos_entrep', array_merge(array('siren'=>$siren),$tabUpdate)))
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
if (isset($tabIdentite['moisOppositionInsee']) && $tabIdentite['moisOppositionInsee']>0 &&
$tabIdentite['moisOppositionInsee']<=(date('Ym')*1)) {
$iDb2=new WDB('insee');
if (!$iDb2->insert('insee_nondiff', array('siren'=>$siren, 'insEVE'=>795, 'mois'=>$tabIdentite['moisOppositionInsee'])))
if ($iDb2->getLastErrorNum()<>1062)
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de l'inscription à la liste des oppositions de la sphère commerciale INSEE pour $siren au mois de ".$tabIdentite['moisOppositionInsee']." : ".EOL.print_r($tabIdentite, true).EOL.$iDb2->getLastError());
}
if (isset($tabIdentite['moisRefusRCS']) && $tabIdentite['moisRefusRCS']>0 &&
$tabIdentite['moisRefusRCS']<=(date('Ym')*1)) {
$entrep=$this->iInsee->getIdentiteLight($siren);
if ($nic<10) $nic=$entrep['Nic'];
$cj1=$entrep['FJ'];
$iDb2=new WDB('insee');
/** Insertion dans la tables des exclusions **/
$tabInsert=array( 'siren'=> $siren,
'nic'=> $nic,
'idSaisie'=>$tabInfoUser['id'],
'cj1'=> $cj1,
'insEVE'=> 'RCS',
'mois'=> $tabIdentite['moisRefusRCS']);
if (!$iDb2->insert('insee_nondiff', $tabInsert))
if ($iDb2->getLastErrorNum()<>1062)
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de l'inscription à la liste des refus d'enregistrement A au RCS pour $siren au mois de ".$tabIdentite['moisOppositionInsee']." : ".EOL.print_r($tabInsert, true).EOL.print_r($tabIdentite, true).EOL.$iDb2->getLastError());
/** Insertion dans la tables des évènements **/
$tabInsert=array( 'insSIREN'=>$siren,
'siretValide'=>$this->iInsee->valideSiren($siren,$nic),
'insNIC'=>$nic,
'insEVE'=>'RCS',
'insDATEVE'=>$tabIdentite['moisRefusRCS'].'28',
'insDATEMAJ'=>date('YmdHis'),
'idFlux'=>date('Ymd'));
if (!$iDb2->insert('insee_even', $tabInsert))
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de l'inscription à la liste des refus d'enregistrement B au RCS pour $siren au mois de ".$tabIdentite['moisOppositionInsee']." : ".EOL.print_r($tabInsert, true).EOL.print_r($tabIdentite, true).EOL.$iDb2->getLastError());
}
if (isset($tabIdentite['domiciliataire']) && $siren>1000) {
if ($tabIdentite['domiciliataire']=='oui' || $tabIdentite['domiciliataire']=='non') {
// L'entreprise et ces établissements seront mis à jour automatiquement ce soir
$iDb->query("INSERT IGNORE INTO jo.tabAdrDom (siren,nic,siege, etActif, nom, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, depComEt, adrComp, cj, apen,apet, dateInsert)
SELECT siren, nic, siege, actif AS etActif, raisonSociale AS nom, sigle, enseigne, adr_num as adrNum, adr_btq AS adrBtq, adr_typeVoie AS adrTypVoie, adr_libVoie AS adrLibVoie, adr_ville AS ville, adr_cp AS cp, CONCAT(adr_dep,adr_com) AS depComEt, adr_comp AS adrComp, cj, ape_entrep AS apen, ape_etab AS apet, DATE(NOW()) as dateInsert
FROM jo.etablissements WHERE siren=$siren;", false);
}
// Si demande de suppression, on force l'indicateur ""
if ($tabIdentite['domiciliataire']=='non') {
$tabUpdate=array('pasEntrepDom'=>1);
if (!$iDb->update('tabAdrDom', $tabUpdate, "siren=$siren"))
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de la suppression du marqueur de domiciliation pour $siren :".EOL.print_r($tabUpdate, true).EOL.$iDb->getLastError());
}
}
/** Insertion des scores
**/
if (isset($tabScores['encours']) || isset($tabScores['scoreSolv']) ||
isset($tabScores['scoreDir']) || isset($tabScores['scoreConf'])) {
$tabUpdate=array();
$setScore=false;
if (isset($tabScores['encours']) && $tabScores['encours']<>'') { $tabUpdate['encours'] =$tabScores['encours']*1; $setScore=true; }
if (isset($tabScores['scoreSolv']) && $tabScores['scoreSolv']<>'') { $tabUpdate['scoreSolv']=$tabScores['scoreSolv']*1; $setScore=true; }
if (isset($tabScores['scoreDir']) && $tabScores['scoreDir']<>'') { $tabUpdate['scoreDir'] =$tabScores['scoreDir']*1; $setScore=true; }
if (isset($tabScores['scoreConf']) && $tabScores['scoreConf']<>'') { $tabUpdate['scoreConf']=$tabScores['scoreConf']*1; $setScore=true; }
if ($setScore)
// Mise à jour des Cute Offs
if (!$iDb->update('scores_cutoff', $tabUpdate, "siren=$siren"))
if (!$iDb->insert('scores_cutoff', array_merge(array('siren'=>$siren,
'dateInsert'=>date('Ymd')),$tabUpdate)))
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", print_r($tabScores, true).EOL.$iDb->getLastError());
}
/** Insertion du jugement
**/
//print_r($tabJugement);die();
if (isset($tabJugement['even']) && is_array($tabJugement['even']) && count($tabJugement['even'])>0) {
$idAdmin=str_replace('m','',trim($tabJugement['admin']))*1;
$idMand =str_replace('m','',trim($tabJugement['mand']))*1;
$idOppo =str_replace('m','',trim($tabJugement['oppo']))*1;
/** Nom et Identifiant de l'opérateur de saisie **/
$rep=$iDbCrm->select('utilisateurs', 'id', "login='".$tabInfoUser['login']."'");
$idUser=$rep[0][0];
$tabSource=explode('_',$tabJugement['source']);
$source=@$tabSource[0];
$numJal=@$tabSource[1];
$dateSource=WDate::dateT('d/m/Y', 'Ymd', trim($tabJugement['dateParution']))*1;
if ($dateSource<20000101)
$dateSource=date('YmdHis');
$montant=trim(preg_replace('/[^0-9]/', '', $tabJugement['montant']))*1;
$actionsMt=trim(preg_replace('/[^0-9]/', '', $tabJugement['actionsMt']))*1;
$actionsNb=trim(preg_replace('/[^0-9]/', '', $tabJugement['actionsNb']))*1;
if ($montant>0 && ($actionsNb>0 || $actionsMt>0)) {
if ($actionsNb>0) $actionsMt=$montant/$actionsNb;
elseif ($actionsMt>0) $actionsNb=$montant/$actionsMt;
}
$strDir='';
if ($tabJugement['nouvDir1Fonc']*1>0) {
$strDir.=$iBodacc->getFctDir($tabJugement['nouvDir1Fonc']*1).' : '.$tabJugement['nouvDir1Genre'].' '.ucwords(strtolower($tabJugement['nouvDir1Pre'])).' '.strtoupper($tabJugement['nouvDir1Nom']).', domicilié à '.$tabJugement['nouvDir1Dom'].'. ';
}
if ($tabJugement['nouvDir2Fonc']*1>0) {
$strDir.=$iBodacc->getFctDir($tabJugement['nouvDir2Fonc']*1).' : '.$tabJugement['nouvDir2Genre'].' '.ucwords(strtolower($tabJugement['nouvDir2Pre'])).' '.strtoupper($tabJugement['nouvDir2Nom']).', domicilié à '.$tabJugement['nouvDir2Dom'].'. ';
}
if ($tabJugement['nouvDir3Fonc']*1>0) {
$strDir.=$iBodacc->getFctDir($tabJugement['nouvDir3Fonc']*1).' : '.$tabJugement['nouvDir3Genre'].' '.ucwords(strtolower($tabJugement['nouvDir3Pre'])).' '.strtoupper($tabJugement['nouvDir3Nom']).', domicilié à '.$tabJugement['nouvDir3Dom'].'. ';
}
if (trim($tabJugement['nouvAdrCp'])<>'')
$strAdr=stripslashes(trim($tabJugement['nouvAdr']).', '.trim($tabJugement['nouvAdrCp']).' '.trim($tabJugement['nouvAdrVille']));
else
$strAdr='';
$nic=$tabJugement['nic']*1;
$entrep=$this->iInsee->getIdentiteLight($siren, $nic);
if ($nic>0 && $tabJugement['even'][0]==6700 && $entrep['Siege']==0)
// Radiation d'un établissement
$tabJugement['even'][0]=6600;
$tabEven=array();
for($i=1; isset($tabJugement['even'][$i]);$i++)
$tabEven[]=$tabJugement['even'][$i];
$strEven=implode(';',$tabEven);
$tabUpdate=array( 'strEven'=> $strEven,
'sirenValide'=> $this->iInsee->valideSiren($siren),
'dateCessationPaiement'=> WDate::dateT('d/m/Y', 'Y-m-d', trim($tabJugement['datePaie'])),
'dateEffetFinP'=> WDate::dateT('d/m/Y', 'Y-m-d', trim($tabJugement['dateFinPeriode'])),
'tribunal'=> trim($tabJugement['tribunal']),
'montant'=> $montant,
'actionsNb'=> $actionsNb,
'inter1type'=> 'A',
'inter1id'=> $idAdmin,
'inter1nom'=> $this->iInsee->getMandatairesParId($idAdmin),
'inter2type'=> 'M',
'inter2id'=> $idMand,
'inter2nom'=> $this->iInsee->getMandatairesParId($idMand),
'inter3type'=> 'O',
'inter3id'=> $idOppo,
'inter3nom'=> $this->iInsee->getMandatairesParId($idOppo),
'complement'=> stripslashes(trim($tabJugement['comp'])),
'nouvActivite'=> stripslashes(trim($tabJugement['nouvActivite'])),
'nouvDir'=> stripslashes(trim($strDir)),
'nouvAdr'=> $strAdr,
'nouvFJ'=> trim($tabJugement['nouvFJ']),
'raisonSociale'=> $entrep['Nom'],
'adresse'=> $entrep['Adresse'],
'codePostal'=> $entrep['CP'],
'ville'=> $entrep['Ville'],
'source'=> $source,
'idSaisie'=> $idUser,
'parutionIdJal'=> $numJal,
'parutionNum'=> $tabJugement['numParution'],
);
$dateJuge=WDate::dateT('d/m/Y','Y-m-d',trim($tabJugement['dateJuge']));
$tabInsert=array_merge($tabUpdate,array('siren'=>$siren,
'dateJugement'=>$dateJuge,
'typeEven'=> $tabJugement['even'][0],
'dateSource'=>$dateSource,
));
if (!$iDb->insert('annonces', array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))), true))
if (!$iDb->update('annonces', $tabUpdate, "siren=$siren AND dateJugement='$dateJuge' AND typeEven=".$tabJugement['even'][0], true))
return array('error'=>array('errnum'=>768741, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
}
/** Insertion de l'actionnaire
**/
if (is_array($tabActio) && trim($tabActio['siren'])<>'') {
// Tableau des actionnaires
//die('Actionnaires:'.print_r($tabActio));
$nom=$pays=$dateMAJ='';
$ppPm='P';
$pct=trim(str_replace(',','.',$tabActio['pct']))*1;
$siren2=preg_replace('/[^0-9]/','', $tabActio['siren']);
$entrep2=$this->iInsee->getIdentiteEntreprise($siren);
$nom2=$entrep2['Nom'];
$pays2=$entrep2['Pays'];
if ($pays2=='') $pays2='FRA';
if (substr($entrep2['FJ'],0,1)*1<>1) $ppPm='M';
$entrep=$this->iInsee->getIdentiteEntreprise($siren2);
$nom=$entrep['Nom'];
$pays=trim($entrep['Pays']);
if ($pays=='') $pays='FRA';
if (trim($tabActio['nom'])<>'') $nom=$tabActio['nom'];
if ($tabActio['pays']<>'XXX') $pays=$tabActio['pays'];
if (trim($tabActio['dateMAJ'])<>'JJ/MM/AAAA' && trim($tabActio['dateMAJ'])<>'')
$dateMAJ=WDate::dateT('d/m/Y', 'Y-m-d', trim($tabActio['dateMAJ']));
if ($tabActio['majMin']=='maj') $majMin='+';
elseif ($tabActio['majMin']=='min') $majMin='-';
else $majMin='';
$tabUpdate=array( //'Siren1'=> $siren,
'Pmin'=> $pct,
'Pmax'=> $pct,
'MajMin'=> $majMin,
'PpPm'=> $ppPm,
//'Siren2'=> $siren2,
//'RaisonSociale'=> $nom,
//'Pays'=> $pays,
'dateLien'=> $dateMAJ,
);
$tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>1),
array( 'Siren1'=> $siren,
'Siren2'=> $siren2,
'RaisonSociale'=> $nom,
'Pays'=> $pays,
'actif'=> 1,
'source'=> 1900,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='$nom' AND Pays='$pays'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='$nom' AND Pays='$pays'))", true))
$errMaj=1016166;
} else {
if (!$iDb->insert('liens', $tabInsert1, true))
$errMaj=1016167;
}
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren2,
'Siren2'=> $siren,
'RaisonSociale'=> $nom2,
'Pays'=> $pays2,
'actif'=> 1,
'source'=> 1900,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))", true))
$errMaj=1016168;
} else {
if (!$iDb->insert('liens', $tabInsert2, true))
$errMaj=1016169;
}
}
/** Insertion de la participation
**/
if (is_array($tabParti) && trim($tabParti['siren'])<>'') {
//die('Participation:'.print_r($tabParti));
$nom=$pays=$dateMAJ='';
$ppPm='P';
$pct=trim(str_replace(',','.',$tabParti['pct']))*1;
$siren2=preg_replace('/[^0-9]/','', $tabParti['siren']);
$entrep2=$this->iInsee->getIdentiteEntreprise($siren);
$nom2=$entrep2['Nom'];
$pays2=$entrep2['Pays'];
if ($pays2=='') $pays2='FRA';
if (substr($entrep2['FJ'],0,1)*1<>1) $ppPm='M';
$entrep=$this->iInsee->getIdentiteEntreprise($siren2);
$nom=$entrep['Nom'];
$pays=trim($entrep['Pays']);
if ($pays=='') $pays='FRA';
if (trim($tabParti['nom'])<>'') $nom=$tabParti['nom'];
if ($tabParti['pays']<>'XXX') $pays=$tabParti['pays'];
if (trim($tabParti['dateMAJ'])<>'JJ/MM/AAAA' && trim($tabParti['dateMAJ'])<>'')
$dateMAJ=WDate::dateT('d/m/Y', 'Y-m-d', trim($tabParti['dateMAJ']));
if ($tabParti['majMin']=='maj') $majMin='+';
elseif ($tabParti['majMin']=='min') $majMin='-';
else $majMin='';
$tabUpdate=array( 'Pmin'=> $pct,
'Pmax'=> $pct,
'MajMin'=> $majMin,
'PpPm'=> $ppPm,
'dateLien'=> $dateMAJ,
);
$tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren,
'Siren2'=> $siren2,
'RaisonSociale'=> $nom,
'Pays'=> $pays,
'actif'=> 1,
'source'=> 1900,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='$nom' AND Pays='$pays'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='$nom' AND Pays='$pays'))", true))
$errMaj=10168;
} else {
if (!$iDb->insert('liens', $tabInsert1, true))
$errMaj=10169;
}
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>1),
array( 'Siren1'=> $siren2,
'Siren2'=> $siren,
'RaisonSociale'=> $nom2,
'Pays'=> $pays2,
'actif'=> 1,
'source'=> 1900,
'dateInsert'=> date('YmdHis')));
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
if ($res[0][0]>0) {
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))", true))
$errMaj=10170;
} else {
if (!$iDb->insert('liens', $tabInsert2, true))
$errMaj=10171;
}
}
if ($errMaj>0)
return array('error'=>array('errnum'=>745741, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
}
/** Suppression logique d'une annonce relative à une entité
**
** @param integer $source 0=Collecte, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp
** @param integer $idAnn Identifiant de l'annonce
** @param string $siret Siren de l'entreprise ou Siret de l'établissement
** @return bool
*/
function supprAnnonce($source=0, $idAnn, string $siret) {
global $tabInfoUser;
if ($tabInfoUser['idClient']<>1)
return array('error'=>array('errnum'=>464561, 'errmsg'=>'Code Client Incorrect'), 'result'=>0);
$siren=substr(''.$siret,0,9)*1;
$iDb=new WDB();
switch ($source) {
case 0:
$idAnn=preg_replace('/^0\./','', ''.$idAnn)*1;
$table='annonces';
break;
case 1:
if ($idAnn<0)
return array('error'=>array('errnum'=>415245461, 'errmsg'=>'Code annonce Incorrect'), 'result'=>0);
if ($siren>0)
$strSql="AND siren=$siren";
$table='bodacc_detail';
break;
case 3:
$table='asso';
break;
case 2:
case 4:
default:
return array('error'=>array('errnum'=>4461, 'errmsg'=>'Cas non géré'), 'result'=>0);
break;
}
if ($idAnn>0) {
if ($iDb->update( $table,
array( 'dateSuppr'=>date('YmdHis'),
'idSuppr'=>$tabInfoUser['id'],
),
"id=$idAnn $strSql", false))
debugLog('I',"Suppression de l'annonce en source $source$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
}
debugLog('I',"Suppression impossible de l'annonce en source $source$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>987964641, 'errmsg'=>'Suppression de l\'annonce impossible'), 'result'=>0);
}
/** Supprime une annonce issue de la collecte
** @nodoc
**/
function supprAnnonceCollecte($idAnn, string $siret)
{
global $tabInfoUser;
if ($tabInfoUser['idClient']<>1)
return array('error'=>array('errnum'=>464561, 'errmsg'=>'Code Client Incorrect'), 'result'=>0);
$siren=substr(''.$siret,0,9)*1;
$iDb=new WDB();
$idAnn=preg_replace('/^0\./','', ''.$idAnn)*1;
if ($idAnn>0) {
if ($iDb->update( 'annonces',
array( 'dateSuppr'=>date('YmdHis'),
'idSuppr'=>$tabInfoUser['id'],
),
"id=$idAnn", false))
debugLog('I',"Suppression de l'annonce collectée n°$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
}
debugLog('I',"Suppression impossible de l'annonce collectée n°$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>987964641, 'errmsg'=>'Suppression de l\'annonce impossible'), 'result'=>0);
}
/** Duplication d'une annonce relative à une entité
**
** @param integer $source 0=Collecte, 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp
** @param integer $idAnn Identifiant de l'annonce
** @param string $siretIn Siren de l'entreprise ou Siret de l'établissement de l'annonce à duppliquer
** @param string $siretOut Siren/Siret de l'entreprise ou étab sur lequel il faut dupliquer l'annonce
** @return bool
*/
function dupliqueAnnonce($source=0, $idAnn, string $siretIn, string $siretOut)
{
debugLog('I',"Demande de duplication d'annonce en source $source sur n°$idAnn (siretIn=$siretIn, siretOut=$siretOut)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
global $tabInfoUser;
if ($tabInfoUser['idClient']<>1)
return array('error'=>array('errnum'=>464561, 'errmsg'=>'Code Client Incorrect'), 'result'=>0);
$sirenIn=substr(''.$siretIn,0,9)*1;
$nicIn=substr(''.$siretIn,9,5)*1;
$sirenOut=substr(''.$siretOut,0,9)*1;
$nicOut=substr(''.$siretOut,9,5)*1;
$iDb=new WDB();
$strSql='';
switch ($source) {
case 0:
$idAnn=preg_replace('/^0\./','', ''.$idAnn)*1;
$table='annonces';
break;
case 1:
if ($idAnn<0)
return array('error'=>array('errnum'=>415245461, 'errmsg'=>'Code annonce Incorrect'), 'result'=>0);
if ($sirenIn>0)
$strSql.="AND siren=$sirenIn";
$table='bodacc_detail';
break;
case 3:
$table='asso';
break;
case 2:
case 4:
default:
return array('error'=>array('errnum'=>4461, 'errmsg'=>'Cas non géré'), 'result'=>0);
break;
}
if ($idAnn>0) {
$res=$iDb->select($table, '*', "id=$idAnn $strSql", false, MYSQL_ASSOC);
if (count($res)==0) return array('error'=>array('errnum'=>4645644561, 'errmsg'=>'Annonce inexistante'), 'result'=>0);
$annonce=$res[0];
$annonce['siren']=$sirenOut;
$annonce['sirenValide']=2;
$annonce['dateInsert']=date('YmdHis');
if ($source==0) {
// Suppression des zones inexistantes dans la table ou devant être vides
unset($annonce['id']);
unset($annonce['nic']);
$annonce['idSaisie']=$tabInfoUser['id'];
} else {
$annonce['idSirenage']=$tabInfoUser['id'];
$annonce['nic']=$nicOut;
if ($nicOut>0) $annonce['nicValide']=2;
}
if ($iDb->insert($table, $annonce, true, true)) {
debugLog('I',"Duplication de l'annonce en source $source sur n°$idAnn (siretIn=$siretIn, siretOut=$siretOut)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
} else
debugLog('I',"Duplication imposible de l'annonce en source $source sur n°$idAnn (siretIn=$siretIn, siretOut=$siretOut) : ".mysql_error(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
debugLog('I',"Duplication impossible de l'annonce en source $source sur n°$idAnn (siretIn=$siretIn, siretOut=$siretOut)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>987964641, 'errmsg'=>'Duplication de l\'annonce impossible'), 'result'=>0);
}
/** Duplique une annonce issue de la collecte
** @nodoc
**/
function dupliqueAnnonceCollecte($idAnn, string $siret)
{
global $tabInfoUser;
debugLog('I',"Demande de duplication d'annonce collectée sur n°$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if ($tabInfoUser['idClient']<>1)
return array('error'=>array('errnum'=>464561, 'errmsg'=>'Code Client Incorrect'), 'result'=>0);
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$iDb=new WDB();
$idAnn=preg_replace('/^0\./','', ''.$idAnn)*1;
debugLog('I',"Demande de duplication d'annonce collectée sur n°$idAnn (siret=$siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if ($idAnn>0 && $siren>1000) {
$res=$iDb->select('annonces', '*', "id=$idAnn", false, MYSQL_ASSOC);
if (count($res)==0) return array('error'=>array('errnum'=>4645644561, 'errmsg'=>'Annonce inexistante'), 'result'=>0);
$annonce=$res[0];
// Suppression des zones inexistantes dans la table ou devant être vides
unset($annonce['id']);
unset($annonce['nic']);//=$nic;
$annonce['siren']=$siren;
$annonce['dateInsert']=date('YmdHis');
if ($iDb->insert('annonces', $annonce)) {
debugLog('I',"Duplication de l'annonce collectée n°$idAnn sur $siret",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
} else
debugLog('I',"Duplication imposible de l'annonce collectée n°$idAnn sur $siret : ".mysql_error(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
debugLog('I',"Demande de duplication d'annonce collectée sur n°$idAnn (siret=$siret!!!!)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
debugLog('I',"Duplication impossible de l'annonce collectée n°$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>987964641, 'errmsg'=>'Duplication de l\'annonce impossible'), 'result'=>0);
}
/** Récupère le contenu d'une annonce issue de la collecte
** @nodoc
**/
function getAnnonceCollecte($idAnn, string $siret)
{
global $tabInfoUser;
if ($tabInfoUser['idClient']<>1)
return array('error'=>array('errnum'=>464561, 'errmsg'=>'Code Client Incorrect'), 'result'=>0);
$siren=substr(''.$siret,0,9)*1;
$iDb=new WDB();
debugLog('I',"Lecture de l'annonce collectée n°$idAnn ($siret)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$idAnn=preg_replace('/^0\./','', ''.$idAnn)*1;
if ($idAnn>0) {
$res=$iDb->select('annonces',
'id, siren, sirenValide, typeEven, strEven, raisonSociale, adresse, codePostal, ville, dateJugement, dateCessationPaiement, dateEffetFinP, numero, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom, tribunal, montant, actionsNb, complement, infosBrutes, nouvActivite, nouvDir, nouvAdr, nouvFJ, annonce, source, parutionIdJal, parutionNum, dateSource, idSaisie, idAnnonce, dateInsert',
"id=$idAnn", false, MYSQL_ASSOC);
if (count($res)>0) {
$ann=$res[0];
$tabRet=array( 'id'=> $ann['id'],
'siren'=> $ann['siren'],
'raisonSociale'=> prepareString($ann['raisonSociale']),
'adresse'=> prepareString($ann['adresse']),
'codePostal'=> $ann['codePostal'],
'ville'=> prepareString($ann['ville']),
'dateJugement'=> $ann['dateJugement'],
'even'=> array_merge(array($ann['typeEven']),explode(';',$ann['strEven'])),
'dateSource'=> $ann['dateSource'],
'dateCessationPaiement'=> $ann['dateCessationPaiement'],
'dateEffetFinP'=> $ann['dateEffetFinP'],
'tribunal'=> $ann['tribunal'],
'numero'=> $ann['numero'],
'montant'=> $ann['montant'],
'actionsNb'=> $ann['actionsNb'],
'inter1type'=> $ann['inter1type'],
'inter1id'=> $ann['inter1id'],
'inter1nom'=> prepareString($ann['inter1nom']),
'inter2type'=> $ann['inter2type'],
'inter2id'=> $ann['inter2id'],
'inter2nom'=> prepareString($ann['inter2nom']),
'inter3type'=> $ann['inter3type'],
'inter3id'=> $ann['inter3id'],
'inter3nom'=> prepareString($ann['inter3nom']),
'complement'=> prepareString($ann['complement']),
'nouvActivite'=> prepareString($ann['nouvActivite']),
'nouvDir'=> prepareString($ann['nouvDir']),
'nouvAdr'=> prepareString($ann['nouvAdr']),
'nouvFJ'=> $ann['nouvFJ'],
'source'=> $ann['source'],
);
debugLog('I',"Lecture de l'annonce collectée n°$idAnn ($siret) : ".$ann['raisonSociale'],__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
}
return array('error'=>array('errnum'=>745741, 'errmsg'=>'Selection impossible'), 'result'=>0);
}
/**
* Enter description here...
*
* @param string $page
* @param string $siret
* @param integer $id
* @param string $ref
* @nodoc
**/
function setLog(string $page, string $siret, $id=0, $ref='') {
if ($id<>0) $ref2=''.$id.'/'.$ref;
else $ref2=$ref;
wsLog($page, $siret, $ref2);
debugLog('I',"Insertion d'un log pour la page $page $siret $ref2",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
/** Ajout d'une surveillance Annonces Légales
** @nodoc
**
** @param unknown_type $siret
** @param unknown_type $email
** @param unknown_type $ref
** @param unknown_type $delete
** @return unknown
*/
function setSurveillanceAnnoncesLegales(string $siret, string $email, $ref='', $delete=false)
{
return $this->setSurveillance($siret, $email, $ref, 'annonces', $delete);
}
/** Ajout d'une surveillance
**
** @param string $siret Siret/Siren à surveiller
** @param string $email Adresse email du client
** @param string $ref Référence de la surveillance
** @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants)
** @param boolean $delete Suppression de la ligne
** @param integer $encoursClient Encours demandé par le client
** @return unknown
*/
function setSurveillance(string $siret, string $email, $ref='', $source='annonces', $delete=false, $encoursClient=0)
{
debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$tabIdentite=$this->iInsee->getIdentiteLight($siren, $nic);
$iDb=new WDB();
global $tabInfoUser;
$login=$tabInfoUser['login'];
$source=strtolower($source);
switch ($source) {
case 'insee':
case 'annonces':
case 'bilans':
case 'actes':
case 'privileges':
case 'dir1igeants':
$encoursClient=0;
break;
case 'score':
$encoursClient=$encoursClient*1;
break;
default:
$source='annonces';
break;
}
$tabUpdate=array( 'source'=>$source,
'login'=>$login,
'email'=>$email,
'siren'=>$siren,
'nic'=>$nic,
'ref'=>$ref,
'encoursClient'=>$encoursClient,
'rs'=>$tabIdentite['Nom'],
'cp'=>$tabIdentite['CP'],
'ville'=>$tabIdentite['Ville'],
);
if ($delete)
$tabUpdate=array_merge($tabUpdate, array('dateSuppr'=>date('Y-m-d')));
else
$tabUpdate=array_merge($tabUpdate, array('dateAjout'=>date('Y-m-d'), 'dateSuppr'=>0));
if ( $delete || !$iDb->insert('surveillances_site', $tabUpdate)) {
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "debugSurv pour $login",
"source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'".EOL.
print_r($tabUpdate,true).EOL
);*/
if (!$iDb->update('surveillances_site', $tabUpdate, "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'"))
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
}
function getSurveillances($siret=0, $source='annonces', $detail=false, $deb=0, $nbRet=100, $tri='siren') {
$tri=strtolower(trim($tri));
switch ($tri) {
case 'ref': $orderBy='ORDER BY ref'; break;
case 'dateAjout': $orderBy='ORDER BY dateAjout'; break;
case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break;
case 'rs': $orderBy='ORDER BY rs'; break;
case 'cp': $orderBy='ORDER BY cp'; break;
case 'ville': $orderBy='ORDER BY ville'; break;
default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre
}
$tabRet=array();
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$iDb=new WDB();
global $tabInfoUser;
$login=$tabInfoUser['login'];
if ($detail) $strSelect='source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi';
else $strSelect='source, email, siren, nic, ref, dateAjout, dateDerEnvoi';
if ($source<>'')$strSource=" AND source='$source' ";
else $strSource='';
if ($siren>0) $strSiren =" AND siren=$siren ";
else $strSiren ='';
// Il faut compter le nombre de siren au total
$tabTmp=$iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC);
$nbRepTot=$tabTmp[0]['nb'];
$tabTmp=$iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $deb,$nbRet", false, MYSQL_ASSOC);
foreach ($tabTmp as $i=>$tabSurv) {
if (!$detail)
$tabRet[]=array('source' => $tabSurv['source'],
'email' => $tabSurv['email'],
'siren' => $tabSurv['siren'],
'nic' => $tabSurv['nic'],
'ref' => prepareString($tabSurv['ref']),
'dateAjout' => $tabSurv['dateAjout'],
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
);
else {
if (trim($tabSurv['rs'])<>'') {
$rs=$tabSurv['rs'];
$cp=$tabSurv['cp'];
$ville=$tabSurv['ville'];
} else {
$tabIdentite=$this->iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']);
$rs=$tabIdentite['Nom'];
$cp=$tabIdentite['CP'];
$ville=$tabIdentite['Ville'];
$iDb->update('surveillances_site',array('rs' => $rs,
'cp' => $cp,
'ville' => $ville),
"login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", false);
}
$tabRet[]=array('source' => $tabSurv['source'],
'email' => $tabSurv['email'],
'siren' => $tabSurv['siren'],
'nic' => $tabSurv['nic'],
'ref' => prepareString($tabSurv['ref']),
'dateAjout' => $tabSurv['dateAjout'],
'encoursClient' => $tabSurv['encoursClient'],
'rs' => $rs,
'cp' => $cp,
'ville' => $ville,
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
);
}
}
$rep=array( 'criteres'=>array( 'siren'=>$siren, 'nic'=>$nic, 'source'=>$source),
'nbReponses'=>count($tabRet),
'nbReponsesTotal'=>$nbRepTot,
'reponses'=>$tabRet,
);
// debugLog('I',"getSurveillances".print_r($tabRet,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
function getListeSurveillancesCsv($source='', $login='', $idClient=0)
{
debugLog('I',"getListeSurveillancesCsv Début $source $login $idClient",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
//return array();
global $tabInfoUser;
$tabRet=array();
$iDb=new WDB();
$strClient=$strLogin='';
$exportPtf=false;
switch ($source) {
case 'insee':
case 'annonces':
case 'bilans':
case 'score':
case 'actes':
case 'privileges':
case 'dirigeants':
break;
case 'portefeuille':
$source='score';
$exportPtf=true;
break;
default:
$source='';
break;
}
if ($source<>'') $strSource=" AND source='$source' ";
else $strSource='';
if ($idClient*1==0 || ($idClient*1<>$tabInfoUser['idClient'] && $tabInfoUser['profil']<>'SuperAdministrateur') )
$idClient=$tabInfoUser['idClient'];
$strClient=" AND u.idClient=$idClient ";
if ($login=='' && ($tabInfoUser['profil']=='SuperAdministrateur' || $tabInfoUser['profil']=='Administrateur'))
// On veut toutes les surveillances du client
$login='';//$tabInfoUser['login'];
elseif ($login<>'' && ($tabInfoUser['profil']=='SuperAdministrateur' || $tabInfoUser['profil']=='Administrateur'))
$strLogin=" AND s.login='$login' ";
else
$strLogin=" AND s.login='".$tabInfoUser['login']."' ";
$fichierCsv=DOC_WEB_LOCAL."csv/listesurv-$source-$login-$idClient.csv";
if (file_exists($fichierCsv) &&
date('Ymd', filemtime($fichierCsv))==date('Ymd') &&
filesize($fichierCsv)>60 ) {
$size=filesize($fichierCsv);
$erreur=false;
$tabNom=array();
$cache=1;
} else {
@unlink($fichierCsv);
if ($source=='score') {
if ($tabInfoUser['typeScore']*1==20) { $strScore='v.indiScore20 AS indiScore20'; $strScorePre='v.indiScore20Pre AS indiScore20Pre'; }
else { $strScore='v.indiScore AS indiScore100'; $strScorePre='v.indiScorePre AS indiScore100Pre'; }
/*v.scoreZ, v.scoreZPre, v.scoreCH, v.scoreCHPre,
v.scoreAfdcc2, v.scoreAfdcc2Pre, v.situFi, v.situFiPre, v.infoNote, v.infoNotePre,
v.noteStruct, v.noteStructPre, v.noteFin, v.noteFinPre, v.tendance, v.tendancePre, */
$sql="SELECT LOWER(s.login) as loginUti, s.source, s.email, s.siren, s.nic, s.ref, s.dateAjout,
s.rs, s.cp, s.ville, s.dateDerEnvoi,
s.encoursClient, v.actif, v.procol, $strScore, v.encours, v.indiScoreDate, v.dateBilan,
$strScorePre, v.encoursPre, v.indiScoreDatePre, v.sourceModif, v.scoreSolv, v.scoreSolvPre, v.scoreDir,
v.scoreDirPre, v.scoreConf, v.scoreConfPre,
e.cj, e.capital, e.capitalDev, e.ape_entrep, e.tca, e.teff_entrep,
v.dateUpdate
FROM surveillances_site s, sdv1.utilisateurs u, sdv1.clients c, scores_surveillance v, etablissements e
WHERE s.source='score' $strClient $strLogin AND dateSuppr=0 AND s.login=u.login AND u.idClient=c.id AND s.siren=v.siren AND s.siren=e.siren
GROUP BY loginUti, s.siren, s.nic, s.source, s.ref
ORDER BY loginUti ASC, s.siren ASC, s.nic ASC, s.source ASC, s.ref ASC";
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeSurveillancesCsv($source, $login, $idClient)", $sql);
} else
$sql="SELECT LOWER(s.login) as loginUti, s.source, s.email, s.siren, s.nic, s.ref, s.dateAjout,
s.rs, s.cp, s.ville, s.dateDerEnvoi
FROM surveillances_site s, sdv1.utilisateurs u, sdv1.clients c
WHERE 1 $strSource $strClient $strLogin AND dateSuppr=0 AND s.login=u.login AND u.idClient=c.id
ORDER BY loginUti ASC, s.siren ASC, s.nic ASC, s.source ASC, s.ref ASC";
debugLog('I',"getListeSurveillancesCsv SQL $sql",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$fp = fopen(DOC_WEB_LOCAL."csv/listesurv-$source-$login-$idClient.sql", 'w');
fwrite($fp, $sql.EOL);
fclose($fp);
exec("./sql2csv.php jo ".DOC_WEB_LOCAL."csv/listesurv-$source-$login-$idClient.sql $fichierCsv > /dev/null &");
$size=$cache=0;
}
$hostname = 'http://'.$_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT']!='80'){
$hostname.= ':'.$_SERVER['SERVER_PORT'];
}
$tabRet=array(
'Url' => $hostname.DOC_WEB_URL."csv/listesurv-$source-$login-$idClient.csv",
'Taille'=>$size,
'Cache'=>$cache,
);
debugLog('I','getListeSurveillancesCsv Url='.$hostname.DOC_WEB_URL."csv/listesurv-$source-$login-$idClient.csv, Taille=$size, Cache=$cache",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
function getPortefeuilleCsv($login='', $idClient=0)
{
return $this->getListeSurveillancesCsv('portefeuille', $login, $idClient);
}
function getPortefeuille(string $siret, $deb=0, $nbRet=100, $tri='siren') {
/** Indiscore100 ou 20**/
$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;
case 'indiScore': $orderBy='ORDER BY indiScore'; break;
case 'encours': $orderBy='ORDER BY encours'; break;
default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre
}
$tabRet=array();
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$iDb=new WDB();
global $tabInfoUser;
$login=$tabInfoUser['login'];
$strSelect='s.email, s.siren, s.nic, s.ref, s.dateAjout, s.rs, s.cp, s.ville, s.dateDerEnvoi, s.encoursClient, c.actif, c.procol, c.indiScore, c.indiScore20, c.encours, c.indiScoreDate, c.dateBilan, c.indiScorePre, c.indiScore20Pre, c.encoursPre, c.indiScoreDatePre, c.sourceModif, c.scoreSolv, c.scoreSolvPre, c.scoreDir, c.scoreDirPre, c.scoreConf, c.scoreConfPre, c.scoreZ, c.scoreZPre, c.scoreCH, c.scoreCHPre, c.scoreAfdcc2, c.scoreAfdcc2Pre, c.situFi, c.situFiPre, c.infoNote, c.infoNotePre, c.noteStruct, c.noteStructPre, c.noteFin, c.noteFinPre, c.tendance, c.tendancePre, c.dateUpdate';
if ($siren>0) $strSiren =" AND s.siren=$siren ";
else $strSiren ='';
// Il faut compter le nombre de siren au total
$tabTmp=$iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND source='score' AND dateSuppr=0 $strSiren", false, MYSQL_ASSOC);
$nbRepTot=$tabTmp[0]['nb'];
$tabTmp=$iDb->select('surveillances_site s, scores_surveillance c', $strSelect, "s.login='$login' AND s.source='score' AND s.dateSuppr=0 AND s.siren=c.siren $strSiren $orderBy LIMIT $deb,$nbRet", false, MYSQL_ASSOC);
foreach ($tabTmp as $i=>$tabSurv) {
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 source='score' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic'], false);
}
$tabRet[]=array('email' => $tabSurv['email'],
'siren' => $tabSurv['siren'],
'nic' => $tabSurv['nic'],
'ref' => prepareString($tabSurv['ref']),
'dateAjout' => $tabSurv['dateAjout'],
'rs' => $rs,
'cp' => $cp,
'ville' => $ville,
// Entreprise
'actif' => $tabSurv['actif'],
'procol' => $tabSurv['procol'],
'indiScore' => $tabSurv['indiScore'],
'indiScore20' => $tabSurv['indiScore20'],
'indiScorePre' => $tabSurv['indiScorePre'],
'indiScore20Pre'=> $tabSurv['indiScore20Pre'],
'encours' => $tabSurv['encours'],
'encoursPre' => $tabSurv['encoursPre'],
'indiScoreDate' => $tabSurv['indiScoreDate'],
'indiScoreDatePre'=> $tabSurv['indiScoreDatePre'],
'encoursClient' => $tabSurv['encoursClient'],
'dateBilan' => $tabSurv['dateBilan'],
'sourceModif' => $tabSurv['sourceModif'],
//, c.scoreSolv, c.scoreSolvPre, c.scoreDir, c.scoreDirPre, c.scoreConf, c.scoreConfPre, c.scoreZ, c.scoreZPre, c.scoreCH, c.scoreCHPre, c.scoreAfdcc2, c.scoreAfdcc2Pre, c.situFi, c.situFiPre, c.infoNote, c.infoNotePre, c.noteStruct, c.noteStructPre, c.noteFin, c.noteFinPre, c.tendance, c.tendancePre, c.dateUpdate';
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
);
}
$rep=array( 'criteres'=>array( 'siren'=>$siren, 'nic'=>$nic, 'source'=>$source),
'nbReponses'=>count($tabRet),
'nbReponsesTotal'=>$nbRepTot,
'reponses'=>$tabRet,
);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
/** Récupération d'un kbis
** @nodoc
**/
function getKbis(string $siren, $visu=1, $courrier=0, $mail='', $ref='')
{
return $this->getPiece($siren, 'kbis', '', $visu, $courrier, $ref);
}
function getPiece(string $siren, $piece='kbis', $type='', $visu=1, $courrier=0, $ref='')
{
set_time_limit(400);
$erreur=false;
if (file_exists(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf") &&
date('Ymd', filemtime(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf"))==date('Ymd') &&
filesize(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf")>0 ) {
$size=filesize(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf");
$erreur=false;
$tabNom=array();
$ficDist='';
$cache=1;
} else {
exec("./getPieces.php $siren $piece > /dev/null &");
$ficDist='';
$size=$cache=0;
}
/** On supprimer l'ancien kbis si trop vieux ou vide **/
if (date('Ymd', filemtime(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf"))<>date('Ymd') ||
filesize(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf")==0)
move(DOC_WEB_LOCAL."kbis/$piece-$siren.pdf", DOC_WEB_LOCAL."kbis/$piece-$siren-".date('Ymd').".pdf");
$hostname = 'http://'.$_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT']!='80'){
$hostname.= ':'.$_SERVER['SERVER_PORT'];
}
$tabRet=array( 'Siren'=>$siren,
'Url'=>$hostname.DOC_WEB_URL."kbis/$piece-$siren.pdf",
'Taille'=>$size,
'Cache'=>$cache,
'debug'=>array('tabNom'=>$tabNom, 'tabDir'=>$tabDirs),
'fichier'=>$ficDist,
);
wsLog('kbis', $siren, "$cache/$visu/$courrier/$type/$ref");
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/**
* @nodoc
*
* @param unknown_type $login
* @param unknown_type $mois
* @param unknown_type $type
* @param unknown_type $payants
* @return unknown
*/
function getStatsUtilisateurs($login, $mois, $type='jour', $payants=false)
{
global $iDbCrm, $tabInfoUser;
if ($payants) $strPayant="AND (page LIKE 'greffe_%' OR page LIKE 'inpi_%' OR page='kbis') AND params<>'' AND (params NOT LIKE '%erreur%' OR params LIKE '%erreur 17%') ";
else $strPayant='';
if ($type=='jour')
$rep=$iDbCrm->select('logs', 'date(dateHeure) as jours, count(*) as nb', "1 $strPayant AND login='$login' AND dateHeure BETWEEN '$mois-01' AND '$mois-31' GROUP BY jours", true, MYSQL_ASSOC);
elseif ($type=='heure')
$rep=$iDbCrm->select('logs', 'HOUR(dateHeure) as heures, count(*) as nb', "1 $strPayant AND login='$login' AND dateHeure BETWEEN '$mois-01' AND '$mois-31' GROUP BY heures", true, MYSQL_ASSOC);
$tabRet=$rep;
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/**
* @nodoc ICI
*
* @param unknown_type $mois
* @param unknown_type $detail
* @param unknown_type $idClient
* @param unknown_type $login
* @return unknown
*/
function getLogsClients($mois, $detail=0, $idClient=0, $login='', $all=0)
{
global $iDbCrm, $tabInfoUser;
$strDetail=$strClient=$strLogin='';
// Vue détaillée ou uniquement les infos payantes
if ($detail==0) { $detail='Non';
//$strDetail=" AND (page LIKE 'greffe_%' OR page LIKE 'inpi_%' OR page='kbis' OR page='indiscore' ) AND (params<>'' OR page='indiscore' AND tarifIndiscore<>0) AND (params NOT LIKE '%erreur%' OR params LIKE '%erreur 17%') ";
$strDetail=" AND (page LIKE 'greffe_%' OR page LIKE 'inpi_%' OR page='kbis' OR page LIKE 'indiscore%' OR page='privileges' OR page='commandeAsso') AND (params<>'' OR page LIKE 'indiscore%' AND tarifIndiscore<>0) AND (params NOT LIKE '%erreur%' OR params LIKE '%erreur 17%') ";
} elseif($detail==1) $detail='Oui';
// On veut uniquement le client précis
if ($all && $tabInfoUser['profil']=='SuperAdministrateur') {
$all='Oui';
} else {
$all='Non';
// Pas d'idClient mentionné ou tentative sur autre client et non SAD
if ($idClient*1==0 || ($idClient*1<>$tabInfoUser['idClient'] && $tabInfoUser['profil']<>'SuperAdministrateur') )
$idClient=$tabInfoUser['idClient'];
$strClient=" AND u.idClient=$idClient ";
}
// On veut uniquement le login précis
if ($login<>'') $strLogin=" AND l.login='$login' ";
else $login='Non';
// Dates de début et de fin
$mois=strtr($mois, array('-'=>'','/'=>''))*1;
$annee=substr($mois,0,4);
$mois=substr($mois,4,2);
$dateDeb=date('Y-m-d', mktime(0,0,0,$mois,1,$annee));
$dateFin=date('Y-m-t', mktime(0,0,0,$mois,15,$annee));
$fichierCsv=DOC_WEB_LOCAL."csv/logs-$annee-$mois-$detail-$idClient-$login-$all.csv";
if (file_exists($fichierCsv) &&
date('Ymd', filemtime($fichierCsv))==date('Ymd') &&
filesize($fichierCsv)>60 ) {
$size=filesize($fichierCsv);
$erreur=false;
$tabNom=array();
$cache=1;
} else {
@unlink($fichierCsv);
$sql="SELECT LOWER(l.login) as loginUti, page, l.siren, l.nic, l.params, l.dateHeure, u.idClient, c.nom, u.referenceParDefaut AS refUti
FROM `logs` l, utilisateurs u, clients c
WHERE 1 $strDetail $strClient $strLogin AND dateHeure BETWEEN '$dateDeb 00:00:00' AND '$dateFin 23:59:59' AND l.login=u.login AND u.idClient=c.id
GROUP BY l.login, l.siren, page, date(dateHeure), params
ORDER BY l.login ASC, dateHeure ASC";
$fp = fopen("/tmp/logs-$annee-$mois-$detail-$idClient-$login-$all.sql", 'w');
fwrite($fp, $sql.EOL);
fclose($fp);
exec("./sql2csv.php sdv1 ".DOC_WEB_LOCAL."csv/logs-$annee-$mois-$detail-$idClient-$login-$all.sql $fichierCsv > /dev/null &");
$size=$cache=0;
}
$hostname = 'http://'.$_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT']!='80'){
$hostname.= ':'.$_SERVER['SERVER_PORT'];
}
$tabRet=array( 'Url'=>$hostname.DOC_WEB_URL."csv/logs-$annee-$mois-$detail-$idClient-$login-$all.csv",
'Taille'=>$size,
'Cache'=>$cache,
);
//wsLog('kbis', $siren, "$cache/$visu/$courrier/$type/$ref");
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
/**
* @nodoc
*
* @param unknown_type $login
* @param unknown_type $ref
* @param unknown_type $nomFic
* @return unknown
*/
function getListeFichierSurv($login, $ref='*', $nomFic='')
{
//debugLog('I',"getListeFichierSurv pour $login, $ref, $nomFic",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabFichier=$tabDates=array();
$numAbo=substr($ref, 0,5);
if (strtolower($login)=='vwbank') {
$repClient='volkswagen bank';
$ficClient='surveillanceBodacc_SURBODPRDCFTVWBANK';
$numAbo=$ref='19300';
} elseif (substr($login,0,6)=='apicil') {
$repClient='apicil';
$ficClient='surveillanceBodacc_SURBODPRDCFTAPICIL';
$numAbo=$ref='';
} elseif (strtolower($login)=='omni04') {
$repClient='aggm mederic ';
$ficClient='surveillanceBodacc_SURBODPRDFTSOMNIREP';
$numAbo=$ref='';
} else {
$repClient='cnasea';
$ficClient='surveillanceBodacc_SURBODTSTFTSCNASEA';
}
//debugLog('I',"getListeFichierSurv pour login=$login, repClient=$repClient, ficClient=$ficClient, numAbo=$numAbo, ref=$ref, avant openDir",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$dh = opendir("/home/data/clients/$repClient");
if (!$dh) {
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, $nomFic", "Impossible d'ouvrir le dossier '/home/data/clients/$repClient/'");
return array('error'=>array('errnum'=>354659, 'errmsg'=>"Impossible d'ouvrir le dossier client"), 'results'=>array());
}
debugLog('I',"getListeFichierSurv pour login=$login, repClient=$repClient, ficClient=$ficClient, numAbo=$numAbo, ref=$ref, après openDir",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.csv' && substr($filename,0,42)==$ficClient.$numAbo) {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,43,8);
$tabClients[]=substr($filename,0,42);
}
elseif ($ref=='*' && $filename<>'.' && $filename<>'..' && substr($filename, -4)=='.csv' && substr($filename,0,37)==$ficClient && substr($filename,37,1)<>'_') {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,43,8);
$tabClients[]=substr($filename,0,42);
}
elseif ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.csv' && substr($filename,0,37)==$ficClient && substr($filename,37,1)=='_' && $repClient=='apicil') {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,38,8);
$tabClients[]=substr($filename,0,37);
}
elseif ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.csv' && substr($filename,0,38)==$ficClient && substr($filename,38,1)=='_' && $repClient=='aggm mederic ') {
$tabFichier[] = $filename;
$tabDates[]=substr($filename,39,8);
$tabClients[]=substr($filename,0,38);
}
//debugLog('I',"getListeFichierSurv pour login=$login, repClient=$repClient, ficClient=$ficClient, numAbo=$numAbo, ref=$ref, Fichier lu '$filename'",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
/** Tableau des noms de fichier **/
sort($tabFichier);
/** Tableau des dates de livraisons **/
$tabDates=array_unique($tabDates);
sort($tabDates);
/** Tableau des Clients **/
$tabClients=array_unique($tabClients);
sort($tabClients);
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabDates);
/*
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, $nomFic",
"Fichiers :".EOL.
print_r($tabFichier, true).
"Dates:".EOL.
print_r($tabDates, true).
"Clients :".EOL.
print_r($tabClients, true)
);*/
if ($ref=='*') {
$tabFichier = array();
// Boucle sur les dates de livraison
foreach ($tabDates as $dateFic) {
if (strlen($dateFic)<>8) continue;
if (!file_exists("/home/data/clients/$repClient/$ficClient".'_'."$dateFic.csv") ||
filesize("/home/data/clients/$repClient/$ficClient".'_'."$dateFic.csv")==0) {
$fpW=fopen("/home/data/clients/$repClient/$ficClient".'_'."$dateFic.csv",'w');
$entete=true;
// Boucle afin de vérifier si on est sur le bon client
foreach ($tabClients as $nomClient) {
$dh = opendir("/home/data/clients/$repClient/");
while (false !== ($filename = readdir($dh))) {
if (substr($filename,0,51)==$nomClient.'_'.$dateFic && substr($filename,-4)=='.csv') {
$fichier=$filename;
//break;
}
}
$fpR=fopen("/home/data/clients/$repClient/$fichier",'r');
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>array(($fichier)));//die;
if ($fpR) {
while (!feof($fpR)) {
$ligne=trim(fgets($fpR));
if (substr($ligne,0,5)=='Siren' && $entete==true) {
fwrite($fpW, 'SITE;'.$ligne.EOL);
$entete=false;
}
elseif (substr($ligne,0,5)<>'Siren' && trim($ligne)<>'') {
fwrite($fpW, strtr($nomClient, array('surveillanceBodacc_SURBODTSTFTS'=>'',
'surveillanceBodacc_SURBODPRDCFT'=>'')).';'.$ligne.EOL);
}
}
fclose($fpR);
}
}
fclose($fpW);
}
if (strlen($dateFic)==8)
$tabFichier[]=$ficClient.'_'.$dateFic.'.csv';
}
}
rsort($tabFichier);
if ($nomFic<>'') {
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, /home/data/clients/$repClient/$nomFic", 'Avant BZ2');
if (!file_exists("/var/www/html/csv/$nomFic.bz2") ||
filesize("/var/www/html/csv/$nomFic.bz2")<=14) {
$string=file_get_contents("/home/data/clients/$repClient/$nomFic");
if ($string===false) {
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, $nomFic", "Ouverture impossible du fichier '/home/data/clients/$repClient/$nomFic'");
}
$bz = bzopen("/var/www/html/csv/$nomFic.bz2",'w');
if ($bz) {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
}
} /*else
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, /home/data/clients/$repClient/$nomFic", 'Sans BZ2');
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, /home/data/clients/$repClient/$nomFic", 'Après BZ2');
*/
}
debugLog('I',"getListeFichierSurv pour $login, $ref, $nomFic : nbr fichiers=".count($tabFichier),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabFichier);
}
/** Donne la cours d'appel d'un tribunal par son code
** @nodoc
** @param string $codeTribunal Code BODACC sur 6 caractères du tribunal
** @return L'identifiant Interne S&D de la cours d'appel
**/
function getIdCoursAppel($codeTribunal)
{
$iBodacc=new MBodacc();
return $iBodacc->getTribunalIdCA($codeTribunal);
}
/** Geocodage d'une adresse
**
** @nodoc
** @param string $adresse
** @param string $cp
** @param string $ville
** @param string $pays
**/
function geoCode($adresse, $cp, $ville, $pays='France')
{
$ligne=date('YmdHis').";$siren;MMap AVANT";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
$mMap=new MMap($adresse, $cp, $ville, $pays);
$ligne=date('YmdHis').";$siren;MMap APRES";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
$tabRet=array( 'latitude'=>$mMap->latitudeDec,
'longitude'=>$mMap->longitudeDec,
'precis'=>$mMap->precision,
'adresseValidee'=>prepareString($mMap->adresseValidee),
'latitudeDeg'=>$mMap->latitudeDeg,
'longitudeDeg'=>$mMap->longitudeDeg,
);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
function commandeAsso($siren, $infoAsso=array(), $infoDemande=array())
{
global $iDbCrm;
global $tabInfoUser;
$iDb=new WDB();
$idEntreprise=$infoAsso['idEntreprise']*1;
$assoNom=$infoAsso['RaisonSociale'];
debugLog('I',"commandeAsso pour $assoNom ($siren) début",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabIdentite=$this->iInsee->getIdentiteLight($siren, 0, $idEntreprise);
$assoSigle=$tabIdentite['Sigle'];
$assoAdresse=$tabIdentite['Adresse'].EOL.$tabIdentite['Adresse2'];
$assoCP=$tabIdentite['CP'];
$assoVille=$tabIdentite['Ville'];
$mail=trim($infoDemande['Email']);
if ($mail=='') $mail=$tabInfoUser['email'];
$tabInsert=array('idUser'=> $tabInfoUser['id'],
'source'=> 'asso',
'login'=> $tabInfoUser['login'],
'emailCommande'=> $mail,
'siren'=> $siren,
'refUtilisateur'=> $infoDemande['Ref'],
'refDocument'=> serialize($infoDemande),
'refCommande'=> serialize($infoAsso),
'dateCommande'=> DATETIME,
);
$url='http://d2g.refasso.com/Dev2Go.web';
$referer=''; // http://d2g.refasso.com/dev2go.web?anchor=dem_statuts_02
$cookie='';
$post=array('mode'=>20,
'lBlockID'=>445031,
'sInputNames'=>'',
'lFormSubAction'=>100,
'sLinkTo'=>'dem_statuts_03',
'iDune_DateDemande_input'=>str_replace('/', '%2F', date('d/m/Y')),
'iDune_TitreAsso_input'=>urlencode($assoNom),
'iDune_SigleAsso_input'=>urlencode($assoSigle),
'iDune_AdresseAsso_input'=>urlencode($assoAdresse),
'iDune_CpAsso_input'=>urlencode($assoCP),
'iDune_VilleAsso_input'=>urlencode($assoVille),
'iDune_TelAsso_input'=>'',
'iDune_FaxAsso_input'=>'',
'iDune_EmailAsso_input'=>'',
'iDune_DateCreaAsso_input'=>'',
'iDune_DateDerDeclaAsso_input'=>'',
'iDune_NomDem_input'=>'SCORES+ET+DECISIONS',
'iDune_PrenomDem_input'=>'Yoann+LE+NAOUR',
'iDune_AdresseDem_input'=>'19+rue+de+Clairefontaine',
'iDune_CpDem_input'=>78120,
'iDune_VilleDem_input'=>'RAMBOUILLET',
'iDune_TelDem_input'=>'0134573953',
'iDune_EmailDem_input'=>'asso%40scores-decisions.com',
'iDune_CGAccepte_input'=>'o',
'iDune_Statut_input'=>'n',
'iDune_Archive_input'=>'n',
'x'=>48,
'y'=>8,
);
$tdeb=microtime(true);
$page=getUrl($url, $cookie, $post, $referer, false, '', '', 7);
$tfin=microtime(true);
$duree=$tfin-$tdeb;
$body=$page['body'];
$fp=@fopen("/tmp/asso-$siren.html", "a");
@fwrite($fp, $body);
@fclose($fp);
if (preg_match('/Votre commande est enregistr/i',$body)) {
@sendMail('production@scores-decisions.com', 'asso@scores-decisions.com', "Commande de statuts association pour $assoNom ($siren)", "Association :".EOL.print_r($infoAsso, true).EOL.EOL.
"Demandeur:".EOL.print_r($infoDemande, true).EOL.EOL.
"Réponse RefAsso en $duree secondes :".EOL.print_r($page, true));
$ret=$iDbCrm->insert('commandes', $tabInsert, true);
$tabRet=array( 'siren'=> $siren,
'emailCommande'=> $mail,
'dateCommande'=> DATETIME,
'refCmde'=> 'i'.$ret,
);
@sendMail('production@scores-decisions.com', $mail, "Votre commande de statuts association sur $assoNom ($siren)", "Votre demande de statuts sur l'association $assoNom a été prise en compte sous la référence i$ret - ".DATETIME);
wsLog('commandeAsso', $siren, 'i'.$ret.'-'.DATETIME);
debugLog('I',"commandeAsso pour $assoNom ($siren) fin",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
} else {
@sendMail('production@scores-decisions.com', 'asso@scores-decisions.com', "ERREUR lors de lommande de statuts association pour $assoNom ($siren)", "Association :".EOL.print_r($infoAsso, true).EOL.EOL.
"Demandeur:".EOL.print_r($infoDemande, true).EOL.EOL.
"Réponse RefAsso en $duree secondes :".EOL.print_r($page, true));
$tabRet=array( 'siren'=> $siren,
'emailCommande'=> $mail,
'dateCommande'=> DATETIME,
'refCmde'=> 'ERREUR',
);
debugLog('E',"commandeAsso pour $assoNom ($siren) fin",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/** Retourne la liste des codes devises, libellés, date et valeur (toutes les devises ou une seule)
**
** @nodoc
** @param string $devise Devise sur 3 lettres (facultatif)
** @return array
**/
function getDeviseCours($devise=false)
{
$iDb=new WDB('sdv1');
if ($devise) $strDevise=" AND c.devise='$devise' ";
else $strDevise='';
$tabRet=array();
$res=$iDb->select('devise_cours c, devise_liste l', 'c.devise, l.devNom, max(c.date) as dateChange, c.valeur', "c.devise=l.devIso $strDevise GROUP BY c.devise ORDER BY c.devise ASC", false, MYSQL_ASSOC);
foreach ($res as $tabDev) {
$tabRet[]=array('codeDevise'=>$tabDev['devise'],
'nomDevise'=>prepareString($tabDev['devNom']),
'dateChange'=>$tabDev['dateChange'],
'valeurDevise'=>$tabDev['valeur'],
);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/** Retourne la liste des banques connues pour une entreprise
**
** @nodoc
** @param string $siren Siren de l'entreprise
** @return array
**/
function getBanques(string $siren)
{
$iDb=new WDB('sdv1');
$tabRet=array();
debugLog('I',"Liste des banques demandée pour siren $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if ($siren*1>1000) {
$res=$iDb->select('banques', 'codeBanque, codeGuichet, libBanqueGuichet, precis, dateSource*1 AS dateSource', "siren=$siren", false, MYSQL_ASSOC);
$tmp=$iDb->select('fedRib', "codeBanque, codeGuichet, CONCAT(libBanque,' ',libGuichet) AS libBanqueGuichet, 0 AS precis, IF (dateInfo='0000-00-00', dateDispo*1, dateInfo*1) AS dateSource", "siren=$siren", false, MYSQL_ASSOC);
$res=array_merge($res, $tmp);
foreach ($res as $tabBanque) {
$dateSource=$tabBanque['dateSource'];
$codBanque=$tabBanque['codeBanque'];
$codGuichet=$tabBanque['codeGuichet'];
$libBanque=trim($tabBanque['libBanqueGuichet']);
$found=false;
$adrBanque1=$adrBanque2=$adrBanqueCP=$adrBanqueVille='';
if ($codBanque>0 && $codGuichet>0 && $dateSource>(date('Y')-4)*10000+101 && $dateSource<date('Ymd')) {
$tmp=$iDb->select('insee.BDF_Etabs b, insee.BDF_Guichets g', 'g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville', "g.bdfFibCodeEtab=$codBanque AND g.bdfFibCodeGuichet=$codGuichet AND b.bdfFibCodeEtab=g.bdfFibCodeEtab", false, MYSQL_ASSOC);
if (isset($tmp[0])) {
$libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']);
$adrBanque1=$tmp[0]['adresse1'];
$adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']);
$adrBanqueCP=$tmp[0]['CP'];
$adrBanqueVille=$tmp[0]['Ville'];
$found=true;
};
}
if (!$found && $codBanque>0 && $dateSource>(date('Y')-4)*10000+101 && $dateSource<date('Ymd')) {
$tmp=$iDb->select('insee.BDF_Etabs', "bdfFibCodeEtab AS banque, '' AS guichet, bdfFibDenom40 AS nomBanque, '' AS nomGuichet, '' AS adresse1, '' AS adresse2, '' AS adresse3, '' AS CP, '' AS Ville", "bdfFibCodeEtab=$codBanque", false, MYSQL_ASSOC);
if (isset($tmp[0])) {
$libBanque=trim($tmp[0]['nomBanque'].' '.$tmp[0]['nomGuichet']);
$adrBanque1=$tmp[0]['adresse1'];
$adrBanque2=trim($tmp[0]['adresse2'].' '.$tmp[0]['adresse3']);
$adrBanqueCP=$tmp[0]['CP'];
$adrBanqueVille=$tmp[0]['Ville'];
} else continue;
} else continue;
$tabRet[]=array('codeBanque' => $codBanque,
'codeGuichet' => $codGuichet,
'libBanque' => prepareString($libBanque),
'adresse1' => prepareString($adrBanque1),
'adresse2' => prepareString($adrBanque2),
'cp' => prepareString($adrBanqueCP),
'ville' => prepareString($adrBanqueVille),
);
}
} else {
return array('error'=>array('errnum'=>75454698, 'errmsg'=>'Siren invalide'), 'results'=>$tabRet);
}
debugLog('I',"Liste des banques pour siren $siren : ".count($tabRet).' banques',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if (count($tabRet)==0) {
return array('error'=>array('errnum'=>256454, 'errmsg'=>'Aucune relation bancaire en base'), 'results'=>$tabRet);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/** Commande d'une enquête sur une entreprise en France ou à l'Internationale
** @param string $siren
** @param array $infoEnq
** @param array $infoDemande
**/
function commandeEnquete(string $siren, $infoEnq=array(), $infoDemande=array()) {
global $iDbCrm;
global $tabInfoUser;
$mail=trim($infoDemande['Email']);
if ($mail=='') $mail=$tabInfoUser['email'];
$tabInsert=array('idUser'=> $tabInfoUser['id'],
'source'=> 'intersud', // 'greffes', 'asso', 'graydon'
'login'=> $tabInfoUser['login'],
'emailCommande'=> $mail,
'siren'=> $siren,
'refDocument'=> serialize($infoDemande),
'refCommande'=> serialize($infoEnq),
'dateCommande'=> DATETIME,
// 'idClient'=> $tabInfoUser['idClient'],
);
debugLog('I',"Intersud, début commande sur $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$messageInfo=print_r($infoEnq, 1).EOL.print_r($infoDemande,1).EOL;
$idClient=$tabInfoUser['idClient'];
$rep=$iDbCrm->select('clients', ' nom, racineLogin, InterSudLogin, InterSudPass', "id='$idClient'", false, MYSQL_ASSOC);
$login=trim($rep[0]['InterSudLogin']);
$pass =trim($rep[0]['InterSudPass']);
$nomClient=trim(strtoupper($rep[0]['nom']));
$strInfoCommande ="NOM et Prénom du client demandeur : ".$infoDemande['Identite'].EOL;
$strInfoCommande.="Email du client demandeur : $mail".EOL;
$strInfoCommande.="Tel/Fax du demandeur : ".$infoDemande['Tel'].' / '.$infoDemande['Fax'].EOL;
$strInfoCommande.="Profil du demandeur : ".trim($infoDemande['Profil'].' '.$infoDemande['ProfilAutre']).EOL;
$typeEnqLog='enqueteDemNF';
if ($login=='' || $pass=='') {
/** Il ne s'agit pas d'un client final, on anonymise la commande **/
$login='YLENA'; // Demandes en test
$pass='WYLFE';
$nomClient=$strInfoCommande='';
$typeEnqLog='enqueteDem';
/* ENQUETES EN PROD
$login='FACTURE';
$pass='AWKROM';
*/
}
/** Connexion à l'Extranet Intersud
**/
$url='http://www.intersud.fr/espace_client/espace_client.php';
$cookie=$referer='';
$tabPost=array('login'=>$login,
'pwd'=>$pass,
);
$tdeb=microtime(true);
$page=getUrl($url, $cookie, $tabPost, $referer, false, '', '', 7);
if ($page['code']<>200) {
$tabRet=array();
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ATTENTION : Commande d'enquete sur $siren", "Connexion impossible à la plateforme Intersud".EOL.$strInfoCommande);
// wsLog($typeEnqLog, $siren, 'i'.$ret.'-'.DATETIME);
return array('error'=>array('errnum'=>4563456, 'errmsg'=>'Connexion impossible à la plateforme d\'enquetes'), 'results'=>$tabRet);
}
$tfin=microtime(true);
$duree=$tfin-$tdeb;
$referer=$url;
$body=$page['body'];
$cookie=$page['header']['Set-Cookie'];
$intersudNomPrenom=$intersudRaisonSociale='';
if (preg_match('/<td colspan="5" class="txt_blanc" background="images_ec\/1erpageespaceclient_14\.jpg" width="274" height="22">(.*)<\/td>/Uis',$body,$matches))
$intersudNomPrenom=trim($matches[1]);
if (preg_match('/<td class="txt_blanc" colspan="7" rowspan="2" valign="middle" background="images_ec\/1erpageespaceclient_17\.jpg">(.*)<\/td>/Uis',$body,$matches))
$intersudRaisonSociale=trim($matches[1]);
debugLog('I',"Intersud, connexion via $login pour $intersudRaisonSociale ($intersudNomPrenom, cookie=$cookie)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
/* $fp=@fopen(LOG_PATH."/intersud.log", "a");
@fwrite($fp, EOL.DATETIME.EOL.print_r($page,true).'========================================================================================================='.EOL.EOL);
@fclose($fp);
die();
*/
/** Page formulaire de demande d'enquête
**/
$url='http://intersud.fr/espace_client/demande_enquete.php';
$tdeb=microtime(true);
$page=getUrl($url, $cookie, '', $referer, false, '', '', 7);
if ($page['code']<>200) {
$tabRet=array();
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ATTENTION : Commande d'enquete sur $siren", "Connexion impossible au formulaire d'enquête Intersud".EOL.$strInfoCommande);
return array('error'=>array('errnum'=>456345, 'errmsg'=>'Connexion impossible à la plateforme d\'enquetes 2'), 'results'=>$tabRet);
}
$tfin=microtime(true);
$duree+=$tfin-$tdeb;
$referer=$url;
$body=$page['body'];
$fp=@fopen(LOG_PATH."/intersud.log", "a");
@fwrite($fp, print_r($page,true));
@fclose($fp);
$tabInterSud=array();
if (preg_match_all('/<input(?:.*)name="(.*)"(?:.*)value="(.*)"/Uim',$body,$matches)) {
foreach ($matches[1] as $i=>$field) {
$tmp=explode('"', $matches[2][$i]);
$tabInterSud[$field]=$tmp[0];
}
}
if (preg_match_all('/<input(?:.*)value="(.*)"(?:.*)name="(.*)"/Uim',$body,$matches)) {
foreach ($matches[2] as $i=>$field) {
$tmp=explode('"', $matches[1][$i]);
$tabInterSud[$field]=$tmp[0];
}
}
$ref_exp=$tabInterSud['ref_exp'];
$email_exp=$tabInterSud['email_exp'];
$tel_exp=$tabInterSud['tel_exp'];
debugLog('I',"Intersud, formulaire enquête ref $ref_exp, $email_exp, $tel_exp",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$fp=@fopen(LOG_PATH."/intersud.log", "a");
@fwrite($fp, print_r($matches,true));
@fwrite($fp, print_r($tabInterSud,true));
@fclose($fp);
/** Insertion de la commande en base
**/
$ret=$iDbCrm->insert('commandes', $tabInsert, true);
$comment="Référence de la commande chez Scores et Décisions : i$ret - ".DATETIME."
Date et heure de la commande : ".date('d/m/Y - H:i')."
Origine de la commande : $nomClient
$strInfoCommande
CA : ".$infoEnq['Precisions']['MontantCA']."
Motif de la demande : ".trim($infoEnq['Precisions']['Motif'].' '.$infoEnq['Precisions']['Autre'])."
Type de la demande : ".$infoEnq['Precisions']['Type']."
Anciennete de la relation : ".$infoEnq['Anciennete'].' '.$infoEnq['AncienneteDuree']."
Observations : ".$infoEnq['Observation'].EOL;
if ($infoEnq['ImpayeesChoix']<>'non')
$comment.="Impayé(s) : ".$infoEnq['Impayees']['Nombre']." impayé(s) pour un montant de ".$infoEnq['Impayees']['Montant']." en date du ".$infoEnq['Impayees']['Date'].EOL;
if ($infoEnq['RetardPaiementChoix']<>'non')
$comment.="Retard(s) de paiement : ".$infoEnq['RetardPaiement']['Nombre']." retard(s) pour un montant de ".$infoEnq['RetardPaiement']['Montant']." en date du ".$infoEnq['RetardPaiement']['Date'].EOL;
if ($infoEnq['LitigeChoix']<>'non')
$comment.="Présence de litige(s) : ".$infoEnq['Litige']['Precisions'].EOL;
$enqType=0;
$enqDelai=7;
switch (strtolower($infoEnq['Type'])) {
case 'premier': $enqType=0; $enqDelai=6; break;
case 'gold': $enqType=1; break;
case 'distrimat': $enqType=2; break;
case 'star': $enqType=3; break;
case 'avis_bancaire': $enqType=4; break;
case 'autre': $enqType=5; break;
}
/** Ajout du RIB si communiqué **/
if (@trim(implode(' ', $infoEnq['Entrep']['Rib']))<>'')
$iDbCrm->insert('banques', array( 'siren'=>$siren,
'libBanqueGuichet'=>'',
'precis'=>1,
'codeBanque'=>$infoEnq['Entrep']['Rib']['Banque'],
'codeGuichet'=>$infoEnq['Entrep']['Rib']['Guichet'],
'numCompte'=>$infoEnq['Entrep']['Rib']['Compte'].$infoEnq['Entrep']['Rib']['Cle'],
'dateSource'=>DATETIME,
), true);
/** Remplissage du formulaire d'enquête pour soumission à Intersud **/
$tabIdentite=$this->iInsee->getIdentiteLight($siren);
$tabPost=array( 'soc'=>$tabIdentite['Nom'],
'cible_enk'=>9, // 9
'siret'=>$siren,
'acti'=>'',
'soc_exp'=>$tabInterSud['soc_exp'],
'type_enk'=>$enqType, // 0=Premier, 1=Gold, 2=Distrimat, 3=Star, 4=Avis bancaire, 5=Autre
'nom_diri'=>'',
'adr'=>$tabIdentite['Adresse'],
'ref_exp'=>$tabInterSud['ref_exp'],
'autre_type_enk'=>'', // Texte libre
'adr2'=>$tabIdentite['Adresse2'],
'delai_enk'=>$enqDelai, // 6=24h, 7=72h, 8=+de5jours
'ville'=>$tabIdentite['Ville'],
'cp'=>$tabIdentite['CP'],
'pays'=>'', // International ?
'nom_exp'=>$tabInterSud['nom_exp'],
'tel'=>$tabIdentite['Tel'],
'port'=>$infoEnq['Entrep']['AutreTel'],
'tel_exp'=>$tabInterSud['tel_exp'],
'bank'=>trim(implode(' ', $infoEnq['Entrep']['Rib'])),
'int_enk'=>$tabInterSud['int_enk'], // International ?
'encours'=>$infoEnq['Encours'],
'nb_ech'=>$infoEnq['NbEcheances'],
'delai2_enk'=>$tabInterSud['delai2_enk'], // International ?
'email_exp'=>$tabInterSud['email_exp'],
'cred'=>'',
'comment'=>urlencode($comment),
'val_ret'=>$tabInterSud['val_ret'],
);
$url='http://intersud.fr/espace_client/demande_enquete.php';
$tdeb=microtime(true);
$page=getUrl($url, $cookie, $tabPost, $referer, false, '', '', 7);
if ($page['code']<>200) {
$tabRet=array();
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ATTENTION : Commande d'enquete sur $siren", "Validation impossible du formulaire d'enquête Intersud".EOL.$strInfoCommande);
return array('error'=>array('errnum'=>456345, 'errmsg'=>'Connexion impossible à la plateforme d\'enquetes 3'), 'results'=>$tabRet);
}
$tfin=microtime(true);
$duree+=$tfin-$tdeb;
$referer=$url;
$body=$page['body'];
$tabRet=array( 'siren'=> $siren,
'emailCommande'=> $mail,
'dateCommande'=> DATETIME,
'refCmde'=> 'i'.$ret,
);
//$strInfoCommande $mail
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Commande d'enquete sur $siren", $comment.EOL.EOL.'---------------------------------'.EOL.$messageInfo.EOL.EOL.'---------------------------------'.EOL.$body);
@sendMail('production@scores-decisions.com', $mail, "Votre demande d'enquete sur ".$tabIdentite['Nom']." ($siren)", "Votre demande d'enquête sur la société ".$tabIdentite['Nom']." a été prise en compte sous la référence i$ret - ".DATETIME);
wsLog($typeEnqLog, $siren, 'i'.$ret.'-'.DATETIME);
/** Gestion de la déconnexion **/
$url='http://intersud.fr/espace_client/index.php?code_ret=9';
$tdeb=microtime(true);
$page=getUrl($url, $cookie, '', $referer, false, '', '', 7);
$tfin=microtime(true);
$duree+=$tfin-$tdeb;
$ret=$iDbCrm->update('commandes', array('dureeCommande'=>round($duree,3)), "idCommande=$ret");
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
}
/** @nodoc
**
** @param string $siren Siren de l'entreprise
** @param integer $niveau Niveau du rapport 1, 2 ou 3
** @param integer $id Identifiant interne S&D de l'entreprise
** @param bool $forceVerif Si true, mise à jour en ligne des informations tel, fax, web issues de tiers
** @param bool $plus Si true, mise en surveillance privilèges
** @param string $ref Si $plus=true, référence facultative de la mise en Surveillance
** @param integer $encours Si $plus=true, encours facultatif Demandé par le client lors de la mise en Surveillance
** @param string $email Si $plus=true, email facultatif pour le suivi
** @return unknown
**/
function getRapport(string $siren, $niveau=3, $id=0, $forceVerif=false, $plus=false, $ref='', $encours=0, $email='')
{
$filtre=0;
$idAnn=0;
$accesDist=true;
$nivComment=2; // Niveau de verbosité et cycle des commentaires
if ($niveau==1)
$tabRet=array( 'getIndiScore'=> $this->getIndiScore($siren, 0, $accesDist, $nivComment, $plus, $ref, $encours, $email),
);
elseif ($niveau==2)
$tabRet=array( 'getIdentite'=> $this->getIdentite($siren, $id=0, $forceVerif),
'getDirigeants'=> $this->getDirigeants($siren, false),
'getLiens'=> $this->getLiens($siren, true),
'getRatios'=> $this->getRatios($siren, $page="rapport$niveau"),
'getIndiScore'=> $this->getIndiScore($siren, 0, $accesDist, $nivComment, $plus, $ref, $encours, $email),
);
elseif ($niveau==3)
$tabRet=array( 'getIdentite'=> $this->getIdentite($siren, $id=0, $forceVerif),
'getDirigeants'=> $this->getDirigeants($siren, false),
'getLiens'=> $this->getLiens($siren, true),
'getRatios'=> $this->getRatios($siren, $page="rapport$niveau"),
'getIndiScore'=> $this->getIndiScore($siren, 0, $accesDist, $nivComment, $plus, $ref, $encours, $email),
'getAnnonces'=> $this->getAnnonces($siren, $filtre, $idAnn),
);
return array('error'=>array('errnum'=>0, 'errmsg'=>''),
'results'=>$tabRet);
}
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
**
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
** @param integer $id Identifiant S&D de l'établissement
** @return array Fiche d'identité de l'établissement
**/
function getIdentiteAGS(string $siret, $id=0, $forceVerif=false)
{
debugLog('I',"Identité AGS demandée pour siret $siret (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
$siret=trim($siret);
$len=strlen($siret);
$id=trim($id)*1;
if ($len==14) $nic=substr(''.$siret,9,5)*1;
elseif ($len== 9) $nic=0;
elseif ($len== 0) { $siren=0; $nic=0; }
else {
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
}
$siren=substr(''.$siret,0,9)*1;
if ($siren==0 && $id==0) {
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
}
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__);
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
}
$tabRet=array( 'id' =>$entrep['id'],
'Siret' =>$entrep['Siret'],
'SiretSiege' =>$entrep['SiretSiege'],
'Siege' =>$entrep['Siege'],
'TribunalCode' =>prepareString($entrep['Tribunal']),
'TribunalLib' =>prepareString($entrep['TribunalLib']),
//'NumGreffe' =>$entrep['numGreffe'], // Ajouté le 4 08 2009
'NumRC' =>$entrep['numRC'], // Ajouté le 4 08 2009
'Actif' =>$entrep['Actif'],
'AutreId' =>$entrep['AutreId'],
'Source' =>$entrep['Source'],
'SourceId' =>$entrep['SourceId'],
'Isin' =>$entrep['Isin'],
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
'Nom2' =>prepareString($entrep['Nom2']),
'NomLong' =>prepareString($entrep['nomLong']), // Ajouté le 4 08 2009
'Siret' =>$entrep['Siret'],
'Sigle' =>prepareString($entrep['Sigle']),
'SigleLong' =>prepareString($entrep['sigleLong']), // Ajouté le 4 08 2009
'Enseigne' =>prepareString($entrep['Enseigne']),
'Adresse' =>prepareString($entrep['Adresse']),
'Adresse2' =>prepareString($entrep['Adresse2']),
'AdresseNum' =>prepareString($entrep['AdresseNum']),
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
'AdresseRue' =>prepareString($entrep['AdresseRue']),
'CP' =>$entrep['CP'],
'Ville' =>prepareString($entrep['Ville']),
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
'Civilite' =>$entrep['Civilite'],
'NbEtab' =>$entrep['NbEtab'],
'Tel' =>prepareString($entrep['Tel']),
'Fax' =>prepareString($entrep['Fax']),
'Web' =>prepareString($entrep['Web']),
'Mail' =>prepareString($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' =>prepareString($entrep['FJ_lib']),
'FJ2' =>$entrep['FJ2'], // Ajouté le 4 08 2009
'FJ2_Lib' =>prepareString($entrep['FJ2_Lib']), // Ajouté le 4 08 2009
'Siren' =>$entrep['Siren'],
'Nic' =>$entrep['Nic'],
'NafEnt' =>$entrep['NafEnt'],
'NafEntLib' =>prepareString($entrep['NafEntLib']),
'NafEtab' =>$entrep['NafEtab'],
'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
'Activite' =>prepareString($entrep['Activite']),
'Capital' =>$entrep['Capital'],
'CapitalDev' =>$entrep['CapitalDev'],
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
'CapitalType' =>prepareString($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' =>prepareString($entrep['EffEnTr']),
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
'Effectif' =>prepareString($entrep['Effectif']),
'Dept' =>$entrep['Dept'],
'codeCommune' =>prepareString($entrep['codeCommune']),
'TrancheCA' =>prepareString($entrep['TrancheCA']),
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
'dir1Code' =>$entrep['dir1Code'],
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
'dir1DateNaiss' =>$entrep['dir1DateNaiss'],// Ajouté le 4 08 2009
'dir1LieuNaiss' =>prepareString($entrep['dir1LieuNaiss']),// Ajouté le 4 08 2009
'dir2Code' =>$entrep['dir2Code'],
'dir2Titre' =>prepareString($entrep['dir2Titre']),//utf8
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
'dir2DateNaiss' =>$entrep['dir2DateNaiss'],// Ajouté le 4 08 2009
'dir2LieuNaiss' =>prepareString($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'],
);
$anns=$this->getAnnonces($siren, 1);
$tabRetAnn=$tabLastEven=array();
$anns=$anns['result'];
$tribunalProcol=false;
foreach ($anns as $nb=>$ann) {
$tabRetEven=array();
foreach ($ann['evenements'] as $tabEven) {
// On ignore les éléments suivants
if ($tabEven['CodeEven']>=7000) continue;
if ($tabEven['CodeEven']>=4000 && $tabEven['CodeEven']<=4999) continue;
// Par défaut, on force le tribunal à celui présent dans la dernière annonce de Procol
if ($tribunalProcol==false && $tabEven['CodeEven']>=1000 && $tabEven['CodeEven']<2000 && $ann['BodaccCode']=='BODA') {
$tabRet['TribunalCode']=$ann['TribunalCode'];
$tabRet['TribunalLib']=prepareString($ann['Tribunal']);
$tribunalProcol=true;
}
// On ne prend que le dernier élément de chaque type
if (in_array($tabEven['CodeEven'], $tabLastEven)) continue;
$tabLastEven[]=$tabEven['CodeEven'];
$tabRetEven[]=array('CodeEven'=>$tabEven['CodeEven'],
'LibEven' =>prepareString($tabEven['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;
$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';
}
$tabJuge=$iRncs->getIntervenants($siren);
$tabDepots=array();
foreach ($tabJuge as $iDepot=>$depot) {
$tabDepots[]=array( 'codEven' => $depot['codEven'],
'libEven' => prepareString($depot['libEven']),
'dateEffet' => $depot['dateEffet'],
'admcode' => $depot['admcode'],
'admfonction' => prepareString($depot['admfonction']),
'admnom' => prepareString($depot['admnom']),
'admadrNum' => $depot['admadrNum'],
'admadrInd' => $depot['admadrInd'],
'admadrVoie' => prepareString($depot['admadrVoie']), // @todo : adm1adr1, adm1adr2, adm1adr3,
'admadrCP' => $depot['admadrCP'],
'admadrVille' => prepareString($depot['admadrVille']),
);
}
$tabRet['Organes']=$tabDepots;
$mLiens=new MLiens($siren);
$tabA=$mLiens->getActionnaires($siren, 1);
$nbA=count($tabA);
$tabAct=array();
foreach ($tabA as $i=>$lien)
$tabAct[]=array( 'Pmin' => $lien['Pmin'],
'MajMin' => $lien['MajMin'],
'RaisonSociale' => prepareString($lien['RaisonSociale']),
'Pays' => prepareString($lien['Pays']),
'Siren' => $lien['Siren'],
'Actif' => $lien['Actif'],
);
$tabRet['Actionnaires']=$tabAct;
$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']=prepareString($tabCes['cessMand']);
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren", print_r($tabActes,true)) ;
global $tabInfoUser;
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
$tabRet['Naf4Ent'] = $entrep2['apen4'];
$tabRet['Naf4Etab'] = $entrep2['apet4'];
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
}
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren", print_r($tabRet,true)) ;
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
wsLog('identite',$siret,$id);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
function getIdentiteProcol(string $siret, $id=0, $forceVerif=false)
{
return $this->getIdentiteAGS($siret, $id, $forceVerif);
}
/** Liste des privilèges pour une entreprise en suivi Privilèges
**
** @param string $siren
** @param bool $detail
** @param array $tabTypes
*/
function getPrivileges(string $siren, $detail=false, $tabTypes=array('03','04'))
{
debugLog('I',"Liste des privilèges $detail sur $siren ".print_r($tabTypes, true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$iPriv=new MPrivileges();
if ($detail)
$ret=$iPriv->getPrivilegesDetail($siren, $tabTypes);
//foreach ($ret as )
else
$ret=$iPriv->getPrivilegesCumul($siren, $tabTypes);
return $ret;
}
/** Recherche d'entreprise ou d'établissement par leur identifiant interne
**
** @param integer $refClient Reférence Interne de l'entreprise ou de l'établissement dans la base du client
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
** @return Liste d'établissements
**/
function searchRefClient($refClient, $deb=0, $nbRep=20, $maxRep=200)
{
global $tabInfoUser;
$tabRet=array();
debugLog('I',"Recherche par Référence Interne=$refClient avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if (strlen($refClient)==0) {
debugLog('W', "Référence $refClient incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>132, 'errmsg'=>'Référence inexistante'), 'results'=>$tabRet);
}
//$tabInfoUser['id'],
$rep=$this->iInsee->getEtabClients($refClient, $tabInfoUser['idClient'], $tabInfoUser['login'], $deb, $nbRep, $maxRep);
$etabs=$rep['reponses'];
foreach ($etabs as $nb=>$etab) {
$tabRet[]=array( 'id' => $etab['id'],
'Pertinence'=> $etab['Pertinence'],
'Siret' => $etab['Siret'],
'Siege' => $etab['Siege'],
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
'Nom2' => prepareString($etab['Nom2']),
'Sigle' => prepareString($etab['Sigle']),
'Enseigne' => prepareString($etab['Enseigne']),
'Adresse' => prepareString($etab['Adresse']),
'Adresse2' => prepareString($etab['Adresse2']),
'CP' => $etab['CP'],
'Ville' => prepareString($etab['Ville']),
'Tel' => $etab['Tel'],
'Fax' => $etab['Fax'],
'FJ' => $etab['FJ'],
'FJLib' => prepareString($etab['FJLib']),
'Siren' => $etab['Siren'],
'Nic' => $etab['Nic'],
'Actif' => $etab['Actif'],
'NafEtab' => $etab['NafEtab'], // Etablissement
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
'NafEnt' => $etab['NafEnt'], // Entreprise
'NafEntLib' => prepareString($etab['NafEntLib']),
);
}
$rep['reponses']=$tabRet;
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
/** Liste de tous les dépôts enregistrés à l'INPI pour une entreprise
**
** @param integer $siren Siren de l'entreprise
** @return Liste des dépôts de l'entreprise
**/
function getListeDepots(string $siren)
{
debugLog('I',"Liste des dépots INPI 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);
}
$iRncs=new MRncs();
$evens=$iRncs->getListeDepots($siren);
foreach ($evens as $nb=>$even)
$tabRet[]=array('CodeDepot' => $even['codDepot'],
'LibDepot' => prepareString($even['libDepot']),
'DateDepot' => $even['datDepot'],
'RefDepot' => $even['refDepot'],
'DateRncs' => $even['datRncs'],
'DateMAJ' => $even['datSed'],
);
debugLog('I', 'Nb dépôts retournés = '. count($tabRet), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
}
}
?>