Update librairies from old server
This commit is contained in:
parent
b2ba2f230e
commit
8537d02b22
@ -14,7 +14,7 @@ options :
|
||||
}
|
||||
|
||||
$action = $argv[1];
|
||||
$profil = strtoupper($argv[2]);
|
||||
$profil = $argv[2];
|
||||
|
||||
switch ($action)
|
||||
{
|
||||
|
@ -63,6 +63,31 @@ $tabEvenInsee=array(
|
||||
'i780'=>'Modification de l\'établissement',
|
||||
'i781'=>'Modification de l\'établissement suite à correction d\'erreur',
|
||||
'i795'=>'Personne radiée à sa demande de de la base SIRENE diffusion',
|
||||
// Nouveaux évènements Sirene4 de la quotidienne Insee (Syracuse)
|
||||
'iCE' =>'Création établissement',
|
||||
'iCS' =>'Création siège',
|
||||
'iCTE' =>'Création établissement (transfert)',
|
||||
'iCTS' =>'Création siège (transfert)',
|
||||
'iSU' =>'Cessation juridique',
|
||||
'iME' =>'Modification établissement',
|
||||
'iMS' =>'Modification siège',
|
||||
'iMTDE' =>'Modification établissement départ (transfert)',
|
||||
'iMTAE' =>'Modification établissement arrivée (transfert)',
|
||||
'iMTDS' =>'Modification siège départ (transfert)',
|
||||
'iMTAS' =>'Modification siège arrivée (transfert)',
|
||||
'iMU' =>'Modification entreprise',
|
||||
'iRE' =>'Réactivation établissement',
|
||||
'iRS' =>'Réactivation siège',
|
||||
'iSE' =>'Fermeture (ou désactivation) établissement',
|
||||
'iSS' =>'Fermeture (ou désactivation) siège',
|
||||
'iSTE' =>'Fermeture établissement (transfert)',
|
||||
'iSTS' =>'Fermeture siège (transfert)',
|
||||
'iRI' =>'Refus d\'immatriculation au RCS',
|
||||
'iCC' =>'Création par le calage',
|
||||
'iMC' =>'Modification par le calage',
|
||||
'iSC' =>'Suppression par le calage',
|
||||
'iI' =>'Entrée dans le champ de la diffusion commerciale',
|
||||
'iO' =>'Sortie du champ de la diffusion commerciale',
|
||||
);
|
||||
|
||||
global $tabDestinat;
|
||||
@ -650,6 +675,7 @@ function valideSiren($siren, $nic='', $erreur=false) {
|
||||
return $erreur;
|
||||
|
||||
$SIRET=$siren.$nic;
|
||||
if ($siren<>356000000) {
|
||||
$somme=0;
|
||||
for ($i=0; $i<=12; $i+=2)
|
||||
{ // Traitement PAIR
|
||||
@ -664,8 +690,16 @@ function valideSiren($siren, $nic='', $erreur=false) {
|
||||
|
||||
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
|
||||
return $erreur;
|
||||
} else {
|
||||
// Cas particulier du siren de LA POSTE : 356 000 000 00000
|
||||
$somme=14;
|
||||
for ($i=9; $i<=13; $i++)
|
||||
$somme+=(integer)substr($SIRET,$i,1);
|
||||
if ($somme%5!=0) // Le NIC de l'établissement de LA POSTE est faux !
|
||||
return $erreur;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1994,7 +2028,7 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
|
||||
/** Informations INSEE
|
||||
**/
|
||||
if ($siren>100) {
|
||||
$insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, actifEco%10 AS actifEco, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE',
|
||||
$insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, actifEco%10 AS actifEco, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE, insL1_NOMEN, insL2_COMP, insL3_CADR, insL4_VOIE, insL5_DISP, insL6_POST, insL7_ETRG, dateMajRNVP, insCATEGORIE, insIND_PUBLIPO, RPET, ARRONET, CTONET, DU, TU, UU, TCD, ZEMET, ESAANN, ESAAPEN, DREACTET, AMINTRET, DREACTEN, AMINTREN, NOMEN_LONG, CEDEX, EPCI, NOM_COM, NATETAB, PRODET, PRODEN',
|
||||
"SIREN=$siren $strNic ORDER BY SIEGE DESC, ACTIF DESC LIMIT 0,1",false,MYSQL_ASSOC);
|
||||
if (count($insee)>0) {
|
||||
$tabInsee=$insee[0];
|
||||
@ -2003,6 +2037,12 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
|
||||
$tabInsee['RECME']=$tabNotice['insRECME'];
|
||||
// On force l'indicateur "actifEco" à 0 si l'établissement est juridiquement inactif
|
||||
if ($tabInsee['ACTIF']*1==0) $tabInsee['actifEco']=0;
|
||||
if (trim($tabInsee['CODEVOIE'])=='') {
|
||||
$codeCommune=$tabInsee['ADR_DEP'].sprintf("%03s",$tabInsee['ADR_COM']);
|
||||
//echo $codeCommune.','.$tabInsee['ADR_TYPVOIE'].','.$tabInsee['ADR_LIBVOIE'].EOL;
|
||||
$tabInsee['CODEVOIE']=$this->getCodeVoieRivoli($codeCommune, $tabInsee['ADR_TYPVOIE'], $tabInsee['ADR_LIBVOIE']);
|
||||
//echo $tabInsee['CODEVOIE'].EOL;
|
||||
}
|
||||
} else {
|
||||
// Siren absent de l'Insee
|
||||
$tabInsee=array(
|
||||
@ -2336,6 +2376,10 @@ print_r($tabTmp, true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($tabInsee['CIVILITE']==1) $dir1Genre='M';
|
||||
elseif ($tabInsee['CIVILITE']==2) $dir1Genre='F';
|
||||
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $dir1Genre='';
|
||||
|
||||
$tabRet=array( 'id'=>$etab['id'],
|
||||
'Siret'=>$etab['siret'],
|
||||
'SiretSiege'=>$siretSiege,
|
||||
@ -2394,7 +2438,7 @@ print_r($tabTmp, true));
|
||||
'Source'=>$etab['source'],
|
||||
'SourceId'=>$etab['source_id'],
|
||||
'Isin'=>$tab['isin'],
|
||||
'Capital'=>$etab['capital'],//IKI
|
||||
'Capital'=>$etab['capital'],
|
||||
'CapitalDev'=>$etab['capitalDev'],
|
||||
'CapitalSrc'=>$etab['capitalSrc'],
|
||||
|
||||
@ -2425,6 +2469,8 @@ print_r($tabTmp, true));
|
||||
|
||||
'dir1Titre'=>self::$tabFct[$tabInsee['DIR_FCT']],
|
||||
'dir1NomPrenom'=>preg_replace('/^EIRL\s/','',$tabInsee['DIR_IDEN']),
|
||||
'dir1Genre'=>$dir1Genre,
|
||||
|
||||
'Rivoli'=>substr($tabInsee['CODEVOIE'],0,4).' '.substr($tabInsee['CODEVOIE'],-1),
|
||||
'InfosIris'=>$tabIris,
|
||||
'NatureActivite'=>$tabInsee['ACTIVNAT'], // Nature de l'activité
|
||||
@ -2447,6 +2493,41 @@ print_r($tabTmp, true));
|
||||
'APRM'=>$tabInsee['APRM'],
|
||||
'APRM_Lib'=>$this->getLibelleNafa($tabInsee['APRM']),
|
||||
'AutreSiret'=>$tabAssoc,
|
||||
|
||||
'L1_NOMEN'=>$tabInsee['insL1_NOMEN'], // Nom ou raison sociale de l'entreprise pour l'adressage
|
||||
'L2_COMP'=> $tabInsee['insL2_COMP'], // Complément de nom de l'entreprise pour l'adressage
|
||||
'L3_CADR'=> $tabInsee['insL3_CADR'], // Complément d'adresse pour l.adressage
|
||||
'L4_VOIE'=> $tabInsee['insL4_VOIE'], // Numéro et libellé dans la voie
|
||||
'L5_DISP'=> $tabInsee['insL5_DISP'], // Distribution spéciale
|
||||
'L6_POST'=> $tabInsee['insL6_POST'], // Ligne d'acheminement postal pour l'adressage
|
||||
'L7_ETRG'=> $tabInsee['insL7_ETRG'], // Libellé du pays pour les adresses à l'étranger
|
||||
'IND_PUBLIPO'=> $tabInsee['insIND_PUBLIPO'], // Indicateur du champ de publipostage
|
||||
'dateMajRNVP'=>$tabInsee['dateMajRNVP'],
|
||||
'RNVP_Niveau'=>0,
|
||||
|
||||
'RPET'=> $tabInsee['RPET'], //
|
||||
'ARRONET'=> $tabInsee['ARRONET'], //
|
||||
'CTONET'=> $tabInsee['CTONET'], //
|
||||
'DU'=> $tabInsee['DU'], //
|
||||
'TU'=> $tabInsee['TU'], //
|
||||
'UU'=> $tabInsee['UU'], //
|
||||
'TCD'=> $tabInsee['TCD'], //
|
||||
'ZEMET'=> $tabInsee['ZEMET'], //
|
||||
'ESAANN'=> $tabInsee['ESAANN'], //
|
||||
'ESAAPEN'=> $tabInsee['ESAAPEN'], //
|
||||
|
||||
'DREACTET'=> $tabInsee['DREACTET'], //
|
||||
'AMINTRET'=> $tabInsee['AMINTRET'], //
|
||||
'DREACTEN'=> $tabInsee['DREACTEN'], //
|
||||
'AMINTREN'=> $tabInsee['AMINTREN'], //
|
||||
|
||||
'CATEGORIE'=> $tabInsee['insCATEGORIE'], // Catégorie d'entreprise
|
||||
'NOMEN_LONG'=> $tabInsee['NOMEN_LONG'], // Nom ou raison sociale de l'entreprise
|
||||
'PRODET'=> $tabInsee['PRODET'],
|
||||
'PRODEN'=> $tabInsee['PRODEN'],
|
||||
'NATETAB'=> $tabInsee['NATETAB'],
|
||||
'CEDEX'=> $tabInsee['CEDEX'],
|
||||
'EPCI'=> $tabInsee['EPCI'],
|
||||
// MODET,
|
||||
);
|
||||
|
||||
@ -2597,10 +2678,10 @@ print_r($tmp, true));
|
||||
'Début du plan : '. $this->debutPlan .EOL.
|
||||
'Durée du plan : '. $this->dureePlan .' mois'.EOL.
|
||||
'Fin du plan : '. $this->finPlan);*/
|
||||
} elseif ($this->dureePlan>0 && date('Ymd')>=$this->finPlan)
|
||||
} elseif ($this->dureePlan>0 && date('Ymd')>=$this->finPlan) {
|
||||
// Plan révolu
|
||||
$tabRet['SituationJuridique']='';
|
||||
elseif ($this->appelJugement)
|
||||
} elseif ($this->appelJugement)
|
||||
// Appel de jugement
|
||||
$tabRet['SituationJuridique']='PA';
|
||||
else
|
||||
@ -2636,16 +2717,22 @@ print_r($tmp, true));
|
||||
$tabRet['dir1Titre']=self::$tabFct['PP'];
|
||||
|
||||
if ($tabInsee['CIVILITE']>0 && $tabRet['dir1NomPrenom']=='') {
|
||||
if ($tabInsee['CIVILITE']==1) $tabRet['dir1NomPrenom']='M. ';
|
||||
elseif ($tabInsee['CIVILITE']==2) $tabRet['dir1NomPrenom']='Mme ';
|
||||
if ($tabInsee['CIVILITE']==1) { $tabRet['dir1NomPrenom']='M. '; $tabRet['dir1Genre']='M'; }
|
||||
elseif ($tabInsee['CIVILITE']==2) { $tabRet['dir1NomPrenom']='Mme '; $tabRet['dir1Genre']='F'; }
|
||||
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']='';
|
||||
$tabRet['dir1NomPrenom'].=$tabInsee['NOM'];
|
||||
}
|
||||
|
||||
if ($tabInsee['CIVILITE']>0 && ($tabRet['dir1Nom']=='' || $tabRet['dir1Prenom'])) {
|
||||
$tmp=$this->iDbInsee->select( 'insee_even', 'dirNom, dirNomUsage, dirPrenom', "insSIREN=$siren ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
$tmp=$this->iDbInsee->select( 'insee_even', 'dirNom, dirNomUsage, dirPrenom, insCIVILITE', "insSIREN=$siren ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
$tabRet['dir1Nom']=@strtoupper($tmp[0]['dirNom']);
|
||||
$tabRet['dir1Prenom']=@ucwords(strtolower(@$tmp[0]['dirPrenom']));
|
||||
$tabRet['dir1NomUsage']=@strtoupper($tmp[0]['dirNomUsage']);
|
||||
if ($tmp[0]['insCIVILITE']==1) $tabRet['dir1Genre']='M';
|
||||
elseif ($tmp[0]['insCIVILITE']==2) $tabRet['dir1Genre']='F';
|
||||
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']='';
|
||||
|
||||
$entrep['sexe']=$tabRet['dir1Genre'];
|
||||
unset($tmp);
|
||||
}
|
||||
|
||||
@ -2812,10 +2899,13 @@ print_r($tmp, true));
|
||||
$tabRet['dir'.$k.'Code']=$ann['code'];
|
||||
$tabRet['dir'.$k.'Titre']=$ann['libelle'];
|
||||
if (trim($ann['naissance_nom'])<>'') {
|
||||
if ($ann['civilite']=='MME' || $ann['civilite']=='MLLE')
|
||||
if ($ann['civilite']=='MME' || $ann['civilite']=='MLLE') {
|
||||
$nomNaiss=' née '.trim($ann['naissance_nom']);
|
||||
elseif ($ann['civilite']=='M')
|
||||
$tabRet['dir'.$k.'Genre']='F';
|
||||
} elseif ($ann['civilite']=='M') {
|
||||
$nomNaiss=' né '.trim($ann['naissance_nom']);
|
||||
$tabRet['dir'.$k.'Genre']='M';
|
||||
}
|
||||
else
|
||||
$nomNaiss=' né(e) '.trim($ann['naissance_nom']);
|
||||
} else $nomNaiss='';
|
||||
@ -2827,6 +2917,10 @@ print_r($tmp, true));
|
||||
$tabRet['dir'.$k.'NomPrenom']=$ann['nom'].' '.$ann['prenom'].$nomNaiss;
|
||||
$tabRet['dir'.$k.'Nom']=$ann['nom'];
|
||||
$tabRet['dir'.$k.'Prenom']=$ann['prenom'];
|
||||
if ($ann['civilite']=='M')
|
||||
$tabRet['dir'.$k.'Genre']='M';
|
||||
elseif ($ann['civilite']=='MME' || $ann['civilite']=='MLLE')
|
||||
$tabRet['dir'.$k.'Genre']='F';
|
||||
}
|
||||
$tabRet['dir'.$k.'DateFct']=$ann['dateEffet'];
|
||||
$tabRet['dir'.$k.'DateNaiss']=$ann['dateNaiss'];
|
||||
@ -2849,6 +2943,7 @@ print_r($tmp, true));
|
||||
$tabRet['dir'.$k.'Nom']=$ann['nom'];
|
||||
$tabRet['dir'.$k.'Prenom']=$ann['prenom'];
|
||||
$tabRet['dir'.$k.'DateFct']=$ann['dateEffet'];
|
||||
$tabRet['dir'.$k.'Genre']='';
|
||||
if ($k==2) break;
|
||||
$k++;
|
||||
}
|
||||
@ -2965,12 +3060,14 @@ print_r($tmp, true));
|
||||
}
|
||||
if ($fjInpi>=1000 && $fjInpi<2000) {
|
||||
$tabRet['dir1Titre']='Personne physique';
|
||||
$tabRet['dir1Code']='1050';
|
||||
$tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom']));
|
||||
$tabRet['dir1Nom']=strtoupper($entrep['nom']);
|
||||
$tabRet['dir1Prenom']=ucwords(strtolower($entrep['prenom']));
|
||||
$tabRet['dir1NomUsage']=strtoupper($entrep['nomUsage']);
|
||||
$tabRet['dir1DateNaiss']=$entrep['dateNaiss'];
|
||||
$tabRet['dir1LieuNaiss']=$entrep['lieuNaiss'];
|
||||
$tabRet['dir1Genre']=$entrep['sexe'];
|
||||
}
|
||||
|
||||
if ($tabRet['DateMajRCS']=='') {
|
||||
@ -3104,6 +3201,11 @@ print_r($tmp, true));
|
||||
}
|
||||
}
|
||||
|
||||
if ($tabRet['dir1Genre']=='M' || $tabRet['dir1Genre']=='F') {
|
||||
$tabRet['dir1Titre']='Personne physique';
|
||||
$tabRet['dir1Code']='1050';
|
||||
}
|
||||
|
||||
if ( $accesDist &&
|
||||
// Département couvert par Infogreffe
|
||||
$tabRet['Dept']<>57 && $tabRet['Dept']<>67 && $tabRet['Dept']<>68 && $tabRet['Dept']<>97 && $tabRet['Dept']<>98 && $tabRet['Dept']<>99 &&
|
||||
@ -4679,6 +4781,7 @@ TOTAL : $dureeTot s\n";
|
||||
|
||||
// On ne rafraichie que si demandé et
|
||||
// que la requête en base est trop ancienne et nscrl est vide ou tel ou web
|
||||
$refresh=false;
|
||||
if ($refresh && $dateUpdate<$lastYear && ($idComp['nscrl']==0 || $idComp['tel']=='') ) {
|
||||
$timeout=20;
|
||||
// La mise à jour ne se fera pas si lastMAJ<365
|
||||
@ -4686,9 +4789,9 @@ TOTAL : $dureeTot s\n";
|
||||
$timeout=10;
|
||||
$strUpdate='AND nscrl<>0 AND DATEDIFF(NOW(),dateUpdate)>0';*/
|
||||
$referer='';
|
||||
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
|
||||
$url='http://www.elliscore.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
|
||||
$tdeb=microtime(1);
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', $timeout);
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.elliscore.fr', '', $timeout);
|
||||
$duree=round(microtime(1)-$tdeb,3);
|
||||
$this->body=$page['body'];
|
||||
$this->codeRetour=$page['code'];
|
||||
@ -4957,6 +5060,12 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
if (trim($ann['strEven'])<>'') {
|
||||
foreach ($tabEven as $even) {
|
||||
$tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even));
|
||||
if ($even>=1000 && $even<2000) $rubriqueRet='procol';
|
||||
elseif ($even>=2000 && $even<3000) $rubriqueRet='mmd';
|
||||
elseif ($even>=3000 && $even<4000) $rubriqueRet='comptes';
|
||||
elseif ($even>=4000 && $even<5000) $rubriqueRet='creations';
|
||||
elseif ($even>=5000 && $even<6000) $rubriqueRet='ventes';
|
||||
elseif ($even>=6000 && $even<7000) $rubriqueRet='radiations';
|
||||
if ($even==2102 || $even==2100) $capital=true;
|
||||
}
|
||||
}
|
||||
@ -5020,7 +5129,7 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
'Departement'=>$dept,
|
||||
'Tribunal'=>$ann['triNom'],
|
||||
'TribunalSiret'=>$ann['triSiret'],
|
||||
'Rubrique'=>'procol',
|
||||
'Rubrique'=>$rubriqueRet,
|
||||
'typeAnnonce'=>'insertion',
|
||||
'dateEffet'=>$ann['dateCessationPaiement'],
|
||||
'dateJugement'=>$ann['dateJugement'],
|
||||
@ -5173,6 +5282,8 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
function getInfosNotice($siren, $nic) {
|
||||
/** Elements provenant du Notice 80 hors identité **/
|
||||
$tabTmp=$this->iDbInsee->select('insee_notices', 'insSIREN, insNIC, insL4_VOIE, insL6_POST, insRPET, insDEPCOMEN, insRPEN, insARRONET, insCTONET, insTCD, insZEMET, insDU, insTU, insUU, insMMINTRET, insMMINTREN, insVMAJ, insVMAJ1, insVMAJ2, insVMAJ3, insRECME, insEAEANT, insEAEAPET, insEAESEC1T, insEAESEC2T, insEAEANN, insEAEAPEN, insEAESEC1N, insEAESEC2N, insEAESEC3N, insEAESEC4N, dateNotice', "insSIREN=$siren AND insNIC=$nic ORDER BY dateNotice DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
if (count($tabTmp)==0)
|
||||
$tabTmp=$this->iDbInsee->select('insee_even', "insSIREN, insNIC, insL4_VOIE, insL6_POST, insRPET, insDEPCOMEN, insRPEN, insARRONET, insCTONET, insTCD, insZEMET, insDU, insTU, insUU, insAMINTRET, insAMINTREN, insVMAJ, insVMAJ1, insVMAJ2, insVMAJ3, '' AS insRECME, '' AS insEAEANT, '' AS insEAEAPET, '' AS insEAESEC1T, '' AS insEAESEC2T, insESAANN AS insEAEANN, insESAPEN AS insEAEAPEN, insESASEC1N AS insEAESEC1N, insESASEC2N AS insEAESEC2N, insESASEC3N AS insEAESEC3N, insESASEC4N AS insEAESEC4N, dateInsert AS dateNotice", "insSIREN=$siren AND insNIC=$nic ORDER BY dateInsert DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
return $tabTmp[0];
|
||||
}
|
||||
|
||||
@ -5200,7 +5311,7 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
}
|
||||
$tabTmp=$this->iDb->select('tabAdrDom',
|
||||
'id, siren, nic, enActif, etActif, procol, nom, nom2, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, adrComp, adrDistSp, cj, apen, apet, nbEntrep, dateInsert, dateUpdate',
|
||||
"adrNum=$num AND adrBtq='$indRep' AND adrTypVoie LIKE '%$typeVoie%' AND adrLibVoie LIKE '%$libVoie%' AND cp=$cp $strAdrActive", false, MYSQL_ASSOC);
|
||||
"adrNum=$num AND adrBtq='$indRep' AND adrTypVoie LIKE '%$typeVoie%' AND adrLibVoie LIKE '%$libVoie%' AND cp=$cp $strAdrActive GROUP BY siren ORDER BY enActif DESC, nbEntrep DESC", false, MYSQL_ASSOC);
|
||||
if (count($tabTmp)>0) {
|
||||
/* sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Adresse de domiciliation", print_r($tabAdr,true).EOL.print_r($tabTmp, true).EOL.
|
||||
"num=$num=$adresseNum".EOL.
|
||||
@ -5660,7 +5771,21 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
public function getIdOPS($naf5, $codeCommune, $fj, $dateCreation, $activiteReelle='') {
|
||||
/** Retourne l'identifiant de l'Organisme de protection sociale compétent
|
||||
**
|
||||
** @param string $naf5 Code Naf de l'entreprise
|
||||
** @param integer $codeCommune Code commune de l'entreprise
|
||||
** @param integer $fj Forme juridique de l'entreprise
|
||||
** @param date $dateCreation Date de création de l'entreprise
|
||||
** @param integer $activiteReelle Activité réelle de l'entreprise
|
||||
** @return
|
||||
*/
|
||||
public function getOPS($naf5, $codeCommune, $fj, $dateCreation, $activiteReelle='') {
|
||||
/*
|
||||
* 1. Vérifier si le NAF est dans la table sdv1.retraiteNaf (répertoire professionnel)
|
||||
* 1.1. Si présent,
|
||||
*
|
||||
*/
|
||||
$tabRet=array();
|
||||
$naf4=substr($naf5,0,4);
|
||||
$dep=substr($codeCommune,0,2);
|
||||
@ -5671,20 +5796,26 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
$ret=$this->iDb->select('sdv1.retraiteNaf',
|
||||
'codeOPS, libInstitution, codeAnnexe, Limitations',
|
||||
"naf5='$naf5' or naf5='$naf4'", false, MYSQL_ASSOC);
|
||||
//print_r($ret);
|
||||
//die();
|
||||
if (count($ret)>0) {
|
||||
$tabRet=array('competenceType'=>'professionnel');
|
||||
foreach ($ret as $iRet=>$tabCaisses) {
|
||||
if (count($ret)==1) {
|
||||
$limite=$tabCaisses['Limitations'];
|
||||
if ($tabCaisses['codeOPS']<>null) {
|
||||
echo "Cas 1 : NAF $naf5 unique".EOL;
|
||||
echo "Cas 1 : NAF $naf5 unique, annexe ".$tabCaisses['codeAnnexe']." - ".$tabCaisses['libInstitution']." (".$tabCaisses['Limitations'].")".EOL;
|
||||
print_r($this->getInfoOPS($tabCaisses['codeOPS']));
|
||||
return $tabCaisses['codeOPS'];
|
||||
} elseif ($tabCaisses['Annexe']<>'') {
|
||||
$annexe=$tabCaisses['Annexe'];
|
||||
echo "Cas 2 : NAF $naf5, Annexe $annexe".EOL;
|
||||
//print_r($this->getInfoOPS($idOPS));
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
echo "Cas 3.1 : Non géré $naf5 !".EOL;
|
||||
//print_r($this->getInfoOPS($idOPS));
|
||||
print_r($tabCaisses);
|
||||
}
|
||||
}
|
||||
@ -5695,21 +5826,24 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
'codeOPS, libInstitution',
|
||||
"codeDep=$dep AND codeAnnexe IN ('$annexe','A','B') GROUP BY codeAnnexe ASC", false, MYSQL_ASSOC);
|
||||
if (count($ret)>0) {
|
||||
$tabRet=array('competenceType'=>'interprofessionnel');
|
||||
foreach ($ret as $iRet=>$tabCaisses) {
|
||||
if (count($ret)==1) {
|
||||
//if (count($ret)==1) {
|
||||
if ($tabCaisses['codeOPS']<>'') {
|
||||
echo "Cas 2.1 : NAF $naf5, Annexe $annexe".EOL;
|
||||
// echo "Cas 2.1 : NAF $naf5, Annexe $annexe".EOL;
|
||||
echo "Cas 2.1 : NAF $naf5, annexe ".$tabCaisses['codeAnnexe']." - ".$tabCaisses['libInstitution']." (".$tabCaisses['Limitations'].")".EOL;
|
||||
print_r($this->getInfoOPS($tabCaisses['codeOPS']));
|
||||
return $tabCaisses['codeOPS'];
|
||||
} else {
|
||||
echo "Cas 2.2 : Non géré $naf5".EOL;
|
||||
print_r($tabCaisses);
|
||||
}
|
||||
} else {
|
||||
echo "Cas 3.2 : Non géré $naf5".EOL;
|
||||
print_r($tabCaisses);
|
||||
/*} else {
|
||||
echo "Cas 3.2 : Non géré $naf5".EOL;
|
||||
print_r($tabCaisses);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::listeProduits sur $naf", print_r($tabRet, true));
|
||||
@ -5747,10 +5881,15 @@ 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, 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);
|
||||
'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, insVMAJ, sirVersion',
|
||||
"insSIREN=$siren AND insNIC<>$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') 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', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%') )", false, MYSQL_ASSOC);
|
||||
foreach ($ret as $iRet=>$tabEve) {
|
||||
if ($tabEve['sirVersion']==4) {
|
||||
if ($tabEve['insEVE']=='CTE' || $tabEve['insEVE']=='CTS' || $tabEve['insEVE']=='MTAE' || $tabEve['insEVE']=='MTAS') $typeLien='suc';
|
||||
elseif ($tabEve['insEVE']=='STE' || $tabEve['insEVE']=='STS' || $tabEve['insEVE']=='MTDE' || $tabEve['insEVE']=='MTDS') $typeLien='pre';
|
||||
else $typeLien='ind';
|
||||
} else {
|
||||
switch($tabEve['insTYPETAB']*1) {
|
||||
case 8:
|
||||
case 10:
|
||||
@ -5773,6 +5912,7 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
default : if ($lien<>0) continue; $typeLien='ind'; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$adr1=$tabEve['insL1_NOMEN'];
|
||||
if ($adr1==NULL) $adr1=$tabEve['insNOMEN'];
|
||||
@ -5984,6 +6124,33 @@ ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
||||
} else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function getCodeVoieRivoli($codeCommune, $adrTypVoie, $adrLibVoie) {
|
||||
$codeVoie='';
|
||||
$adrLibVoie2=addslashes($adrLibVoie);
|
||||
$tDeb=microtime(1);
|
||||
// $ret=$this->iDbInsee->select( 'fantoirVoi', "codComInsee, idVoieCom, cleRivoli, voieNature, voieLib, MATCH (codComInsee, voieNature, voieLib) AGAINST ('$codeCommune $adrTypVoie $adrLibVoie2' IN NATURAL LANGUAGE MODE) AS score",
|
||||
// "codComInsee='$codeCommune' AND MATCH (codComInsee, voieNature, voieLib) AGAINST ('$codeCommune $adrTypVoie $adrLibVoie2' IN NATURAL LANGUAGE MODE) ORDER BY score DESC",false, MYSQL_ASSOC);
|
||||
$ret=$this->iDbInsee->select( 'fantoirVoi', "codComInsee, idVoieCom, cleRivoli, voieNature, voieLib, 1 AS score",
|
||||
"codComInsee='$codeCommune' AND voieNature='$adrTypVoie' AND voieLib='$adrLibVoie2'",false, MYSQL_ASSOC);
|
||||
$nbRet=count($ret);
|
||||
if ($nbRet==0) return '';//'Aucune correspondance Rivoli'.EOL;
|
||||
else {
|
||||
foreach($ret as $i=>$iRet) {
|
||||
// echo "$codeCommune : je compare '$adrTypVoie' avec '".$iRet['voieNature']."' et '$adrLibVoie' avec '".$iRet['voieLib']."' ";
|
||||
if ($iRet['voieNature']==$adrTypVoie && $iRet['voieLib']==$adrLibVoie) {
|
||||
$codeVoie=$iRet['idVoieCom'];
|
||||
// echo 'OK ('.round(microtime(1)-$tDeb,3).'s.)'.EOL;
|
||||
break;
|
||||
}
|
||||
// echo 'ko ('.round(microtime(1)-$tDeb,3).'s.) !!!'.EOL;
|
||||
}
|
||||
}
|
||||
return $codeVoie;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@ class MAmabis {
|
||||
$dep3=substr($cp,0,3)*1;
|
||||
switch ($dep2) {
|
||||
case 0:
|
||||
case 5:
|
||||
/* case 5:
|
||||
case 9:
|
||||
case 15:
|
||||
case 19:
|
||||
@ -64,7 +64,7 @@ class MAmabis {
|
||||
case 32:
|
||||
case 46:
|
||||
case 48:
|
||||
case 82:
|
||||
case 82:*/
|
||||
case 97: // DOM
|
||||
case 98: // TOM
|
||||
case 99: // Etranger
|
||||
@ -79,10 +79,18 @@ class MAmabis {
|
||||
$iDb=new WDB();
|
||||
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
|
||||
$ville=addslashes($ville);
|
||||
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
|
||||
$majForcee=false;
|
||||
|
||||
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs, rnvpStatut, rnvpCorr, rnvpTrt, adr3, adr4, adr5, adr6, adr7, numVoieA, indRepA,
|
||||
typeVoieAlong, typeVoieAcourt, corpVoie, motDir, motDirD, libVoieSec, adr4n32, adr4n38, clePostaleVoie,
|
||||
secteur, cleRoutage, cpx, cleAd, codPaysIso2, codPaysIso3, libPays, codeInsee',
|
||||
"address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
|
||||
$zones=@$ret[0];
|
||||
if (count($ret)>0) {
|
||||
$zones=$ret[0];
|
||||
$tabRep['ZUS']=$tabRep['ZFU']=$tabRep['ZRU']=$tabRep['CUCS']='NON';
|
||||
if ($zones['rnvpStatut']===null && $rnvp) $majForcee=true;
|
||||
$tabRep['ZUS'] =$tabRep['ZFU'] =$tabRep['ZRU'] =$tabRep['CUCS'] ='NON';
|
||||
//$tabRep['NZUS']=$tabRep['NZFU']=$tabRep['NZRU']=$tabRep['NCUCS']='';
|
||||
|
||||
if (trim($zones['zus'])<>'') {
|
||||
if (trim($zones['zus'])=='NSP') $tabRep['ZUS']='NSP';
|
||||
else $tabRep['ZUS']='OUI';
|
||||
@ -103,8 +111,23 @@ class MAmabis {
|
||||
else $tabRep['CUCS']='OUI';
|
||||
$tabRep['NCUCS']=$zones['cucs'];
|
||||
}
|
||||
//return $tabRep;
|
||||
} else {
|
||||
|
||||
/** Autres Informations de la RNVP
|
||||
**/
|
||||
if ($rnvp) {
|
||||
//$tabRep['ADR1']=@trim($tabZones['ADR1']);
|
||||
//$tabRep['ADR2']=@trim($tabZones['ADR2']);
|
||||
if (strtoupper(@trim($zones['adr7']))=='FRANCE') $zones['adr7']='';
|
||||
$tabRep['ADR3']=@trim($zones['adr3']);
|
||||
$tabRep['ADR4']=@trim($zones['adr4']);
|
||||
$tabRep['ADR5']=@trim($zones['adr5']);
|
||||
$tabRep['ADR6']=@trim($zones['adr6']);
|
||||
$tabRep['ADR7']=trim($zones['adr7']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (count($ret)==0 || $majForcee) {
|
||||
|
||||
try {
|
||||
if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse
|
||||
@ -124,54 +147,129 @@ class MAmabis {
|
||||
fwrite($fp, date('d-m-Y H:i:s').' - '.implode("\n", $rep)."\n============================================================================\n");
|
||||
fclose($fp);
|
||||
|
||||
//print_r($rep);
|
||||
//die();
|
||||
|
||||
$tabZones=explode(',',$rep['zonage']); // ZUS=OUI,NZUS=1127020,ZFU=OUI,NZFU=11270ZF,CUCS=OUI,NCUCS=1127020
|
||||
foreach ($tabZones as $zone) {
|
||||
$tabTmp=explode('=',$zone);
|
||||
if (trim($tabTmp[0])<>'')
|
||||
$tabRep[$tabTmp[0]]=$tabTmp[1];
|
||||
}
|
||||
if ($tabRep['ZUS']=='NSP') $tabRep['NZUS']='NSP';
|
||||
if ($tabRep['ZRU']=='NSP') $tabRep['NZRU']='NSP';
|
||||
if ($tabRep['ZFU']=='NSP') $tabRep['NZFU']='NSP';
|
||||
if ($tabRep['CUCS']=='NSP') $tabRep['NCUCS']='NSP';
|
||||
if (@$tabRep['ZUS']=='NSP') $tabRep['NZUS']='NSP';
|
||||
if (@$tabRep['ZRU']=='NSP') $tabRep['NZRU']='NSP';
|
||||
if (@$tabRep['ZFU']=='NSP') $tabRep['NZFU']='NSP';
|
||||
if (@$tabRep['CUCS']=='NSP') $tabRep['NCUCS']='NSP';
|
||||
$adresse=stripslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
|
||||
$ville=stripslashes($ville);
|
||||
$tabRepTmp=array();
|
||||
$tabTmp=explode('=',utf8_decode($rep['objdesc']));
|
||||
//print_r($tabTmp);
|
||||
//die();
|
||||
$tabZones=array();
|
||||
foreach ($tabTmp as $iZone=>$zone) {
|
||||
$pos=strrpos($zone,',');
|
||||
if ($iZone==0) {
|
||||
$nomZoneSuiv=$zone;
|
||||
continue;
|
||||
}
|
||||
$tabZones[$nomZoneSuiv]=substr($zone,0,$pos);
|
||||
$nomZoneSuiv=substr($zone,$pos+1);
|
||||
}
|
||||
if (strtoupper(@trim($tabZones['ADR7']))=='FRANCE') $tabZones['ADR7']='';
|
||||
$tabTmp=explode('|', $tabZones['VOIEA']);
|
||||
$typeVoieAcourt=@trim($tabTmp[1]);
|
||||
$tabInsert=array( 'address'=>$adresse,
|
||||
'adr_cp'=>$cp,
|
||||
'adr_ville'=>$ville,
|
||||
'zus'=>$tabRep['NZUS'],
|
||||
'zru'=>$tabRep['NZRU'],
|
||||
'zfu'=>$tabRep['NZFU'],
|
||||
'cucs'=>$tabRep['NCUCS'],
|
||||
'adrNum'=>$adrNum,
|
||||
'zus'=>@$tabRep['NZUS'],
|
||||
'zru'=>@$tabRep['NZRU'],
|
||||
'zfu'=>@$tabRep['NZFU'],
|
||||
'cucs'=>@$tabRep['NCUCS'],
|
||||
);
|
||||
$tabUpdate=array( 'adrNum'=>$adrNum,
|
||||
'adrIndRep'=>$adrIndRep,
|
||||
'adrTypeVoie'=>$adrTypeVoie,
|
||||
'adrLibVoie'=>$adrLibVoie,
|
||||
'rivoli'=>$codeRivoli,
|
||||
// Ajouté le 16/12/2013
|
||||
'rnvpStatut' => substr($tabZones['STATUTC'],0,2),
|
||||
'rnvpCorr' => substr($tabZones['STATUTC'],2,1),
|
||||
'rnvpTrt' => trim(substr($tabZones['STATUTC'],3,2)),
|
||||
'adr3' => @trim($tabZones['ADR3']),
|
||||
'adr4' => @trim($tabZones['ADR4']),
|
||||
'adr5' => @trim($tabZones['ADR5']),
|
||||
'adr6' => @trim($tabZones['ADR6']),
|
||||
'adr7' => trim($tabZones['ADR7']),
|
||||
'numVoieA' => @trim($tabZones['NUM1']),
|
||||
'indRepA' => @trim($tabZones['BTQC1']),
|
||||
'typeVoieAlong' => @trim($tabZones['TYPVOIEL']),
|
||||
'typeVoieAcourt' => $typeVoieAcourt,
|
||||
'corpVoie' => @trim($tabZones['CORPSVOIE']),
|
||||
'motDir' => @trim($tabZones['MOTDIR']),
|
||||
'motDirD' => @trim($tabZones['MOTDIRD']),
|
||||
'libVoieSec' => @trim($tabZones['VOIREFLIBS']),
|
||||
'adr4n32' => @trim($tabZones['VOIREFLIBPOS']),
|
||||
'adr4n38' => @trim($tabZones['VOIREFLIBPOS2']),
|
||||
'clePostaleVoie' => @trim($tabZones['VOIREFCLEPOST']),
|
||||
'secteur' => @trim($tabZones['SECTEUR']),
|
||||
'cleRoutage' => @trim($tabZones['CLER']),
|
||||
'cpx' => @trim($tabZones['CPX']),
|
||||
'cleAd' => @trim($tabZones['CLEAD']),
|
||||
'codPaysIso2' => @trim($tabZones['NATREFISO2']),
|
||||
'codPaysIso3' => @trim($tabZones['NATREFISO3']),
|
||||
'libPays' => @trim($tabZones['NATREFLIB']),
|
||||
'codeInsee' => @trim($tabZones['LOCREFCLEO']),
|
||||
'source' => 'Amabis',
|
||||
);
|
||||
$iDb->insert('zonage', $tabInsert);
|
||||
$dateInsert=0;
|
||||
if ($majForcee) {
|
||||
$adresseL=addslashes($adresse);
|
||||
$villeL=addslashes($ville);
|
||||
|
||||
$ret=$iDb->select('zonage', 'dateInsert*1 as dateInsert', "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
|
||||
$dateInsert=@$ret[0]['dateInsert']*1;
|
||||
$iDb->update('zonage', array_merge($tabUpdate,array('dateInsert'=>$dateInsert)), "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
|
||||
echo "Mise à jour de l'adresse du $dateInsert pour address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'".EOL;
|
||||
}
|
||||
|
||||
if ($dateInsert==0) {
|
||||
$iDb->insert('zonage', array_merge($tabInsert,$tabUpdate), false);
|
||||
//echo "Insertion de l'adresse (".$zones['rnvpStatut'].")!".EOL;
|
||||
}
|
||||
|
||||
$tabTmp[0]=explode(',', $tabZones['LOCREFCLEP']);
|
||||
$tabTmp[1]=explode(',', $tabZones['LOCREFCP']);
|
||||
$tabTmp[2]=explode(',', $tabZones['LOCREFTYPP']);
|
||||
$tabTmp[3]=explode(',', $tabZones['LOCREFLIBD']);
|
||||
$tabTmp[4]=explode(',', $tabZones['LOCREFLIBD2']);
|
||||
foreach($tabTmp[0] as $iCleP=>$cleP) {
|
||||
$tabInsert=array(
|
||||
'codeInsee' => @trim($tabZones['LOCREFCLEO']),
|
||||
'villeLib' => @trim($tabZones['LOCREFLIBP']),
|
||||
'villePopu' => @trim($tabZones['LOCREFPOP']),
|
||||
'cleAchPost'=> $cleP,
|
||||
'codePostal'=> $tabTmp[1][$iCleP],
|
||||
'typePostal'=> $tabTmp[2][$iCleP],
|
||||
'libAchP32' => @preg_replace('/^\//','',$tabTmp[3][$iCleP]),
|
||||
'libAchP38' => @preg_replace('/^\//','',$tabTmp[4][$iCleP]),
|
||||
'source' => 'Amabis',
|
||||
'dateInsert'=> date('YmdHis'),
|
||||
);
|
||||
$iDb->insert('villesCP', $tabInsert, false);
|
||||
//echo mysql_error().EOL;
|
||||
}
|
||||
|
||||
/** Autres Informations de la RNVP
|
||||
**/
|
||||
if ($rnvp || $debug) {
|
||||
$tabRepTmp=array();
|
||||
$tabZones=explode(',',$rep['objdesc']);
|
||||
foreach ($tabZones as $zone) {
|
||||
$tabTmp=explode('=',$zone);
|
||||
if (trim($tabTmp[0])<>'')
|
||||
$tabRepTmp[$tabTmp[0]]=$tabTmp[1];
|
||||
}
|
||||
if (!$debug) {
|
||||
$tabRep['ADR1']=@$tabRepTmp['ADR1'];
|
||||
$tabRep['ADR2']=@$tabRepTmp['ADR2'];
|
||||
$tabRep['ADR3']=@$tabRepTmp['ADR3'];
|
||||
$tabRep['ADR4']=@$tabRepTmp['ADR4'];
|
||||
$tabRep['ADR5']=@$tabRepTmp['ADR5'];
|
||||
$tabRep['ADR6']=@$tabRepTmp['ADR6'];
|
||||
$tabRep['ADR7']=@$tabRepTmp['ADR7'];
|
||||
} else {
|
||||
$tabRep=array_merge($tabRep, $tabRepTmp);
|
||||
}
|
||||
**/
|
||||
if ($rnvp) {
|
||||
//$tabRep['ADR1']=@trim($tabZones['ADR1']);
|
||||
//$tabRep['ADR2']=@trim($tabZones['ADR2']);
|
||||
$tabRep['ADR3']=@trim($tabZones['ADR3']);
|
||||
$tabRep['ADR4']=@trim($tabZones['ADR4']);
|
||||
$tabRep['ADR5']=@trim($tabZones['ADR5']);
|
||||
$tabRep['ADR6']=@trim($tabZones['ADR6']);
|
||||
$tabRep['ADR7']=trim($tabZones['ADR7']);
|
||||
}
|
||||
} catch (SoapFault $fault) {
|
||||
echo 'ERREUR SOAP :'.EOL;
|
||||
@ -184,6 +282,9 @@ class MAmabis {
|
||||
}
|
||||
//return $tabRep;
|
||||
}
|
||||
|
||||
/** Zonages AFR et ZRR
|
||||
**/
|
||||
$codeInsee=substr($codeRivoli,0,5);
|
||||
$ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
|
||||
$tabRep['ZRR']=$tabRep['AFR']='NON';
|
||||
@ -218,6 +319,399 @@ class MAmabis {
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @todo Corriger les adresses présentes dans CEDEXA (toutes les lignes)
|
||||
* @todo Ligne 3, acheter HEXALIGNE3
|
||||
*/
|
||||
function normaliseAdresse($adrL1, $adrL2, $adrL3, $adrL4, $adrL5, $adrL6, $adrL7='', $norme=38, $debug=true) {
|
||||
if ($norme<>32 && $norme<>38) {
|
||||
return 'La norme doit être 32 ou 38 caractères (38 par défaut)'.EOL;
|
||||
}
|
||||
|
||||
$iInsee=new MInsee();
|
||||
$iDb=new WDB('villes');
|
||||
$adrL=array();
|
||||
$adrL[1]=$adrL1=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL1)))));
|
||||
$adrL[2]=$adrL2=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL2)))));
|
||||
$adrL[3]=$adrL3=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL3)))));
|
||||
$adrL[4]=$adrL4=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL4)))));
|
||||
$adrL[5]=$adrL5=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL5)))));
|
||||
$adrL[6]=$adrL6=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL6)))));
|
||||
$adrL[7]=$adrL7=trim(preg_replace('/\s+/',' ',preg_replace('/[^a-z\d ]/i', ' ', strtoupper(trimAccent($adrL7)))));
|
||||
if ($adrL7<>'' || $adrL7<>'FRANCE' || $adrL7<>'MONACO')
|
||||
|
||||
$L1=$adrL1;
|
||||
$L2=$adrL2;
|
||||
|
||||
// Ligne 3, acheter HEXALIGNE3
|
||||
$L3=$adrL3;
|
||||
|
||||
// Ligne 5 et 7 par défaut
|
||||
$L7=$adrL7;
|
||||
$L5=$adrL5;
|
||||
|
||||
// Ligne 6 : CP + Localité
|
||||
$idAdr56=false;
|
||||
$tabAdr56k=$tabAdr56L=array();
|
||||
$cp=substr(trim($adrL6),0,5);
|
||||
$cp2=substr($cp,0,2);
|
||||
$ville=trim(strtr(substr($adrL6,5),array(' SAINT '=>' ST ',' SAINTE '=>' STE ')));
|
||||
$ret=$iDb->select( 'hexaviaVilles',
|
||||
"idAdr56, codeInseeCom, libCom$norme, codeInseeGlobal, indPluridis, libLigne5n$norme, indRoudis, codePostal, libLigne6n$norme, codeInseePre, codeMaj$norme, dateMaj$norme, MATCH (codePostal, libCom38) AGAINST ('$cp $ville' IN NATURAL LANGUAGE MODE) AS score",
|
||||
"(MATCH (codePostal, libCom38) AGAINST ('$cp $ville' IN NATURAL LANGUAGE MODE) OR MATCH (codePostal, libCom38) AGAINST ('$cp2 $ville' IN NATURAL LANGUAGE MODE)) ORDER BY score DESC /*OR codePostal='$cp' AND libCom$norme='$ville'*/",false, MYSQL_ASSOC);
|
||||
$nbRet=count($ret);
|
||||
if ($nbRet==0) return 'Aucune correspondance CP VILLE'.EOL;
|
||||
else {
|
||||
foreach($ret as $i=>$iRet) {
|
||||
if ($debug) echo "je compare '$cp' avec '".$iRet['codePostal']."' et '$ville' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].")".EOL;
|
||||
if (($iRet['codePostal']==$cp || substr($iRet['codePostal'],0,2)==$cp2) && ($iRet["libCom$norme"]==$ville || preg_replace('/ 0/', ' ',$iRet["libCom$norme"])==$ville) || (strpos($iRet["libCom$norme"],$ville)>0 && $nbRet==1)) {
|
||||
$idAdr56=$iRet['idAdr56'];
|
||||
$dateMajHexavia=$iRet["dateMaj$norme"];
|
||||
$hexaViaComCod=$iRet['codeInseeCom'];
|
||||
$hexaViaComLib=$iRet["libCom$norme"];
|
||||
$hexaViaCP=$iRet['codePostal'];
|
||||
$L5=$iRet["libLigne5n$norme"];
|
||||
$L6=$iRet['codePostal'].' '.$iRet["libLigne6n$norme"];
|
||||
$L7='';
|
||||
$tabAdr56k[]=$idAdr56;
|
||||
$tabAdr56L['_'.$idAdr56]=array('L5'=>$L5,'L6'=>$L6,'L7'=>$L7,);
|
||||
//break;
|
||||
}
|
||||
}
|
||||
if (!$idAdr56) {
|
||||
$iRet=$ret[0];
|
||||
if ($debug) echo "On prend le score le + élevé s'il est > à 15 : je compare '$cp' avec '".$iRet['codePostal']."' et '$ville' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].")".EOL;
|
||||
echo '['.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$iRet["libCom$norme"])) .'-v/s-'.trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$ville)).']'.EOL;
|
||||
if (($iRet['codePostal']==$cp || substr($iRet['codePostal'],0,2)==$cp2) && ($iRet["libCom$norme"]==$ville || (substr(trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$iRet["libCom$norme"])),0,26)==trim(preg_replace('/ (1ER|2EME|3EME|\d+)/', ' ',$ville)) && $iRet['score']>17) || (strpos($iRet["libCom$norme"],$ville)>0 && $nbRet==1))) {
|
||||
$idAdr56=$iRet['idAdr56'];
|
||||
$dateMajHexavia=$iRet["dateMaj$norme"];
|
||||
$hexaViaComCod=$iRet['codeInseeCom'];
|
||||
$hexaViaComLib=$iRet["libCom$norme"];
|
||||
$hexaViaCP=$iRet['codePostal'];
|
||||
$L5=$iRet["libLigne5n$norme"];
|
||||
$L6=$iRet['codePostal'].' '.$iRet["libLigne6n$norme"];
|
||||
$L7='';
|
||||
$tabAdr56k[]=$idAdr56;
|
||||
$tabAdr56L['_'.$idAdr56]=array('L5'=>$L5,'L6'=>$L6,'L7'=>$L7,);
|
||||
} else {
|
||||
print_r($ret);
|
||||
die('Plusieurs correspondances CP VILLE'.EOL);
|
||||
return 'Plusieurs correspondances CP VILLE'.EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*if (count($ret)>1) {
|
||||
print_r($ret);
|
||||
die('Plusieurs correspondances CP VILLE'.EOL);
|
||||
return 'Plusieurs correspondances CP VILLE'.EOL;
|
||||
}
|
||||
elseif (count($ret)==1) {
|
||||
$ret=$ret[0];
|
||||
$idAdr56=$ret['idAdr56'];
|
||||
$L5=$ret["libLigne5n$norme"];
|
||||
$L6=$ret['codePostal'].' '.$ret["libLigne6n$norme"];
|
||||
$L7='';
|
||||
}*/
|
||||
|
||||
// Ligne 4 :
|
||||
$matriculeHexavia=false;
|
||||
if(preg_match('/(^(\d{0,4})\s?([a-z]{0,1}))\s(.*)$/i', $adrL4, $matches)) {
|
||||
$numVoieRep=$matches[1];
|
||||
$numVoie=$matches[2];
|
||||
$indRep=$matches[3];
|
||||
$libVoie=$matches[4];
|
||||
$libVoie5=substr($libVoie,0,5);
|
||||
$tabAdr=$iInsee->structureVoie($libVoie);
|
||||
$typeVoie=@$tabAdr['typeVoie'];
|
||||
preg_match('/([a-z\d]{1,20})$/i', $libVoie, $matches2);
|
||||
$derMot=$matches2[1];
|
||||
$derMot5=substr($derMot,0,5);
|
||||
//print_r($matches);
|
||||
//die($derMot);
|
||||
//foreach($tabAdr56 as $k=>$tabAdr56) //=array('idAdr56'=>$idAdr56,'L5'=>$L5,'L6'=>$L6,'L7'=>$L7,);
|
||||
$strAdr56=implode("','", $tabAdr56k);
|
||||
$ret=$iDb->select( 'hexaviaVoies',
|
||||
"idAdr56, codeVoie, derElemVoie, libVoie$norme, typeVoie, descLibVoie, indStand$norme, indScind, indHomo, codePostal, codeRoudis, codeMaj$norme, dateMaj$norme
|
||||
numImpMin, numImpMinExt, numImpMax, numImpMaxExt, numPairMin, numPairMinExt, numPairMax, numPairMaxExt, MATCH (libVoie38) AGAINST ('$libVoie' IN NATURAL LANGUAGE MODE) AS score",
|
||||
// "idAdr56='$idAdr56' AND (MATCH (libVoie38) AGAINST ('$libVoie' IN NATURAL LANGUAGE MODE) OR libVoie38 LIKE '$libVoie5%' OR derElemVoie LIKE '$libVoie5%')/*AND typeVoie='$typeVoie' AND derElemVoie='$derMot'*/",false, MYSQL_ASSOC);
|
||||
"idAdr56 IN ('$strAdr56') AND (MATCH (libVoie38) AGAINST ('$libVoie' IN NATURAL LANGUAGE MODE) OR libVoie38 LIKE '$libVoie5%' OR derElemVoie LIKE '$libVoie5%')/*AND typeVoie='$typeVoie' AND derElemVoie='$derMot'*/",false, MYSQL_ASSOC);
|
||||
$nbRet=count($ret);
|
||||
if ($nbRet==0) {
|
||||
// Vérifier si la commune à des voies normées 98816
|
||||
$ret=$iDb->select( 'hexaviaVoies', "codeVoie", "idAdr56 IN('$strAdr56')",false, MYSQL_ASSOC);
|
||||
$nbVoiesCom=count($ret);
|
||||
if (count($ret)==0) {
|
||||
return "Aucune Voie recensée dans cette commune ('$strAdr56') !".EOL;
|
||||
}
|
||||
return "Aucune correspondance Voie pour '$adrL4', '$libVoie' ($nbVoiesCom voies dans la commune #$idAdr56)".EOL;
|
||||
}
|
||||
else {
|
||||
foreach($ret as $i=>$iRet) {
|
||||
if ($debug) echo "je compare '$libVoie' avec '".$iRet["libVoie$norme"]."'".EOL;
|
||||
if ($iRet["libVoie$norme"]==$libVoie || $iRet['derElemVoie']==$derMot || /*substr($iRet["libVoie$norme"],0,5)==$libVoie5 || */substr($iRet['derElemVoie'],0,5)==$derMot5) {
|
||||
$tabAdr=$iInsee->structureVoie($libVoie);
|
||||
if ($tabAdr['typeVoie']<>$iRet['typeVoie'] && $nbRet>1) continue;
|
||||
$idAdr56=$iRet['idAdr56'];
|
||||
$L4=preg_replace('/\s+/', ' ', trim($numVoie.' '.$indRep.' '.$iRet["libVoie$norme"]));
|
||||
$L4=preg_replace('/^0+/','',$L4);
|
||||
$hexaViaVoie=$iRet["libVoie$norme"];
|
||||
if (strlen($L4)>$norme) return "Taille de la ligne 4 générée en sortie plus longue que $norme !".EOL;
|
||||
$matriculeHexavia=$iRet['codeVoie'];
|
||||
$codeRoudis=$iRet['codeRoudis'];
|
||||
$L5=$tabAdr56L['_'.$idAdr56]['L5'];
|
||||
$L6=$tabAdr56L['_'.$idAdr56]['L6'];
|
||||
$L7=$tabAdr56L['_'.$idAdr56]['L7'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$matriculeHexavia) {
|
||||
print_r($ret);
|
||||
echo ("Plusieurs correspondances Voies pour $adrL4 $adrL6 dans cette commune ('$strAdr56') !".EOL);
|
||||
//die("Plusieurs correspondances Voies pour $adrL4 $adrL6 dans cette commune ('$strAdr56') !".EOL);
|
||||
return 'Plusieurs correspondances Voies'.EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
if (count($ret)==0) {
|
||||
// Vérifier si la commune à des voies normées 98816
|
||||
$ret=$iDb->select( 'hexaviaVoies', "codeVoie", "idAdr56='$idAdr56'",false, MYSQL_ASSOC);
|
||||
if (count($ret)==0) {
|
||||
return 'Aucune Voie recensée dans cette commune !'.EOL;
|
||||
}
|
||||
return 'Aucune correspondance Voie'.EOL;
|
||||
}
|
||||
elseif (count($ret)>1) {
|
||||
print_r($ret);
|
||||
$tabAdr=$iInsee->structureVoie($libVoie);
|
||||
print_r($tabAdr);
|
||||
return 'Plusieurs correspondances Voies'.EOL;
|
||||
}
|
||||
elseif (count($ret)==1) {
|
||||
$ret=$ret[0];
|
||||
$L4=preg_replace('/\s+/', ' ', trim($numVoie.' '.$indRep.' '.$ret["libVoie$norme"]));
|
||||
if (strlen($L4)>$norme) return "Taille de la ligne 4 générée en sortie plus longue que $norme !".EOL;
|
||||
$matriculeHexavia=$ret['codeVoie'];
|
||||
$codeRoudis=$ret['codeRoudis'];
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if (!$matriculeHexavia && @strlen($L4)==0) $L4=$adrL4;
|
||||
|
||||
|
||||
$tabLen=$tabMaxLen=array();
|
||||
$tabLen[1]=strlen($L1);
|
||||
if ($tabLen[1]>$norme) {
|
||||
$L1=$this->normaliseRS($L1, $norme);
|
||||
$tabLen[1]=strlen($L1); if ($tabLen[1]>$norme) $tabMaxLen[]=1;
|
||||
}
|
||||
$tabLen[2]=strlen($L2);
|
||||
if ($tabLen[2]>$norme) {
|
||||
$L2=$this->normaliseRS($L2, $norme);
|
||||
$tabLen[2]=strlen($L2); if ($tabLen[2]>$norme) $tabMaxLen[]=2;
|
||||
}
|
||||
$tabLen[3]=strlen($L3);
|
||||
if ($tabLen[3]>$norme) {
|
||||
$L3=$this->normaliseRS($L3, $norme);
|
||||
$tabLen[3]=strlen($L3); if ($tabLen[3]>$norme) $tabMaxLen[]=3;
|
||||
}
|
||||
$tabLen[4]=strlen($L4); if ($tabLen[4]>$norme) $tabMaxLen[]=4;
|
||||
$tabLen[5]=strlen($L5); if ($tabLen[5]>$norme) $tabMaxLen[]=5;
|
||||
$tabLen[6]=strlen($L6); if ($tabLen[6]>$norme) $tabMaxLen[]=6;
|
||||
$tabLen[7]=strlen($L7); if ($tabLen[7]>$norme) $tabMaxLen[]=7;
|
||||
if (count($tabMaxLen)>0) {
|
||||
foreach($tabMaxLen as $j) {
|
||||
echo "La ligne n°$j fait ".$tabLen[$j]." caractères : '".$adrL[$j]."'".EOL;
|
||||
}
|
||||
if ($j>1) die("Une des lignes fait plus de $norme caractères !".EOL);
|
||||
return "Une des lignes fait plus de $norme caractères !".EOL;
|
||||
}
|
||||
|
||||
$tabAdr=array( 'L1'=>$L1,
|
||||
'L2'=>$L2,
|
||||
'L3'=>$L3,
|
||||
'L4'=>$L4,
|
||||
'L5'=>$L5,
|
||||
'L6'=>$L6,
|
||||
'L7'=>$L7,
|
||||
'HexaviaDateRef'=>$dateMajHexavia,
|
||||
'HexaviaComCod'=>$hexaViaComCod,
|
||||
'HexaviaComLib'=>$hexaViaComLib,
|
||||
'HexaviaCP'=>$hexaViaCP,
|
||||
'HexaVia56'=>$idAdr56,
|
||||
'HexaViaVoie'=>$hexaViaVoie,
|
||||
'HexaViaMat'=>$matriculeHexavia,
|
||||
'RoudisId'=>$codeRoudis);
|
||||
return $tabAdr;
|
||||
/*
|
||||
if ($adresseNum=='' && $adresseBtq=='' && $adresseVoie=='' && $adresseRue=='' && $cp=='' && $ville=='')
|
||||
return false;
|
||||
|
||||
$tabAdr=$this->structureVoie($adresseNum.' '.$adresseBtq.' '.$adresseVoie.' '.$adresseRue);
|
||||
$num=$tabAdr['num']*1;
|
||||
if ($num==0) return false;
|
||||
$indRep=trim($tabAdr['indRep']);
|
||||
$typeVoie=trim($tabAdr['typeVoie']);
|
||||
$libVoie=trim(substr($tabAdr['libVoie'],-5));
|
||||
|
||||
$strAdrActive='';
|
||||
if ($active) {
|
||||
$strAdrActive.=" AND (enActif=1 OR etActif=1) AND nbEntrep>30 AND pasEntrepDom=0 AND siren>1000 ";
|
||||
}
|
||||
$tabTmp=$this->iDb->select('tabAdrDom',
|
||||
'id, siren, nic, enActif, etActif, procol, nom, nom2, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, adrComp, adrDistSp, cj, apen, apet, nbEntrep, dateInsert, dateUpdate',
|
||||
"adrNum=$num AND adrBtq='$indRep' AND adrTypVoie LIKE '%$typeVoie%' AND adrLibVoie LIKE '%$libVoie%' AND cp=$cp $strAdrActive GROUP BY siren ORDER BY enActif DESC, nbEntrep DESC", false, MYSQL_ASSOC);
|
||||
if (count($tabTmp)>0) {
|
||||
return $tabTmp;
|
||||
}
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Retourne le tableau des abbréviations existantes par type d'abréviation
|
||||
*/
|
||||
function getAbreviations($typeAbrev) {
|
||||
$iDb=new WDB('villes');
|
||||
$tabRet=array();
|
||||
if ($typeAbrev=='P') {
|
||||
$ret=$iDb->select( 'tabPrenoms',
|
||||
"prenom",
|
||||
"LENGTH(prenom)>3 AND nbTot>0 ORDER BY LENGTH(prenom) DESC",false, MYSQL_ASSOC);
|
||||
foreach($ret as $iRet) {
|
||||
$tabTmp=explode('-',$iRet['prenom']);
|
||||
$tabTmp2=array();
|
||||
foreach($tabTmp as $subPrenom)
|
||||
$tabTmp2[]=substr($subPrenom,0,1);
|
||||
$tabRet[$iRet['prenom']]=implode('-', $tabTmp2);
|
||||
}
|
||||
} else {
|
||||
$ret=$iDb->select( 'tabAbreviations',
|
||||
"abrCode, abrLib",
|
||||
"abrType='$typeAbrev' AND dateSuppr=0 AND idSuppr=0 ORDER BY LENGTH(abrLib) DESC, LENGTH(abrCode) ASC",false, MYSQL_ASSOC);
|
||||
foreach($ret as $iRet) {
|
||||
$tabTmp=explode('/', $iRet['abrLib']);
|
||||
foreach($tabTmp as $abrLib) {
|
||||
if ($typeAbrev=='A')
|
||||
$tabRet[$abrLib]='';
|
||||
else
|
||||
$tabRet[$abrLib]=$iRet['abrCode'];
|
||||
}
|
||||
}
|
||||
}
|
||||
//print_r($tabRet);die();
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
/** Normalise une raison sociale ou un nom
|
||||
**/
|
||||
function normaliseRS($nomLong, $taille=38) {
|
||||
$nomCourt=preg_replace('/[^A-Z0-9%\'\"\-&\*\/\s]/','',trim(strtoupper($nomLong)));
|
||||
$tabMots=split("[^[:alpha:]]+", $nomCourt);
|
||||
$passage=0;
|
||||
echo $nomCourt.EOL;
|
||||
while (strlen($nomCourt)>$taille) {
|
||||
// 1. Remplacement des Libellés de Voies par leurs code Voie
|
||||
$tabTmp=$this->getAbreviations('V');
|
||||
foreach ($tabTmp as $lib=>$abr) {
|
||||
$nomCourt=trim(str_replace(" $lib".'ES ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib".'E ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib".'S ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
}
|
||||
echo "1-Voies=$nomCourt".EOL;
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
|
||||
//print_r($tabMots);
|
||||
// 2. Remplacement des Titres par leurs abréviation
|
||||
$tabTmp=$this->getAbreviations('T');
|
||||
foreach ($tabTmp as $lib=>$abr) {
|
||||
$nomCourt=trim(str_replace(" $lib".'ES ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib".'E ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib".'S ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
}
|
||||
echo "2a-Titres=$nomCourt".EOL;
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
|
||||
// 2. Remplacement des Formes Juridiques
|
||||
$tabTmp=$this->getAbreviations('J');
|
||||
foreach ($tabTmp as $lib=>$abr)
|
||||
$nomCourt=trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
|
||||
echo "2b-FJ=$nomCourt".EOL;
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
|
||||
// 4. Suppression des articles
|
||||
$tabTmp=$this->getAbreviations('A');
|
||||
foreach ($tabTmp as $lib=>$abr) {
|
||||
if (strpos($lib,"'")>0)
|
||||
$nomCourt=trim(str_replace(' '.$lib, ' ', " $nomCourt "));
|
||||
else
|
||||
$nomCourt=trim(str_replace(" $lib ", ' ', " $nomCourt "));
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
}
|
||||
echo "4-Articles=$nomCourt".EOL;
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
|
||||
// 3. Remplacement des Prénoms par leurs initiales
|
||||
$tabTmp=$this->getAbreviations('P');
|
||||
foreach ($tabTmp as $lib=>$abr) {
|
||||
$nomCourt=trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
}
|
||||
echo "3-Prenoms=$nomCourt".EOL;
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
|
||||
$tabTmp=$this->getAbreviations('N');
|
||||
foreach ($tabTmp as $lib=>$abr) {
|
||||
$nomCourt=trim(str_replace(" $lib".'ES ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib".'E ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib".'S ', ' '.$abr.' ', " $nomCourt "));
|
||||
$nomCourt=trim(str_replace(" $lib ", ' '.$abr.' ', " $nomCourt "));
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
}
|
||||
echo "5-Autres Noms=$nomCourt".EOL;
|
||||
if (strlen($nomCourt)<=$taille) break;
|
||||
|
||||
$nomCourt=substr($nomCourt,0,$taille);
|
||||
//die($nomCourt);
|
||||
/** @todo A finir
|
||||
Tronquer ou abréger dans cette ordre
|
||||
- type de voie
|
||||
- titres
|
||||
- initiale du prénom
|
||||
- supprimez les articles (mais pas les particules dans un nom propre)
|
||||
- tronquer à 4 caractères les types de voie non normalisés
|
||||
- tronquer les extensions de voie
|
||||
- réduire le nom de la voie en supprimant les mots de la gauche vers la droite
|
||||
|
||||
Gérer les pluriels pour les voies, nom, titres, et formes juridiques
|
||||
**/
|
||||
$passage++;
|
||||
}
|
||||
return $nomCourt;
|
||||
}
|
||||
|
||||
|
||||
// Code Insee de la commune libCom32 Libellé de la commune (Ancienne norme 32) libCom38 Libellé
|
||||
function getLibCommune($codeInsee, $norme=38) {
|
||||
if ($norme<>32 && $norme<>38) {
|
||||
return 'La norme doit être 32 ou 38 caractères (38 par défaut)'.EOL;
|
||||
}
|
||||
|
||||
$iDb=new WDB('villes');
|
||||
$ret=$iDb->select( 'hexaviaVilles',
|
||||
"libCom32 , libCom38",
|
||||
"codeInseeCom='$codeInsee' LIMIT 0,1",false, MYSQL_ASSOC);
|
||||
$nbRet=count($ret);
|
||||
if ($nbRet==0) return 'Aucune correspondance VILLE'.EOL;
|
||||
|
||||
if ($norme==32) return $ret[0]['libCom32'];
|
||||
return $ret[0]['libCom38'];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user