Insee : siret associés, meilleur gestion du siret prédécesseur et successeur
This commit is contained in:
parent
cbf6a0d5f1
commit
acef060fc3
@ -6270,79 +6270,122 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
|
||||
return $ret[0]['insDATEVE'];
|
||||
}
|
||||
|
||||
/** Recherche les siret associés à un siret (successeur et/ou prédécesseur)
|
||||
**
|
||||
** @param integer $siren Siren de l'entreprise
|
||||
** @param integer $nic Nic de l'étabissement
|
||||
** @param integer $lien Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
|
||||
**/
|
||||
/**
|
||||
* Recherche les siret associés à un siret (successeur et/ou prédécesseur)
|
||||
* @param int $siren
|
||||
* Siren de l'entreprise
|
||||
* @param int $nic
|
||||
* Nic de l'étabissement
|
||||
* @param int $lien
|
||||
* Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
|
||||
*/
|
||||
public function getSiretAssoc($siren, $nic, $lien=0)
|
||||
{
|
||||
$tabRet=array();
|
||||
$ret=$this->iDb->select('insee.insee_even',
|
||||
$tabRet = array();
|
||||
$ret = $this->iDb->select('insee.insee_even',
|
||||
'LPAD(insSIREN,9,0) AS insSIREN, LPAD(insNIC,5,0) AS 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, 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.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);
|
||||
|
||||
if ( count($ret)>0 ) {
|
||||
$datePre = $dateSuc = 0;
|
||||
$nicPre = $nicSuc = 0;
|
||||
|
||||
if (count($ret) > 0) {
|
||||
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';
|
||||
if ($tabEve['sirVersion'] == 4) {
|
||||
if (in_array($tabEve['insEVE'], array('CTE','CTS','MTAE','MTAS'))) {
|
||||
$typeLien = 'suc';
|
||||
}
|
||||
elseif (in_array($tabEve['insEVE'], array('STE','STS','MTDE','MTDS'))) {
|
||||
$typeLien = 'pre';
|
||||
}
|
||||
else {
|
||||
$typeLien = 'ind';
|
||||
}
|
||||
} else {
|
||||
switch($tabEve['insTYPETAB']*1) {
|
||||
case 8:
|
||||
case 10:
|
||||
case 20:
|
||||
case 30:
|
||||
if ($lien==1) continue;
|
||||
$typeLien='pre';
|
||||
if ($lien == 1) continue;
|
||||
$typeLien = 'pre';
|
||||
break;
|
||||
case 9:
|
||||
case 11:
|
||||
case 21:
|
||||
case 31:
|
||||
if ($lien==-1) continue;
|
||||
$typeLien='suc';
|
||||
if ($lien == -1) continue;
|
||||
$typeLien = 'suc';
|
||||
break;
|
||||
default:
|
||||
switch($tabEve['insTRAN']) {
|
||||
case 'D': if ($lien==1) continue; $typeLien='pre'; break(2);
|
||||
case 'A': if ($lien==-1) continue; $typeLien='suc'; break(2);
|
||||
default : if ($lien<>0) continue; $typeLien='ind'; break;
|
||||
case 'D': if ($lien == 1) continue; $typeLien='pre'; break(2);
|
||||
case 'A': if ($lien == -1) continue; $typeLien='suc'; break(2);
|
||||
default : if ($lien != 0) continue; $typeLien='ind'; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$adr1=$tabEve['insL1_NOMEN'];
|
||||
if ($adr1==NULL) $adr1=$tabEve['insNOMEN'];
|
||||
$adr2=$tabEve['insL2_COMP'];
|
||||
if ($adr2==NULL) $adr2=$tabEve['insENSEIGNE'];
|
||||
$adr4=$tabEve['insL4_VOIE'];
|
||||
if ($adr4==NULL) $adr4=preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
|
||||
// Le NIC prédécesseur ne peut pas être le NIC actuel
|
||||
if ($nicPre > 0 && $nicPre == $tabEve['insNIC']) {
|
||||
continue;
|
||||
}
|
||||
// Le NIC successeur ne peut pas être le NIC actuel
|
||||
if ($nicSuc > 0 && $nicSuc == $tabEve['insNIC']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$tabRet[$typeLien]=array(
|
||||
'siren' => $tabEve['insSIREN'],
|
||||
// L'évènement successeur ne peut pas être antérieur au prédécesseur
|
||||
if ($dateSuc > 0 && $datePre > 0 && $dateSuc < $datePre) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Predecesseur et Successeur en mémoire
|
||||
if ($typeLien == 'pre') {
|
||||
$datePre = $tabEve['insDATEVE'];
|
||||
$nicPre = $tabEve['insNIC'];
|
||||
}
|
||||
if ($typeLien == 'suc') {
|
||||
$dateSuc = $tabEve['insDATEVE'];
|
||||
$nicSuc = $tabEve['insNIC'];
|
||||
}
|
||||
|
||||
// Data
|
||||
$adr1 = $tabEve['insL1_NOMEN'];
|
||||
if ($adr1 == null) {
|
||||
$adr1=$tabEve['insNOMEN'];
|
||||
}
|
||||
$adr2 = $tabEve['insL2_COMP'];
|
||||
if ($adr2 == null) {
|
||||
$adr2=$tabEve['insENSEIGNE'];
|
||||
}
|
||||
$adr4 = $tabEve['insL4_VOIE'];
|
||||
if ($adr4 == null) {
|
||||
$adr4 = preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.
|
||||
$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
|
||||
}
|
||||
|
||||
$tabRet[$typeLien] = array(
|
||||
'siren' => $tabEve['insSIREN'],
|
||||
'nic' => $tabEve['insNIC'],
|
||||
'apeEtab' => $tabEve['insAPET700'],
|
||||
'codeEve' => $tabEve['insEVE'],
|
||||
'dateEve' => $tabEve['insDATEVE'],
|
||||
'adrL1' => trim($adr1),
|
||||
'adrL2' => trim($adr2),
|
||||
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
|
||||
'adrL4' => trim($adr4),
|
||||
'adrL5' => trim($tabEve['insL5_DISP']),
|
||||
'adrL6' => trim($tabEve['insL6_POST']),
|
||||
'adrL7' => trim($tabEve['insL7_ETRG']),
|
||||
'adrL1' => trim($adr1),
|
||||
'adrL2' => trim($adr2),
|
||||
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
|
||||
'adrL4' => trim($adr4),
|
||||
'adrL5' => trim($tabEve['insL5_DISP']),
|
||||
'adrL6' => trim($tabEve['insL6_POST']),
|
||||
'adrL7' => trim($tabEve['insL7_ETRG']),
|
||||
'depCom' => $tabEve['insDEPCOM'],
|
||||
'rivoli' => $tabEve['insCODEVOIE'],
|
||||
'siege' => $tabEve['insSIEGE'],
|
||||
'siege' => $tabEve['insSIEGE'],
|
||||
'destinat' => $tabEve['insDESTINAT'],
|
||||
'typEtab' => $tabEve['insTYPETAB'],
|
||||
'origine' => $tabEve['insORIGINE'],
|
||||
// insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user