.*(.*)<\/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...
** @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);
}
/*
function supprAnnonce($siret, $idAnn) {
if (!$iDb->update('annonces', $tabUpdate, "siren=$siren AND dateJugement='$dateJuge' AND typeEven=".$tabJugement['even'][0], true))
}*/
/** Mise à jour d'informations dans la base
** @nodoc
**/
function setInfosEntrep($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;
$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),
);
/** @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, '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['domiciliataire']) && $tabIdentite['domiciliataire']=='oui' && $siren>1000) {
if (!$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, NOW() as dateInsert
FROM jo.etablissements WHERE siren=$siren;", false))
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de l'inscription comme entreprise de domiciliation : ".EOL.print_r($tabIdentite, 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);
}
/** Supprime une annonce issue de la collecte
** @nodoc
**/
function supprAnnonceCollecte($idAnn, $siret=0) {
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);
}
/** Duplique une annonce issue de la collecte
** @nodoc
**/
function dupliqueAnnonceCollecte($idAnn, $siret=0) {
global $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();
$idAnn=preg_replace('/^0\./','', ''.$idAnn)*1;
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];
unset($annonce['id']);
$annonce['siren']=$siren;
$annonce['nic']=$nic;
if ($iDb->insert( 'annonces', $annonce, false))
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);
}
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);
}
/** Récupère le contenu d'une annonce issue de la collecte
** @nodoc
**/
function getAnnonceCollecte($idAnn, $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'],
);
/*
inter4type
inter4id
inter4nom
infosBrutes,
annonce
parutionIdJal
parutionNum
idSaisie
idAnnonce
dateInsert
*/
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 unknown_type $page
* @param unknown_type $siret
* @param unknown_type $id
* @param unknown_type $ref
* @nodoc
**/
function setLog($page, $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($siret, $email, $ref='', $delete=false) {
/*$tabRet=array();
$siren=substr(''.$siret,0,9)*1;
$iDb=new WDB();
global $tabInfoUser;
$tabInsert=array( 'dateAjout'=>date('Y-m-d'),
'siren'=>$siren,
'email'=>$email,
'ref'=>$ref,
'login'=>$tabInfoUser['login'],
);
if (!$iDb->insert('surveillances_site', $tabInsert))
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
*/
return $this->setSurveillance($siret, $email, $ref, 'annonces', $delete);
}
/** Ajout d'une surveillance
**
** @param integer $siret Siret/Siren à surveiller
** @param string $email Adresse email du client
** @param string $ref Référence de la surveillance
** @param string $source Type de source en surveillance (insee, annonces, bilans, actes, privileges, score, dirigeants)
** @param boolean $delete Suppression de la ligne
** @param integer $encoursClient Encours demandé par le client
** @return unknown
*/
function setSurveillance($siret, $email, $ref='', $source='annonces', $delete=false, $encoursClient=0) {
debugLog('I',"setSurveillances(siret=$siret, email=$email, ref=$ref, source=$source, delete=$delete)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabRet=array();
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$tabIdentite=$this->iInsee->getIdentiteLight($siren, $nic);
$iDb=new WDB();
global $tabInfoUser;
$login=$tabInfoUser['login'];
$source=strtolower($source);
switch ($source) {
case 'insee':
case 'annonces':
case 'bilans':
case 'actes':
case 'privileges':
case 'dir1igeants':
$encoursClient=0;
break;
case 'score':
$encoursClient=$encoursClient*1;
break;
default:
$source='annonces';
break;
}
$tabUpdate=array( 'source'=>$source,
'login'=>$login,
'email'=>$email,
'siren'=>$siren,
'nic'=>$nic,
'ref'=>$ref,
'encoursClient'=>$encoursClient,
'rs'=>$tabIdentite['Nom'],
'cp'=>$tabIdentite['CP'],
'ville'=>$tabIdentite['Ville'],
);
if ($delete)
$tabUpdate=array_merge($tabUpdate, array('dateSuppr'=>date('Y-m-d')));
else
$tabUpdate=array_merge($tabUpdate, array('dateAjout'=>date('Y-m-d'), 'dateSuppr'=>0));
if ( $delete || !$iDb->insert('surveillances_site', $tabUpdate)) {
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "debugSurv pour $login",
"source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'".EOL.
print_r($tabUpdate,true).EOL
);*/
if (!$iDb->update('surveillances_site', $tabUpdate, "source='$source' AND login='$login' AND email='$email' AND siren=$siren AND nic=$nic AND ref='$ref'"))
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
}
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
}
function getSurveillances($siret=0, $source='annonces', $detail=false, $deb=0, $nbRet=100, $tri='siren') {
$tri=strtolower(trim($tri));
switch ($tri) {
case 'ref': $orderBy='ORDER BY ref'; break;
case 'dateAjout': $orderBy='ORDER BY dateAjout'; break;
case 'dateDerEnvoi':$orderBy='ORDER BY dateDerEnvoi'; break;
case 'rs': $orderBy='ORDER BY rs'; break;
case 'cp': $orderBy='ORDER BY cp'; break;
case 'ville': $orderBy='ORDER BY ville'; break;
default: $orderBy='ORDER BY siren'; break; // siren ou vide ou autre
}
$tabRet=array();
$siren=substr(''.$siret,0,9)*1;
$nic=substr(''.$siret,9,5)*1;
$iDb=new WDB();
global $tabInfoUser;
$login=$tabInfoUser['login'];
if ($detail) $strSelect='source, email, siren, nic, ref, dateAjout, encoursClient, rs, cp, ville, dateDerEnvoi';
else $strSelect='source, email, siren, nic, ref, dateAjout, dateDerEnvoi';
if ($source<>'')$strSource=" AND source='$source' ";
else $strSource='';
if ($siren>0) $strSiren =" AND siren=$siren ";
else $strSiren ='';
// Il faut compter le nombre de siren au total
$tabTmp=$iDb->select('surveillances_site', 'count(*) as nb', "login='$login' AND dateSuppr=0 $strSiren $strSource", false, MYSQL_ASSOC);
$nbRepTot=$tabTmp[0]['nb'];
$tabTmp=$iDb->select('surveillances_site', $strSelect, "login='$login' AND dateSuppr=0 $strSiren $strSource $orderBy LIMIT $deb,$nbRet", false, MYSQL_ASSOC);
foreach ($tabTmp as $i=>$tabSurv) {
if (!$detail)
$tabRet[]=array('source' => $tabSurv['source'],
'email' => $tabSurv['email'],
'siren' => $tabSurv['siren'],
'nic' => $tabSurv['nic'],
'ref' => prepareString($tabSurv['ref']),
'dateAjout' => $tabSurv['dateAjout'],
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
);
else {
if (trim($tabSurv['rs'])<>'') {
$rs=$tabSurv['rs'];
$cp=$tabSurv['cp'];
$ville=$tabSurv['ville'];
} else {
$tabIdentite=$this->iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']);
$rs=$tabIdentite['Nom'];
$cp=$tabIdentite['CP'];
$ville=$tabIdentite['Ville'];
$iDb->update('surveillances_site',array('rs' => $rs,
'cp' => $cp,
'ville' => $ville),
"login='$login' AND dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic']." $strSource", false);
}
$tabRet[]=array('source' => $tabSurv['source'],
'email' => $tabSurv['email'],
'siren' => $tabSurv['siren'],
'nic' => $tabSurv['nic'],
'ref' => prepareString($tabSurv['ref']),
'dateAjout' => $tabSurv['dateAjout'],
'encoursClient' => $tabSurv['encoursClient'],
'rs' => $rs,
'cp' => $cp,
'ville' => $ville,
'dateDerEnvoi' => $tabSurv['dateDerEnvoi'],
);
}
}
$rep=array( 'criteres'=>array( 'siren'=>$siren, 'nic'=>$nic, 'source'=>$source),
'nbReponses'=>count($tabRet),
'nbReponsesTotal'=>$nbRepTot,
'reponses'=>$tabRet,
);
// debugLog('I',"getSurveillances".print_r($tabRet,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
}
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')
$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("/tmp/listesurv-$source-$login-$idClient.sql", 'w');
fwrite($fp, $sql.EOL);
fclose($fp);
exec("./sql2csv.php jo /tmp/listesurv-$source-$login-$idClient.sql $fichierCsv > /dev/null &");
$size=$cache=0;
}
$tabRet=array( 'Url'=>DOC_WEB_URL."csv/listesurv-$source-$login-$idClient.csv",
'Taille'=>$size,
'Cache'=>$cache,
);
debugLog('I','getListeSurveillancesCsv Url='.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($siret=0, $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($siren, $visu=1, $courrier=0, $mail='', $ref='') {
return $this->getPiece($siren, 'kbis', '', $visu, $courrier, $ref);
}
/** Récupération d'une Pièce Infogreffe
** @nodoc
**/
/*
function getPiece($siren, $piece='kbis', $type='', $visu=1, $courrier=0, $ref='') {
set_time_limit(400);
$erreur=false;
if (file_exists("/var/www/html/pdf/$piece-$siren.pdf") &&
date('Ymd', filemtime("/var/www/html/pdf/$piece-$siren.pdf"))==date('Ymd') &&
filesize("/var/www/html/pdf/$piece-$siren.pdf")>0 ) {
$size=filesize("/var/www/html/pdf/$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("/var/www/html/pdf/$piece-$siren.pdf"))<>date('Ymd') ||
filesize("/var/www/html/pdf/$piece-$siren.pdf")==0)
move("/var/www/html/pdf/$piece-$siren.pdf", "/var/www/html/pdf/$piece-$siren-".date('Ymd').".pdf");
$tabRet=array( 'Siren'=>$siren,
'Url'=>"http://saulnier.scores-decisions.com/pdf/$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);
}*/
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);
}
/**
* @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='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 && $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, 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 /tmp/logs-$annee-$mois-$detail-$idClient-$login-$all.sql $fichierCsv > /dev/null &");
$size=$cache=0;
}
$tabRet=array( 'Url'=>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='') {
//@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);
}
/** 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('/var/www/log/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
$mMap=new MMap($adresse, $cp, $ville, $pays);
$ligne=date('YmdHis').";$siren;MMap APRES";
$fp=fopen('/var/www/log/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', '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));
$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', '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));
$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($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 && $dateSourceselect('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 && $dateSourceselect('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($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',"commande d'enquete 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=='' || $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("/var/www/html/ws2/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("/var/www/html/ws2/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."
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);
$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'];
$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);
@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);
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
**/
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);
}
/** 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($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)) ;
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($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($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);
}
}
?>
|