Update librairies
This commit is contained in:
parent
f6e0d6cad8
commit
74788d6979
@ -460,6 +460,32 @@ class MInsee
|
||||
'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement',
|
||||
'i780'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire',
|
||||
'i781'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire 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',
|
||||
);
|
||||
|
||||
private $tabEvenInsee = array(
|
||||
@ -2618,9 +2644,9 @@ class MInsee
|
||||
}
|
||||
}
|
||||
|
||||
if ($tabInsee['CIVILITE']==1) $dir1Genre='M';
|
||||
elseif ($tabInsee['CIVILITE']==2) $dir1Genre='F';
|
||||
else $dir1Genre='';
|
||||
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'],
|
||||
@ -2737,40 +2763,40 @@ class MInsee
|
||||
'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,
|
||||
'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'], //
|
||||
'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'], //
|
||||
'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,
|
||||
'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,
|
||||
);
|
||||
|
||||
/** Estimation du Chiffre d'affaires **/
|
||||
@ -2903,6 +2929,11 @@ class MInsee
|
||||
//Situation Juridique
|
||||
if ($siren>100) {
|
||||
$tabProcol = $this->getAnnoncesLegales($siren, 0, 'P', false);
|
||||
$tabDates=array();
|
||||
foreach ($tabProcol as $iProcol=>$procol)
|
||||
$tabDates[]=$procol['dateJugement'];
|
||||
rsort($tabDates);
|
||||
$dateProcol=str_replace('-','',$tabDates[0])*1;
|
||||
if ( count($tabProcol)>0 ) {
|
||||
|
||||
if ($this->dureePlan>0 && date('Ymd')<$this->finPlan) {
|
||||
@ -2920,7 +2951,7 @@ class MInsee
|
||||
else {
|
||||
$tabRet['SituationJuridique']='P';
|
||||
}
|
||||
//file_put_contents('test.log', $this->dureePlan."-".$this->finPlan." Situtation Juridique : ".$tabRet['SituationJuridique']);
|
||||
//file_put_contents('test.log', $this->dureePlan."-".$this->finPlan." Situtation Juridique : ".$tabRet['SituationJuridique']);
|
||||
$tabTmp = $this->iDb->select('scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", false, MYSQL_ASSOC);
|
||||
if( count($tabTmp) > 0 ) {
|
||||
if ($tabTmp[0]['scoreSolv']>0) {
|
||||
@ -2968,7 +2999,7 @@ class MInsee
|
||||
if ($tabInsee['CIVILITE']>0 && $tabRet['dir1NomPrenom']=='') {
|
||||
if ($tabInsee['CIVILITE']==1) { $tabRet['dir1NomPrenom']='M. '; $tabRet['dir1Genre']='M'; }
|
||||
elseif ($tabInsee['CIVILITE']==2) { $tabRet['dir1NomPrenom']='Mme '; $tabRet['dir1Genre']='F'; }
|
||||
else $tabRet['dir1Genre']='';
|
||||
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']='';
|
||||
$tabRet['dir1NomPrenom'].=$tabInsee['NOM'];
|
||||
}
|
||||
|
||||
@ -2977,9 +3008,9 @@ class MInsee
|
||||
$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';
|
||||
else $tabRet['dir1Genre']='';
|
||||
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);
|
||||
@ -3165,9 +3196,9 @@ class MInsee
|
||||
$tabRet['dir'.$k.'Nom']=$ann['nom'];
|
||||
$tabRet['dir'.$k.'Prenom']=$ann['prenom'];
|
||||
if ($ann['civilite']=='M')
|
||||
$tabRet['dir'.$k.'Genre']='M';
|
||||
$tabRet['dir'.$k.'Genre']='M';
|
||||
elseif ($ann['civilite']=='MME' || $ann['civilite']=='MLLE')
|
||||
$tabRet['dir'.$k.'Genre']='F';
|
||||
$tabRet['dir'.$k.'Genre']='F';
|
||||
}
|
||||
$tabRet['dir'.$k.'DateFct']=$ann['dateEffet'];
|
||||
$tabRet['dir'.$k.'DateNaiss']=$ann['dateNaiss'];
|
||||
@ -3191,6 +3222,7 @@ class MInsee
|
||||
$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++;
|
||||
}
|
||||
@ -3306,7 +3338,7 @@ class MInsee
|
||||
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
||||
}
|
||||
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']));
|
||||
@ -3447,6 +3479,11 @@ class MInsee
|
||||
}
|
||||
}
|
||||
|
||||
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 &&
|
||||
@ -5207,7 +5244,8 @@ class MInsee
|
||||
|
||||
// On ne rafraichie que si demandé et
|
||||
// que la requête en base est trop ancienne et nscrl est vide ou tel ou web
|
||||
if (false && $refresh && $dateUpdate<$lastYear && ($idComp['nscrl']==0 || $idComp['tel']=='') ) {
|
||||
$refresh=false;
|
||||
if ($refresh && $refresh && $dateUpdate<$lastYear && ($idComp['nscrl']==0 || $idComp['tel']=='') ) {
|
||||
$timeout=20;
|
||||
// La mise à jour ne se fera pas si lastMAJ<365
|
||||
/*$strUpdate='AND (DATEDIFF(NOW(),dateUpdate)<365 OR (nscrl<>0 AND DATEDIFF(NOW(),dateUpdate)>0))';
|
||||
@ -5481,7 +5519,7 @@ class MInsee
|
||||
if ($ann['typeEven']==2102 || $ann['typeEven']==2100) $capital=true;
|
||||
else $capital=false;
|
||||
|
||||
if (trim($ann['strEven'])<>'') {
|
||||
if (trim($ann['strEven'])<>'') {
|
||||
foreach ($tabEven as $even) {
|
||||
$tabRetEven[]=array(
|
||||
'CodeEven'=>$even,
|
||||
@ -6183,8 +6221,21 @@ class MInsee
|
||||
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);
|
||||
@ -6195,20 +6246,26 @@ class MInsee
|
||||
$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;
|
||||
//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);
|
||||
}
|
||||
}
|
||||
@ -6219,21 +6276,24 @@ class MInsee
|
||||
'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);
|
||||
//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));
|
||||
|
@ -85,10 +85,7 @@ class MAmabis
|
||||
$tabRep['NCUCS']=$zones['cucs'];
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
/** Autres Informations de la RNVP
|
||||
**/
|
||||
/** Autres Informations de la RNVP **/
|
||||
if ($rnvp) {
|
||||
//$tabRep['ADR1']=@trim($tabZones['ADR1']);
|
||||
//$tabRep['ADR2']=@trim($tabZones['ADR2']);
|
||||
@ -161,7 +158,7 @@ class MAmabis
|
||||
'cucs'=>@$tabRep['NCUCS'],
|
||||
);
|
||||
$tabUpdate=array(
|
||||
'adrNum'=>$adrNum,
|
||||
'adrNum'=>$adrNum,
|
||||
'adrIndRep'=>$adrIndRep,
|
||||
'adrTypeVoie'=>$adrTypeVoie,
|
||||
'adrLibVoie'=>$adrLibVoie,
|
||||
@ -230,7 +227,7 @@ class MAmabis
|
||||
'source' => 'Amabis',
|
||||
'dateInsert'=> date('YmdHis'),
|
||||
);
|
||||
$iDb->insert('villesCP', $tabInsert);
|
||||
$iDb->insert('villesCP', $tabInsert, false);
|
||||
//echo mysql_error().EOL;
|
||||
}
|
||||
|
||||
@ -297,7 +294,7 @@ class MAmabis
|
||||
* @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) {
|
||||
function normaliseAdresse($adrL1, $adrL2, $adrL3, $adrL4, $adrL5, $adrL6, $adrL7='', $norme=38, $debug=false) {
|
||||
if ($norme<>32 && $norme<>38) {
|
||||
return 'La norme doit être 32 ou 38 caractères (38 par défaut)'.EOL;
|
||||
}
|
||||
@ -313,22 +310,6 @@ class MAmabis
|
||||
$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')
|
||||
$tabLen=$tabMaxLen=array();
|
||||
$tabLen[1]=strlen($adrL1); if ($tabLen[1]>$norme) $tabMaxLen[]=1;
|
||||
$tabLen[2]=strlen($adrL2); if ($tabLen[2]>$norme) $tabMaxLen[]=2;
|
||||
$tabLen[3]=strlen($adrL3); if ($tabLen[3]>$norme) $tabMaxLen[]=3;
|
||||
$tabLen[4]=strlen($adrL4); if ($tabLen[4]>$norme) $tabMaxLen[]=4;
|
||||
$tabLen[5]=strlen($adrL5); if ($tabLen[5]>$norme) $tabMaxLen[]=5;
|
||||
$tabLen[6]=strlen($adrL6); if ($tabLen[6]>$norme) $tabMaxLen[]=6;
|
||||
$tabLen[7]=strlen($adrL7); if ($tabLen[7]>$norme) $tabMaxLen[]=7;
|
||||
if (count($tabMaxLen)>0) {
|
||||
//print_r($tabLen);
|
||||
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;
|
||||
}
|
||||
|
||||
$L1=$adrL1;
|
||||
$L2=$adrL2;
|
||||
@ -348,12 +329,12 @@ class MAmabis
|
||||
$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)) /*OR codePostal='$cp' AND libCom$norme='$ville'*/",false, MYSQL_ASSOC);
|
||||
"(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) {
|
||||
//echo "je compare '$cp' avec '".$iRet['codePostal']."' et '$ville' avec '".$iRet["libCom$norme"]."' (".$iRet['idAdr56'].")".EOL;
|
||||
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"];
|
||||
@ -369,11 +350,27 @@ class MAmabis
|
||||
}
|
||||
}
|
||||
if (!$idAdr56) {
|
||||
//print_r($ret);
|
||||
//die('Plusieurs correspondances CP VILLE'.EOL);
|
||||
return 'Plusieurs correspondances CP VILLE'.EOL;
|
||||
}
|
||||
}
|
||||
$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;
|
||||
if ($debug) 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);
|
||||
@ -471,8 +468,38 @@ class MAmabis
|
||||
}
|
||||
*/
|
||||
|
||||
$tabAdr=array(
|
||||
'L1'=>$L1,
|
||||
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,
|
||||
@ -486,8 +513,10 @@ class MAmabis
|
||||
'HexaVia56'=>$idAdr56,
|
||||
'HexaViaVoie'=>$hexaViaVoie,
|
||||
'HexaViaMat'=>$matriculeHexavia,
|
||||
'RoudisId'=>$codeRoudis);
|
||||
return $tabAdr;
|
||||
'RoudisId'=>$codeRoudis
|
||||
);
|
||||
|
||||
return $tabAdr;
|
||||
/*
|
||||
if ($adresseNum=='' && $adresseBtq=='' && $adresseVoie=='' && $adresseRue=='' && $cp=='' && $ville=='')
|
||||
return false;
|
||||
@ -510,7 +539,150 @@ class MAmabis
|
||||
return $tabTmp;
|
||||
}
|
||||
*/
|
||||
return false;
|
||||
//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