annoncesInRubrique : methode recherche rubrique, evenements

This commit is contained in:
Michael RICOIS 2015-08-24 13:05:54 +00:00
parent fee5d07d37
commit ee1e16fc2f

View File

@ -4067,6 +4067,14 @@ class MInsee
return $tabRet;
}
/**
* Retourne le nombre d'annonces
* @param string $siren
* @param number $idAnnonce
* @param string $rubrique
* @param string $deleted
* @return int
*/
public function getAnnoncesLegalesCount($siren, $idAnnonce = 0, $rubrique = '', $deleted = false)
{
// --- Where Bodacc
@ -4112,9 +4120,10 @@ class MInsee
}
/**
*
* Where SQL
* @param string $type bodacc, histo
* @param mixed $rubrique
* @return boolean|string
*/
public function getAnnoncesLegalesRubrique($type, $rubrique = '')
{
@ -4232,22 +4241,34 @@ class MInsee
// --- Type annonce
if ($type == 'annonce') {
if ($rubrique=='P' ||
$rubrique=='PH') { // Procédure collective
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
$where = " AND a.typeEven BETWEEN 1000 AND 1999 AND a.typeEven NOT IN(1005, 1010, 1050, 1055, 1550) ";
} elseif ($rubrique=='D') { // Dissolution de la société
}
// Dissolution de la société
elseif ($rubrique=='D') {
$where = " AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) ";
} elseif ($rubrique=='A') { // Absorption
}
// Absorption
elseif ($rubrique=='A') {
$where = " AND a.typeEven IN (2720, 2721) ";
} elseif ($rubrique=='C' || $rubrique=='BODC') { // Dépôt des comptes
}
// Dépôt des comptes
elseif ($rubrique=='C' || $rubrique=='BODC') {
$where = " AND a.typeEven BETWEEN 3000 AND 3999 ";
} elseif ($rubrique=='R') {
$where = " AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) ";
} elseif ($rubrique=='L') { // Location gérance Locataire
}
// Location gérance Locataire
elseif ($rubrique=='L') {
$where = " AND a.typeEven IN (2800, 2875, 2880, 2881, 2885, 2840) ";
} elseif ($rubrique=='G') { // Location gérance Propriétaire
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
$where = " AND a.typeEven IN (2850, 2851, 2860, 2870) ";
} elseif ($rubrique=='V') { // Ventes/Cessions
}
// Ventes/Cessions
elseif ($rubrique=='V') {
$where = " AND a.typeEven IN (5500, 5501, 5502, 5503, 5510, 5600, 5650) ";
} elseif (is_array($rubrique) && count($rubrique)>0) {
$where = " AND (a.typeEven IN (".implode(',',$rubrique).') OR ';
@ -4265,6 +4286,236 @@ class MInsee
return $where;
}
/**
* Parse les annonces légales pour déterminer leur rubrique
* plus rapide d'executer sur la liste des annonces légales que d'executer les requetes SQL
* @param mixed $type
* @return array
* Retourne une liste filtrer suivant la/les rubriques
*/
public function annoncesInRubrique($annonces, $rubrique)
{
$annonceFilter = array();
foreach ($annonces as $ann) {
// --- Formatage bodacc
if ($ann['SourceTable'] == 'bodacc') {
$typeEven = explode(' ', $ann['typeEven']);
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
foreach($typeEven as $even) {
if ($ann['Rubrique'] == 'procol'
&& !in_array($even, array('1005','1010','1050','1055','1550'))) {
$annonceFilter[] = $ann;
}
}
}
// Dissolution de la société
elseif ($rubrique=='D') {
foreach($typeEven as $even) {
if (in_array($even, array('2202','2203','2204','2210','2211','2212'))) {
$annonceFilter[] = $ann;
}
}
}
// Absorption
elseif ($rubrique=='A') {
foreach($typeEven as $even) {
if (in_array($even, array('2720','2721'))) {
$annonceFilter[] = $ann;
}
}
}
// BODACC A
elseif ($rubrique=='BODA') {
if (in_array($ann['Rubrique'], array('creations', 'procol', 'ventes'))) {
$annonceFilter[] = $ann;
}
}
// BODACC B
elseif ($rubrique=='BODB') {
if (in_array($ann['Rubrique'], array('mmd', 'radiations'))) {
$annonceFilter[] = $ann;
}
}
// Dépôt des comptes, BODACC C
elseif ($rubrique=='C' || $rubrique=='BODC') {
foreach($typeEven as $even) {
if ($ann['Rubrique'] == 'comptes'
|| in_array($even, array('3100','3200','3300','3999'))) {
$annonceFilter[] = $ann;
}
}
} elseif ($rubrique=='R') {
foreach($typeEven as $even) {
if ($ann['Rubrique'] == 'radiations'
|| in_array($even, array('2202','2203','2204','2210','2211','2212'))) {
$annonceFilter[] = $ann;
}
}
}
// Location gérance Locataire
elseif ($rubrique=='L') {
foreach($typeEven as $even) {
if (in_array($even, array('2800','2875','2880','2881','2885','2840','4355'))) {
$annonceFilter[] = $ann;
}
}
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
foreach($typeEven as $even) {
if (in_array($even, array('2850','2851','2860','2870'))) {
$annonceFilter[] = $ann;
}
}
}
// Ventes/Cessions
elseif ($rubrique=='V') {
foreach($typeEven as $even) {
if (in_array($even, array('5500','5501','5502','5503','5510','5600','5650'))) {
$annonceFilter[] = $ann;
}
}
} elseif (is_array($rubrique) && count($rubrique) > 0) {
foreach ($rubrique as $codeEven) {
$tabTmp[] = $codeEven;
}
foreach($typeEven as $even) {
if (in_array($even, $tabTmp)) {
$annonceFilter[] = $ann;
}
}
}
}
// --- Formattage Histo
elseif ($ann['SourceTable'] == 'histo') {
if ($rubrique=='P') {
if ($ann['E1GSIR'] != 340460104 && $ann['CODEVE'] >= 50 && $ann['CODEVE'] <= 79 ) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='PH') {
if ($ann['CODEVE'] >= 50 && $ann['CODEVE'] <= 79 ) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='R') {
if ($ann['CODEVE'] >= 40 && $ann['CODEVE'] <= 42 ) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='L') {
if (in_array($ann['CODEVE'], array(37,42))) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='G') {
if ($ann['CODEVE'] == 38) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='BODA') {
if ($ann['JAL'] == 1) {
$annonceFilter[] = $ann;
}
}
elseif ($rubrique=='BODB') {
if ($ann['JAL'] == 200) {
$annonceFilter[] = $ann;
}
}
elseif (is_array($rubrique)) {
$tabCodEve = $tabCodRol = array();
foreach ($rubrique as $codeEvenTmp) {
$codRet=array_search($codeEvenTmp, $this->HistoRoleConvert); // Ne gère pas les ; de tabtmp2
if ($codRet) {
$tabCodRol[] = $codRet;
} else {
$tabCodEve[] = array_search($codeEvenTmp, $this->HistoEvenConvert)*1;
}
}
$where ='';
$tabCodEve = array_unique($tabCodEve);
$tabCodRol = array_unique($tabCodRol);
if (in_array($ann['CODEVE'], $tabCodEve) || in_array($ann['ROLE'], $tabCodRol)) {
$annonceFilter[] = $ann;
}
}
}
// --- Formattage Annonce
elseif ($ann['SourceTable'] == 'annonce') {
// Procédure collective
if ($rubrique=='P' || $rubrique=='PH') {
if ($ann['typeEven'] >= 1000 && $ann['typeEven'] <= 1999 && !in_array($ann['typeEven'], array('1005','1010','1050','1055','1550'))) {
$annonceFilter[] = $ann;
}
}
// Dissolution de la société
elseif ($rubrique=='D') {
if (in_array($ann['typeEven'], array('2202','2203','2204','2210','2211','2212'))) {
$annonceFilter[] = $ann;
}
}
// Absorption
elseif ($rubrique=='A') {
if (in_array($ann['typeEven'], array('2720','2721'))) {
$annonceFilter[] = $ann;
}
}
// Dépôt des comptes
elseif ($rubrique=='C' || $rubrique=='BODC') {
if ($ann['typeEven'] >= 3000 && $ann['typeEven'] <= 3999) {
$annonceFilter[] = $ann;
}
} elseif ($rubrique=='R') {
if (in_array($ann['typeEven'], array('2202','2203','2204','2210','2211','2212'))) {
$annonceFilter[] = $ann;
}
}
// Location gérance Locataire
elseif ($rubrique=='L') {
if (in_array($ann['typeEven'], array('2800','2875','2880','2881','2885','2840'))) {
$annonceFilter[] = $ann;
}
}
// Location gérance Propriétaire
elseif ($rubrique=='G') {
if (in_array($ann['typeEven'], array('2850','2851','2860','2870'))) {
$annonceFilter[] = $ann;
}
}
// Ventes/Cessions
elseif ($rubrique=='V') {
if (in_array($ann['typeEven'], array('5500','5501','5502','5503','5510','5600','5650'))) {
$annonceFilter[] = $ann;
}
} elseif (is_array($rubrique) && count($rubrique)>0) {
foreach ($rubrique as $codeEven) {
$tabTmp[] = $codeEven;
}
foreach($typeEven as $even) {
if (in_array($even, $tabTmp)) {
$annonceFilter[] = $ann;
}
}
}
}
}
return $annonceFilter;
}
/**
* Analyse les annonces légales pour déterminer si en plan
* @param string $type Type d'annonce bodacc|histo|annonces
* @param int $fj Code catégorie juridique
* @param array $annonce Une annonce
*/
public function getAnnoncesLegalesPlan($type, $fj, $annonce)
{
$classWDate = new WDate();
@ -5327,28 +5578,23 @@ class MInsee
*/
public function getAnnoncesBalo($siren, $idAnnonce=0, $offset=0, $lignes=100)
{
$siren=$siren*1;
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
$strIdAnn='';
$tabRet=array();
if ($idAnnonce>0) {
//$idBalo=//.$tabBalo['Num_Affaire'].','.$tabBalo['Num_Parution'];
$tmp=explode('.', $idAnnonce);
//if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0];
if (is_numeric($tmp[0])) $num=$tmp[0];
if (is_numeric($tmp[1])) $par=$tmp[1];
//$idBaloPdf=basename($tabBalo['Url_Annonce_Pdf']);
if (is_numeric($tmp[0])) $num=$tmp[0];
if (is_numeric($tmp[1])) $par=$tmp[1];
$strIdAnn=" AND Num_Affaire='$num' AND Num_Parution='$par' ";
//$idAnnonce
}
$mBalo = new MBalo();
$bodacc = $this->iDb->select('jo.balo',
"Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire LIMIT $offset, $lignes",
$bodacc = $this->iDb->select('jo.balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution,
Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert",
"Societe_Rcs='$siren' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire LIMIT $offset, $lignes",
false, MYSQL_ASSOC);
$k=0;
@ -5361,28 +5607,26 @@ class MInsee
);
$tabRet[$k]=array(
'id'=>$ann['Num_Affaire'].'.'.$ann['Num_Parution'],
'BodaccCode'=>'BALO',
'BodaccNum'=>$ann['Num_Parution'],
'NumAnnonce'=>$ann['Num_Affaire'],
'DateParution'=>$ann['Date_Parution'],
//'Departement'=>'',$ann['Tribunal_Dept'],
//'Tribunal'=>$ann['triNom'],
//'TribunalSiret'=>$ann['triSiret'],
//'Rubrique'=>$ann['Rubrique'],
'typeAnnonce'=>'Insertion',
'dateInsertionSD'=>$ann['dateInsert'],
'evenements'=>$tabRetEven,
'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']),
'id' => $ann['Num_Affaire'].'.'.$ann['Num_Parution'],
'BodaccCode' => 'BALO',
'BodaccNum' => $ann['Num_Parution'],
'NumAnnonce' => $ann['Num_Affaire'],
'DateParution' => $ann['Date_Parution'],
'typeAnnonce' => 'Insertion',
'dateInsertionSD' => $ann['dateInsert'],
'evenements' => $tabRetEven,
'Lien_Annonce_Pdf' => basename($ann['Url_Annonce_Pdf']),
);
if ($idAnnonce<>0)
$tabRet[$k]['texteAnnonce'] = strtr(
preg_replace('/<html.*<body.*>/Uis', '',
preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])),
array('&nbsp;'=>' ', '</html>'=>'', '</body>'=>'')
);
if ($idAnnonce<>0) {
$tabRet[$k]['texteAnnonce'] = strtr(
preg_replace('/<html.*<body.*>/Uis', '',
preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])),
array('&nbsp;'=>' ', '</html>'=>'', '</body>'=>'')
);
}
}
}
return $tabRet;
}
@ -5394,7 +5638,7 @@ class MInsee
public function getAnnoncesBaloCount($siren)
{
$bodacc = $this->iDb->select('jo.balo', "count(*) AS nb",
"Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC);
"Societe_Rcs='$siren' ORDER BY Date_Parution DESC, Num_Affaire", false, MYSQL_ASSOC);
$nb = 0;
if (count($bodacc)>0) {
$nb = $bodacc[0]['nb'];