2017-03-29 17:12:34 +02:00

1514 lines
64 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class Metier_Bodacc_MBodacc
{
/**
*
*/
protected $tabNaturesEvenements = array(
"Jugement modifiant le plan de cession" => 1408,
"Jugement d'ouverture d'une procédure de redressement judiciaire" => '1200',
"Jugement d'ouverture de liquidation judiciaire" => '1301',
"Jugement de clôture pour insuffisance d'actif" => 1503,
"Jugement de clôture de la liquidation des biens pour insuffisance d'actif" => 1503,
"Dépôt de l'état des créances" => 1204,
"Dépôt de l'état des créances Loi de 1985" => 1214,
"Jugement de plan de redressement" => 1414,
"Jugement de clôture pour extinction du passif" => 1502,
"Jugement arrêtant le plan de sauvegarde" => 1101,
"Liste des créances nées après le jugement d'ouverture d'une procédure de liquidation judiciaire" => 1206,
"Jugement de conversion en liquidation judiciaire" => 1300,
"Jugement arrêtant un plan de cession" => 1411,
"Jugement prononçant la résolution du plan de cession et la liquidation judiciaire" => '1305;1511',
"Liste des créances nées après le jugement d'ouverture d'une procédure de redressement judiciaire" => 1206,
"Dépôt de l'état de collocation" => 1203,
"Jugement prononçant la résolution du plan de redressement et la liquidation judiciaire" => '1305;1512',
"Jugement prononçant la résolution du plan de sauvegarde et la liquidation judiciaire" => '1305;1513',
"Jugement de faillite personnelle" => 1600,
"Jugement de faillite personnelle Loi de 1985" => 1610,
"Jugement d'interdiction de gérer" => 1601,
"Jugement d'interdiction de gérer Loi de 1985" => 1611,
"Arrêt de la cour d'appel infirmant une décision soumise à publicité" => 1506,
"Jugement d'ouverture d'une procédure de sauvegarde" => 1100,
"Jugement de reprise de la procédure de liquidation judiciaire" => 1304,
"Jugement modifiant le plan de continuation" => 1409,
"Dépôt du projet de répartition" => 1208,
"Dépôt de l'état des créances et du projet de répartition" => '1204;1208',
"Jugement d'homologation de l'accord" => 1550,
"Jugement prononçant la résolution du plan de cession" => 1511,
"Jugement de conversion en redressement judiciaire de la procédure de sauvegarde" => 1201,
"Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde" => 1307,
"Jugement modifiant la date de cessation des paiements" => 1450,
"Jugement de clôture de la liquidation des biens pour extinction du passif" => 1502,
"Jugement modifiant le plan de redressement" => 1407,
"Jugement mettant fin à la procédure de redressement judiciaire" => 1500,
"Jugement accordant un délai pour déposer la liste des créances" => 1440,
"Jugement modifiant le plan de sauvegarde" => 1407,
"Jugement de clôture pour insuffisance d'actif et autorisant la reprise des poursuites individuelles" => '1503;1605',
"Ordonnance statuant sur les contestations du projet de répartition" => 1540,
"Jugement de clôture de la procédure de sauvegarde" => 1500,
"Jugement mettant fin à la procédure de sauvegarde" => 1500,
"Jugement d'extension de liquidation judiciaire" => 1417,
"Jugement d'extension d'une procédure de redressement judiciaire" => 1418,
"Jugement d'extension d'une procédure de sauvegarde" => 1419,
"Rétractation de prononcé de liquidation judiciaire sur tierce opposition" => 1541,
"Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition" => 1542,
"Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition" => 1543,
"Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition" => 1544,
"Jugement de désignation des organes de la procédure" => 1215, // v1.5 Avril 2008
"Rétractation de jugement d'ouverture sur tierce opposition" => 1545,
"Autre rétractation sur tierce opposition" => 1546,
"Autre jugement de liquidation des biens" => 1603,
"Autre arrêt de la Cour d'Appel" => 1507,
"Autre jugement de clôture" => 1500,
"Autres avis de dépôt" => 1216,
"Arrêts divers" => 1515,
"Autre jugement d'ouverture" => 1998,
"Autres jugements et ordonnances" => 1998,
"Autre jugement prononçant" => 1998,
/**
** v1.5 Avril 2008 - Intégration du Bodacc A en XML : Ventes / Cessions
**/
"Achat d'un fonds par une personne morale (insertion provisoire)" => 5103,
"Achat d'un foncs par une personne morale (insertion provisoire)" => 5103,
"Achat d'un fonds par une personne morale." => 5103, // Ajout le 23/12/2010
"Achat d'un établissement principal par une personne physique (immatriculation)" => 5000,
"Achat d'un établissement principal par une personne morale lors de l'immatriculation" => 5000,
"Autre achat, apport, attribution" => 5900,
"Autre achat, appport, attribution" => 5900,
"Autre achat, apport, attribution (personne physique)" => 5900,
"Autre achat, apport, attribution (personne physque)" => 5900,
"Autre achat, apport, atribution (personne morale)" => 5900,
"Autre achat, apport, attribution (personne morale)" => 5900,
"achat, apport, attribution (personne morale)" => 5900,
"Achat d'un fonds par une personne physique (insertion provisoire)" => 5103,
"Achat d'un établissement secondaire ou complémentaire par une personne morale" => 5001,
"Apport d'un établissement secondaire/complémentaire (personne morale, uniquement)" => 5001,
"Achat d'un établissement complémentaire par une personne morale" => 5001,
"Achat d'un établissement secondaire ou complémentaire par une personne physique" => 5001,
"Mise en activité d'une société suite à achat" => '2316;5999',
"Mise en activité d'une soicété suite à achat" => '2316;5999',
"Achat d'un fonds par le locataire-gérant personne morale" => 5450,
"Achat d'un fonds par le locataire-gérant personne physique" => 5450,
"Apport d'un établissement principal (immatriculation d'une personne morale, uniquement)" => 5000,
"Apport d'un établissement principal (immatriculation d'une personne morale uniquement)" => 5000,
"Attribution d'un fonds suite à partage, à licitation (Immatriculation d'une personne physique)" => 5460,
"Attribution d'un fonds suite à donation avec délai d'oppositions (Immatriculation d'une personne physique)" => 5460,
"Annulation d'avis Vente" => 5999,
"Annulation d'avis vente" => 5999,
"fonds acquis par achat au prix stipulé de 155 000 euros." => 5900,
/**
** v1.5 Avril 2008 - Intégration du Bodacc A en XML : Créations / Immatriculations
**/
"Immatriculation d'une personne physique suite à création d'un établissement principal" => 4000,
"Immatriculation d'une personne morale (B, D) sans activité" => 4050,
"Immatriculation d'une personne morale (B, C, D) suite à création d'un établissement principal" => 4000,
"Immatriculation d'une personne morale (B, C, D suite à création d'un établissement principal)" => 4000,
"Immatriculation d'une personne physique suite à transfert de l'établissement principal" => 4250,
"Immatriculation d'une personne morale après 1er avis" => 4000,//???????
"Immatriculation d'une personne morale suite à transfert de son siège social" => 4250,
"Immatriculation d'une personne physique, reprise d'activité après location-gérance" => 4350,
"Immatriculation d'une personne morale, établissement principal reçu en location-gérance" => 4355,
"Immatriculation d'une personne physique après 1er avis" => 4000,
"Immatriculation d'une personne physique, établissement principal reçu en location-gérance" => 4355,
"Immatriculation d'une personne physique, établissement principal précédemment exploité par le conjoint" => 4450,
"Immatriculation d'une personne physique, établissement précédemment exploité par le conjoint" => 4450,
"Transformation d'un GAEC" => 4400,
"Autre immatriculation personne morale" => 4000,
"Autre immatriculation personne physique" => 4000,
"Immatriculation d'une société de droit européen (quelle que soit l'origine du fonds)" => 4600,
"Immatriculation avec origine du fonds création" => 4000,
"Immatriculation avec orgine du fonds création" => 4000,
"Immatriculation avec origine de fonds achat" => 4501,
"Immatriculation avec origine du fonds achat" => 4501,
"Immatriculation d'une personne physique, établissement principal hérité, reçu par donation" => 4410,
);
private static $tabAccents = array(
'[A'=>'Á', //5B41
'^A'=>'Â', //5E41
'`A'=>'À', //6041
']A'=>'Ä', //5D41
'[a'=>'á', //5B61
'^a'=>'â', //5E61
'`a'=>'à', //6061
']a'=>'ä', //5D61
//'AE'=>'Æ', //4145 // Penser à les retransformer pour les vieux systèmes
//'ae'=>'æ', //6165 // Penser à les retransformer pour les vieux systèmes
'|C'=>'Ç', //7C43
'|c'=>'ç', //7C63
'[E'=>'É', //5B45
'^E'=>'Ê', //5E45
'`E'=>'È', //6045
']E'=>'Ë', //5D45
'[e'=>'é', //5B65
'^e'=>'ê', //5E65
'`e'=>'è', //6065
']e'=>'ë', //5D65
'[I'=>'Í', //5B49
'^I'=>'Î', //5E49
'`I'=>'Ì', //6049
']I'=>'Ï', //5D49
'[i'=>'í', //5B69
'^i'=>'î', //5E69
'`i'=>'ì', //6069
']i'=>'ï', //5D69
'[O'=>'Ó', //5B4F
'^O'=>'Ô', //5E4F
'`O'=>'Ò', //604F
']O'=>'Ö', //5D4F
'[o'=>'ó', //5B6F
'^o'=>'ô', //5E6F
'`o'=>'ò', //606F
']o'=>'ö', //5D6F
//'OE'=>'.', //4F45 // Penser à les retransformer pour les vieux systèmes
//'oe'=>'.', // Penser à les retransformer pour les vieux systèmes
'[U'=>'Ú', //5B55
'^U'=>'Û', //5E55
'`U'=>'Ù', //6055
']U'=>'Ü', //5D55
'[u'=>'ú', //5B75
'`u'=>'ù', //6075
'^u'=>'û', //5E75
']u'=>'ü', //5D75
'[Y'=>'Ý', //5B59
'[y'=>'ý', //5B79
);
private static $tabBalises=array(
'00'=>'Texte',
'01'=>'Identifiant (NOJO) de l.annonce',
'02'=>'Publication (R1)',
'03'=>'Partie du BODACC et département (R2)',
'04'=>'Tribunal (R3)',
'05'=>'Rubrique au sein du BODACC (R4)',
'06'=>'Numéro de parution',
'07'=>'Numéro d.annonce dans la parution',
'14'=>'R.C.',
'15'=>'SIREN',
'16'=>'Raison sociale',
'17'=>'Activité (Ajout activité ?)',
'18'=>'PDG / CP (?)',
'19'=>'Enseigne / Nom Commercial (?)',
'20'=>'Date',
'22'=>'Forme juridique',
'23'=>'Capital (?)',
'24'=>'Bénéficiaire / Raison sociale (différence avec 16?)',
'25'=>'Sigle',
'26'=>'Objet / Commentaire (a exploiter !) (?)',
'27'=>'Syndic (a vérifier sur les annonces si pas anciennes annonces ?)',
'29'=>'Nom Commercial (?)',
'30'=>'Commentaire adresse',
'31'=>'Rue',
'32'=>'Localité',
'33'=>'Commune',
'35'=>'Conjoint (?)',
'36'=>'Code postal',
'37'=>'Additif (?)',
'40'=>'Texte rectificatif (?)',
'41'=>'Numéro annonce (?)',
'42'=>'Date de parution (?)',
'43'=>'Page (?)',
'44'=>'Numéro de parution (?)',
'70'=>'Numéro annonce',
'71'=>'Date de parution',
'72'=>'Page',
'73'=>'Numéro de parution',
'74'=>'Texte rectificatif/à supprimer',
'75'=>'Numéro annonce',
'76'=>'Numéro annonce',
);
private static $tabRubriques=array(
'A101'=>'21 ventes et cessions (RCS A non inscrit)',
'A102'=>'22 ventes et cessions (RCS B, C et D non inscrit)',
'A103'=>'13 Créations d\'établissements (RCS A, PP)',
'A104'=>'14 Créations d\'établissements (RCS B, Ste)',
'A105'=>'15 Créations d\'établissements (RCS C, GIE ?)',
'A106'=>'16 Créations d\'établissements (RCS D, Sté Civile)',
'A107'=>'17 création d\'étab.second. ....... Pers Phys. ', //
'A108'=>'18 création d\'étab.second. ....... Société ', //
'A109'=>'19 création d\'étab.second. ....... Sté Civile ', //
'A124'=>'24 ventes et cessions (RCS A non inscrit)',
'A125'=>'25 ventes et cessions (RCS B, C et D non inscrit)',
'A126'=>'13 création d\'étab.+1 PP .......... Pers Phys. ', //
'A131'=>'15 Créations d\'établissements (G.Europ.IE)', //
'A136'=>'35 rectificatif ', //
'A137'=>'35 additif', //
'A138'=>'35 rectificatif supp. ', //
'A205'=>'51 reglement judiciaire ........... PP et Sté ', //
'A209'=>'63 LB faillite personnelle ........ Pers Phys.', //
'A210'=>'61 liquidation des biens .......... PP et Sté ', //
'A215'=>'71 suite reglemt/liquid. .......... PP et Sté ',
'A220'=>'77 Production titres créance ...... PP et Sté ', //
'A225'=>'78 Dépôt état des créances vérifiées PP et Sté ', //
'A228'=>'79 Cloture insuf.actif ......... PP et Sté ', //
'A236'=>'35 rectificatif ', //
'A237'=>'35 additif', //
'A238'=>'35 rectificatif supp.', //
'A401'=>'80 Banqueroute & Infractions ...... Pers Phys.', // ---
'A436'=>'35 rectificatif ', //
'A437'=>'35 additif', //
'A438'=>'35 rectificatif supp. ', //
'A701'=>'73 Susp provis poursuites ......... toutes formes', //
'A736'=>'35 rectificatif ', //
'A737'=>'35 additif', //
'A738'=>'35 rectificatif supp. ', //
'A8X1'=>'60 redressement & liqu.judiciaire.. toutes formes', //
'A801'=>'52 redressement judiciaire ........ toutes formes',
'A802'=>'62 ouverture liquidation judiciaire toutes formes',
'A803'=>'74 Appels jug. ouverture .......... toutes formes', //
'A804'=>'62 liquidation judiciaire ........ toutes formes',
'A805'=>'74 Appels jug. LB ................. toutes formes', //
'A806'=>'75 Arret plan de continuation...... toutes formes',
'A807'=>'75 Modif plan de continuation...... toutes formes',
'A808'=>'75 Arret plan de cession .......... toutes formes',
'A809'=>'75 Modif plan de cession .......... toutes formes',
'A810'=>'76 Cloture extinction Passif ...... toutes formes',
'A811'=>'79 Cloture insuf.Actif ............ toutes formes',
'A812'=>'79 Cloture après cession totale ... toutes formes',
'A813'=>'63 faillite pers. pp ou gerant .... toutes formes',
'A814'=>'64 interdiction de gerer .......... toutes formes',
'A815'=>'78 Dépot Créances ................ toutes formes',
'A816'=>'78 Dépot Créances nées ap jug ..... toutes formes',
'A817'=>'78 Dépot Cr.compl.nées ap jug ..... toutes formes',
'A818'=>'78 Dépot état Collocation ......... toutes formes',
'A819'=>'75 Modification plan diverse ...... toutes formes',
'A820'=>'53 Règlements amiables ............ Exploit agric',
'A821'=>'74 Appels jug. LB ................. toutes formes',
'A822'=>'56 Procédure insolvabilité......... toutes formes', //
'A823'=>' Ordonnance statuant sur les contestations',
'A824'=>'xx Dépôt du projet de répartition', //
'A836'=>'35 rectificatif ', //
'A837'=>'35 additif', //
'A838'=>'35 rectificatif supp. ', //
'A900'=>'Arrêt Conseil d\'Etat ou Conseil Supérieur des CAC',
'B1X1'=>'41 Dissolution .............. toutes formes', //
'B110'=>'31 mod.mut. diverses .............. A Pers Phys.',
'B111'=>'32 mod mut. diverses .............. B Société',
'B112'=>'33 mod mut. diverses .............. C GIE ',
'B113'=>'34 mod mut. diverses .............. D Sté civile',
'B114'=>'37 loc. gérance recue ............. Pers Phys.', //
'B115'=>'37 loc. gérance recue ............. Société', //
'B116'=>'40 radiation ...................... Pers Phys.',
'B117'=>'40 radiation ...................... Société',
'B118'=>'37 Location gérance reçue ...... Pers Physique',
'B119'=>'37 Location gérance reçue ...... Société',
'B120'=>'30 confirmation Ets pr. ou sec..... Société',
'B121'=>'30 confirmation Ets pr. ou sec..... Pers Phys.',
'B122'=>'38 loc.gérance donnée ............. Pers Phys.', //
'B123'=>'38 loc.gérance donnée ............. Société', //
'B127'=>'40 radiation d\'office ............. toutes formes ', //
'B128'=>'39 mention d\'office............. toutes formes ', //
'B129'=>'39 transfert entre tribunaux ...... Pers Phys.',
'B130'=>'39 transfert entre tribunaux ...... Société',
'B132'=>'33 mod mut. diverses .............. GEIE',
'B133'=>'40 radiation ...................... GEIE', //
'B134'=>'33 mod mut. diverses trf siège..... GEIE', //
'B136'=>'35 rectificatif ', //
'B137'=>'35 additif', //
'B138'=>'35 rectificatif supp. ', //
'C301'=>'91 dépot des comptes annuels ...... Société', //
'C331'=>'91 dépot des comptes annuels ...... Société',
'C336'=>'35 rectificatif ', //
'C337'=>'35 additif', //
'C338'=>'35 rectificatif supp. ', //
);
private $tabTribunaux = array();
private $tabFctDir = array();
private $tabDevises = array();
private $tabEvenements=array();
private $regExFonction = '';
private $tabDirigeants = array(
'pr.sidents? directeur g.n.ral'=>1301,
'P\.-D\.G\.'=>1301,
'pr.sidents? du conseil d\'administration assumant la direction général'=>1302,
'pr.sidents? du conseil d\'administration et administrateur'=>1303,
'pr.sidents? du conseil d\'administration et directeur général'=>1304,
'pr.sidents? du conseil d\'administration, directeur général et administrateur'=>1305,
'Administrateurs? délégués?'=>101,
'administrateurs? du G\.?I\.?E\.?'=>102,
'Administrateurs? et membres?'=>103,
'Administrateurs? et membres? du G\.?I\.?E\.?'=>104,
'Administrateurs? et présidents?'=>105,
'administrateurs? membres? engageants? le G\.?I\.?E\.?'=>106,
'Administrateurs? uniques?'=>107,
'Administrateurs?'=>100,
'Co.?g.rants? associ.s? ind.finiment responsables?'=>401,
'Co.?g.rants? associ.s?'=>402,
'Co.?g.rants? non associ.s?'=>403,
'Co.?g.rants? non statutaires?'=>404,
'Co.?g.rants? pouvant engager la soci.t.'=>405,
'Co.?g.rants? statutaires'=>406,
'Co.?g.rants?'=>400,
'Nouveaux? g.rants?'=>901,
'G.rants? et directeurs? techniques?'=>902,
'g.rants? et associ.s? en nom collectif'=>903,
'g.rants? associ.s? en nom collectif'=>903,
'g.rants? et associ.s? en nom'=>904,
'g.rants? associ.s? en nom'=>904,
'g..ants? (?:et )associ.s? ind.finiment (?:et solidairement )responsables?'=>905,
'g.rants? (?:et )associ.s? uniques?'=>906,
'g.rants? (?:et )associ.s?'=>907,
// gérant associé
'g.rants? associ.s? majoritaires?'=>908,
'g.rants? associ.s? minoritaires?'=>909,
'g.rants? associ.s? tenus? ind.finiment et solidairement des dettes sociales'=>910,
'g.rants? majoritaire'=>911,
'g.rants? non associ.s?'=>912,
'g.rants? non statutaires?'=>913,
'g.rants? pouvant engager seuls la soci.t.'=>914,
'g.rants? pouvant engager la soci.t.'=>915,
'g.rants? salari.s?'=>916,
'g.rants? statutaires? associ.s?'=>917,
'g.rants? statutaires?'=>918,
'g.rants? et administrateurs?'=>919,
'G.rants? techniques?'=>920,
'anciens? g.rants?'=>921,
'g.rant\(e\)'=>900,
'g.rants?'=>900,
'associ.s? commandit.s? g.rants?'=>201,
'associ.s? commandit.s?'=>202,
'Associ.s? d\'une soci.t. civile'=>203,
'Associ.s? de soci.t. civile'=>204,
//Associés de société civile
'associ.s? en nom'=>205,
'Associ.s? exploitants?'=>206,
'Associ.s? non exploitants?'=>207,
'Associ.s? non g.rants?'=>208,
'Associ.s? g.rants?'=>209,
'Associ.s? ind.finiment et solidairement responsables?'=>210,
'Associ.s? ind.finiment responsables?'=>211,
'Associés?'=>200,
'Co.?commissaires? aux comptes suppl.ants?'=>301,
'Co.?commissaires? aux comptes titulaires?'=>302,
'Commissaires? aux comptes suppl.ants?'=>303,
'Commissaires? aux comptes titulaires?'=>300,
'Conjoints? Collaborateurs?'=>500,
'Contr.leurs? de gestion et des comptes'=>601,
'contr.leurs? de gestion du G\.?I\.?E\.?'=>602,
'Contr.leurs? de gestion'=>603,
'Contr.leurs? des comptes titulaires?'=>604,
'contr.leurs? des comptes du G\.?I\.?E\.?'=>605,
'Contr.leurs? des comptes et de gestion'=>606,
'Contr.leurs? des comptes et membre du G\.?I\.?E\.?'=>607,
'Contr.leurs? des comptes'=>608,
'Contr.leurs'=>600,
'Directeurs? général?u?x? adjoints?'=>701,
'Directeurs? général?u?x? délégués? et administrateurs?'=>702,
'Directeurs? général?u?x? délégués? et membres? du comité de surveillance'=>703,
'Directeurs? général?u?x? délégués?'=>704,
'Directeurs? général?u?x? et administrateurs?'=>705,
'Directeurs? général?u?x? et membres? du directoire'=>706,
'directeurs? général?u?x? uniques? du directoire'=>707,
'directeurs? général?u?x? uniques?'=>708,
'directeurs? général?u?x?'=>709,
'directeurs? gérants?'=>710,
'Directeurs? techniques?'=>711,
'Directeurs? des transports'=>712,
'Directeurs?'=>700,
'dirigeants? à l\'étranger et en France'=>801,
'Dirigeants? à l\'étranger'=>802,
'dirigeants? en France et à l\'étranger'=>803,
'dirigeants? en France'=>804,//805 autre dirigeant
'Dirigeants?'=>800,
'mandataires? ad hoc'=>1101,
'mandataires? général'=>1102,
'mandataires? généraux'=>1102,
'Mandataires?'=>1100,
'Membres? du G\.?I\.?E\.?'=>1201,
'membres? du groupement'=>1202,
'membres? et administrateurs?'=>1203,
'Membres? du comité de direction'=>1204,
'Membres? du comité de surveillance'=>1205,
'Membres? du conseil de direction'=>1206,
'Membres? du conseil de surveillance'=>1207,
'Membres? du directoire'=>1208,
'Membres?'=>1200,
'fond.s? de pouvoir'=>1000,
'Personnes? ayant le pouvoir d\'engager à titre habituel la société vis-à-vis des tiers'=>1001,
'Personnes? ayant pouvoir d\'engager à titre habituel la société vis-à-vis des tiers'=>1001,
'personnes? ayant le pouvoir d\'engager la société en France'=>1002,
'personnes? ayant pouvoir d\'engager la société en France'=>1002,
'Personnes? ayant le pouvoir d\'engager la société'=>1003,
'Personnes? ayant pouvoir d\'engager la société'=>1003,
'Personnes? ayant le pouvoir de diriger et gérer'=>1004,
'Personnes? ayant pouvoir de diriger et gérer'=>1004,
'personnes? pouvant engager à titre habituel l\'assujetti'=>1005,
'Personnes?'=>1006,
'pr.sidents? du conseil d\'administration'=>1306,
'pr.sidents? du conseil de surveillance'=>1307,
'pr.sidents? du directoire'=>1308,
'pr.sidents? du G\.?I\.?E\.?'=>1309,
'pr.sidents? et membres? du conseil de surveillance'=>1310,
'Pr.sidents? et membres? du directoire'=>1311,
'Pr.sidents? et pr.sidents? du comité de direction'=>1312,
'pr.sidents? et pr.sidents? du comité de surveillance'=>1313,
'Pr.sidents? et administrateurs?'=>1314,
'Pr.sidents?'=>1300,
'repr.sentants? de soci.t. .trang.re'=>1401,
'repr.sentants? tant en France qu\'à l\'.tranger'=>1402,
'Repr.sentants? à l\'.tranger'=>1403,
'repr.sentants? l.gal?a?x? en France'=>1404,
'Repr.sentants? l.gal?a?x?'=>1405,
'Repr.sentants? permanents?'=>1405,
'Repr.sentants?'=>1400,
'co.?responsables? en France'=>1501,
'responsables? pour la France'=>1502,
'responsables? tant en France qu\'à l\'étranger'=>1503,
'Responsables? technique'=>1504,
'responsables? à l\'.tranger'=>1505,
'Responsables? de la soci.t. en France'=>1506,
'Responsables? en France'=>1507,
'responsables? l.gal en France'=>1508,
'responsables? en France'=>1508,
'Responsables?'=>1500,
'Vice-pr.sidents? du conseil d\'administration'=>1801,
'vice-pr.sidents? du conseil de surveillance'=>1802,
'Vice-pr.sidents? et administrateurs? priv.s?'=>1803,
'Vice-pr.sidents? et administrateurs?'=>1804,
'Vice-pr.sidents? et membres? du conseil de surveillance'=>1805,
'Vice-pr.sidents?'=>1800,
'Vice-secr.taires?'=>1601,
'Vice-tr.soriers?'=>1701,
'Tr.soriers?'=>1700,
'Secr.taires? du conseil d\'administration'=>1602,
'Secr.taires? du conseil de surveillance'=>1603,
'Secr.taires?'=>1600,
'Liquidateurs?'=>1900,
);
/**
* PDO Connection with Doctrine
* @var \Doctrine\DBAL\Connection
*/
protected $conn;
/**
* Logger
* @var \Monolog\Logger
*/
protected $logger;
/**
* Bodacc
* @param \Doctrine\DBAL\Connection $conn
*/
public function __construct($conn = null)
{
if ($conn === null) {
$this->conn = Zend_Registry::get('doctrine');
} else {
$this->conn = $conn;
}
if (Zend_Registry::isRegistered('logger')) {
$this->logger = Zend_Registry::get('logger');
}
/* Charge toute la table des tribunaux pour ne pas lancer systématiquement des
* requètes sur le serveur MySQL lors des intégrations de Bodacc
*/
$this->tabTribunaux = $this->getTabTribunaux();
$this->tabFctDir = $this->getTabFctDir();
$this->tabEvenements = $this->getTabEvenements();
$this->tabDevises = $this->getTabDevises();
$this->regExFonction = implode(')|(', array_keys($this->tabDirigeants));
}
/**
* Converti les accents au format TLS du Bodacc
* @param string $texteBodacc
* @return string
*/
public function convertAccents($texteBodacc)
{
return strtr($texteBodacc, self::$tabAccents);
}
/**
* Vérifie si la balise passée en paramètre est valide
* @param string $balise
* @return boolean
*/
public function isBaliseBodacc($balise)
{
return array_key_exists($balise, self::$tabBalises);
}
/**
* Initialisation du tableau privé des tribunaux
*/
private function getTabTribunaux()
{
$cache = dirname(__FILE__) . '/../Table/BodaccTribunaux.php';
if (file_exists($cache)) {
return include $cache;
} else {
$tribunaux = array();
$sql = "SELECT triCode, triNom, triCP, triSiret FROM jo.tribunaux WHERE triCode IS NOT NULL";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($t = $stmt->fetch(\PDO::FETCH_OBJ)) {
$dep = intval(substr($t->triCP, 0, 2));
if ($dep == 97 || $dep == 98) {
$dep = intval(substr($t->triCP, 0, 3));
}
$tribunaux[$t->triCode] = array(
'nom' => $t->triNom,
'siret' => $t->triSiret,
'dep' => $dep
);
}
}
return $tribunaux;
}
}
/**
* Initialisation du tableau privé des codes fonctions de direction
* @return array
*/
private function getTabFctDir()
{
$cache = dirname(__FILE__) . '/../Table/FctDir.php';
if (file_exists($cache)) {
return include $cache;
} else {
$result = array();
$sql = "SELECT codeFct, libelle FROM jo.bodacc_fonctions";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($row = $stmt->fetch(\PDO::FETCH_OBJ)) {
$result[intval($row->codeFct)] = $row->libelle;
}
}
return $result;
}
}
/**
* Retourne le libellé d'une fonction de direction
* @param unknown $codeFonction
* @return string
*/
public function getFctDir($codeFonction)
{
return $this->tabFctDir[$codeFonction];
}
/**
* Liste des tribunaux par commune
* @param int $codeInseeCommune
* @return array
*/
public function getTribunauxParCommune($codeInseeCommune)
{
$result = array();
$sql = "SELECT t.triId, t.triIdSup, i.CodeInsee, t.triCode, t.triType, t.triNom,
t.triCP, LPAD(t.triTel,10,0) AS triTel, LPAD(t.triFax,10,0) AS triFax, t.triWeb,
t.triMail, t.triSiret, t.triAdrNum, t.triAdrIndRep, t.triAdrTypeVoie, t.triAdrVoie,
t.triAdrComp, t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire,
t.triNumGreffe
FROM jo.tribunaux t, jo.tribunauxInsee i
WHERE i.CodeInsee= :inseeCode AND i.triId=t.triId
ORDER BY t.triNumGreffe DESC, t.triId ASC";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('inseeCode', $codeInseeCommune);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
return $result;
}
/**
* Liste des tribunaux par département
* @param string $dep
* @return array
*/
public function getTribunauxParDep($dep)
{
$result = array();
$sql = "SELECT t.triId, t.triIdSup, t.triCode, t.triType, t.triNom, t.triCP,
LPAD(t.triTel,10,0) AS triTel, LPAD(t.triFax,10,0) AS triFax, t.triWeb, t.triMail,
t.triSiret, t.triAdrNum, t.triAdrIndRep, t.triAdrTypeVoie, t.triAdrVoie, t.triAdrComp,
t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire, t.triNumGreffe
FROM jo.tribunaux t WHERE t.triCP BETWEEN :dep1 AND :dep2 ORDER BY t.triType ASC";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
if ($dep < 96) {
$stmt->bindValue('dep1', $dep.'000');
$stmt->bindValue('dep2', $dep.'999');
} else {
$stmt->bindValue('dep1', $dep.'00');
$stmt->bindValue('dep2', $dep.'99');
}
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
return $result;
}
/**
* Donne la cours d'appel d'un tribunal par son code
* @param string $codeTribunal
*/
public function getTribunalIdCA($codeTribunal)
{
$sql = "SELECT triIdSup FROM jo.tribunaux WHERE triCode = :code";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('code', $codeTribunal);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
return $stmt->fetch(\PDO::FETCH_ASSOC);
}
return '';
}
/**
* Liste des tribunaux
*/
public function getListeTribunaux()
{
return $this->tabTribunaux;
}
/**
* Initialisation du tableau privé des évènements
* @return array
*/
private function getTabEvenements()
{
$cache = dirname(__FILE__) . '/../Table/Evenements.php';
if (file_exists($cache)) {
return include $cache;
} else {
$result = array();
$sql = "SELECT codEven, libEven, Bodacc_Code, Rubrique, version, lienEtab FROM jo.tabEvenements";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($row = $stmt->fetch(\PDO::FETCH_OBJ)) {
$result[$row->codEven] = array(
'libEven' => $row->libEven,
'Bodacc_Code' => $row->Bodacc_Code,
'Rubrique' => $row->Rubrique,
'Version' => $row->version,
'LienEtab' => $row->lienEtab,
);
}
}
return $result;
}
}
/**
* Initialisation du tableau privé des devises du Bodacc
* @return array
*/
private function getTabDevises()
{
$cache = dirname(__FILE__) . '/../Table/Devises.php';
if (file_exists($cache)) {
return include $cache;
} else {
$result = array();
$sql = "SELECT libDeviseBodacc, devIso FROM jo.bodacc_devises";
try {
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($row = $stmt->fetch(\PDO::FETCH_OBJ)) {
$result[$row->libDeviseBodacc] = $row->devIso;
}
}
return $result;
}
}
/**
* Vérifie si le code du Tribunal BODACC est connu
* @param string $codeBodaccDuTribunal
* @return bool
*/
public function isTribunal($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal = trim($codeBodaccDuTribunal);
return @array_key_exists($codeBodaccDuTribunal, $this->tabTribunaux);
}
/**
* Retourne le libellé du code du Tribunal BODACC
* @param string $codeBodaccDuTribunal
* @return string
*/
public function getTribunalNom($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal = trim($codeBodaccDuTribunal);
return $this->tabTribunaux[$codeBodaccDuTribunal]['nom'];
}
/**
*
* @param string $codeBodaccDuTribunal
* @return mixed
*/
public function getTribunalDep($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal = trim($codeBodaccDuTribunal);
return $this->tabTribunaux[$codeBodaccDuTribunal]['dep'];
}
/**
*
* @param string $codeBodaccDuTribunal
* @return mixed
*/
public function getTribunalSiret($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal = trim($codeBodaccDuTribunal);
return $this->tabTribunaux[$codeBodaccDuTribunal]['siret'];
}
/**
*
* @param string $libelleDuTribunal
* @param number $dep
* @return unknown|boolean
*/
public function getTribunalCode($libelleDuTribunal, $dep=0)
{
$libelleDuTribunal = preg_replace('/[0-9]/', ' ', str_replace("\r\n", ' ', strtoupper($libelleDuTribunal)));
$libelleDuTribunal = str_replace("\n", ' ', $libelleDuTribunal);
$libelleDuTribunal = strtr($libelleDuTribunal, array(
"TRIBUNAL DE COMM'APPELERCE"=>'TC', // BUG DU BODACC 2008-A093-3146
'TRIBUNAL DE COMMERCE'=>'TC',
'TRIBUNAL DE GRANDE INSTANCE'=>'TGI',
'TRIBUNAL D\'INSTANCE'=>'TI',
'TRIBUNAL MIXTE DE COMMERCE'=>'TMX',
'TRIBUNAL DE PREMIERE INSTANCE'=>'TPI',
'TRIBUNAL SUPÉRIEUR D\'APPEL'=>'TSA',
' D\''=>' ', ' DE '=>' ',
'GREFFE DU'=>'', '-'=>' ',
'Ç'=>'C', 'É'=>'E', 'Î'=>'I', 'Â'=>'A', 'È'=>'E', 'Ô'=>'O', 'Ê'=>'E',
' DU MANS'=>' LE MANS',
' DU CREUSOT'=>' LE CREUSOT',
' DU HAVRE'=>' LE HAVRE',
' DU '=>' ', 'PUY'=>'PUY EN VELAY', 'LE PUY EN VELAY'=>'PUY EN VELAY',
'ALÈS'=>'ALES',
'.'=>' ',
));
$libelleDuTribunal = trim(preg_replace('/ +/', ' ', $libelleDuTribunal));
if (''.$dep=='2A' || ''.$dep=='2B') {
$dep = 20;
} else {
$dep = $dep*1;
}
foreach ($this->tabTribunaux as $code=>$tribunal) {
if ($dep != 0 && ($tribunal['dep'])*1 == $dep) {
if (str_replace('TGIcc', 'TGI', strtr($tribunal['nom'], array('-'=>' ', ' DE LA REUNION'=>''))) == $libelleDuTribunal) {
return $code;
} elseif (str_replace('TIcc', 'TI', strtr($tribunal['nom'], array('-'=>' ', ' DE LA REUNION'=>''))) == $libelleDuTribunal) {
return $code;
} elseif (preg_match('/^PREFECTURE/i', $libelleDuTribunal) && preg_match('/^PREFECTURE/i', $tribunal['nom'])) {
return $code;
} elseif (preg_match('/^SOUS.PREFECTURE/i', $libelleDuTribunal) && preg_match('/^SOUS.PREFECTURE/i', $tribunal['nom'])) {
$sprefEnBase = trim(preg_replace('/^SOUS.PREFECTURE (DE|DU|D\')/i', '', $tribunal['nom']));
$sprefParam = trim(strtr(strtr(preg_replace('/^SOUS.PREFECTURE/i', '', $libelleDuTribunal), array(
'SAINT '=>'ST ', 'SAINTE '=>'STE ', 'BASSIN ARCACHON'=>'ARCACHON', ' (DRÔME)'=>'')), 'ÀÂÈÎÔ', 'AAEIO'));
if ($sprefEnBase == $sprefParam) {
return $code;
}
} elseif ($dep == 13 && $tribunal['nom'] == 'TGI TARASCON' && $libelleDuTribunal == 'TGI TARASCON SUR RHONE') {
return $code;
} elseif ($dep==13 && $tribunal['nom']=='TC TARASCON' && $libelleDuTribunal == 'TC TARASCON SUR RHONE') {
return $code;
}
} elseif ($dep==0 && str_replace('TGIcc', 'TGI', strtr($tribunal['nom'], array('-'=>' ', ' DE LA REUNION'=>''))) == $libelleDuTribunal) {
return $code;
} elseif ($dep==978 && str_replace('TGIcc', 'TGI', strtr($tribunal['nom'], array('-'=>' ', ' DE LA REUNION'=>''))) == $libelleDuTribunal) {
return $code;
} elseif ($dep==971 && str_replace('TGIcc', 'TGI', strtr($tribunal['nom'], array('-'=>' ', ' DE LA REUNION'=>'')))==$libelleDuTribunal) {
return $code;
} elseif ($dep==974 && $libelleDuTribunal=='TMX SAINT PIERRE LA REUNION') {
return $code;
} elseif ($dep==975 && $libelleDuTribunal=='TGI SAINT PIERRE') {
return $code;
} elseif ($dep==70 && $libelleDuTribunal=='TC VESOUL') {
return $code;
} elseif (($dep==95 || $dep==975)
&& ($libelleDuTribunal=='TRIBUNAL PREMIERE INSTANCE SAINT PIERRE ET MIQUELON' || $libelleDuTribunal=='TPI SAINT PIERRE ET MIQUELON')) {
return $code;
} elseif (($dep==971 || $dep==985 || $dep==976)
&& ($libelleDuTribunal=='TRIBUNAL PREMIERE INSTANCE MAMOUDZOU' || $libelleDuTribunal=='TPI MAMOUDZOU')) {
return $code;
} elseif (($dep==971 || $dep==985 || $dep==976)
&& ($libelleDuTribunal=='TRIBUNAL DE GRANDE INSTANCE DE MAMOUDZOU' || $libelleDuTribunal=='TGI MAMOUDZOU')) {
return $code;
}
}
return false;
}
/**
* Vérifie si le code du Tribunal BODACC est connu
* @param string $codeEven
* @return boolean
*/
public function isCodeEvenement($codeEven)
{
$code = $codeEven*1;
if ($code==0) {
return false;
}
return array_key_exists($code, $this->tabEvenements);
}
/**
* Retourne le libellé de l'évènement BODACC codifié par S&D
* @param string $codeEven
* @return boolean
*/
public function getEvenement($codeEven)
{
$code = intval($codeEven);
if ($code == 0) {
return false;
}
if (array_key_exists($code, $this->tabEvenements)) {
return $this->tabEvenements[$code]['libEven'];
}
return false;
}
/**
* Retourne le niveau de version du code évènement BODACC codifié par S&D
* @param string $codeEven
* @return boolean
*/
public function getVersionEvenement($codeEven)
{
$code = intval($codeEven);
if ($code == 0) {
return false;
}
if (array_key_exists($code, $this->tabEvenements)) {
return $this->tabEvenements[$code]['Version'];
}
return false;
}
/**
* Retourne le libellé du Chapitre de l'évènement BODACC (comptes, creations, mmd, procol, radiations, ventes)
* @param unknown $codeEven
* @return boolean
*/
public function getChapitreEvenement($codeEven)
{
$code = intval($codeEven);
if ($code == 0) {
return false;
}
if (array_key_exists($code, $this->tabEvenements)) {
return $this->tabEvenements[$code]['Rubrique'];
}
return false;
}
/**
* Retourne le code de l'édition du BODACC (A, B ou C)
* @param string $codeEven
* @return boolean
*/
public function getEditionEvenement($codeEven)
{
$code = intval($codeEven);
if ($code == 0) {
return false;
}
if (array_key_exists($code, $this->tabEvenements)) {
return $this->tabEvenements[$code]['Bodacc_Code'];
}
return false;
}
/**
* Retourne si la porté de l'évènement est relative à l'établissement uniquement
* @param string $codeEven
* @return boolean
*/
public function isEvenementEtab($codeEven)
{
$code = intval($codeEven);
if ($code == 0) {
return false;
}
if (array_key_exists($code, $this->tabEvenements)) {
return $this->tabEvenements[$code]['LienEtab'];
}
return false;
}
/**
* Vérifie si une devise texte du Bodacc est connu
* @param string $strDevise
* @return boolean
*/
public function isDeviseBodacc($strDevise)
{
return array_key_exists($strDevise, $this->tabDevises);
}
/**
* Retoune le code ISO 4217 d'une devise texte du Bodacc
* @param string $strDevise
* @return mixed
*/
public function getDeviseBodacc($strDevise)
{
return $this->tabDevises[$strDevise];
}
/**
* Insert le libellé de devise textuel du Bodacc
* @param string $strDevise
* @param string $deviseIso
* @return boolean
*/
public function addDeviseBodacc($strDevise, $deviseIso)
{
$result = $this->conn->insert('jo.bodacc_devices', array(
'libDeviseBodacc' => $strDevise,
'devIso' => $deviseIso,
'dateInsert' => date('YmdHis')
));
if ($result) {
$this->tabDevises = $this->getTabDevises();
return true;
}
return false;
}
/**
* Vérifie si le code rubrique de l'annonce au Bodacc est connu
* @param string $codeRubriqueBodacc
* @return boolean
*/
public function isRubriqueBodacc($codeRubriqueBodacc)
{
return array_key_exists($codeRubriqueBodacc, self::$tabRubriques);
}
/**
* Retourne le code rubrique de l'annonce au Bodacc
* @param string $codeRubriqueBodacc
* @return string
*/
public function getLibRubriqueBodacc($codeRubriqueBodacc)
{
return $this->tabRubriques[$codeRubriqueBodacc];
}
/**
* Retourne le code évènement de l'annonce en provenance du Bodacc XML
* @param string $libJugementXML Libellé de la rubrique au Bodacc XML
* @return string
*/
public function getCodeNatureEvenement($libEvenXML)
{
foreach ($this->tabNaturesEvenements as $code => $label) {
if (md5($label) == md5($libEvenXML)) {
return intval($code);
}
}
return 0;
}
/**
*
* @param string $strAdministration
* @return array
*/
public function getDirigeants($strAdministration)
{
$tabRet = array();
$strFonctions = $this->regExFonction;
$tabNoms = array();
if (is_array($strAdministration)) {
$strAdministration = implode('. ', $strAdministration);
}
$strAdministration = trim($strAdministration);
$strAdministration = str_ireplace('Nom d\'usage :', 'Nom d\'usage =', trim($strAdministration));
if ($strAdministration == '') {
return $tabRet;
}
$tabAdministration = explode(':', $strAdministration);
$tabFonctions = $tabNoms = $tabCodeFct = $tabOldFct = array();
/**
* On boucle sur chaque ligne qui doit contenir NOM PRENOM suivi de la fonction de la ligne suivante
* La première ligne ne contient pas de NOM PRENOM car il s'agit de la 1ère ligne
*/
foreach ($tabAdministration as $i => $ligne) {
// On recherche la fonction et son code fonction de la ligne
foreach ($this->tabDirigeants as $fonction => $numFct) {
if (preg_match("/(.*)$fonction(.*)$/iu", $ligne, $matches)) {
$tabFonctions[$i] = '';
$tabCodeFct[$i] = $numFct;
$tabOldFct[$i] = 0;
if (array_key_exists($i+1, $tabAdministration)) {
$tabFonctions[$i] = preg_replace("/($strFonctions)/i", '', $tabAdministration[$i+1]);
if (preg_match("/(partant|ancien|suppression|cha.g|d.part|d.mis(si|is)on|r.vocation)/iu", $tabAdministration[$i+1])) {
$tabOldFct[$i] = 1;
}
}
break;
}
}
}
// On boucle sur chaque fonction trouvée et on extrait les noms, prénoms
foreach ($tabFonctions as $i => $ligne) {
$numFonction = $tabCodeFct[$i];
$oldFonction = $tabOldFct[$i];
$ligne = trim($ligne);
// Chaque Noms pour une même fonction doit être séparée par " et " ou ";" */
$strNoms = str_replace(' et ', ';', $ligne);
$tabNoms = explode(';', $strNoms);
$raisonSociale = $nom = $prenom = $usage = '';
foreach ($tabNoms as $noms) {
// Cas type NOM (prenom) (Nom usage : XXXX)
if (preg_match("/^(.*)\((.*)\).*\((.*)\)/i", $noms, $matches)) {
$nom = trim(str_replace(':', '', $matches[1]));
if (preg_match("/(.*)repr.sent.e?(.*)/iu", $nom, $matches2)) {
$raisonSociale = $matches2[1];
$nom = trim(str_replace('par ', '', $matches2[2]));
}
$prenom = trim(str_replace('par ', '', $matches[2]));
$usage = trim(str_ireplace('Nom d\'usage =', '', $matches[3]));
} elseif (preg_match("/^(.*)\((.*)\)/iu", $noms, $matches)) {
$nom = trim(str_replace(':', '', $matches[1]));
if (preg_match("/(.*)repr.sent.e?(.*)/iu", $nom, $matches2)) {
$raisonSociale = $matches2[1];
$nom = trim(str_replace('par ', '', $matches2[2]));
}
$prenom = trim($matches[2]);
$usage = '';
}
// Cas type NOM (prenom)
elseif (preg_match("/^(.*)/i", $noms, $matches)) {
$tabNomPrenom = $this->getNomPrenomGenre(trim(str_replace(':', '', $matches[1])));
$nom = $tabNomPrenom['Nom'];
$prenom = $tabNomPrenom['Prenoms'];
$usage = '';
}
// Cas non gérée
else {
//die("Cas non gérée pour cette structure de noms : '$noms'");
}
// @todo Il manque le cas de repr par pour le STE ???
if (preg_match('/(en fonction le)|(modification le)/Ui', $nom)) {
//echo "Je remplace le nom du dirigeant BODACC '$nom' par ";
$nom = preg_replace('/\s+en fonction le.*$/', '', $nom);
$nom = preg_replace('/\s+modification le.*$/', '', $nom);
//echo "'$nom'".PHP_EOL;
}
$tabRet[] = array(
'fonction' => $numFonction,
'rs' => trim(str_replace(',', '', $raisonSociale)),
'nom' => $nom,
'prenom' => $prenom,
'nomUsage' => $usage,
'depart' => $oldFonction
);
}
}
return $tabRet;
}
/**
* Détermine les NOMs et PRENOMs dans une chaine de caractère
* @param string $strNomPrenom
* @return array
*/
public function getNomPrenomGenre($strNomPrenom)
{
$noms = $prenoms = $genre = '';
$tabMots = preg_split('/( +|\.+)/', $strNomPrenom);
foreach ($tabMots as $i => $prenom) {
if (strlen(trim($prenom)) == 0 || strlen(trim($prenom, " '*-/")) <= 1) {
$noms.= $prenom.' ';
continue;
}
try {
$stmt = $this->conn->query("SELECT prenom, genre, mixte, nbTot FROM npaipp.pp_prenoms
WHERE prenom='".addslashes($prenom)."' AND nbTot>100 ORDER BY nbTot DESC");
} catch (\Doctrine\DBAL\DBALException $e) {
continue;
}
if ($stmt->rowCount() > 0) {
$tabPrenom = $stmt->fetch(\PDO::FETCH_ASSOC);
// C'est plutôt le nom de famille au début de la chaîne
if ($i == 0) {
$noms.= $prenom.' ';
} else {
$prenoms.= $prenom.', ';
if ($genre == '' && $tabPrenom['genre'] == 1 && $tabPrenom['mixte'] == 0) {
$genre = 'M';
} elseif ($genre == '' && $tabPrenom['genre'] == 2 && $tabPrenom['mixte'] == 0) {
$genre = 'F';
}
}
}
// Ce n'est pas un prénom mais un nom de famille
else {
$noms.= $prenom.' ';
}
}
return array(
'Nom' => trim($noms),
'Prenoms' => preg_replace('/,$/', '', trim($prenoms)),
'Genre' => $genre
);
}
/**
*
* @param string $bodaccCode
* @param int $annee
* @param int $num
* @return array
*/
public function getNumPageAnnonce($bodaccCode, $annee, $num)
{
$result = array();
$sql = "SELECT Bodacc_Code, Bodacc_Annee_Parution, Bodacc_Num, Num_Annonce, Tribunal_Dept, Tribunal_Code, Rubrique_Bodacc, length(annonce) as Long
FROM jo.bodacc WHERE Bodacc_Code=:code AND Bodacc_Annee_Parution=:annee AND Bodacc_Num=:num";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('code', $bodaccCode);
$stmt->bindValue('annee', $annee);
$stmt->bindValue('num', $num);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($row = $stmt->fetch(\PDO::FETCH_OBJ)) {
$result[] = array(
'BodaccCode' => $ann->Bodacc_Code,
'AnneeParution' => $ann->Bodacc_Annee_Parution,
'BodaccNum' => $ann->Bodacc_Num,
'NumAnnonce' => $ann->Num_Annonce,
'Departement' => $ann->Tribunal_Dept,
'Tribunal' => $ann->Tribunal_Code,
'Rubrique' => $ann->Rubrique_Bodacc,
'nbCar' => $ann->Long,
);
}
}
return $result;
}
/**
* Vérifie si la date du jugement correspond à une date de jugements civils pour une date donnée
* @param string $tribunal
* @param string $dateJug
* @param int $jourJug
* @param int $jjJug
* @param string $texteAnnonce
* @return number
*/
public function isAudienceCivile($tribunal, $dateJug, $jourJug, $jjJug, $texteAnnonce)
{
$tribunal = trim($tribunal);
$droitLocal = false;
// Date des audiences civiles droit local
switch ($tribunal) {
case 'METZG': // Le mercredi
case 'MULHOG': // Le mercredi
$droitLocal=true;
if ($jourJug == 3) {
echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du mercredi !".PHP_EOL;
return 1;
}
break;
case 'THIONG': // Le jeudi à 9h
$droitLocal = true;
if ($jourJug == 4) {
echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du jeudi !".PHP_EOL;
return 1;
}
break;
case 'SARREG': // Les 1er, 2ème et 4ème mardi
$droitLocal = true;
if ($jourJug==2 && $jjJug<15 && $jjJug>21) {
echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du mardi !".PHP_EOL;
return 1;
}
break;
case 'STRASG': // ?
$droitLocal = true;
//echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles de Strasbourg !".PHP_EOL;
return 0;
break;
case 'SAVERG': // Le mardi et 2ème, 3ème et 4ème vendredi
$droitLocal = true;
if ($jourJug == 2 || ($jourJug == 5 && $jjJug > 7)) {
echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles du vendredi !".PHP_EOL;
return 1;
}
case 'COLMAG': // ?
$droitLocal = true;
//echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles de Colmar !".PHP_EOL;
return 0;
break;
}
if ($droitLocal && preg_match("/insolvabilit.{0,3}notoire/iu", $texteAnnonce)) {
return 1;
}
return 0;
}
public function getJALparDep($dep)
{
$result = array();
$sql = "SELECT id, dep, nomJal, siteWeb, email, adresse, cp, ville, tel, fax, parution, aboAnnuel, infos
FROM jo.tabJAL WHERE dep = :dep";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('dep', $dep);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
return $result;
}
public function getListeJalCollecte()
{
$result = array();
$sql = "SELECT id, nomJal FROM jo.tabJAL WHERE sedDateAbo!=0 GROUP BY nomJal ORDER BY nomJal ASC";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('dep', $dep);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($row = $stmt->fetch(\PDO::FETCH_OBJ)) {
$result['_'.$row->id] = $row->nomJal;
}
}
return $result;
}
/**
* Recherche de l'activité réelle
* @param string $siren
* @param string $fj
* @return string
*/
public function getActiviteReelle($siren, $fj)
{
$strEvenVtLg = " AND Rubrique!='ventes' AND typeEven NOT LIKE '%2700%' AND typeEven NOT LIKE '%2701%' AND typeEven NOT LIKE '%2702%' AND typeEven NOT LIKE '%2703%' AND typeEven NOT LIKE '%2710%' AND typeEven NOT LIKE '%2720%' AND typeEven NOT LIKE '%2721%' AND typeEven NOT LIKE '%2725%' AND typeEven NOT LIKE '%2730%' AND typeEven NOT LIKE '%2740%' AND typeEven NOT LIKE '%2750%' AND typeEven NOT LIKE '%2800%' AND typeEven NOT LIKE '%2840%' AND typeEven NOT LIKE '%2850%' AND typeEven NOT LIKE '%2851%' AND typeEven NOT LIKE '%2860%' AND typeEven NOT LIKE '%2870%' AND typeEven NOT LIKE '%2875%' AND typeEven NOT LIKE '%2880%' AND typeEven NOT LIKE '%2881%' AND typeEven NOT LIKE '%2885%' AND typeEven NOT LIKE '%2890%' AND typeEven NOT LIKE '%2891%' AND typeEven NOT LIKE '%2892%' ";
$sql = "SELECT Activite FROM jo.bodacc_detail WHERE siren=:siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$annCap = $stmt->fetch(\PDO::FETCH_ASSOC);
if ($fj < 7000 || $fj > 7999) {
$activite = trim($annCap['Activite']);
}
}
if ($activite == '' && ($fj > 90 && $fj < 94 || $fj > 9000 && $fj < 9400)) {
$sql = "SELECT Assoc_Objet, Assoc_NObjet FROM jo.asso
WHERE siren=:siren AND (Assoc_Objet!='' OR Assoc_NObjet!='')
ORDER BY Date_Parution DESC LIMIT 0,1";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
$annCap = $stmt->fetch(\PDO::FETCH_ASSOC);
$activite = trim($annCap['Assoc_NObjet']);
if ($activite == '') {
$activite = trim($annCap['Assoc_Objet']);
}
}
} elseif ($activite == '' && ($fj < 7000 || $fj > 7999)) {
$sql = "SELECT e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt
FROM historiques.entrep e, historiques.texte x
WHERE e.E1GSIR=:siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%ctivit%'
GROUP BY e.ANBASE ORDER BY e.DATE DESC";
$stmtNb = 0;
try {
$stmt = $this->conn->prepare($sql);
$stmt->bindValue('siren', $siren);
$stmt->execute();
$stmtNb = $stmt->rowCount();
} catch (\Doctrine\DBAL\DBALException $e) {
if ($this->logger !== null) {
$this->logger->error($e->getMessage());
}
}
if ($stmtNb > 0) {
while ($ann = $stmt->fetch(\PDO::FETCH_ASSOC)) {
if (($ann['CODEVE'] < 20) || ($ann['CODEVE'] >= 30 && $ann['CODEVE'] < 42)
|| ($ann['CODEVE'] >= 51 && $ann['CODEVE'] < 80)) {
if (preg_match('/(.*)Activit(?:e|é)(?:.|)\:(.*)(?:Adresse(?:.*|)|Commentaires?|Administration|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.|Capital|Nom commercial)(?:.|)\:/Uisu', $ann['annonceTxt'], $matches)) {
if (strpos(substr($matches[1], -20), 'cess') === false
&& strpos(substr($matches[1], -20), 'date') === false) {
$activite = $matches[2];
break;
}
}
}
}
}
}
return $activite;
}
/**
*
* @param string $strFJ
* @return string
*/
public function getCodeFormeJur($strFJ)
{
$tabCjBodacc = include 'Metier/Bodacc/BodaccCJ.php';
$strFJ = strtoupper(trim(preg_replace('/[^a-z]/i', '', $strFJ)));
return isset($tabCjBodacc[$strFJ])?$tabCjBodacc[$strFJ]:'';
}
}