enrichissement/library/Metier/Partenaires/MPrivileges.php
2016-08-10 09:40:55 +02:00

182 lines
8.8 KiB
PHP

<?php
class Metier_Partenaires_MPrivileges
{
public $tabCodeAR = array(
'00' => "Surveillance RCS posée/Demande de suppression acceptée/Surveillance PRIV posée : pas d'inscription existante sur le dossier",
'01' => "Surveillance PRIV posée : inscription existante sur le dossier",
'02' => "GAGI,GREFTEL,INTERGREFFE-code 1-surveillance acceptée mais qui n'a pas encore fait l'objet d'un AR",
'03' => "GAGI,GREFTEL,INTERGREFFE-code 2 - surveillance acceptée avec CREATION d'une fiche débiteur, qui n'a pas fait l'objet d'un AR",
'04' => "GAGI-surveillance en attente envoyée au GAGI",
'05' => "Surveillance en attente de validation au greffe",
'06' => "Erreur de chargement",
'10' => "Surveillance impossible car société radiée",
'11' => "Surveillance impossible car société transférée dans un autre greffe",
'12' => "SIREN inconnu",
'13' => "Raison sociale erronée",
'14' => "Adresse erronée",
'15' => "Surveillance impossible sur un établissement secondaire",
'16' => "Demande incomplète ou incorrecte",
'17' => "Surveillance Privilège impossible",
'18' => "Surveillance impossible par le greffe",
'19' => "Surveillance RCS impossible",
'20' => "Cette surveillance concerne un autre Greffe",
'21' => "Surveillance BILAN impossible car la ste n'est pas tenue de déposer ses Comptes Annuels (ste de droit étranger)",
'22' => "Plusieurs Bottins (débiteurs) (GAGI)",
'23' => "Société de fait (GAGI) : Société non enregistrée au Registre du Commerce",
'24' => "Surveillance impossible car société en liquidation judiciaire",
'25' => "Greffe inconnu",
'26' => "Millésime bilan à surveiller incorrect",
'27' => "Références EXTELIA erronées ou incomplètes (ces reférences sont obligatoires en cas de demande de suppression)",
'28' => "Surveillance impossible sur un dossier non informatisé (dossier dit non repris ou figé)",
'30' => "Siren absent (ne concerne que les surveillances de type WebService)",
'31' => "Surveillance BILAN impossible sur une société non commerciale (statut <> B)",
'50' => "Ce greffe ne traite pas les surveillances car le groupement de ce greffe n'est pas surveillé",
'51' => "Etablissement non trouvé",
'52' => "Code catalogue de la surveillance non renseigné ou incorrect",
'53' => "le siren est déjà sous surveillance",
'54' => "DOSSIER AGORA : votre prestation ne comprend pas la couverture de ce groupement",
'55' => "DOSSIER INTERGREFFE : votre prestation ne comprend pas la couverture de ce groupement de greffes",
'56' => "Le siren est déjà en attente de validation par le greffe",
'57' => "Surveillance impossible sur un dossier dit non inscrit au RCS (statut F:artisan)",
'58' => "Surveillance impossible sur un agent commercial (statut P ou M)",
'59' => 'Surveillance impossible sur une société non RCS ?',
'88' => "Rejet temporaire : surveillance sur un greffe absorbé rejetée pendant la phase de rechargement",
'99' => "Surveillance impossible pour raisons à examiner",
);
public $tabTypePriv = array(
'01' => "NANTISSEMENTS DU FONDS DE COMMERCE",
'02' => "PRIVILEGES DE VENDEUR ET ACTION RESOLUTOIRE",
'03' => "PRIVILEGES DE LA SECURITE SOCIALE ET DES REGIMES COMPLEMENTAIRES",
'04' => "PRIVILEGES DU TRESOR PUBLIC",
'05' => "OPERATIONS DE CREDIT-BAIL EN MATIERE MOBILIERE",
'06' => "PROTETS",
'07' => "NANTISSEMENTS DE L'OUTILLAGE, MATERIEL ET EQUIPEMENT",
'08' => "WARRANTS (HOTELIER, PETROLIER, INDUSTRIEL OU AGRICOLE)",
'10' => "NANTISSEMENTS DE PARTS DE SOCIETE CIVILE",
'17' => "PUBLICITES DE CONTRATS DE LOCATION",
'18' => "PUBLICITES DE CLAUSES DE RESERVE DE PROPRIETE",
'19' => "PRETS ET DELAIS",
'20' => "DECLARATIONS DE CREANCES",
'21' => "NANTISSEMENTS JUDICIAIRES",
'23' => "BIENS INALIENABLES",
'24' => "HYPOTHEQUES FLUVIALES",
'25' => "NANTISSEMENTS DU FONDS ARTISANAL",
'27' => "GAGE SANS DEPOSSESSION",
'28' => "GAGE DES STOCKS",
);
protected $iDb;
public function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new Metier_Util_Db();
} else {
$this->iDb = $db;
}
}
/**
* Détail des privileges
*
* @param string $siren
* @param array $tabTypes
* @return array
*/
public function getPrivilegesDetail($siren, $tabTypes=array('03','04'))
{
$strTypes = implode("','", $tabTypes);
if ($strTypes != '') {
$strTypes=" AND i.insType IN ('$strTypes') ";
}
$fields = "i.id, i.dateEven, i.greffe , i.numDebiteur, i.sirenage, i.typeEven, i.dateFraiche, i.codeRev , i.debRaisonSociale , i.debSigle , i.debCiv , i.debNom , i.debPrenom , i.debConjoint , i.debUsage , i.debEnseigne , i.debActivite , i.debFj , i.debFjLib , i.debResidence , i.debNumVoie , i.debTypVoie , i.debLibVoie , i.debAdrComp , i.debCP , i.debVille , i.debPays , i.insType , i.insLib , i.insNum , i.insDate , i.insObjet , i.insMontant , i.insDev , i.insDateEch , i.insDateFin , i.insNanTx , i.insNanTitre , i.insNanOppo , i.insProNat , i.insProHui , i.insProRep , i.insNSCA , i.insNSCParts , i.insNSCSigni , i.creNom , i.creNumVoi, i.creTypVoi, i.creLibVoi, i.creAdrComp1, i.creAdrComp2, i.creCP, i.creVille, i.crePays, i.creAutres, i.radDate, i.radMention, i.radPartiel, i.radPartMt, i.radDev, i.radDiv, i.idFichier, i.dateInsert";
$where = "i.siren=$siren $strTypes AND ( (i.insType='03' AND DATEDIFF(NOW(),i.insDate)<=900) /** Durée de vie PRIV Sécu **/ OR (i.insType='04' AND DATEDIFF(NOW(),i.insDate)<=1460) /** Durée de vie PRIV Trésor **/ )";
$where.= " ORDER BY i.dateFraiche DESC, i.insType ASC, i.insDate ASC;";
$tables = "jo.greffes_privileges i";
$iRncs = new Metier_Partenaires_MRncs($this->iDb);
$tabRet = array();
$tabPriv = $this->iDb->select($tables, $fields, $where, true, MYSQL_ASSOC);
if (count($tabPriv) > 0) {
foreach ($tabPriv as $i => $priv) {
if ($i >0 && $priv['dateFraiche'] != $dateFraiche) {
break;
}
$tabRet[] = array(
'numDebiteur' => $priv['numDebiteur'],
'greffe' => $priv['greffe'],
'greffeLib' => $iRncs->getLibTribunal($priv['greffe']),
'dateEven' => $priv['dateEven'],
'dateFraiche' => $priv['dateFraiche'],
'dateSD' => $priv['dateInsert'],
'insType' => $priv['insType'],
'insTypeLib' => $this->tabTypePriv[$priv['insType']],
'insNum' => $priv['insNum'],
'insDate' => $priv['insDate'],
'insDateEch' => $priv['insDateEch'],
'insObjet' => $priv['insObjet'],
'insMontant' => $priv['insMontant'],
'insDev' => $priv['insDev'],
'insDateFin' => $priv['insDateFin'],
'radDate' => $priv['radDate'],
'radMention' => $priv['radMention'],
'radPartiel' => $priv['radPartiel'],
'radPartMt' => $priv['radPartMt'],
'radDev' => $priv['radDev'],
'creNom' => $priv['creNom'],
'creAdresse1' => trim(preg_replace('/ +/', ' ', $priv['creNumVoi'].' '.$priv['creTypVoi'].' '.$priv['creLibVoi'])),
'creAdresse2' => $priv['creAdrComp1'],
'creAdresse3' => $priv['creAdrComp2'],
'creCP' => $priv['creCP'],
'creVille' => $priv['creVille'],
'crePays' => $priv['crePays'],
'creAutres' => $priv['creAutres'],
);
$dateFraiche = $priv['dateFraiche'];
}
}
return $tabRet;
}
/**
* Cummul des privilèges
*
* @param string $siren
* @param array $tabTypes
* @return array
*/
public function getPrivilegesCumul($siren, $tabTypes=array('03','04'))
{
$iRncs = new Metier_Partenaires_MRncs($this->iDb);
$tabRet = array();
$tabTmp = $this->getPrivilegesDetail($siren, $tabTypes);
if (count($tabTmp) > 0) {
foreach($tabTmp as $i => $priv) {
$type = $priv['insType'];
if (array_key_exists($type, $tabRet)) {
$tStock = $tabRet[$type];
$tStock['nb'] ++;
$tStock['insCumul'] += $priv['insMontant'];
} else {
$tStock['nb'] = 1;
$tStock['insCumul'] = $priv['insMontant'];
}
$tStock['insTypeLib'] = $priv['insTypeLib'];
$tStock['dateFraiche'] = $priv['dateFraiche'];
$tStock['dateDerInsc'] = $priv['insDate'];
$tStock['nomDerCre'] = $priv['creNom'];
$tStock['numDebiteur'] = $priv['numDebiteur'];
$tStock['greffeLib'] = $iRncs->getLibTribunal($priv['greffe']);
$tStock['dateMajSD'] = $priv['dateSD'];
$tabRet[$type] = $tStock;
}
}
return $tabRet;
}
}