Michael RICOIS 997691ab0b Code format
2016-08-08 14:13:00 +02:00

1301 lines
51 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,
);
protected $iDb;
public function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new Metier_Util_Db();
} else {
$this->iDb = $db;
}
/** 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 {
$rep=$this->iDb->select('jo.tribunaux', 'triCode, triNom, triCP, triSiret', "triCode IS NOT NULL");
$tabTribunaux=array();
foreach($rep as $k=>$trib) {
$dep=substr($trib['triCP'],0,2)*1;
if ($dep==97 || $dep==98) $dep=substr($trib['triCP'],0,3)*1;
$tabTmp=array($trib['triCode']=>array('nom'=>$trib['triNom'],'siret'=>$trib['triSiret'],'dep'=>$dep));
$tabTribunaux=array_merge($tabTribunaux, $tabTmp);
}
return $tabTribunaux;
}
}
/**
* 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 {
$rep=$this->iDb->select('jo.bodacc_fonctions', 'codeFct, libelle', '1');
$tabRet=array();
foreach($rep as $tabFct)
$tabRet[$tabFct['codeFct']*1]=$tabFct['libelle'];
return $tabRet;
}
}
/**
* 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)
{
$tabTribunaux = array();
$rep = $this->iDb->select('jo.tribunaux t, jo.tribunauxInsee i',
'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',
"i.CodeInsee='$codeInseeCommune' AND i.triId=t.triId ORDER BY t.triNumGreffe DESC, t.triId ASC",
false, MYSQL_ASSOC);
if (count($rep) > 0) {
foreach($rep as $k => $trib) {
$tabTribunaux[] = $trib;
}
}
return $tabTribunaux;
}
/**
* Liste des tribunaux par département
* @param string $dep
* @return array
*/
public function getTribunauxParDep($dep)
{
$tabTribunaux = array();
$fields = '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';
if ( $dep<96 ) {
$rep = $this->iDb->select(
'jo.tribunaux t', $fields,
"t.triCP BETWEEN '".$dep."000' AND '".$dep."999' ORDER BY t.triType ASC", false, MYSQL_ASSOC
);
} else {
$rep = $this->iDb->select(
'jo.tribunaux t', $fields,
"t.triCP BETWEEN '".$dep."00' AND '".$dep."99' ORDER BY t.triType ASC", false, MYSQL_ASSOC
);
}
if ( count($rep)>0 ) {
foreach($rep as $k=>$trib) {
$tabTribunaux[]=$trib;
}
}
return $tabTribunaux;
}
/**
* Donne la cours d'appel d'un tribunal par son code
* @param string $codeTribunal
*/
public function getTribunalIdCA($codeTribunal)
{
$rep = $this->iDb->select('jo.tribunaux', 'triIdSup', "triCode='$codeTribunal'");
return $rep[0][0];
}
/**
*
*/
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 {
$rep = $this->iDb->select('jo.tabEvenements', 'codEven, libEven, Bodacc_Code, Rubrique, version, lienEtab', '1', false, MYSQL_ASSOC);
$tabRet = array();
foreach($rep as $k => $even) {
$tabRet[$even['codEven']] = array(
'libEven' => $even['libEven'],
'Bodacc_Code' => $even['Bodacc_Code'],
'Rubrique' => $even['Rubrique'],
'Version' => $even['version'],
'LienEtab' => $even['lienEtab'],
);
}
return $tabRet;
}
}
/**
* 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 {
$rep = $this->iDb->select('jo.bodacc_devises', 'libDeviseBodacc, devIso', '1', false, MYSQL_ASSOC);
$tabDevises = array();
foreach($rep as $k => $trib) {
$tabTmp = array($trib['libDeviseBodacc'] => $trib['devIso']);
$tabDevises = array_merge($tabDevises, $tabTmp);
}
return $tabDevises;
}
}
/**
* 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 = ((int)$codeEven)*1;
if ($code == 0) {
return false;
}
return @$this->tabEvenements[$code]['libEven'];
}
/**
* Retourne le niveau de version du code évènement BODACC codifié par S&D
* @param string $codeEven
* @return boolean
*/
public function getVersionEvenement($codeEven)
{
$code = ((int)$codeEven)*1;
if ($code == 0) {
return false;
}
return @$this->tabEvenements[$code]['Version'];
}
/**
* 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 = ((int)$codeEven)*1;
if ($code == 0) {
return false;
}
return @$this->tabEvenements[$code]['Rubrique'];
}
/**
* Retourne le code de l'édition du BODACC (A, B ou C)
* @param string $codeEven
* @return boolean
*/
public function getEditionEvenement($codeEven)
{
$code=$codeEven*1;
if ($code==0) return false;
return @$this->tabEvenements[$code]['Bodacc_Code'];
}
/**
* Retourne si la porté de l'évènement est relative à l'établissement uniquement
* @param string $codeEven
* @return boolean
*/
public function isEvenementEtab($codeEven)
{
$code = $codeEven*1;
if ($code == 0) {
return false;
}
return @$this->tabEvenements[$code]['LienEtab'];
}
/**
* 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)
{
if (!$this->iDb->insert('jo.bodacc_devises', array(
'libDeviseBodacc' => $strDevise,
'devIso' => $deviseIso,
'dateInsert' => date('YmdHis')),true)) {
return false;
}
// On réinitialise le tableau des devises du Bodacc
$this->tabDevises=$this->getTabDevises();
return true;
}
/**
* 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;
}
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);
//file_put_contents('coucou.log',print_r($tabAdministration, 1), FILE_APPEND);
$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) {
//file_put_contents('coucou.log','Fonction : '.$fonction, FILE_APPEND);
//@todo : provisoire table bdd en utf8
if (preg_match("/(.*)$fonction(.*)$/iu", $ligne, $matches)) {
//file_put_contents('coucou.log',"Matched \n", FILE_APPEND);
$tabCodeFct[$i]=$numFct;
$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;
else
$tabOldFct[$i]=0;
break;
}
//file_put_contents('coucou.log',"\n", FILE_APPEND);
}
} //file_put_contents('coucou.log',print_r($tabFonctions, 1), FILE_APPEND);
/** On boucle sur chaque fonction trouvée et on extrait les noms, prénoms **/
foreach ($tabFonctions as $i=>$ligne) {//$ligne
$numFonction=$tabCodeFct[$i];
$oldFonction=$tabOldFct[$i];
$ligne=trim($ligne);
/** Chaque Noms pour une même focntion doit être séparée par " et " ou ";" */
$strNoms=str_replace(' et ', ';', $ligne);
$tabNoms=explode(';', $strNoms);
$raisonSociale=$nom=$prenom=$usage='';
foreach ($tabNoms as $noms) {
if (preg_match("/^(.*)\((.*)\).*\((.*)\)/i", $noms, $matches)) {
//Cas type NOM (prenom) (Nom usage : XXXX)
$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='';
} 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);
}
}
//print_r($tabRet);
//$saisie = fgets(STDIN);
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) {
$tabPrenoms = $this->iDb->select('npaipp.pp_prenoms', 'prenom, genre, mixte, nbTot',
"prenom='".addslashes($prenom)."' AND nbTot>100 ORDER BY nbTot DESC",
false, MYSQL_ASSOC);
if (count($tabPrenoms) > 0) {
$tabPrenom = $tabPrenoms[0];
// 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)
{
$tabRet = array();
$bodacc = $this->iDb->select('jo.bodacc',
'Bodacc_Code, Bodacc_Annee_Parution, Bodacc_Num, Num_Annonce, Tribunal_Dept, Tribunal_Code, Rubrique_Bodacc, length(annonce) as Long',
"Bodacc_Code='$bodaccCode' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$num");
foreach ($bodacc as $k=>$ann) {
$tabRet[$k] = 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 $tabRet;
}
/**
* 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)
{
$tabRet = array();
$rep = $this->iDb->select('jo.tabJAL',
'id, dep, nomJal, siteWeb, email, adresse, cp, ville, tel, fax, parution, aboAnnuel, infos',
"dep=$dep", false, MYSQL_ASSOC);
foreach($rep as $k => $jal) {
$tabRet[] = $jal;
}
return $tabRet;
}
public function getListeJalCollecte()
{
$tabRet = array();
$rep = $this->iDb->select('jo.tabJAL', 'id, nomJal', 'sedDateAbo<>0 GROUP BY nomJal ORDER BY nomJal ASC', false, MYSQL_ASSOC);
foreach($rep as $k => $jal) {
$tabRet['_'.$jal['id']] = $jal['nomJal'];
}
return $tabRet;
}
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%' ";
/** Recherche de l'activité réelle **/
$bodacc = $this->iDb->select('jo.bodacc_detail', 'Activite',
"siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap = @$bodacc[0];
if ($fj < 7000 || $fj > 7999) {
$tabRet['Activite'] = trim($annCap['Activite']);
}
if ($tabRet['Activite'] == '' && trim($tab['activite']) != '') {
$tabRet['Activite'] =trim($tab['activite']);
}
elseif ($tabRet['Activite'] == '' && ($fj > 90 && $fj < 94 || $fj > 9000 && $fj < 9400) ) {
$siretMin = (''.$siren.'00000')*1;
$siretMax = (''.$siren.'99999')*1;
$bodacc = $this->iDb->select('jo.asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet',
"siren=$siren AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap = @$bodacc[0];
$tabRet['Activite'] = trim($annCap['Assoc_NObjet']);
if ($tabRet['Activite'] == '') {
$tabRet['Activite'] = trim($annCap['Assoc_Objet']);
}
if ($tabRet['Web']=='') {
$tabRet['Web'] = trim($annCap['Assoc_Web']);
}
if ($tabRet['Mail']=='') {
$tabRet['Mail'] = trim($annCap['Assoc_Mail']);
}
}
elseif ($tabRet['Activite'] == '' && ($fj < 7000 || $fj > 7999)) {
$bodaccHisto = $this->iDb->select('historiques.entrep e, historiques.texte x',
'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',
"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", false, MYSQL_ASSOC);
if (count($bodaccHisto) > 0) {
foreach ($bodaccHisto as $idx => $ann) {
if ($tabCodeTri != '' && $tabCodeTri != @$ann['CODTRI']) {
$tabCodeTri = @$ann['CODTRI'];
}
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) {
$tabRet['Activite'] = $matches[2];
break;
}
}
}
}
}
return $tabRet['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 $tabCjBodacc[$strFJ];
}
}