Refactor mysql class with Zend_Db

This commit is contained in:
Michael RICOIS 2014-03-14 15:54:41 +00:00
parent 3e79aee219
commit 12c42d41a0
2 changed files with 655 additions and 489 deletions

View File

@ -642,14 +642,15 @@ class MInsee
$this->iBodacc=new MBodacc(); $this->iBodacc=new MBodacc();
} }
/** Test de la validité du siren demandé /**
* Test de la validité du siren demandé
* @param int SIREN à tester * @param int SIREN à tester
* @param int NIC (facultatif) * @param int NIC (facultatif)
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false * @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
* @return mixed true, false ou Message d'erreur passé en paramètre * @return mixed true, false ou Message d'erreur passé en paramètre
*/ */
function valideSiren($siren, $nic='', $erreur=false) { function valideSiren($siren, $nic='', $erreur=false)
{
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/ /** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
switch (strlen($siren)) { switch (strlen($siren)) {
case 1: $siren='00000000'.$siren; break; case 1: $siren='00000000'.$siren; break;
@ -754,26 +755,30 @@ class MInsee
return -1; return -1;
} }
/** Vérifie si le de département est un département français valide /**
** @param int Numéro de département Français * Vérifie si le de département est un département français valide
** @return bool * @param int Numéro de département Français
**/ * @return bool
*/
public function isDepartement($dept) { public function isDepartement($dept) {
return array_key_exists($dept, self::$tabDep); return array_key_exists($dept, self::$tabDep);
} }
/** Retourne le libellé du département si département français valide /**
** @param int Numéro de département Français * Retourne le libellé du département si département français valide
** @return string Libellé département * @param int Numéro de département Français
**/ * @return string Libellé département
public function getDepartement($dept, $article=false) { */
public function getDepartement($dept, $article=false)
{
if ($article) if ($article)
return self::$tabDepArt[$dept]; return self::$tabDepArt[$dept];
return self::$tabDep[$dept]; return self::$tabDep[$dept];
} }
public function getEffectifMoyen($trancheEffectif) { public function getEffectifMoyen($trancheEffectif)
{
$trancheEffectif=$trancheEffectif*1; $trancheEffectif=$trancheEffectif*1;
if ($trancheEffectif==0) return 0; if ($trancheEffectif==0) return 0;
elseif ($trancheEffectif==53) return 10000; elseif ($trancheEffectif==53) return 10000;
@ -787,11 +792,13 @@ class MInsee
} }
} }
/** Retourne le code forme juridique d'une entreprise. /**
** @param int Numéro de SIREN (9 chiffres) ou SIRET (14 chiffres) * Retourne le code forme juridique d'une entreprise.
** @return string Forme Juridique sur 4 caractères ou <b>false</b>en cas d'erreur ou si inexistant * @param int Numéro de SIREN (9 chiffres) ou SIRET (14 chiffres)
**/ * @return string Forme Juridique sur 4 caractères ou <b>false</b>en cas d'erreur ou si inexistant
function getFJInsee($siren_siret) { */
function getFJInsee($siren_siret)
{
$len=strlen($siren_siret); $len=strlen($siren_siret);
if ($len==9) if ($len==9)
$siren=$siren_siret; $siren=$siren_siret;
@ -1108,14 +1115,16 @@ class MInsee
* @param string $codeVoie * @param string $codeVoie
* @return boolean * @return boolean
*/ */
public function isCodeVoie($codeVoie) { public function isCodeVoie($codeVoie)
{
return array_key_exists($codeVoie, $this->tabCodeVoie); return array_key_exists($codeVoie, $this->tabCodeVoie);
} }
/** Retourne le libellé du code voie selon les abréviations autorisées pour les types de voie (Norme AFNOR XP Z 10-011) /**
** @param string Code voie * Retourne le libellé du code voie selon les abréviations autorisées pour les types de voie (Norme AFNOR XP Z 10-011)
** @return string Libellé de la voie * @param string Code voie
**/ * @return string Libellé de la voie
*/
public function getCodeVoie($codeVoie) public function getCodeVoie($codeVoie)
{ {
return $this->tabCodeVoie[$codeVoie]; return $this->tabCodeVoie[$codeVoie];
@ -1233,7 +1242,11 @@ class MInsee
} }
} }
$result = $this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN', "$sqlIdentifiant ORDER BY insDATEMAJ DESC LIMIT $iDeb, $iMax", true, MYSQL_ASSOC); $result = $this->iDbInsee->select(
'insee_even',
'id, LPAD(insSIREN,9,0) as insSIREN, siretValide, LPAD(insNIC,5,0) as insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN',
"$sqlIdentifiant ORDER BY insDATEMAJ DESC LIMIT $iDeb, $iMax",
true, MYSQL_ASSOC);
foreach ( $result as $even ) { foreach ( $result as $even ) {
@ -1510,19 +1523,20 @@ class MInsee
return array_keys($tabFJ); return array_keys($tabFJ);
} }
/** Découpe une ligne d'adresse textuelle en un tableau contenant les différentes composantes de l'adresse /**
** <pre>Array ( * Découpe une ligne d'adresse textuelle en un tableau contenant les différentes composantes de l'adresse
** [adrComp0] => Maison des associations * <pre>Array (
** [num] => 33 * [adrComp0] => Maison des associations
** [typeVoie] => R * [num] => 33
** [libVoie] => Louis Blanc * [typeVoie] => R
** [cp] => ... * [libVoie] => Louis Blanc
** [ville] => ... Si contenu dans l'adresse * [cp] => ...
** )</pre> * [ville] => ... Si contenu dans l'adresse
** * )</pre>
** @param string $strLigneDAdresse La ligne d'adresse textuelle (ex : Maison des associations, 33 rue Louis Blanc *
** @return array tableau contenant l'adresse structurée ici * @param string $strLigneDAdresse La ligne d'adresse textuelle (ex : Maison des associations, 33 rue Louis Blanc
**/ * @return array tableau contenant l'adresse structurée ici
*/
public function structureVoie($strLigneDAdresse) public function structureVoie($strLigneDAdresse)
{ {
$tabRet=$tabAdr=array(); $tabRet=$tabAdr=array();
@ -1607,10 +1621,10 @@ class MInsee
$limit="LIMIT $deb, $nbRep"; $limit="LIMIT $deb, $nbRep";
$sqlInfo="e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". $sqlInfo="e.id, e.source, e.source_id, e.triCode, e.autre_id, LPAD(e.siren, 9, 0) as siren, LPAD(e.nic, 5, 0) as nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "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.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ". "e.adr_comp, e.adr_cp, e.adr_ville, e.adr_dep, e.adr_com, 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, IF(e.siege=2,0.5,e.siege) AS triSiege"; "CONCAT(siren, nic) as siret, e.actif, e.identite_pre, IF(e.siege=2,0.5,e.siege) AS triSiege";
$strActif=''; $strActif='';
if (intval($actif)==1) $strActif=' AND e.actif=1 '; if (intval($actif)==1) $strActif=' AND e.actif=1 ';
@ -1679,6 +1693,7 @@ class MInsee
} }
} }
if ( count($listeEtab)>0 ) {
foreach ($listeEtab as $etab) { foreach ($listeEtab as $etab) {
$tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>''))); $tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2)); if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2));
@ -1695,11 +1710,12 @@ class MInsee
$pays = 'France'; $pays = 'France';
if ( $etab['adr_dep']==99 ) { if ( $etab['adr_dep']==99 ) {
$resultPays = $this->iDb->select("tabPays", "libPays", "codePaysInsee = ".$etab['adr_com'], false, MYSQL_ASSOC); $resultPays = $this->iDb->select("tabPays", "libPays", "codePaysInsee = ".$etab['adr_com'], false, MYSQL_ASSOC);
if ( count($resultPays)>0 ) {
$pays = $resultPays[0]['libPays']; $pays = $resultPays[0]['libPays'];
}
} }
$tabRet[] = array( $tabRet[] = array(
'Localisation' => $etab['Loc'],
'id' => $etab['id'], 'id' => $etab['id'],
'Pertinence' => 100, 'Pertinence' => 100,
'Source' => $etab['source'], 'Source' => $etab['source'],
@ -1730,6 +1746,7 @@ class MInsee
'EffEtTrLib' => self::$tabEffectif[$etab['teff_etab']], 'EffEtTrLib' => self::$tabEffectif[$etab['teff_etab']],
); );
} }
}
if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet
@ -1738,7 +1755,8 @@ class MInsee
'info' => $strInfo, 'info' => $strInfo,
'nbReponses' => count($tabRet), 'nbReponses' => count($tabRet),
'nbReponsesTotal' => $nbTot, 'nbReponsesTotal' => $nbTot,
'reponses' => $tabRet); 'reponses' => $tabRet
);
} }
/** /**
@ -1772,7 +1790,7 @@ class MInsee
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id $filtreActif"); $tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id $filtreActif");
$nbTot=$tabTmp[0][0]; $nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e', $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, ". "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, LPAD(e.siren, 9, 0) as siren, LPAD(e.nic, 5, 0), e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "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.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". "e.adr_comp, e.adr_cp, e.adr_ville, e.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,".
"CONCAT(e.siren, e.nic) as siret, e.actif", "CONCAT(e.siren, e.nic) as siret, e.actif",
@ -1861,12 +1879,14 @@ class MInsee
'reponses'=>$tabRet); 'reponses'=>$tabRet);
} }
/** Retourne juste si un siren existe /**
** * Retourne juste si un siren existe
** @param integer $siren *
** @return bool * @param integer $siren
**/ * @return bool
function sirenExiste($siren) { */
function sirenExiste($siren)
{
$siren=$siren*1; $siren=$siren*1;
$listeEtab=$this->iDb->select('etablissements', 'id', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC); $listeEtab=$this->iDb->select('etablissements', 'id', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC);
if (@count($listeEtab)>0) if (@count($listeEtab)>0)
@ -1874,12 +1894,14 @@ class MInsee
return false; return false;
} }
/** Retourne l'identité issue de la table établissements /**
** * Retourne l'identité issue de la table établissements
** @param integer $siren *
** @return bool * @param integer $siren
**/ * @return bool
function getIdentiteLight($siren, $nic=0, $id=0) { */
function getIdentiteLight($siren, $nic=0, $id=0)
{
$siren=$siren*1; $siren=$siren*1;
$nic=$nic*1; $nic=$nic*1;
$id=$id*1; $id=$id*1;
@ -1890,7 +1912,7 @@ class MInsee
else return array(); else return array();
$listeEtab=$this->iDb->select('etablissements e', $listeEtab=$this->iDb->select('etablissements e',
"e.id, e.source, e.source_id, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, e.triCode, ". "e.id, e.source, e.source_id, e.autre_id, LPAD(e.siren, 9, 0) as siren, LPAD(e.nic, 5, 0), e.siege, e.autre_id, e.triCode, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "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.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ".
"e.adr_dep, e.adr_com, e.capital, e.capitalDev, e.capitalSrc, e.tca, e.teff_entrep, e.teff_etab, ". "e.adr_dep, e.adr_com, e.capital, e.capitalDev, e.capitalSrc, e.tca, e.teff_entrep, e.teff_etab, ".
@ -1902,7 +1924,8 @@ class MInsee
// Cas des noms vides à l'INSEE (une centaine) // Cas des noms vides à l'INSEE (une centaine)
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']); if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
$tabRet=array( 'id'=>$etab['id'], $tabRet = array(
'id'=>$etab['id'],
'Siret'=>$etab['siret'], 'Siret'=>$etab['siret'],
'Siege'=>$etab['siege'], 'Siege'=>$etab['siege'],
'Nom'=>$nom, 'Nom'=>$nom,
@ -1951,12 +1974,14 @@ class MInsee
return $tabRet; return $tabRet;
} }
/** Retourne la liste des devise /**
** * Retourne la liste des devise
** @param string $codeDevise Code ISO devise *
** @return Devise ou liste des devises (si pas de code ISO en entrée) * @param string $codeDevise Code ISO devise
**/ * @return Devise ou liste des devises (si pas de code ISO en entrée)
function getDevises($codeIso='') { */
function getDevises($codeIso='')
{
if (trim($codeIso)<>'') $strWhere="devIso='$codeIso'"; if (trim($codeIso)<>'') $strWhere="devIso='$codeIso'";
else $strWhere='1'; else $strWhere='1';
$liste=$this->iDb->select('tabDevises', 'devIso, devNom', $strWhere, false, MYSQL_ASSOC); $liste=$this->iDb->select('tabDevises', 'devIso, devNom', $strWhere, false, MYSQL_ASSOC);
@ -1966,14 +1991,16 @@ class MInsee
return $tabRet; return $tabRet;
} }
/** Retourne la liste des mandataires/administrateurs/oppositions d'une ou plusieurs cours d'appel /**
** * Retourne la liste des mandataires/administrateurs/oppositions d'une ou plusieurs cours d'appel
** @param array $arrIdCA Id S&D de la cour d'appel *
** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète * @param array $arrIdCA Id S&D de la cour d'appel
** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire * @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète
** @return Liste des Mandataires/Administrateurs de la cours d'appel * @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire
**/ * @return Liste des Mandataires/Administrateurs de la cours d'appel
function getMandataires($arrIdCA=array(), $condense=true, $type=array()) { */
function getMandataires($arrIdCA=array(), $condense=true, $type=array())
{
if (count($arrIdCA)>0) $strIdCA='AND ( coursAppel in ('.implode(',', $arrIdCA).') OR coursAppel2 in ('.implode(',', $arrIdCA).') )'; if (count($arrIdCA)>0) $strIdCA='AND ( coursAppel in ('.implode(',', $arrIdCA).') OR coursAppel2 in ('.implode(',', $arrIdCA).') )';
else $strIdCA=''; else $strIdCA='';
@ -1994,15 +2021,16 @@ class MInsee
return $tabRet; return $tabRet;
} }
/** Retourne la liste des mandataires/administrateurs/oppositions correspondant à un nom /**
** * Retourne la liste des mandataires/administrateurs/oppositions correspondant à un nom
** @param string $nom Nom du mandataire *
** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète * @param string $nom Nom du mandataire
** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire * @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète
** @return Liste des Mandataires/Administrateurs de la cours d'appel * @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire
**/ * @return Liste des Mandataires/Administrateurs de la cours d'appel
function searchMandataires($nom, $condense=true, $type=array(), $cpDep=0) { */
function searchMandataires($nom, $condense=true, $type=array(), $cpDep=0)
{
$strIdCA="AND (Nom LIKE '%$nom%' OR Prenom LIKE '%$nom%') "; $strIdCA="AND (Nom LIKE '%$nom%' OR Prenom LIKE '%$nom%') ";
if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') "; if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') ";
@ -2123,7 +2151,7 @@ class MInsee
elseif ($nic<>0) $where=" siren=$siren AND nic=$nic "; elseif ($nic<>0) $where=" siren=$siren AND nic=$nic ";
elseif ($siren<>0) $where=" siren=$siren ";//AND siege=1 "; elseif ($siren<>0) $where=" siren=$siren ";//AND siege=1 ";
$listeEtab = $this->iDb->select('etablissements e', $listeEtab = $this->iDb->select('etablissements e',
"e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, ". "e.id, e.source, e.source_id, e.triCode, e.autre_id, LPAD(e.siren,9,0) as siren, LPAD(e.nic,5,0) as nic, e.siege, e.autre_id, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". "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.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ".
"e.capital, e.capitalDev, e.capitalSrc, CONCAT(e.siren, e.nic) as siret, e.actif, ". "e.capital, e.capitalDev, e.capitalSrc, CONCAT(e.siren, e.nic) as siret, e.actif, ".
@ -2178,20 +2206,28 @@ class MInsee
$timer['tableEtablissements']=microtime(true); $timer['tableEtablissements']=microtime(true);
} }
/** Informations locales issues de la table infos_entrep /** Informations locales issues de la table infos_entrep **/
**/
if ($siren>100) { if ($siren>100) {
$info = $this->iDb->select('infos_entrep', 'raisonSociale, isin, nscrl, tel, fax, web, mail, latitude, longitude, precis, dateCreation, dateFermeture, naf, naf_lib, ca, effectif, nbEtab, activite, sirenDoublon, waldec', "siren=$siren", false, MYSQL_ASSOC); $info = $this->iDb->select(
'infos_entrep',
'raisonSociale, isin, nscrl, tel, fax, web, mail, latitude, longitude, precis, dateCreation, dateFermeture, naf, naf_lib, ca, effectif, nbEtab, activite, LPAD(sirenDoublon,9,0), waldec',
"siren=$siren", false, MYSQL_ASSOC);
if ( count($info)>0 ) {
$tab=$info[0]; $tab=$info[0];
$waldec = $tab['waldec']; $waldec = $tab['waldec'];
if ( $tab['sirenDoublon']==0 ) { if ( $tab['sirenDoublon']==0 ) {
$info = $this->iDb->select('infos_entrep', 'siren AS sirenDoublon', "sirenDoublon=$siren", false, MYSQL_ASSOC); $info = $this->iDb->select('infos_entrep', 'siren AS sirenDoublon', "sirenDoublon=$siren", false, MYSQL_ASSOC);
$tab['sirenDoublon']=$info[0]['sirenDoublon']; $tab['sirenDoublon']=$info[0]['sirenDoublon'];
} }
}
$insee=$this->iDb->select('etablissements', 'CONCAT(SIREN,NIC) AS siret', "SIREN=$siren AND SIEGE=1 ORDER BY ACTIF%10 DESC, NIC DESC",false,MYSQL_ASSOC); $insee=$this->iDb->select('etablissements', 'CONCAT(SIREN,NIC) AS siret', "SIREN=$siren AND SIEGE=1 ORDER BY ACTIF%10 DESC, NIC DESC",false,MYSQL_ASSOC);
if ( count($insee)>0 ) {
$siretSiege = $insee[0]['siret']; $siretSiege = $insee[0]['siret'];
}
$timer['infosEntrep']=microtime(true); $timer['infosEntrep']=microtime(true);
} }
if ($nic>0) $strNic="AND NIC=$nic"; if ($nic>0) $strNic="AND NIC=$nic";
@ -2238,9 +2274,15 @@ class MInsee
} }
$tabTmp = $this->iDb->select('etablissements', 'count(*) AS nbEtabs', "siren=$siren AND NIC<100000 AND ACTIF%10=1",false,MYSQL_ASSOC); $tabTmp = $this->iDb->select('etablissements', 'count(*) AS nbEtabs', "siren=$siren AND NIC<100000 AND ACTIF%10=1",false,MYSQL_ASSOC);
$nbEtab = 0;
if ( count($tabTmp)>0 ) {
$nbEtab = $tabTmp[0]['nbEtabs']; $nbEtab = $tabTmp[0]['nbEtabs'];
}
$inseeND = $this->iDbInsee->select('insee_nondiff', 'siren, mois, dateInsert',"siren=$siren",false,MYSQL_ASSOC); $inseeND = $this->iDbInsee->select('insee_nondiff', 'siren, mois, dateInsert',"siren=$siren",false,MYSQL_ASSOC);
$moisNonDiff=@$tabTmp[0]['mois']; if ( count($inseeND)>0 ) {
$moisNonDiff = $tabTmp[0]['mois'];
}
$timer['tableIdentite']=microtime(true); $timer['tableIdentite']=microtime(true);
} else { } else {
@ -2301,9 +2343,9 @@ class MInsee
fclose($fp); fclose($fp);
$timer['zonesPrioritaires']=microtime(true); $timer['zonesPrioritaires']=microtime(true);
} }
} else } else {
$repAmabis=array(); $repAmabis=array();
}
/** N° de TVA Intracommunautaire **/ /** N° de TVA Intracommunautaire **/
if ($siren*1>100) { if ($siren*1>100) {
@ -2376,14 +2418,15 @@ class MInsee
} }
$timer['telFax']=microtime(true); $timer['telFax']=microtime(true);
/** Type d'exploitation /**
** 0 : N/C * Type d'exploitation
** 1 : Locataire d'un fond de commerce * 0 : N/C
** 2 : Loueur d'un fond de commerce * 1 : Locataire d'un fond de commerce
** 3 : Prestataire de personnel * 2 : Loueur d'un fond de commerce
** 10: Exploitation directe * 3 : Prestataire de personnel
** 11: Sans activité ??? * 10: Exploitation directe
**/ * 11: Sans activité ???
*/
$typeExploitation=0; $typeExploitation=0;
if (strtoupper($tabInsee['EXPLET'])=='O') { if (strtoupper($tabInsee['EXPLET'])=='O') {
switch ($tabInsee['PRODPART']*1) { switch ($tabInsee['PRODPART']*1) {
@ -2545,7 +2588,8 @@ class MInsee
} }
} }
$tabRet=array( 'id'=>$etab['id'], $tabRet = array(
'id'=>$etab['id'],
'Siret'=>$etab['siret'], 'Siret'=>$etab['siret'],
'SiretSiege'=>$siretSiege, 'SiretSiege'=>$siretSiege,
'AncienSiege'=>$ancienSiege, 'AncienSiege'=>$ancienSiege,
@ -2672,7 +2716,8 @@ class MInsee
} }
/** Si tourisme, recherche du classeement **/ /** Si tourisme, recherche du classeement **/
$tabNafTourisme=array( '5510Z', // Hôtels et hébergement similaire $tabNafTourisme=array(
'5510Z', // Hôtels et hébergement similaire
'5520Z', // Hébergement touristique et autre hébergement de co '5520Z', // Hébergement touristique et autre hébergement de co
'5530Z', // Terrains de camping et parcs pour caravanes ou véh '5530Z', // Terrains de camping et parcs pour caravanes ou véh
'702A', // Location de logements '702A', // Location de logements
@ -2718,8 +2763,7 @@ class MInsee
} }
$timer['nbActionsCapital']=microtime(true); $timer['nbActionsCapital']=microtime(true);
/** Numéro de TVA non défini /** Numéro de TVA non défini **/
**/
if (!$vatDefined) { if (!$vatDefined) {
// Dom Tom ou étranger // Dom Tom ou étranger
if ($tabRet['Dept']>96) if ($tabRet['Dept']>96)
@ -2733,8 +2777,7 @@ class MInsee
} }
/** Date de début d'activité de l'entreprise si absente INSEE /** Date de début d'activité de l'entreprise si absente INSEE **/
**/
if ($siren>100 && $tabRet['DateCreaEn']==0) { if ($siren>100 && $tabRet['DateCreaEn']==0) {
$insee=$this->iDbInsee->select('identite', 'DCREN', "SIREN=$siren AND DCREN>0 ORDER BY DCREN ASC LIMIT 0,1",false,MYSQL_ASSOC); $insee=$this->iDbInsee->select('identite', 'DCREN', "SIREN=$siren AND DCREN>0 ORDER BY DCREN ASC LIMIT 0,1",false,MYSQL_ASSOC);
if (count($insee)>0) if (count($insee)>0)
@ -2744,22 +2787,16 @@ class MInsee
$dateCreaEn=$classWDate->dateT('Y-m-d','Ymd',$tmp['dateEtatEn']); $dateCreaEn=$classWDate->dateT('Y-m-d','Ymd',$tmp['dateEtatEn']);
if (preg_match("/Prise d'activité/", $tmp['etatEn']) && if (preg_match("/Prise d'activité/", $tmp['etatEn']) &&
$dateCreaEn>19000101) { $dateCreaEn>19000101) {
$this->iDbInsee->update('identite', array('DCREN'=>$dateCreaEn), $this->iDbInsee->update('identite', array(
"SIREN=$siren AND NIC=".$etab['nic']); 'DCREN'=>$dateCreaEn),
/* @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren DateCreaEn trouvée", "SIREN=$siren AND NIC=".$etab['nic']
print_r($tmp, true)); );
} else
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren date NON TROUVEE",
print_r($tmp, true));
*/
} }
} }
} }
$timer['dateDebutActivite']=microtime(true); $timer['dateDebutActivite']=microtime(true);
/** Adresse de domiciliation **/
/** Adresse de domiciliation
**/
$tabDom=$this->infoAdresseDom( $tabRet['AdresseNum'], $tabDom=$this->infoAdresseDom( $tabRet['AdresseNum'],
$tabRet['AdresseBtq'], $tabRet['AdresseBtq'],
$tabRet['AdresseVoie'], $tabRet['AdresseVoie'],

View File

@ -1,52 +1,74 @@
<?php <?php
class WDB
{
/**
* @var Zend_Db_Adapter_Abstract
*/
protected $db = null;
class WDB { /**
*
* @var unknown
*/
protected $result = null;
private $host; protected $errorCode;
private $database;
private $user;
private $password;
private $con_id; // Connection ID with MySQL
private $result;
public function __construct($database='', $host='', $user='', $password='') { protected $errorMsg;
if ($host=='') $this->host=MYSQL_HOST; public function __construct( $database = null, $host = null, $user = null, $password = null )
else $this->host=$host; {
if ($user=='') $this->user=MYSQL_USER; if ( $database === null ) {
else $this->user=$user; $database = 'jo';
if ($password=='') $this->password=MYSQL_PASS;
else $this->password=$password;
if ($database=='') $this->database=MYSQL_DEFAULT_DB;
else $this->database=$database;
$this->con_id = mysql_pconnect($this->host, $this->user, $this->password);
if (!($this->con_id === false)) {
if (mysql_select_db($this->database, $this->con_id) === false) {
echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
die();
}
}
return mysql_query("SET NAMES 'utf8';", $this->con_id);
} }
public function setCharSet($charSet) { if ( $host === null ) {
return (mysql_query("SET CHARACTER SET $charSet;", $this->con_id)); $c = Zend_Registry::get('config');
$config = new Zend_Config(array(
'adapter' => $c->profil->db->metier->adapter,
'params' => array(
'host' => $c->profil->db->metier->params->host,
'username'=> $c->profil->db->metier->params->username,
'password'=> $c->profil->db->metier->params->password,
'dbname'=> $database,
'driver_options' => array(
MYSQLI_INIT_COMMAND => "SET NAMES utf8",
),
),
));
} else {
$config = new Zend_Config(array(
'adapter' => 'mysqli',
'params' => array(
'host' => $host,
'username'=> $user,
'password'=> $password,
'dbname'=> $database,
'driver_options' => array(
MYSQLI_INIT_COMMAND => "SET NAMES utf8",
),
),
));
} }
private function setDB() { try {
return (mysql_query("USE $this->database;", $this->con_id)); $this->db = Zend_Db::factory($config);
} catch ( Exception $e ) {
file_put_contents('debug.log', $e->getMessage()."\n", FILE_APPEND);
exit;
}
} }
/** INSERTION d'un tableau dans une table. /**
** Les index doivent avoir les mêmes noms que les champs. * INSERTION d'un tableau dans une table.
** @param string Table * Les index doivent avoir les mêmes noms que les champs.
** @param array Valeurs insérer * @param string Table
** @return int Dernière valeur de l'auto-incrément, 1 si pas d'auto-incrément et 0 si erreur * @param array Valeurs insérer
**/ * @return int Dernière valeur de l'auto-incrément, 1 si pas d'auto-incrément et 0 si erreur
public function insert($table, $toAdd, $debug=false, $low_priority=false){ */
$this->setDB(); public function insert($table, $toAdd, $debug=false, $low_priority=false)
{
$fields = implode(array_keys($toAdd), '`,`'); $fields = implode(array_keys($toAdd), '`,`');
foreach (array_values($toAdd) as $key=>$array_values) foreach (array_values($toAdd) as $key=>$array_values)
$tmp[$key]=checkaddslashes($array_values); $tmp[$key]=checkaddslashes($array_values);
@ -59,22 +81,35 @@ public function insert($table, $toAdd, $debug=false, $low_priority=false){
else else
$query = 'INSERT INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');'; $query = 'INSERT INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
if ($debug) $tdeb=microtime_float(); if ($debug) $tdeb=microtime_float();
$res = mysql_query($query, $this->con_id);
if ($res!==false) try {
{ $stmt = $this->db->query($query);
if (mysql_insert_id()>0) $res = $this->db->lastInsertId();
$res=mysql_insert_id(); if ( $res == 0 ) {
else
$res = true; $res = true;
} }
} catch(Zend_Db_Exception $e) {
$res = false;
}
if ($debug) $this->trace($query, $res, $tdeb); if ($debug) $this->trace($query, $res, $tdeb);
return $res; return $res;
} }
public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false){ /**
$this->setDB(); *
* @param unknown $table
* @param unknown $update
* @param unknown $where
* @param string $debug
* @param number $limit
* @param string $low_priority
* @return resource
*/
public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false)
{
$fields = array_keys($update); $fields = array_keys($update);
$values = array_values($update); $values = array_values($update);
$i=0; $i=0;
@ -90,60 +125,139 @@ public function update($table, $update, $where, $debug=false, $limit=0, $low_pri
$query = str_replace("'NULL'", 'NULL', $query); $query = str_replace("'NULL'", 'NULL', $query);
$query.=' WHERE '.$where; $query.=' WHERE '.$where;
if ($limit>0) $query.=" LIMIT $limit"; if ($limit>0) $query.=" LIMIT $limit";
if ($debug) $tdeb=microtime_float(); if ($debug) $tdeb=microtime_float();
$res=mysql_query($query, $this->con_id);
try {
$stmt = $this->db->query($query);
$res = $this->db->lastInsertId();
if ( $res == 0 ) {
$res = true;
}
} catch(Zend_Db_Exception $e) {
$res = false;
}
if ($debug) $this->trace($query, $res, $tdeb); if ($debug) $this->trace($query, $res, $tdeb);
return $res; return $res;
} }
public function delete($table, $where, $debug=false, $low_priority=false) { /**
$this->setDB(); *
* @param unknown $table
* @param unknown $where
* @param string $debug
* @param string $low_priority
* @return resource
*/
public function delete($table, $where, $debug=false, $low_priority=false)
{
if ($low_priority) if ($low_priority)
$query='DELETE LOW_PRIORITY QUICK FROM `'.$table.'` WHERE '.$where.' LIMIT 1;'; $query='DELETE LOW_PRIORITY QUICK FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
else else
$query='DELETE FROM `'.$table.'` WHERE '.$where.' LIMIT 1;'; $query='DELETE FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
if ($debug) $tdeb=microtime_float(); if ($debug) $tdeb=microtime_float();
$res=mysql_query($query, $this->con_id);
try {
$stmt = $this->db->query($query);
$res = $this->db->lastInsertId();
if ( $res == 0 ) {
$res = true;
}
} catch(Zend_Db_Exception $e) {
$this->errorCode = $e->getCode();
$this->errorMsg = $e->getMessage();
$res = false;
}
if ($debug) $this->trace($query, $res, $tdeb); if ($debug) $this->trace($query, $res, $tdeb);
return $res; return $res;
} }
public function select($table, $fields, $where, $debug=false, $assoc=MYSQL_BOTH, $huge=false) { /**
$this->setDB(); *
if (mysql_select_db($this->database, $this->con_id) === false) { * @param unknown $table
echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL; * @param unknown $fields
echo date ('Y/m/d - H:i:s'). mysql_error(); * @param unknown $where
die(); * @param string $debug
} * @param string $assoc
* @param string $huge
* @return boolean|multitype:multitype: |number
*/
public function select($table, $fields, $where, $debug=false, $assoc=MYSQL_BOTH, $huge=false)
{
$query="SELECT $fields FROM $table WHERE $where;"; $query="SELECT $fields FROM $table WHERE $where;";
if ($debug) $tdeb=microtime_float(); if ($debug) $tdeb=microtime_float();
$this->result=mysql_query($query, $this->con_id);// or die(mysql_error());
if (mysql_errno()) { try {
$stmt = $this->db->query($query);
} catch(Zend_Db_Exception $e) {
$this->errorCode = $e->getCode();
$this->errorMsg = $e->getMessage();
$fpErr = fopen(LOG_PATH.'/sqlerror.log','a'); $fpErr = fopen(LOG_PATH.'/sqlerror.log','a');
fwrite($fpErr, date('YmdHis'). ' - '.$query .EOL); fwrite($fpErr, date('YmdHis'). ' - '.$query .EOL);
fwrite($fpErr, date('YmdHis'). ' - '.mysql_errno() .' - '. mysql_error().EOL); fwrite($fpErr, date('YmdHis'). ' - '.$e->getCode().' - '. $e->getMessage().PHP_EOL);
return false; return false;
} }
// echo ;
if (!$huge) {
$tab=array();
while ($ligne = mysql_fetch_array($this->result, $assoc))
$tab[]=$ligne;
if ( !$huge ) {
switch($assoc) {
case MYSQL_NUM:
$mode = Zend_Db::FETCH_NUM;
break;
case MYSQL_ASSOC:
$mode = Zend_Db::FETCH_ASSOC;
break;
case MYSQL_BOTH:
$mode = Zend_Db::FETCH_BOTH;
break;
}
$tab = $stmt->fetchAll($mode);
if ($debug) $this->trace($query, sizeof($tab), $tdeb); if ($debug) $this->trace($query, sizeof($tab), $tdeb);
return $tab; return $tab;
} else { } else {
$nbRows=mysql_num_rows($this->result); $nbRows = $stmt->rowCount();
if ($debug) $this->trace($query, $nbRows, $tdeb); if ($debug) $this->trace($query, $nbRows, $tdeb);
return $nbRows; return $nbRows;
} }
} }
public function fetch($assoc=MYSQL_BOTH) { /**
return mysql_fetch_array($this->result, $assoc); *
* @param string $assoc
* @return multitype:
*/
public function fetch($assoc=MYSQL_BOTH)
{
switch($assoc) {
case MYSQL_NUM:
$mode = Zend_Db::FETCH_NUM;
break;
case MYSQL_ASSOC:
$mode = Zend_Db::FETCH_ASSOC;
break;
case MYSQL_BOTH:
$mode = Zend_Db::FETCH_BOTH;
break;
}
return $this->result->fetch($mode);
} }
public function trace($query, $res='', $tdeb=-1) { /**
*
* @param unknown $query
* @param string $res
* @param unknown $tdeb
* @return boolean
*/
public function trace($query, $res='', $tdeb=-1)
{
if (!$fp=fopen(LOG_PATH.'/mysql_insert.log', 'a')) if (!$fp=fopen(LOG_PATH.'/mysql_insert.log', 'a'))
return false; return false;
$errnum=mysql_errno($this->con_id); $errnum=mysql_errno($this->con_id);
@ -156,73 +270,88 @@ public function delete($table, $where, $debug=false, $low_priority=false) {
return true; return true;
} }
/** Exécute la requête passé en paramètre **/ /**
public function query($query, $debug=false){ * Exécute la requête passé en paramètre
$this->setDB(); */
$this->result=mysql_query($query, $this->con_id); public function query($query, $debug=false)
{
try {
$stmt = $this->db->query($query);
$this->result = $stmt;
} catch(Zend_Db_Exception $e) {
$this->errorCode = $e->getCode();
$this->errorMsg = $e->getMessage();
return false;
}
return $this->result; return $this->result;
} }
/** Retourne le nombre de records de la dernière requête de sélection **
public function getNumRows() {
return mysql_num_rows($this->con_id);
}
*/
/** Retourne le libellé de la dernière erreur **/ /** Retourne le libellé de la dernière erreur **/
public function getLastErrorMsg() { public function getLastErrorMsg()
return mysql_error($this->con_id); {
return $this->errorMsg;
} }
/** Retourne le numéro de la dernière erreur **/ /**
public function getLastErrorNum() { * Retourne le numéro de la dernière erreur
return mysql_errno($this->con_id); */
public function getLastErrorNum()
{
return $this->errorCode;
} }
/** Retourne le libellé et le numéro de la dernière erreur **/ /** Retourne le libellé et le numéro de la dernière erreur **/
public function getLastError() { public function getLastError()
return mysql_error($this->con_id).' ('.mysql_errno($this->con_id).')'; {
return $this->errorMsg.' ('.$this->errorCode.')';
} }
/** Retourne le nombre de lignes modifiées par la dernière requête **/ /** Retourne le nombre de lignes modifiées par la dernière requête **/
public function getAffectedRows() { public function getAffectedRows()
return mysql_affected_rows($this->con_id); {
return $this->result->rowCount();
} }
/** Génère le fichier CSV pour la requete SQL /**
** * Génère le fichier CSV pour la requete SQL
** @param string $query *
** @param string $fileCsv * @param string $query
** @return bool * @param string $fileCsv
* @return bool
*/ */
public function exportCSV($query, $fileCsv, $sep=',', $eol=EOL) { public function exportCSV($query, $fileCsv, $sep=',', $eol=EOL) {
$i=$c=0; $i = 0;
$fp = fopen($fileCsv, 'w'); $fp = fopen($fileCsv, 'w');
if (!$fp) return false; if (!$fp) return false;
$res = $this->query($query); $res = $this->query($query);
$nbLignes = mysql_num_rows($res); $nbLignes = mysql_num_rows($res);
while ($ligne=$this->fetch(MYSQL_ASSOC)) { while ($ligne=$this->fetch(MYSQL_ASSOC)) {
//Header
if ($i==0) { if ($i==0) {
$nbCols = count($ligne); $nbCols = count($ligne);
$fields = array();
$header = array();
foreach ($ligne as $libCol=>$col) { foreach ($ligne as $libCol=>$col) {
$c++; $header[] = $libCol;
if ($c<$nbCols) fwrite($fp, str_replace($sep,' ', $libCol).$sep); $fields[] = $col;
else fwrite($fp, str_replace($sep,' ', $libCol));
} }
fwrite($fp, $eol); fputcsv($fp, $header, $sep, '"');
fputcsv($fp, $fields, $sep, '"');
} }
$c=0; //Content
else {
$fields = array();
foreach ($ligne as $libCol=>$col) { foreach ($ligne as $libCol=>$col) {
$c++; $fields[] = $col;
if ($c<$nbCols) fwrite($fp, str_replace($sep,' ', $col).$sep); }
else fwrite($fp, str_replace($sep,' ', $col)); fputcsv($fp, $fields, $sep, '"');
} }
fwrite($fp, $eol);
$i++; $i++;
} }
fclose($fp); fclose($fp);
return $nbLignes;//$this->getAffectedRows(); return $nbLignes;
} }
} }
?> ?>