webservice/library/Metier/bodacc/classMBodacc.php
Michael RICOIS 5ddcfa1299 Inject Db
2015-01-20 13:54:37 +00:00

1255 lines
58 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
$tabTypeAsso=array(
'_1' =>array('even'=>8000,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'ASSOCIATION/CREATION'),
'_2' =>array('even'=>8079,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'ASSOCIATION/MODIFICATION'),
'_3' =>array('even'=>8090,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'ASSOCIATION/DISSOLUTION'),
'_4' =>array('even'=>8000,'type'=>'Insertion', 'forme'=>'FON','lib'=>'FONDATION/CREATION'),
'_5' =>array('even'=>8079,'type'=>'Insertion', 'forme'=>'FON','lib'=>'FONDATION/MODIFICATION'),
'_6' =>array('even'=>8090,'type'=>'Insertion', 'forme'=>'FON','lib'=>'FONDATION/DISSOLUTION'),
'_7' =>array('even'=>8085,'type'=>'Insertion', 'forme'=>'ASS','lib'=>'DECISION DE JUSTICE'),
'_11' =>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'ASS','lib'=>'ASSOCIATION/CREATION/RECTIFICATIF'),
'_22' =>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'ASS','lib'=>'ASSOCIATION/MODIFICATION/RECTIFICATIF'),
'_33' =>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'ASS','lib'=>'ASSOCIATION/DISSOLUTION/RECTIFICATIF'),
'_44' =>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'FON','lib'=>'FONDATION/CREATION/RECTIFICATIF'),
'_55' =>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'FON','lib'=>'FONDATION/MODIFICATION/RECTIFICATIF'),
'_66' =>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'FON','lib'=>'FONDATION/DISSOLUTION/RECTIFICATIF'),
'_101'=>array('even'=>8000,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/CREATION'),
'_102'=>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/CREATION/RECTIFICATIF'),
'_103'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/CREATION/ANNULATION'),
'_111'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'ASS','lib'=>'ASSOCIATION/CREATION/ANNULATION'),
'_222'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'ASS','lib'=>'ASSOCIATION/MODIFICATION/ANNULATION'),
'_333'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'ASS','lib'=>'ASSOCIATION/DISSOLUTION/ANNULATION'),
'_444'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'FON','lib'=>'FONDATION/CREATION/ANNULATION'),
'_555'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'FON','lib'=>'FONDATION/MODIFICATION/ANNULATION'),
'_666'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'FON','lib'=>'FONDATION/DISSOLUTION/ANNULATION'),
'_201'=>array('even'=>8079,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION'),
'_202'=>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION/RECTIFICATIF'),
'_203'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION/ANNULATION'),
'_301'=>array('even'=>8090,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION'),
'_302'=>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION/RECTIFICATIF'),
'_303'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION/ANNULATION'),
'_8AC'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'ASL','lib'=>'ASL/CREATION/ANNULATION'),
'_8AD'=>array('even'=>8000,'type'=>'?', 'forme'=>'ASL','lib'=>'ASL/CREATION/DISSOLUTION'),
'_8AM'=>array('even'=>8000,'type'=>'?', 'forme'=>'ASL','lib'=>'ASL/CREATION/MODIFICATION'),
'_8C' =>array('even'=>8000,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/CREATION'),
'_8CR'=>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/CREATION/RECTIFICATIF'),
'_8D' =>array('even'=>8090,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION'),
'_8DR'=>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/DISSOLUTION/RECTIFICATIF'),
'_8M' =>array('even'=>8079,'type'=>'Insertion', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION'),
'_8RM'=>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'ASL','lib'=>'ASL/MODIFICATION/RECTIFICATIF'),
'_900'=>array('even'=>8000,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/CREATION'), // Création de fonds de dotation
'_901'=>array('even'=>8000,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/CREATION/RECTIFICATIF'), // Rectificatif de création de fonds de dotation
'_902'=>array('even'=>8000,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/CREATION/ANNULATION'), // Annulation de création de fonds de dotation
'_903'=>array('even'=>8079,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/MODIFICATION'), // Modification de fonds de dotation
'_904'=>array('even'=>8079,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/MODIFICATION/RECTIFICATIF'), // Rectificatif de modification de fonds de dotation
'_905'=>array('even'=>8079,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/MODIFICATION/ANNULATION'), // Annulation de modification de fonds de dotation
'_906'=>array('even'=>8090,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/DISSOLUTION'), // Dissolution de fonds de dotation
'_907'=>array('even'=>8090,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/DISSOLUTION/RECTIFICATIF'), // Rectificatif de dissolution de fonds de dotation
'_908'=>array('even'=>8090,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/DISSOLUTION/ANNULATION'), // Annulation de dissolution de fonds de dotation
'_909'=>array('even'=>8080,'type'=>'Insertion', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/SUSPENSION'), // Avis de suspension d'activité
'_910'=>array('even'=>8080,'type'=>'Rectificatif', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/SUSPENSION/RECTIFICATIF'), // Rectificatif d'avis de suspension d'activité
'_911'=>array('even'=>8080,'type'=>'Suppression', 'forme'=>'FOD','lib'=>'FONDS_DOTATION/SUSPENSION/ANNULATION'), // Annulation d'avis de suspension d'activité
/*
_8CA Annulation creation ASL
_8DA Annulation dissolution ASL
_8MA Annulation modif ASL
_8MR Rectif modif ASL
*/
);
class 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 WDB();
} 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 Ligne de texte avec accents au format TLS (sans balise Bodacc)
** @return string Ligne de texte avec les accents normaux
**/
public function convertAccents($texteBodacc) {
return strtr($texteBodacc, self::$tabAccents);
}
/** Vérifie si la balise passée en paramètre est valide
** @param string Balise Bodacc
** @return bool
**/
public function isBaliseBodacc($balise) {
return array_key_exists($balise, self::$tabBalises);
}
/** Initialisation du tableau privé des tribunaux **/
private function getTabTribunaux()
{
$cache = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Cache' . DIRECTORY_SEPARATOR . 'Tribunaux.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 **/
private function getTabFctDir()
{
$cache = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Cache' . DIRECTORY_SEPARATOR . '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 **/
function getFctDir($codeFonction)
{
return $this->tabFctDir[$codeFonction];
}
/** Initialisation du tableau privé des tribunaux **/
/**
* 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 **/
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 **/
private function getTabEvenements()
{
$cache = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Cache' . DIRECTORY_SEPARATOR . '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) {
//$tabTmp=array($trib['codEven']=>$trib['libEven']);
$tabRet[$even['codEven']] = array(
'libEven'=>$even['libEven'],
'Bodacc_Code'=>$even['Bodacc_Code'],
'Rubrique'=>$even['Rubrique'],
'Version'=>$even['version'],
'LienEtab'=>$even['lienEtab'],
);
}
//echo "<!--".print_r($tabRet)."-->";
return $tabRet;
}
}
/** Initialisation du tableau privé des devises du Bodacc **/
private function getTabDevises()
{
$cache = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Cache' . DIRECTORY_SEPARATOR . '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 Code du Tribunal au BODACC
** @return bool
**/
public function isTribunal($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal=trim($codeBodaccDuTribunal);
return @array_key_exists($codeBodaccDuTribunal, $this->tabTribunaux);
}
/** Retorne le libellé du code du Tribunal BODACC
** @param string Code du Tribunal au BODACC
** @return string Libellé du Tribunal
**/
public function getTribunalNom($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal=trim($codeBodaccDuTribunal);
return $this->tabTribunaux[$codeBodaccDuTribunal]['nom'];
}
public function getTribunalDep($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal=trim($codeBodaccDuTribunal);
return $this->tabTribunaux[$codeBodaccDuTribunal]['dep'];
}
public function getTribunalSiret($codeBodaccDuTribunal)
{
$codeBodaccDuTribunal=trim($codeBodaccDuTribunal);
return $this->tabTribunaux[$codeBodaccDuTribunal]['siret'];
}
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;
// echo "Pas trouvé $sprefParam ($dep) par rapport à $sprefEnBase en base.".EOL;
//Pas trouvé SAINT QUENTIN (2) par rapport à ST QUENTIN !
} 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;
/*
elseif ($dep==13 && $libelleDuTribunal=='TGI TARASCON SUR RHONE')
return $code;
*/
/*else
echo "Pas trouvé $libelleDuTribunal ($dep) par rapport à ".$tribunal['nom'].' en base !'.EOL;
*/
}
//echo "Pas trouvé $libelleDuTribunal ($dep) par rapport à ".$tribunal['nom'].' en base !'.EOL;
//echo "Pas trouvé $sprefParam ($dep) par rapport à $sprefEnBase en base !".EOL;
return false;
}
/** Vérifie si le code du Tribunal BODACC est connu
** @param string Code du Tribunal au BODACC
** @return bool
**/
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 Code de l'évènement BODACC
** @return string Libellé de l'évènement
**/
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 Code de l'évènement BODACC
** @return integer Niveau de version (12, 13, 14, ...) correspondant à 1.2, 1.3 ou 1.4 pour les clients !!!
**/
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 string Code de l'évènement BODACC
** @return string Libellé du chapitre (comptes, creations, mmd, procol, radiations, ventes)
**/
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 Code de l'évènement BODACC
** @return string Libellé de l'édition (A, B ou C)
**/
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 $codeEven Code de l'évènement BODACC
** @return bool
**/
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 Devise textuelle au BODACC (YENS, EUROS, etc...)
** @return bool
**/
public function isDeviseBodacc($strDevise) {
return array_key_exists($strDevise, $this->tabDevises);
}
/** Retoune le code ISO 4217 d'une devise texte du Bodacc
** @param string Devise textuelle au BODACC (YENS, EUROS, etc...)
** @return string Code ISO 4217 de la devise
**/
public function getDeviseBodacc($strDevise) {
return $this->tabDevises[$strDevise];
}
/** Insert le libellé de devise textuel du Bodacc
** @param string Devise textuelle au BODACC (YENS, EUROS, etc...)
** @param string Devise ISO
** @return bool
**/
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 Code rubrique de l'annonce
** @return bool
**/
public function isRubriqueBodacc($codeRubriqueBodacc) {
//return array_key_exists($balise, self::$tabBalises);
return array_key_exists($codeRubriqueBodacc, self::$tabRubriques);
}
/** Retourne le code rubrique de l'annonce au Bodacc
** @param string Code rubrique de l'annonce
** @return string Libellé de la rubrique au BODACC
**/
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'".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
**/
function getNomPrenomGenre($strNomPrenom) {
$noms=$prenoms=$genre='';
$tabMots=preg_split('/( +|\.+)/', $strNomPrenom);
//print_r($tabMots);
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];
if ($i==0) // C'est plutôt le nom de famille au début de la chaîne
$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';
}
} else
// Ce n'est pas un prénom mais un nom de famille
$noms.=$prenom.' ';
}
return array('Nom'=>trim($noms), 'Prenoms'=>preg_replace('/,$/','',trim($prenoms)), 'Genre'=>$genre);
}
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 Code BODACC du TGIcc
** @param date $dateJug Date du jugement
** @param int $jourJug Jour de la semaine 1=Lundi à 5=Vendredi
** @param int $jjJug Jour du jugement dans le mois
** @return bool
**/
function isAudienceCivile($tribunal, $dateJug, $jourJug, $jjJug, $texteAnnonce) {
//echo "Tribunal=$tribunal, Date='$dateJug', Jour de la semaine='$jourJug', Jour du mois='$jjJug'".EOL;
$tribunal=trim($tribunal);
$droitLocal=false;
switch ($tribunal) { // Date des audiences civiles droit local
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 !".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 !".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 !".EOL;
return 1;
}
break;
case 'STRASG': // ?
$droitLocal=true;
//echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles de Strasbourg !".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 !".EOL;
return 1;
}
case 'COLMAG': // ?
$droitLocal=true;
//echo date('Y/m/d - H:i:s') ." - Droit local : Audiences civiles de Colmar !".EOL;
return 0;
break;
}
if ($droitLocal && preg_match("/insolvabilit.{0,3}notoire/iu", $texteAnnonce))
return 1;
return 0;
}
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;
}
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;
}
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(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$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'];
}
function getCodeFormeJur($strFJ)
{
global $tabCjBodacc;
if (count($tabCjBodacc)<1)
require_once 'Metier/bodacc/configMBodacc.php';
$strFJ=strtoupper(trim(preg_replace('/[^a-z]/i','',$strFJ)));
return @$tabCjBodacc[$strFJ];
}
}
?>