Maj Class Insee

This commit is contained in:
Michael RICOIS 2012-12-05 16:18:30 +00:00
parent 84dc130503
commit 8de12160a6

View File

@ -15,7 +15,7 @@ $tabEvenInsee=array(
'iFF'=>'Fermeture de l\'établissement entraînant la fermeture de l\'entreprise',
'iTC'=>'Création de l\'établissement dans le cadre d\'un transfert',
'iTR'=>'Réactivation de l\'établissement dans le cadre d\'un transfert',
'iTO'=>'Modification simple ou de moyens de production sur l\'établissement dans le cadre d\'un transfert',
'iT0'=>'Modification simple ou de moyens de production sur l\'établissement dans le cadre d\'un transfert',
'iTA'=>'Activation économique de l\'établissement par adjonction de moyens de production dans le cadre d\'un transfert',
'iTD'=>'Désactivation économique de l\'établissement par suppression de moyens de production dans le cadre d\'un transfert',
'iTF'=>'Fermeture de l\'établissement dans le cadre d\'un transfert',
@ -33,7 +33,7 @@ $tabEvenInsee=array(
'iMNP'=>'Etablissement présumé fermé (retour de courrier en NPAI)',
// Décret n°2010-1042 du 01/09/2010 relatif à l'inscription au registre du commerce et des sociétés et au répertoire national mentionné à l'article R. 123-220 du code de commerce
// Codification provisoire à changer dans l'attente de l'INSEE
'iRCS'=>'Suppression du SIREN suite au refus d\'inscription au Registre du Commerce et des Sociétés',
'i810'=>'Suppression du SIREN suite au refus d\'inscription au Registre du Commerce et des Sociétés', // Anciennement iRCS
// Nouveaux évènements Sirene3 de la quotidienne Insee
'i110'=>'Création de l\'entreprise',
'i120'=>'Réactivation de l\'entreprise',
@ -740,48 +740,51 @@ function getNic($siren, $numEtab=1) {
}
/**
* Enter description here...
* Recherche Etablissements
*
* @param unknown_type $raisonSociale
* @param unknown_type $adresse
* @param unknown_type $codePostal
* @param unknown_type $ville
* @param unknown_type $siege
* @param unknown_type $nbRep
* @param unknown_type $pertinence
* @param string $raisonSociale
* @param string $adresse
* @param string $codePostal
* @param string $ville
* @param string $siege
* @param int $actif
* @param int $deb
* @param int $nbRep
* @param int $maxRep
* @param string $pertinence
* @param bool $uniquementAvecSiren
* @param string $ape_etab
* @return unknown
*/
public function rechercheEtab($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='', $ape_etab='') {
public function rechercheEtab($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif=2, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='', $ape_etab='')
{
$tabAdr = $this->structureVoie(strtoupper($adresse));
$numAdresse = preg_replace('/^0+/','',''.$tabAdr['num']*1);
$adresse = trimAccent($tabAdr['libVoie']);
$formR=array('type'=>'ent',
$formR = array(
'type' => 'ent',
'siret' => '',
'raisonSociale' => $raisonSociale,
'numVoie' => $numAdresse,
'voie' => $adresse,
'cpVille' => $codePostal.' '.$ville,
'actif' => $actif,
'siege' => $siege,
);
if ($ape_etab<>'') $formR['naf']=$ape_etab;
$version = defined('SPHINX_ENT_VERSION') ? SPHINX_ENT_VERSION : 1;
$result = array();
switch($version)
{
case 1:
require_once 'Metier/sphinx/rechercheFonc.php';
if ($uniquementAvecSiren=='')
$result = rechercheEnt($formR, $deb, $nbRep, $maxRep);
else
$result = rechercheEnt($formR, $deb, $nbRep, $maxRep, $uniquementAvecSiren);
break;
case 2:
//Utilisation recherche dlasserre
/*
require_once 'Metier/sphinx2/rechercheFonc.php';
$recherche = new rechercheFonc();
$result = $recherche->rechercheEnt($formR, $deb, $nbRep, $maxRep);
break;
}
*/
return $result;
}
@ -946,6 +949,10 @@ public function rechercheDir($nom, $prenom='', $fonction='', $dateNaiss='', $vil
$version = defined('SPHINX_DIR_VERSION') ? SPHINX_DIR_VERSION : 1;
$result = array();
require_once 'Metier/sphinx/rechercheFonc.php';
$result = rechercheDir($formR, $deb, $nbRep, $maxRep);
/*
switch($version)
{
case 1:
@ -958,6 +965,7 @@ public function rechercheDir($nom, $prenom='', $fonction='', $dateNaiss='', $vil
$result = $recherche->rechercheDir($formR, $deb, $nbRep, $maxRep);
break;
}
*/
//debugLog('I',"rechercheDir".print_r($result,1),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
return $result;
}
@ -1160,7 +1168,8 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
return '';
}
public function getEvenements($siren, $nic=0, $iDeb=0, $iMax=1000) {
public function getEvenements($siren, $nic=0, $iDeb=0, $iMax=1000)
{
global $tabEvenInsee;
global $tabDestinat;
global $tabTypEtab;
@ -1387,6 +1396,15 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
return 'En instance de chiffrement';
}
public function getCodesFJ() {
$tabFJ=array();
$tabTmp=$this->iDb->select('tabFJur', 'code AS FJ, libelle AS libFJ', 'code>=1000', false, MYSQL_ASSOC);
foreach ($tabTmp as $i=>$tabCJ)
$tabFJ[$tabCJ['FJ']]=$tabCJ['LibFJ'];
return array_keys($tabFJ);
}
/** Découpe une ligne d'adresse textuelle en un tableau contenant les différentes composantes de l'adresse
** <pre>Array (
** [adrComp0] => Maison des associations
@ -1461,61 +1479,76 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
return $tabRet;
}
public function getEtablissements($siren, $nic='', $deb=0, $nbRep=20, $maxRep=200, $dep=0, $actif=-1) {
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getEtab sur $siren", "$siren, $nic, $deb, $nbRep, $maxRep, $dep, $actif");
/**
* Liste des établissements par siren/nic
* @param string $siren
* @param string $nic
* @param int $deb
* @param int $nbRep
* @param int $maxRep
* @param int $dep
* @param int $actif
*/
public function getEtablissements($siren, $nic='', $deb=0, $nbRep=20, $maxRep=200, $dep=0, $actif=-1)
{
$this->setTabCodesNaf();
$deb=$deb*1;
$dep=$dep*1;
$nbRep=$nbRep*1;
$limit="LIMIT $deb, $nbRep";
$strInfo='';
if ($actif*1==1) $strActif=' AND e.actif=1 ';
elseif ($actif*1==-1) $strActif='';
else $strActif=' AND e.actif=0 ';
/* "CONCAT(e.siren, e.nic) as siret, e.actif",
"$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC);
$etab=@$listeEtab[0];
$nom=trim($etab['raisonSociale']);
// Cas des noms vides à l'INSEE (une centaine)
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
*/
$strActif='';
if (intval($actif)==1) $strActif=' AND e.actif=1 ';
elseif (intval($actif)==0) $strActif=' AND e.actif=0 ';
if ($dep>0 && $dep<99999) {
if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999';
elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep";
else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99';
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren $strDep");
$tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren $strDep $strActif");
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
"siren=$siren $strDep $strActif ORDER BY e.siege , e.actif DESC $limit", false, MYSQL_ASSOC);
} elseif ($nic=='') {
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren");
$tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren $strActif");
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
"e.siren=$siren $strActif ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC);
} else {
$tabTmp=$this->iDb->select('etablissements e', 'count(*)', "siren=$siren AND (nic=$nic OR siege=1) $strActif");
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
"siren=$siren AND (nic=$nic OR siege=1) $strActif ORDER BY e.siege , e.actif DESC $limit", false, MYSQL_ASSOC);
$nbTot=count($listeEtab);
}
if ($nbTot==0 && $actif==-1) {
require_once 'Metier/sphinx/rechercheFonc.php';
$liste = verificationDuSiret($siren);
if ($liste != false) {
//print 'Essayez :<br/>';
$listeSiren=array();
foreach ($liste as $s) {
if (sommeDeControle($s) != 0) {
@ -1534,10 +1567,13 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
"siren IN ($strSiren) AND siege=1 ORDER BY e.rang DESC, e.actif DESC, e.nic ASC $limit", true, MYSQL_ASSOC);
$strInfo='Siren saisit invalide';
$strInfo='Siren saisi invalide';
}
}
foreach ($listeEtab as $etab) {
foreach ($listeEtab as $etab)
{
$tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2));
else $tel='';
@ -1550,7 +1586,8 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
// Cas des noms vides à l'INSEE (une centaine)
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
$tabRet[]=array(
'Localisation'=>$etab['Loc'],
'id'=>$etab['id'],
'Pertinence'=>100,
'Siret'=>$etab['siret'],
@ -1581,16 +1618,27 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet
return array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
return array(
'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
'info'=>$strInfo,
'nbReponses'=>count($tabRet),
'nbReponsesTotal'=>$nbTot,
'reponses'=>$tabRet);
}
public function getEtablissementsParId($typeId, $id, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
/**
* Liste des établissements par Identifiant TEL/AUTRE
* @param string $typeId
* @param string $id
* @param int $deb
* @param int $nbRep
* @param int $maxRep
* @param int $dep
* @param int $actif
* @return array
*/
public function getEtablissementsParId($typeId, $id, $deb=0, $nbRep=20, $maxRep=200, $dep=0, $actif=2)
{
$this->setTabCodesNaf();
$deb=$deb*1;
$dep=$dep*1;
@ -1598,23 +1646,27 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
$nbRep=$nbRep*1;
$limit="LIMIT $deb, $nbRep";
$filtreActif = '';
if ( $actif==1 || $actif==0 ) {
$filtreActif = " AND WHERE actif=$actif";
}
if ($typeId=='TEL') {
debugLog('I',"Recherche par TEL de $id avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id");
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id $filtreActif");
$nbTot=$tabTmp[0][0];
$listeEtab = $this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,".
"CONCAT(e.siren, e.nic) as siret, e.actif",
"TEL=$id OR FAX=$id ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC);
/*if (count($listeEtab)==0) {
$iAmabis=new MAmabis();
$repAmabis=$iAmabis->searchByTelFax($id);
}*/
"TEL=$id OR FAX=$id $filtreActif ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC);
} elseif ($typeId=='AUTRE') {
/** Formatage des numéros de RC **/
$tabId=array($id);
if (preg_match('/(\d*)(\D)(\d*)/', $id,$matches)) {
@ -1639,17 +1691,21 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep";
else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99';
}
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "autre_id IN ('$strId') $strDep");
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "autre_id IN ('$strId') $filtreActif $strDep");
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif",
"autre_id IN ('$strId') $strDep ORDER BY siege DESC $limit", false, MYSQL_ASSOC);
"autre_id IN ('$strId') $filtreActif $strDep ORDER BY siege DESC $limit", false, MYSQL_ASSOC);
}
foreach ($listeEtab as $etab) {
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
$tabRet[]=array(
'Localisation'=>$etab['Loc'],
'id'=>$etab['id'],
'Pertinence'=>100,
'Siret'=>$etab['siret'],
@ -1678,7 +1734,8 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet
return array( 'criteres'=>array('autreId'=>$id, 'dep'=>$dep),
return array(
'criteres'=>array('autreId'=>$id, 'dep'=>$dep),
'nbReponses'=>count($tabRet),
'nbReponsesTotal'=>$nbTot,
'reponses'=>$tabRet);
@ -1906,7 +1963,8 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
return $tabRet;
}
function getIdentiteEntreprise($siren, $nic=0, $id=0, $forceVerif=false, $accesDist=true) {
function getIdentiteEntreprise($siren, $nic=0, $id=0, $forceVerif=false, $accesDist=true)
{
global $timer;
$timer=array('debutIdentite'=>microtime(true));
//$accesDist=false;
@ -2085,6 +2143,7 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
fclose($fp);
$tab['latitude']=$mMap->latitudeDec;
$tab['longitude']=$mMap->longitudeDec;
$tab['altitude']=$mMap->altitude;
$tab['precis']=$mMap->precision;
$timer['geoCodage']=microtime(true);
@ -2375,6 +2434,7 @@ print_r($tabTmp, true));
'GeoLat'=>$tab['latitude'],
'GeoLon'=>$tab['longitude'],
'GeoAlt'=>$tab['altitude'],
'GeoPrecis'=>$tab['precis'],
'TvaNumero'=>$vatNumber,
@ -2726,7 +2786,7 @@ print_r($tmp, true));
}
/** Recherche de l'activité réelle **/
$bodacc=$this->iDb->select( 'bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$annCap=$bodacc[0];
if ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999)
$tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//);
@ -2737,7 +2797,7 @@ print_r($tmp, true));
$siretMin=(''.$siren.'00000')*1;
$siretMax=(''.$siren.'99999')*1;
//$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet, Assoc_Nom, typeAsso, Waldec', "siren=$siren AND dateSuppr=0 AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet, Assoc_Nom, typeAsso, Waldec', "siren=$siren AND dateSuppr=0 ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$tabRet['Activite'] = trim($annCap['Assoc_NObjet']);
if (trim($tabRet['AutreId'])=='')
@ -3474,7 +3534,8 @@ TOTAL : $dureeTot s\n";
return $tabRet;
}
function getDirigeants($siren, $histo=true) {
function getDirigeants($siren, $histo=true)
{
$siren=$siren*1;
$tabRet=array();
@ -3585,7 +3646,7 @@ TOTAL : $dureeTot s\n";
if (!$histo || ($histo && count($tabRet)==0) ) {
$dirs=$this->iDb->select(
'rncs_dirigeants/* d, bodacc_fonctions f*/',
'siren, raisonSociale, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert/*f.libelle*/',
'siren, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert/*f.libelle*/',
"siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=1", false, MYSQL_ASSOC);
foreach ($dirs as $k=>$dir) {
@ -3605,6 +3666,7 @@ TOTAL : $dureeTot s\n";
}
$tabRet[]=array( 'Fonction' =>$dir['fonction_code'],
'Titre' =>$dir['fonction_lib'],
'Siren' =>$dir['dirSiren'],
'Societe' =>$dir['dirRS'],
'Civilite' =>$dir['civilite'],
'Nom' =>$nom,
@ -3657,11 +3719,13 @@ TOTAL : $dureeTot s\n";
}
}
/** Si on ne trouve absolument rien, on regarde quand même dans l'histroique RNCS **/
if (count($tabRet)==0) {
$dirs=$this->iDb->select(
'rncs_dirigeants/* d, bodacc_fonctions f*/',
'siren, raisonSociale, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert, /*f.libelle*/ date(dateUpdate)*1 as dateUpdate',
'siren, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert, /*f.libelle*/ date(dateUpdate)*1 as dateUpdate',
"siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=0 ORDER BY dateUpdate DESC", false, MYSQL_ASSOC);
$dateUpdatePre=$dirs[0]['dateUpdate'];
foreach ($dirs as $k=>$dir) {
if ($dir['naissance_date']<>'0000-00-00')
@ -3675,7 +3739,8 @@ TOTAL : $dureeTot s\n";
if ($dir['dateUpdate']<>$dateUpdatePre) break;
$tabRet[]=array( 'Fonction' => $dir['fonction_code'],
'Titre' => $dir['fonction_lib'],
'Societe' =>'',//utf8_encode($dir['Societe']),
'Siren' => $dir['Siren'],
'Societe' => $dir['dirRS'],
'Civilite' => $dir['civilite'],
'Nom' => trim($dir['nom']),
'Prenom' => $dir['prenom'],
@ -3741,16 +3806,17 @@ TOTAL : $dureeTot s\n";
return $tabRet;
}
/** Liste des annonces légales pour un siren donnée
**
** @param integer $siren
** @param integer $idAnnonce
** @param mixed $rubrique Filter par rubrique (P)rocol, (D)issolution, (R)adiation, (A)bsorption, (L)ocataire,
** (G)érance:propriétaire, (V)endeur, bodacc (C), (BODA) (BODB) (BODC) ou tableau des codeEven
** @param bool $forceVerif
** @return array
**/
function getAnnoncesLegales($siren, $idAnnonce=0, $rubrique='', $forceVerif=false, $allTextes=false) {// rubrique =
/**
* Liste des annonces légales pour un siren donnée
* @param integer $siren
* @param integer $idAnnonce
* @param mixed $rubrique Filter par rubrique (P)rocol, (D)issolution, (R)adiation, (A)bsorption, (L)ocataire,
* (G)érance:propriétaire, (V)endeur, bodacc (C), (BODA) (BODB) (BODC) ou tableau des codeEven
* @param bool $forceVerif
* @return array
*/
function getAnnoncesLegales($siren, $idAnnonce=0, $rubrique='', $forceVerif=false, $allTextes=false)
{
$siren=$siren*1;
$strIdAnn='';
$tabRet=array();
@ -4295,7 +4361,16 @@ TOTAL : $dureeTot s\n";
return $tabRet;
}
function getAnnoncesBalo($siren, $idAnnonce=0) {
/**
* Retourne les annonces du bulletin des annonces légales officielles
* @param string $siren
* @param int $idAnnonce
* @param int $offset
* @param int $lignes
* @return array
*/
function getAnnoncesBalo($siren, $idAnnonce=0, $offset=0, $lignes=100)
{
$siren=$siren*1;
if ($siren<001000000) $siren='000'.$siren;
@ -4318,7 +4393,7 @@ TOTAL : $dureeTot s\n";
$mBalo=new MBalo();
$bodacc=$this->iDb->select('balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC);
$bodacc=$this->iDb->select('balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire LIMIT $offset, $lignes", false, MYSQL_ASSOC);
// $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' ");
$k=0;
if (count($bodacc)>0) {
@ -4348,7 +4423,32 @@ TOTAL : $dureeTot s\n";
return $tabRet;
}
function getAnnoncesBoamp($siren, $idAnnonce='') {
/**
* Retourne le nombre d'annonce Balo pour un siren
* @param string $siren
* @return int
*/
function getAnnoncesBaloCount($siren)
{
$bodacc = $this->iDb->select('balo', "count(*) AS nb", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC);
$nb = 0;
if (count($bodacc)>0) {
$nb = $bodacc[0]['nb'];
}
return $nb;
}
/**
* Retourne les annonces du bulletin officiel des annonces de marché publique
* @param string $siren
* @param string $idAnnonce
* @param string|array $type A:Avis d'attribution, M:Avis de marché
* @param int $offset
* @param int $lignes
* @return Ambigous <string, multitype:multitype:string unknown multitype:multitype:string multitype:string NULL multitype:string unknown Ambigous <string, unknown> multitype:multitype:string Ambigous <number, unknown> , unknown>
*/
function getAnnoncesBoamp($siren, $idAnnonce='', $type=array('A', 'M'), $offset=0, $lignes=100)
{
$siren=$siren*1;
if ($siren<001000000) $siren='000'.$siren;
@ -4360,6 +4460,9 @@ TOTAL : $dureeTot s\n";
$tabRet=array();
$mBoamp = new MBoamp();
if ( is_string($type) && $type=='A' || is_array($type) && in_array('A',$type) ) {
/** Recherche dans les avis d'attribution **/
if ($idAnnonce<>'') {
$tmp=explode('.', $idAnnonce);
@ -4369,9 +4472,12 @@ TOTAL : $dureeTot s\n";
elseif ($tmp[0]=='O') $strIdAnn="";
}
$bodacc=$this->iDb->select( 'boamp_lots l, boamp b, boamp_detail d',
$bodacc = $this->iDb->select(
'boamp_lots l, boamp b, boamp_detail d',
"l.id, l.idAnn, l.Boamp_Code, l.Boamp_Rubrique, b.Boamp_Rubrique_Lib, b.typeAnnonce, l.Boamp_Date_Parution, b.Boamp_Num, b.Boamp_Annee_Parution, b.Num_AnnoncePre, b.Num_Annonce, b.Boamp_Dept, b.annonce, l.num, l.`desc` AS description, l.nom, d.raisonSociale, l.montantTxt, sum(l.montant) AS montant, l.montantAnMin, l.montantAnMax, l.trancheCond, l.trancheFerme, l.dateAttrib, l.intitule, l.nomenclature, l.objets, l.cpv, l.cpvComp, l.volume, l.execution, l.livraison, l.dureeJours, l.dureeMois, l.dateDeb, l.dateFin, l.dateInsert, d.titre, d.objet, d.titreMarche, d.typeObjetMarche, d.objetAutre, d.autres",
"l.siren='$siren' AND l.idAnn=b.id AND l.idAnn=d.id $strIdAnn GROUP BY b.id ORDER BY l.Boamp_Date_Parution DESC", false, MYSQL_ASSOC);
"l.siren='$siren' AND l.idAnn=b.id AND l.idAnn=d.id $strIdAnn GROUP BY b.id ORDER BY l.Boamp_Date_Parution DESC LIMIT $offset,$lignes", false, MYSQL_ASSOC
);
$k=0;
if (count($bodacc)>0) {
foreach ($bodacc as $k=>$ann) {
@ -4436,8 +4542,10 @@ TOTAL : $dureeTot s\n";
);
}
}
}
/** Recherche dans les avis de marchés **/
if ( is_string($type) && $type=='M' || is_array($type) && in_array('M',$type) ) {
// Recherche dans les avis de marchés
if ($idAnnonce<>'') {
$tmp=explode('.', $idAnnonce);
$idA=$tmp[1];
@ -4446,9 +4554,13 @@ TOTAL : $dureeTot s\n";
elseif ($tmp[0]=='O') $strIdAnn="";
}
$bodacc=$this->iDb->select( 'boamp b, boamp_detail d',
$bodacc=$this->iDb->select(
'boamp b, boamp_detail d',
"d.id, d.Boamp_Code, d.Boamp_Rubrique, b.Boamp_Rubrique_Lib, b.typeAnnonce, d.Boamp_Date_Parution, b.Boamp_Num, b.Boamp_Annee_Parution, b.Num_AnnoncePre, b.Num_Annonce, b.Boamp_Dept, b.annonce, titre AS description, d.raisonSociale, d.estimValeur AS montantTxt, d.estimValeurMin AS montantAnMin, d.estimValeurMax AS montantAnMax, objet, cpv_obj, cpv_comp, d.dateInsert",
"d.siren='$siren' AND d.id=b.id $strIdAnn GROUP BY b.id ORDER BY d.Boamp_Date_Parution DESC", false, MYSQL_ASSOC);
"d.siren='$siren' AND d.id=b.id $strIdAnn GROUP BY b.id ORDER BY d.Boamp_Date_Parution DESC",
false, MYSQL_ASSOC
);
if (count($bodacc)>0) {
foreach ($bodacc as $k=>$ann) {
$id=$ann['id'];
@ -4517,7 +4629,7 @@ TOTAL : $dureeTot s\n";
'infosComp'=>$infosComp, // Non géré
'Lien_Annonce_Html'=>$lienMapa, // Non géré
);
/**/
if ($idA<>0)
if ($ann['Boamp_Code']=='MAPA')
$tabRet[$k]['texteAnnonce']=$ann['annonce'];
@ -4530,11 +4642,47 @@ TOTAL : $dureeTot s\n";
);
}
}
}
debugLog('I', "getAnnoncesBoamp(siren=$siren, idAnnonce=$idAnnonce, $idA)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
return $tabRet;
}
function getAnnoncesAsso($siren, $idAnnonce=0) {
/**
* Nombre total d'annonces BOAMP
* @param string $siren
* @param string $type A:avis d'attribution, M:Avis de marché
*/
public function getAnnoncesBoampCount($siren, $type='')
{
$bodaccA = array();
$bodaccM = array();
if ( $type=='' || $type=='A' ) {
/** Recherche dans les avis d'attribution **/
$bodaccA=$this->iDb->select(
'boamp_lots l, boamp b, boamp_detail d',
"l.id",
"l.siren='$siren' AND l.idAnn=b.id AND l.idAnn=d.id GROUP BY b.id ORDER BY l.Boamp_Date_Parution",
false, MYSQL_ASSOC
);
}
if ( $type=='' || $type=='M') {
/** Recherche dans les avis de marchés **/
$bodaccM=$this->iDb->select( 'boamp b, boamp_detail d',
"d.id",
"d.siren='$siren' AND d.id=b.id GROUP BY b.id ORDER BY d.Boamp_Date_Parution DESC",
false, MYSQL_ASSOC
);
}
$nb = count($bodaccA) + count($bodaccM);
return $nb;
}
function getAnnoncesAsso($siren, $idAnnonce=0, $offset=0, $lignes=100)
{
debugLog('I', "Début getAnnoncesAsso(siren=$siren, idAnnonce=$idAnnonce)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$siretMin=$siren.'00000';
@ -4543,17 +4691,15 @@ TOTAL : $dureeTot s\n";
$tabRet=array();
if ($idAnnonce>0) {
$strIdAnn=" AND id=$idAnnonce ";
//$mAsso=new MAsso();
if ($siren==0) {
//$bodacc=$this->iDb->select('asso', "Waldec", "Siret BETWEEN $siretMin AND $siretMax $strIdAnn AND Waldec<>''");
$bodacc=$this->iDb->select('asso', "Waldec", "siren=$siren $strIdAnn AND Waldec<>'' AND dateSuppr=0");
if (@$bodacc[0][0]<>'') $strIdAnn=" AND Waldec='".$bodacc[0][0]."' ";
$strIdAnn="id=$idAnnonce";
} elseif (substr($siren,0,1)=='W' && $idAnnonce == 0) {
$strIdAnn = "Waldec='$siren'";
} else {
$strIdAnn = "siren=$siren";
}
}
//$bodacc=$this->iDb->select('asso', "id, Assoc_Nom, Siret, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, dateInsert", "Siret BETWEEN $siretMin AND $siretMax $strIdAnn ORDER BY Date_Parution DESC", true, MYSQL_ASSOC);
$bodacc=$this->iDb->select('asso', "id, Assoc_Nom, siren, nic, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, typeAnnonce, codEven, dateInsert", "siren=$siren $strIdAnn AND dateSuppr=0 ORDER BY Date_Parution DESC", false, MYSQL_ASSOC);
// $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' ");
$bodacc=$this->iDb->select('asso', "id, Assoc_Nom, siren, nic, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, typeAnnonce, codEven, dateInsert", "$strIdAnn AND dateSuppr=0 ORDER BY Date_Parution DESC LIMIT $offset,$lignes", false, MYSQL_ASSOC);
$k=0;
if (count($bodacc)>0) {
foreach ($bodacc as $k=>$ann) {
@ -4628,6 +4774,32 @@ TOTAL : $dureeTot s\n";
return $tabRet;
}
/**
* Nombre d'annonces association
* @param int $idAnnonce
* @param string $siren
*/
public function getAnnoncesAssoCount($siren, $idAnnonce = 0)
{
$strIdAnn = '';
if ($idAnnonce>0) {
$strIdAnn="id=$idAnnonce";
} elseif (substr($siren,0,1)=='W' && $idAnnonce == 0) {
$strIdAnn = "Waldec='$siren'";
} else {
$strIdAnn = "siren=$siren";
}
$bodacc=$this->iDb->select('asso', "COUNT(*) AS nb", "$strIdAnn AND dateSuppr=0", false, MYSQL_ASSOC);
$nb = 0;
if (count($bodacc)>0) {
$nb = $bodacc[0]['nb'];
}
return $nb;
}
/** @todo $nic inutilisé pour l'instant **/
function getIdentitePart($siren, $rs, $enseigne, $sigle, $nic=0, $refresh=false) {
$dateUpdate=0;
@ -5270,11 +5442,12 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
$tabRet['L6_POST']=$l6;
return $tabRet;
/** RNCS ? **/
/*$tabTmp=$this->iDb->select('rncs_etab','enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie,
adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3',
"siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
$tabIdentite=$tabTmp[0];*
$tabIdentite=$tabTmp[0];*/
}
function getActivite($siren, $nic=0) {
@ -5716,9 +5889,9 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
public function getSiretAssoc($siren, $nic, $lien=0) {
$tabRet=array();
$ret=$this->iDbInsee->select('insee_even',
'insSIREN, insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insEVE, insDESTINAT, insTYPETAB, insORIGINE',
"insSIREN=$siren AND insNIC<>$nic AND insEVE IN ('510','520','530','540') AND insDATEMAJ IN (
SELECT insDATEMAJ FROM insee_even WHERE insSIREN=$siren AND insNIC=$nic AND insEVE IN ('510','520','530','540') )", false, MYSQL_ASSOC);
'insSIREN, insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insDESTINAT, insTYPETAB, insORIGINE, insTRAN, insNOMEN, insENSEIGNE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE',
"insSIREN=$siren AND insNIC<>$nic AND (insEVE IN ('510','520','530','540') OR insEVE LIKE 'T%') AND insDATEMAJ IN (
SELECT insDATEMAJ FROM insee_even WHERE insSIREN=$siren AND insNIC=$nic AND (insEVE IN ('510','520','530','540') OR insEVE LIKE 'T%') )", false, MYSQL_ASSOC);
foreach ($ret as $iRet=>$tabEve) {
switch($tabEve['insTYPETAB']*1) {
case 8:
@ -5736,22 +5909,32 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
$typeLien='suc';
break;
default:
if ($lien<>0) continue;
$typeLien='ind';
break;
switch($tabEve['insTRAN']) {
case 'D': if ($lien==1) continue; $typeLien='pre'; break(2);
case 'A': if ($lien==-1) continue; $typeLien='suc'; break(2);
default : if ($lien<>0) continue; $typeLien='ind'; break;
}
}
$adr1=$tabEve['insL1_NOMEN'];
if ($adr1==NULL) $adr1=$tabEve['insNOMEN'];
$adr2=$tabEve['insL2_COMP'];
if ($adr2==NULL) $adr2=$tabEve['insENSEIGNE'];
$adr4=$tabEve['insL4_VOIE'];
if ($adr4==NULL) $adr4=preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
$tabRet[$typeLien]=array('siren' => $tabEve['insSIREN'],
'nic' => $tabEve['insNIC'],
'apeEtab' => $tabEve['insAPET700'],
'codeEve' => $tabEve['insEVE'],
'dateEve' => $tabEve['insDATEVE'],
'adrL1' => $tabEve['insL1_NOMEN'],
'adrL2' => $tabEve['insL2_COMP'],
'adrL3' => prepareString($tabEve['insL3_CADR']),
'adrL4' => $tabEve['insL4_VOIE'],
'adrL5' => $tabEve['insL5_DISP'],
'adrL6' => $tabEve['insL6_POST'],
'adrL7' => $tabEve['insL7_ETRG'],
'adrL1' => trim($adr1),
'adrL2' => trim($adr2),
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
'adrL4' => trim($adr4),
'adrL5' => trim($tabEve['insL5_DISP']),
'adrL6' => trim($tabEve['insL6_POST']),
'adrL7' => trim($tabEve['insL7_ETRG']),
'depCom' => $tabEve['insDEPCOM'],
'rivoli' => $tabEve['insCODEVOIE'],
'siege' => $tabEve['insSIEGE'],