.*(.*)<\/td>.* | (.*)<\/a><\/td>.* | (.*)<\/td>.*<\/tr>/Uis',$body, $matches)) {
$fp=@fopen("/tmp/marques-$siren-$date.log", "a");
@fwrite($fp, print_r($matches,true));
@fclose($fp);
foreach ($matches[3] as $i=>$marqueNom) {
preg_match('/\/cgi-bin\/consultcgi\?en=(.*)\'\);"/Uis', $matches[4][$i], $matches2);
$lien=$matches2[1];
preg_match('/\/cgi-bin\/v(?:erif|)cpte\?no=(.*)$/Ui', $matches[2][$i], $matches2);
$depot=$matches2[1];
$rs=trim(str_replace('(semi-figurative)','',$marqueNom));
if (substr($rs,-1,1)=='.') $rs=substr($rs,0,strlen($rs)-1);
$tabUpdate=array( 'Marques'=>$rs,
'Date' =>WDate::dateT('d-m-Y', 'Y-m-d', $matches[1][$i]),
'Depot' =>$depot,//$matches[2][$i],
'IdLien' =>$lien, // http://www.societe.com/cgi-bin/consultcgi?en= 3173102
);
if (!$iDb->insert('marques', array_merge($tabUpdate, array('Siren'=>$siren)), true))
$iDb->update('marques', $tabUpdate, "Siren=$siren AND Depot=$depot", true);
//$marques[$i]=$tabUpdate;
$marques[$i]['Marques'] = prepareString($rs);
$marques[$i]['Date'] = WDate::dateT('d-m-Y', 'Y-m-d', $matches[1][$i]);
$marques[$i]['Depot'] = $depot;
$marques[$i]['IdLien'] = $lien;
}
}
}
$res=$iDb->select('marques', 'Marques,Date,Depot,IdLien, DATEDIFF(NOW(),dateUpdate) AS nbJourLastUpdate', "Siren=$siren ORDER BY `Date` DESC");
if (count($res)>0) {
foreach ($res as $i=>$marque) {
$marques[$i]=array( 'Marques'=>prepareString($marque['Marques']),
'Date' =>prepareString($marque['Date']),
'Depot' =>prepareString($marque['Depot']),
'IdLien' =>prepareString($marque['IdLien']),
);
if ($idDepot<>0) {
$marques[$i]['UrlLien']=DOC_WEB_URL."marques/$siren-$idDepot.jpg";
if ($marque['IdLien']==$idDepot) {
if (!file_exists(DOC_WEB_LOCAL."marques/$siren-$idDepot.jpg") ||
filesize(DOC_WEB_LOCAL."marques/$siren-$idDepot.jpg")<43) {
// $url=;
// filesize("/var/www/site_extranet/www/pdf/acte-$siren-$option.pdf")==0) {
$tdeb=microtime(true);
$page=getUrl("http://www.societe.com/cgi-bin/consultcgi?en=$idDepot", '', '', '', false, '', '',21);
$tfin=microtime(true);
$duree=$tfin-$tdeb;
$body=$page['body'];
$fp=@fopen(DOC_WEB_LOCAL."marques/$siren-$idDepot.jpg", 'w');
@fwrite($fp, $body);
@fclose($fp);
$fp=@fopen("/var/www/log/marques.log", "a");
@fwrite($fp, date('Y-m-d H:i:s').";$siren;$idDepot;$duree\n");
@fclose($fp);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>array(end($marques)));
}
}
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$marques);
}
wsLog('marques',$siren);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$marques);
}
/**
* Enter description here ...
* @param unknown_type $siren
* @param unknown_type $piece
* @param unknown_type $type
* @param unknown_type $visu
* @param unknown_type $courrier
* @param unknown_type $ref
* @throws SoapFault
*/
protected function getPiece($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");
$tabRet=array( 'Siren'=>$siren,
'Url'=>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);
}
/**
* commandeAsso
* @param string $siren
* @param array $infoAsso
* @param array $infoDemande
* @return CommandeAssoReturn
*/
public function commandeAsso($siren, $infoAsso=array(), $infoDemande=array())
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
$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 = $this->tabInfoUser['email'];
$tabInsert=array(
'idUser' => $this->tabInfoUser['id'],
'source' => 'asso',
'login' => $this->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', 'ylenaour@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)
);
$iDbCrm = new WDB('sdv1');
$ret = $iDbCrm->insert('commandes', $tabInsert, true);
$result = new CommandeAsso();
$result->siren = $siren;
$result->emailCommande = $mail;
$result->dateCommande = DATETIME;
$result->refCmd = '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', 'ylenaour@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));
$result = new CommandeAsso();
$result->siren = $siren;
$result->emailCommande = $mail;
$result->dateCommande = DATETIME;
$result->refCmd = 'ERREUR';
debugLog('E',"commandeAsso pour $assoNom ($siren) fin",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
}
$output = new CommandeAssoReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* Commande d'une enquête sur une entreprise en France ou à l'Internationale
* @param string $siren
* @param array $infoEnq
* @param array $infoDemande
* @return CommandeEnqueteReturn
**/
public function commandeEnquete($siren, $infoEnq=array(), $infoDemande=array())
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
$mail = trim($infoDemande['Email']);
if ($mail=='') $mail = $this->tabInfoUser['email'];
$tabInsert = array(
'idUser' => $this->tabInfoUser['id'],
'source'=> 'intersud', // 'greffes', 'asso', 'graydon'
'login'=> $this->tabInfoUser['login'],
'emailCommande'=> $mail,
'siren'=> $siren,
'refDocument'=> serialize($infoDemande),
'refCommande'=> serialize($infoEnq),
'dateCommande'=> DATETIME,
);
debugLog('I',"commande d'enquete sur $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$messageInfo=print_r($infoEnq, 1).EOL.print_r($infoDemande,1).EOL;
$idClient = $this->tabInfoUser['idClient'];
$iDbCrm = new WDB('sdv1');
$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=='') {
/** 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';
*/
}
$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);
$tfin=microtime(true);
$duree=$tfin-$tdeb;
$referer=$url;
$body=$page['body'];
$cookie=$page['header']['Set-Cookie'];
$url='http://intersud.fr/espace_client/demande_enquete.php';
$tdeb=microtime(true);
$page=getUrl($url, $cookie, '', $referer, false, '', '', 7);
$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('/$field) {
$tmp=explode('"', $matches[2][$i]);
$tabInterSud[$field]=$tmp[0];
}
}
if (preg_match_all('/$field) {
$tmp=explode('"', $matches[1][$i]);
$tabInterSud[$field]=$tmp[0];
}
}
$fp=@fopen(LOG_PATH."intersud.log", "a");
@fwrite($fp, print_r($matches,true));
@fwrite($fp, print_r($tabInterSud,true));
@fclose($fp);
$ret = $iDbCrm->insert('commandes', $tabInsert, true);
$comment = "Référence de la commande chez Scores et Décisions : i$ret - ".
DATETIME."\n".
"Date et heure de la commande : ".date('d/m/Y - H:i')."\n".
"Origine de la commande : $nomClient".
"$strInfoCommande"."\n\n".
"CA : ".$infoEnq['Precisions']['MontantCA']."\n".
"Motif de la demande : ".trim($infoEnq['Precisions']['Motif'].' '.$infoEnq['Precisions']['Autre'])."\n".
"Type de la demande : ".$infoEnq['Precisions']['Type']."\n".
"Anciennete de la relation : ".$infoEnq['Anciennete'].' '.$infoEnq['AncienneteDuree']."\n".
"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);
$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'=>1,
);
$url='http://intersud.fr/espace_client/demande_enquete.php';
$tdeb=microtime(true);
$page=getUrl($url, $cookie, $tabPost, $referer, false, '', '', 7);
$tfin=microtime(true);
$duree+=$tfin-$tdeb;
$referer=$url;
$body=$page['body'];
$result = new CommandeEnquete();
$result->siren = $siren;
$result->emailCommande = $mail;
$result->dateCommande = DATETIME;
$result->refCmd = 'i'.$ret;
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Commande d'enquete sur $siren", $comment.EOL.EOL.'---------------------------------'.EOL.$messageInfo);
@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);
$output = new CommandeEnqueteReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* Récupération d'un kbis
* @param string $siren
* @param int $visu
* @param int $courrier
* @param string $mail
* @param string $ref
* @return PiecesReturn
*/
public function getKbis($siren, $visu=1, $courrier=0, $mail='', $ref='')
{
return $this->getPiece($siren, 'kbis', '', $visu, $courrier, $ref);
}
/**
* Récupère les informations du profil connecté
* @param string $login
* @param int $idClient
* @return ListeUtilisateursReturn
*/
public function getListeUtilisateurs($login, $idClient=-1)
{
$this->authenticate();
//Initialisation
if (empty($idClient)) $idClient = -1;
$error = new ErrorType();
$tabRet = array();
if ($this->tabInfoUser['profil']<>'Administrateur' &&
$this->tabInfoUser['profil']<>'SuperAdministrateur')
{
$error->errnum = 1;
$error->errmsg = 'Profil non administrateur';
}
else
{
$iDbCrm = new WDB('sdv1');
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
$idClient=$rep[0][0];
if ($idClient==-1)
{
$error->errnum = 1;
$error->errmsg = 'idClient=0';
}
else
{
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom, referenceParDefaut', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
foreach ($rep as $uti)
{
$utilisateur = new Utilisateur();
$utilisateur->idUti = $uti['id'];
$utilisateur->idClient= $uti['idClient'];
$utilisateur->login = $uti['login'];
$utilisateur->email = $uti['email'];
$utilisateur->actif= $uti['actif'];
$utilisateur->nom = $uti['nom'];
$utilisateur->prenom = $uti['prenom'];
$utilisateur->reference = $uti['referenceParDefaut'];
$tabRet[]= $utilisateur;
}
}
}
$output = new ListeUtilisateursReturn();
$output->error = $error;
$output->result = $tabRet;
return $output;
}
/**
* Récupère la liste des clients ou les informations d'un client
* @param int $idClient
* @return ListeClientsReturn
*/
public function getListeClients($idClient=0)
{
$this->authenticate();
//Initialisation
if (empty($idClient)) $idClient = 0;
$error = new ErrorType();
$isAuthorized = false;
if ($this->tabInfoUser['profil']=='Administrateur' &&
($idClient==0 || $idClient==$this->tabInfoUser['idClient']))
{
$idClient = $this->tabInfoUser['idClient'];
$isAuthorized = true;
}
if ($this->tabInfoUser['profil']<>'SuperAdministrateur')
{
$error->errnum = 1;
$error->errmsg = 'Profil non administrateur';
}
else
{
$isAuthorized = true;
}
if ($isAuthorized)
{
$strClient = '';
if ($idClient>0) $strClient.=" AND id='$idClient' ";
$iDbCrm = new WDB('sdv1');
$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)
{
$client = new Client();
$client->idClient = $uti['id'];
$client->nom = $uti['nom'];
$client->actif = $uti['actif'];
$client->test = $uti['test'];
$client->racineLogin = $uti['racineLogin'];
$client->siren = $uti['siren'];
$client->nic = $uti['nic'];
$client->tva = $uti['tva'];
$client->editerFacture = $uti['editerFacture'];
$client->fact_detail = $uti['fact_detail'];
$client->fac_dest = $uti['fac_dest'];
$client->fac_adr1 = $uti['fac_adr1'];
$client->fac_adr2 = $uti['fac_adr2'];
$client->fac_adr3 = $uti['fac_adr3'];
$client->fac_email = $uti['fac_email'];
$client->fac_tel = $uti['fac_tel'];
$client->fact_rib = $uti['fact_rib'];
$client->liv_dest = $uti['liv_dest'];
$client->liv_adr1 = $uti['liv_adr1'];
$client->liv_adr2 = $uti['liv_adr2'];
$client->liv_adr3 = $uti['liv_adr3'];
$client->liv_email = $uti['liv_email'];
$client->liv_tel = $uti['liv_tel'];
$client->droits = $uti['droits'];
$client->timeout = $uti['timeout'];
$client->filtres_ip = $uti['filtres_ip'];
$client->dateInsert = $uti['dateInsert'];
$client->dateUpdate = $uti['dateUpdate'];
$client->respComSD = $uti['respComSD'];
$client->typeContrat = $uti['typeContrat'];
$client->dateSignature = $uti['dateSignature'];
$client->typeAcces = $uti['typeAcces'];
$client->typeScore = $uti['typeScore'];
$client->accesPieces = $uti['accesPieces'];
$client->accesKbis = $uti['accesKbis'];
$client->accesInvestigations = $uti['accesInvestigations'];
$client->accesInternationnal = $uti['accesInternationnal'];
$client->accesEnquetes = $uti['accesEnquetes'];
$client->miseSousSurveillance = $uti['miseSousSurveillance'];
$client->forfaitExtranetPeriode = $uti['forfaitExtranetPeriode'];
$client->forfaitExtranetMontant = $uti['forfaitExtranetMontant'];
$client->reconductionAuto = $uti['reconductionAuto'];
$client->remarque = $uti['remarque'];
$client->forfaitPiecesNb = $uti['forfaitPiecesNb'];
$client->forfaitPiecesMt = $uti['forfaitPiecesMt'];
$client->forfaitPiecesDep = $uti['forfaitPiecesDep'];
$client->forfaitInvestigNb = $uti['forfaitInvestigNb'];
$client->forfaitInvestigMt = $uti['forfaitInvestigMt'];
$client->forfaitInvestigDep = $uti['forfaitInvestigDep'];
$client->tarifIndiscore = $uti['tarifIndiscore'];
$tabRet[] = $client;
}
}
$output = new ListeClientsReturn();
$output->error = $error;
$output->result = $tabRet;
}
/**
* getStatsUtilisateurs
* @param string $login
* @param string $mois
* @param string $type
* @param boolean $payants
* @return array
*/
public function getStatsUtilisateurs($login, $mois, $type='jour', $payants=false)
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
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='';
}
$iDbCrm = new WDB('sdv1');
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
**
** @param unknown_type $siren
** @param unknown_type $niveau
** @param unknown_type $id
** @param unknown_type $forceVerif
** @return unknown
**/
protected function getRapport($siren, $niveau=3, $id=0, $forceVerif=false)
{
$filtre=0;
$idAnn=0;
$accesDist=true;
if ($niveau==1)
$tabRet=array( 'getIndiScore'=> $this->getIndiScore($siren, 0, $accesDist),
);
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),
);
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),
'getAnnonces'=> $this->getAnnonces($siren, $filtre, $idAnn),
);
return array('error'=>array('errnum'=>0, 'errmsg'=>''),
'results'=>$tabRet);
}
/**
* getPortefeuilleCsv
* @param string $login
* @param int $idClient
* @return ListeSurveillancesCsvReturn
*/
public function getPortefeuilleCsv($login='', $idClient=0)
{
return $this->getListeSurveillancesCsv('portefeuille', $login, $idClient);
}
/**
* getRatios
* @param string $siren
* @param string $page
* @return RatiosReturn
*/
public function getRatios($siren, $page='ratios')
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
$tabRatiosInfos=$tabRatiosSecteurs=$tabBilansR=$tabRatios2=$tabRatiosEvol=array();
$tabRet = array();
//global $tva, $tabFormules, $mBil, $tabBilan, $efftr;
debugLog('I',"Liste des Ratios demandée pour $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
if (strlen($siren)<>9)
{
debugLog('W', "Siren $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error->errnum =102;
$error->errmsg = 'Siren inexistant';
}
elseif ($siren*1==0)
{
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$error->errnum =102;
$error->errmsg = 'Siren inexistant';
}
else
{
debugLog('I',"Liste des Ratios demandée pour $siren avant getIdentiteEntreprise",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$iInsee = new MInsee();
$tabIdentite = $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");
$result = new RatiosResult();
$result->Nom = $tabIdentite['Nom'];
$result->NafEnt = $tabIdentite['NafEnt'];
$result->NafEntLib = $tabIdentite['NafEntLib'];
$result->FJ = $fj;
$result->FJ_lib = $tabIdentite['FJ_lib'];
$result->Siren = $siren;
$result->NbEntNaf = $nbRatiosSec;
$result->BilansInfos = $tabBilansR;
$result->RatiosInfos = $tabRatiosInfos;
$result->RatiosEntrep = $tabRatios2;
$result->RatiosEntrepEvol = $tabRatiosEvol;
$result->RatiosSecteur = $tabRatiosSecteurs;
debugLog('I',"Liste des Ratios demandée pour $siren RETURN",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
wsLog($page, $siren);
$output = new RatiosReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
}
/**
* getSurveillances
* @param string $siret
* @param string $source
* @param boolean $detail
* @param int $deb
* @param int $nbRet
* @param string $tri
* @return SurveillancesReturn
*/
public function getSurveillances($siret=0, $source='annonces', $detail=false, $deb=0, $nbRet=100, $tri='siren')
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
$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();
$login = $this->tabInfoUser['login'];
if ($detail) $strSelect='source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi';
else $strSelect='source, email, siren, nic, ref, dateAjout, dateDerEnvoi';
if ($source<>'')$strSource=" AND source='$source' ";
else $strSource='';
if ($siren>0) $strSiren =" AND siren=$siren ";
else $strSiren ='';
// Il faut compter le nombre de siren au total
$tabTmp = $iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC);
$nbRepTot=$tabTmp[0]['nb'];
$tabTmp = $iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $deb,$nbRet", false, MYSQL_ASSOC);
foreach ($tabTmp as $i=>$tabSurv)
{
if (!$detail)
{
$surveillance = new SurveillancesReponses();
$surveillance->source = $tabSurv['source'];
$surveillance->email = $tabSurv['email'];
$surveillance->siren = $tabSurv['siren'];
$surveillance->nic = $tabSurv['nic'];
$surveillance->ref = $tabSurv['ref'];
$surveillance->dateAjout = $tabSurv['dateAjout'];
$surveillance->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);
}
$surveillance = new SurveillancesReponses();
$surveillance->source = $tabSurv['source'];
$surveillance->email = $tabSurv['email'];
$surveillance->siren = $tabSurv['siren'];
$surveillance->nic = $tabSurv['nic'];
$surveillance->ref = $tabSurv['ref'];
$surveillance->dateAjout = $tabSurv['dateAjout'];
$surveillance->dateDerEnvoi = $tabSurv['dateDerEnvoi'];
$surveillance->encoursClient = $tabSurv['encoursClient'];
$surveillance->rs = $rs;
$surveillance->cp = $cp;
$surveillance->ville = $ville;
}
$tabRet[] = $surveillance;
}
$criteres = new SurveillancesCriteres();
$criteres->siren = $siren;
$criteres->nic = $nic;
$criteres->source = $source;
$result = new SurveillancesResult();
$result->criteres = $criteres;
$result->nbReponses = count($tabRet);
$result->nbReponsesTotal = $nbRepTot;
$result->reponses = $tabRet;
$output = new SurveillancesReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* rechercheHisto
* @param string $recherche
* @param string $annee
* @param string $typeBod
* @param int $deb
* @param int $nbRep
* @param int $maxRep
* @param bool $pertinence
* @return RechercheHistoReturn
*/
public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
if (empty($annee)) $annee = '';
if (empty($typeBod)) $typeBod = '';
if (empty($deb)) $deb = 0;
if (empty($nbRep)) $nbRep = 20;
if (empty($maxRep)) $maxRep = 200;
if (empty($annee)) $pertinence = false;
require_once 'framework/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('idx_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);
$reponse = new RechercheHistoReponses();
$reponse->id = $etab['id'];
$reponse->Pertinence = $etab['Pertinence'];
$reponse->Fichier = strtr($etab['Fichier'], array('.txt'=>'.pdf', '/mnt/bodacc/'=>'http://tville.scores-decisions.com/bodacc/'));
$reponse->Annee = $etab['Annee'];
$reponse->Code = $etab['Code'];
$reponse->Texte = preg_replace('/^[A-Za-z0-9\sàáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝŸ]/','',$texte2);
$tabRet[] = $reponse;
$k++;
}
$criteres = new RechercheHistoCriteres();
$criteres->recherche = $recherche;
$criteres->annee = $annee;
$output = new RechercheHistoReturn();
$output->criteres = $criteres;
$output->nbReponses = count($tabRet);
$output->nbReponsesTotal = $nbTot;
$output->duree = $duree;
$output->mots = array_keys($tabMots);
$output->reponses = $tabRet;
return $output;
}
/**
* getLogsClients
* @param string $mois
* @param int $detail
* @param int $idClient
* @param string $login
* @param int $all
* @return LogsClientsReturn
*/
public function getLogsClients($mois, $detail=0, $idClient=0, $login='', $all=0)
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
$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='indiscore' OR page='privileges' OR page='commandeAsso') AND (params<>'' OR page='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 && $this->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<>$this->tabInfoUser['idClient'] &&
$this->tabInfoUser['profil']<>'SuperAdministrateur') ){
$idClient=$this->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, date(dateHeure), params
ORDER BY l.login ASC, dateHeure ASC";
$fp = fopen(DOC_WEB_LOCAL."/csv/logs-$annee-$mois-$detail-$idClient-$login-$all.sql", 'w');
fwrite($fp, $sql.EOL);
fclose($fp);
exec(APPLICATION_PATH."/batch/sql2csv.php sdv1 ".DOC_WEB_LOCAL."/csv/logs-$annee-$mois-$detail-$idClient-$login-$all.sql $fichierCsv > /dev/null &");
$size=$cache=0;
}
$result = new LogsClients();
$result->Url = DOC_WEB_URL."csv/logs-$annee-$mois-$detail-$idClient-$login-$all.csv";
$result->Taille = $size;
$result->Cache = $cache;
$output = new LogsClientsReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* getListeSurveillanceCsv
* @param string $source
* @param string $login
* @param string $idClient
* @return ListeSurveillancesCsvReturn
*/
public function getListeSurveillancesCsv($source='', $login='', $idClient=0)
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
debugLog('I',"getListeSurveillancesCsv Début $source $login $idClient",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$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<>$this->tabInfoUser['idClient'] && $this->tabInfoUser['profil']<>'SuperAdministrateur') )
{
$idClient=$this->tabInfoUser['idClient'];
}
$strClient=" AND u.idClient=$idClient ";
if ($login=='' && ($this->tabInfoUser['profil']=='SuperAdministrateur' || $this->tabInfoUser['profil']=='Administrateur'))
{
// On veut toutes les surveillances du client
$login='';//$tabInfoUser['login'];
}
elseif ($login<>'' && ($this->tabInfoUser['profil']=='SuperAdministrateur' || $this->tabInfoUser['profil']=='Administrateur'))
{
$strLogin=" AND s.login='$login' ";
}
else
{
$strLogin=" AND s.login='".$this->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'){
$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, v.indiScore,
v.indiScore20, v.encours, v.indiScoreDate, v.dateBilan, v.indiScorePre, v.indiScore20Pre,
v.encoursPre, v.indiScoreDatePre, v.sourceModif, v.scoreSolv, v.scoreSolvPre, v.scoreDir,
v.scoreDirPre, v.scoreConf, v.scoreConfPre, /*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, */v.dateUpdate
FROM surveillances_site s, sdv1.utilisateurs u, sdv1.clients c, scores_surveillance v
WHERE s.source='score' $strClient $strLogin AND dateSuppr=0 AND s.login=u.login AND u.idClient=c.id AND s.siren=v.siren
ORDER BY loginUti ASC, s.siren ASC, s.nic ASC, s.source ASC, s.ref ASC";
} 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(APPLICATION_PATH."/batch/sql2csv.php jo ".DOC_WEB_LOCAL."csv/listesurv-$source-$login-$idClient.sql $fichierCsv > /dev/null &");
$size=$cache=0;
}
$result = new ListeSurveillancesCsv();
$result->Url = DOC_WEB_URL."csv/listesurv-$source-$login-$idClient.csv";
$result->Taille = $size;
$result->Cache = $cache;
debugLog('I','getListeSurveillancesCsv Url='.DOC_WEB_URL."csv/listesurv-$source-$login-$idClient.csv, Taille=$size, Cache=$cache",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$output = new ListeSurveillancesCsvReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* getListeJalCollecte
* @return ListeJalCollecteReturn
*/
public function getListeJalCollecte()
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
$iBodacc = new MBodacc();
$tabRet = $iBodacc->getListeJalCollecte();
foreach ($tabRet as $i=>$jal)
{
$jalCollecte = new JalCollecte();
$jalCollecte->id = $i;
$jalCollecte->nom = $jal;
$tabRet[] = $jalCollecte;
}
$output = new ListeJalCollecteReturn();
$output->error = $error;
$output->result = $tabRet;
return $output;
}
/**
* getListeFichierSurv
* @param string $login
* @param string $ref
* @param string $nomFic
* @return ListeFichierSurvReturn
*/
protected function getListeFichierSurv($login, $ref='*', $nomFic='')
{
$this->authenticate();
//Initialisation
$error = new ErrorType();
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, $nomFic", 'vide');
debugLog('I',"getListeFichierSurv pour $login, $ref, $nomFic",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabFichier=$tabDates=array();
$numAbo=substr($ref, 0,5);
if ($login=='vwbank') {
$repClient='volkswagen bank';
$ficClient='surveillanceBodacc_SURBODPRDCFTVWBANK';
$numAbo=$ref='19300';
} else {
$repClient='cnasea';
$ficClient='surveillanceBodacc_SURBODTSTFTSCNASEA';
}
$dh = opendir("/home/data/clients/$repClient/");
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);
}
}
/** 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);
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<>'') {
if (!file_exists("/var/www/html/csv/$nomFic.bz2") ||
filesize("/var/www/html/csv/$nomFic.bz2")==0) {
$string=file_get_contents("/home/data/clients/$repClient/$nomFic");
$bz = bzopen("/var/www/html/csv/$nomFic.bz2",'w');
if ($bz) {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
}
}
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabFichier);
}
/**
* Geocodage d'une adresse
* @param string $adresse
* @param string $cp
* @param string $ville
* @param string $pays
* @return GeoCodeReturn
*/
public function geoCode($adresse, $cp, $ville, $pays='France')
{
$this->authenticate();
$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);
$geocode = new GeoCode();
$geocode->latitude = $mMap->latitudeDec;
$geocode->longitude = $mMap->longitudeDec;
$geocode->precis = $mMap->precision;
$geocode->adresseValidee = $mMap->adresseValidee;
$geocode->latitudeDeg = $mMap->latitudeDeg;
$geocode->longitudeDeg = $mMap->longitudeDeg;
$output = new GeoCodeReturn();
$output->error = $error;
$output->result = $geocode;
}
/** 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
**/
protected function getIdentiteAGS($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('/var/www/log/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
if (empty($entrep)) {
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
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']=$tabCes['cessMand'];
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren", print_r($tabActes,true)) ;
if (preg_match('/NAF4/i', $this->tabInfoUser['pref'])) {
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
$tabRet['Naf4Ent'] = $entrep2['apen4'];
$tabRet['Naf4Etab'] = $entrep2['apet4'];
$tabRet['Naf4EntLib'] = 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);
}
protected function getIdentiteProcol($siret, $id=0, $forceVerif=false) {
return $this->getIdentiteAGS($siret, $id, $forceVerif);
}
}
?> |