1408, md5("Jugement d'ouverture d'une procédure de redressement judiciaire")=>'1200', md5("Jugement d'ouverture de liquidation judiciaire")=>'1301', md5("Jugement de clôture pour insuffisance d'actif")=>1503, md5("Jugement de clôture de la liquidation des biens pour insuffisance d'actif")=>1503, md5("Dépôt de l'état des créances")=>1204, md5("Dépôt de l'état des créances Loi de 1985")=>1214, md5("Jugement de plan de redressement")=>1414, md5("Jugement de clôture pour extinction du passif")=>1502, md5("Jugement arrêtant le plan de sauvegarde")=>1101, md5("Liste des créances nées après le jugement d'ouverture d'une procédure de liquidation judiciaire")=>1206, md5("Jugement de conversion en liquidation judiciaire")=>1300, md5("Jugement arrêtant un plan de cession")=>1411, md5("Jugement prononçant la résolution du plan de cession et la liquidation judiciaire")=>'1305;1511', md5("Liste des créances nées après le jugement d'ouverture d'une procédure de redressement judiciaire")=>1206, md5("Dépôt de l'état de collocation")=>1203, md5("Jugement prononçant la résolution du plan de redressement et la liquidation judiciaire")=>'1305;1512', md5("Jugement prononçant la résolution du plan de sauvegarde et la liquidation judiciaire")=>'1305;1513', md5("Jugement de faillite personnelle")=>1600, md5("Jugement de faillite personnelle Loi de 1985")=>1610, md5("Jugement d'interdiction de gérer")=>1601, md5("Jugement d'interdiction de gérer Loi de 1985")=>1611, md5("Arrêt de la cour d'appel infirmant une décision soumise à publicité")=>1506, md5("Jugement d'ouverture d'une procédure de sauvegarde")=>1100, md5("Jugement de reprise de la procédure de liquidation judiciaire")=>1304, md5("Jugement modifiant le plan de continuation")=>1409, md5("Dépôt du projet de répartition")=>1208, md5("Dépôt de l'état des créances et du projet de répartition")=>'1204;1208', md5("Jugement d'homologation de l'accord")=>1550, md5("Jugement prononçant la résolution du plan de cession")=>1511, md5("Jugement de conversion en redressement judiciaire de la procédure de sauvegarde")=>1201, md5("Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde")=>1307, md5("Jugement modifiant la date de cessation des paiements")=>1450, md5("Jugement de clôture de la liquidation des biens pour extinction du passif")=>1502, md5("Jugement modifiant le plan de redressement")=>1407, md5("Jugement mettant fin à la procédure de redressement judiciaire")=>1500, md5("Jugement accordant un délai pour déposer la liste des créances")=>1440, md5("Jugement modifiant le plan de sauvegarde")=>1407, md5("Jugement de clôture pour insuffisance d'actif et autorisant la reprise des poursuites individuelles")=>'1503;1605', md5("Ordonnance statuant sur les contestations du projet de répartition")=>1540, md5("Jugement de clôture de la procédure de sauvegarde")=>1500, md5("Jugement mettant fin à la procédure de sauvegarde")=>1500, md5("Jugement d'extension de liquidation judiciaire")=>1417, md5("Jugement d'extension d'une procédure de redressement judiciaire")=>1418, md5("Jugement d'extension d'une procédure de sauvegarde")=>1419, md5("Rétractation de prononcé de liquidation judiciaire sur tierce opposition")=>1541, md5("Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition")=>1542, md5("Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition")=>1543, md5("Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition")=>1544, md5("Jugement de désignation des organes de la procédure")=>1215, // v1.5 Avril 2008 md5("Rétractation de jugement d'ouverture sur tierce opposition")=>1545, md5("Autre rétractation sur tierce opposition")=>1546, md5("Autre jugement de liquidation des biens")=>1603, md5("Autre arrêt de la Cour d'Appel")=>1507, md5("Autre jugement de clôture")=>1500, md5("Autres avis de dépôt")=>1216, md5("Arrêts divers")=>1515, md5("Autre jugement d'ouverture")=>1998, md5("Autres jugements et ordonnances")=>1998, md5("Autre jugement prononçant")=>1998, /** ** v1.5 Avril 2008 - Intégration du Bodacc A en XML : Ventes / Cessions **/ md5("Achat d'un fonds par une personne morale (insertion provisoire)")=>5103, md5("Achat d'un foncs par une personne morale (insertion provisoire)")=>5103, md5("Achat d'un fonds par une personne morale.")=>5103, // Ajout le 23/12/2010 md5("Achat d'un établissement principal par une personne physique (immatriculation)")=>5000, md5("Achat d'un établissement principal par une personne morale lors de l'immatriculation")=>5000, md5("Autre achat, apport, attribution")=>5900, md5("Autre achat, appport, attribution")=>5900, md5("Autre achat, apport, attribution (personne physique)")=>5900, md5("Autre achat, apport, attribution (personne physque)")=>5900, md5("Autre achat, apport, atribution (personne morale)")=>5900, md5("Autre achat, apport, attribution (personne morale)")=>5900, md5("achat, apport, attribution (personne morale)")=>5900, md5("Achat d'un fonds par une personne physique (insertion provisoire)")=>5103, md5("Achat d'un établissement secondaire ou complémentaire par une personne morale")=>5001, md5("Apport d'un établissement secondaire/complémentaire (personne morale, uniquement)")=>5001, md5("Achat d'un établissement complémentaire par une personne morale")=>5001, md5("Achat d'un établissement secondaire ou complémentaire par une personne physique")=>5001, md5("Mise en activité d'une société suite à achat")=>'2316;5999', md5("Mise en activité d'une soicété suite à achat")=>'2316;5999', md5("Achat d'un fonds par le locataire-gérant personne morale")=>5450, md5("Achat d'un fonds par le locataire-gérant personne physique")=>5450, md5("Apport d'un établissement principal (immatriculation d'une personne morale, uniquement)")=>5000, md5("Apport d'un établissement principal (immatriculation d'une personne morale uniquement)")=>5000, md5("Attribution d'un fonds suite à partage, à licitation (Immatriculation d'une personne physique)")=>5460, md5("Attribution d'un fonds suite à donation avec délai d'oppositions (Immatriculation d'une personne physique)")=>5460, md5("Annulation d'avis Vente")=>5999, md5("Annulation d'avis vente")=>5999, md5("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 **/ md5("Immatriculation d'une personne physique suite à création d'un établissement principal")=>4000, md5("Immatriculation d'une personne morale (B, D) sans activité")=>4050, md5("Immatriculation d'une personne morale (B, C, D) suite à création d'un établissement principal")=>4000, md5("Immatriculation d'une personne morale (B, C, D suite à création d'un établissement principal)")=>4000, md5("Immatriculation d'une personne physique suite à transfert de l'établissement principal")=>4250, md5("Immatriculation d'une personne morale après 1er avis")=>4000,//??????? md5("Immatriculation d'une personne morale suite à transfert de son siège social")=>4250, md5("Immatriculation d'une personne physique, reprise d'activité après location-gérance")=>4350, md5("Immatriculation d'une personne morale, établissement principal reçu en location-gérance")=>4355, md5("Immatriculation d'une personne physique après 1er avis")=>4000, md5("Immatriculation d'une personne physique, établissement principal reçu en location-gérance")=>4355, md5("Immatriculation d'une personne physique, établissement principal précédemment exploité par le conjoint")=>4450, md5("Immatriculation d'une personne physique, établissement précédemment exploité par le conjoint")=>4450, md5("Transformation d'un GAEC")=>4400, md5("Autre immatriculation personne morale")=>4000, md5("Autre immatriculation personne physique")=>4000, md5("Immatriculation d'une société de droit européen (quelle que soit l'origine du fonds)")=>4600, md5("Immatriculation avec origine du fonds création")=>4000, md5("Immatriculation avec orgine du fonds création")=>4000, md5("Immatriculation avec origine de fonds achat")=>4501, md5("Immatriculation avec origine du fonds achat")=>4501, md5("Immatriculation d'une personne physique, établissement principal hérité, reçu par donation")=>4410, ); $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'), '_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 { 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 $tabEvenements=array( '1100'=>'Ouverture sauvegarde', '1101'=>'Jugement arrêtant plan de sauvegarde', '1200'=>'RJ', '1201'=>'Conversion sauvegarde en RJ', '1202'=>'Renouvellement de la période d\'observation', '1203'=>'Avis de dépôt de l\'état de collocation', '1204'=>'Avis de dépôt de l\'état des créances', '1205'=>'Avis de dépôt de l\'état des créances complémentaires', '1206'=>'Avis de dépôt de l\'état des créances nées après jugements', '1207'=>'Règlements amiables', '1208'=>'Avis de dépôt du projet de répartition', '1209'=>'Règlement judiciaire', '1210'=>'Production titres créance', '1300'=>'Conversion RJ en LJ', '1301'=>'Ouverture LJ', '1302'=>'Ouverture LJ simplifiée', '1303'=>'Ouverture LJ sur résolution du plan', '1304'=>'Réouverture LJ', '1305'=>'LJ', '1306'=>'LJ simplifiée', '1307'=>'Conversion sauvegarde en LJ', '1308'=>'Fin du régime de LJS', '1309'=>'Conversion ouverture LJ en LJ simplifiée', '1310'=>'Procédure d\'insolvabilité Européenne', '1400'=>'Modification de plan', '1401'=>'Modification du plan de cession', '1402'=>'Modification du plan de continuation', '1403'=>'Nommination d\'un administrateur judiciaire', '1404'=>'Nommination d\'un mandataire judiciaire', '1405'=>'Nommination d\'un représentant des créanciers', '1406'=>'Remplacement du commissaire à l\'exécution du plan', '1407'=>'Suite règlement/liquidation', '1408'=>'Arrêt du plan de cession', '1409'=>'Arrêt du plan de cession partielle', '1410'=>'Arrêt du plan de continuation', '1411'=>'Nommination d\'un juge commissaire', '1500'=>'Clôture de la procédure', '1501'=>'Clôture de la procédure après cession totale', '1502'=>'Clôture de la procédure pour extinction du passif', '1503'=>'Clôture de la procédure pour insuffisance d\'actif', '1504'=>'Clôture sauvegarde pour absence de projet de plan', '1505'=>'Appel de jugement', '1506'=>'Infirmation Jugement', '1507'=>'Extraits d\'arrêt de la cour d\'appel', '1600'=>'Faillite personnelle', '1601'=>'Interdiction de gérer', '1602'=>'Jugement de réhabilitation', '1603'=>'Liquidation des biens', );*/ 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, ); public function __construct() { /** 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 **/ //echo "MBodacc::__construct()\n"; $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() { $iDb=new WDB(); $rep=$iDb->select('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() { $iDb=new WDB(); $rep=$iDb->select('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 **/ public function getTribunauxParCommune($codeInseeCommune) { $iDb=new WDB(); $rep=$iDb->select('tribunaux t, tribunauxInsee i', 't.triId, t.triIdSup, i.CodeInsee, t.triCode, t.triType, t.triNom, t.triCP, t.triTel, t.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); $tabTribunaux=array(); foreach($rep as $k=>$trib) { $tabTribunaux[]=$trib; } // print_r($tabTribunaux); // die(); return $tabTribunaux; } /** Retourne les tribunaux par Département **/ public function getTribunauxParDep($dep) { $iDb=new WDB(); if ($dep<96) $rep=$iDb->select('tribunaux t', 't.triId, t.triIdSup, t.triCode, t.triType, t.triNom, t.triCP, t.triTel, t.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', "t.triCP BETWEEN '".$dep."000' AND '".$dep."999' ORDER BY t.triType ASC", false, MYSQL_ASSOC); else $rep=$iDb->select('tribunaux t', 't.triId, t.triIdSup, t.triCode, t.triType, t.triNom, t.triCP, t.triTel, t.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', "t.triCP BETWEEN '".$dep."00' AND '".$dep."99' ORDER BY t.triType ASC", false, MYSQL_ASSOC); $tabTribunaux=array(); foreach($rep as $k=>$trib) { $tabTribunaux[]=$trib; } return $tabTribunaux; } /** Donne la cours d'appel d'un tribunal par son code **/ public function getTribunalIdCA($codeTribunal) { $iDb=new WDB(); $rep=$iDb->select('tribunaux', 'triIdSup', "triCode='$codeTribunal'"); return $rep[0][0]; } public function getListeTribunaux() { return $this->tabTribunaux; } /** Initialisation du tableau privé des évènements **/ private function getTabEvenements() { $iDb=new WDB(); $rep=$iDb->select('tabEvenements', 'codEven, libEven, Bodacc_Code, Rubrique, version', '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'], ); } //echo ""; return $tabRet; } /** Initialisation du tableau privé des devises du Bodacc **/ private function getTabDevises() { $iDb=new WDB(); $rep=$iDb->select('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; } /** Initialisation du tableau privé des devises du Bodacc **/ /* private function getTabDirigeants() { $iDb=new WDB(); $rep=$iDb->select('bodacc_dirigeants', 'libDeviseBodacc, devIso', '1'); $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', '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==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==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']; } /** 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) { $iDb=new WDB(); if (!$iDb->insert('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) { global $tabNaturesEvenements; $codeEven=@$tabNaturesEvenements[md5($libEvenXML)]*1; if ($codeEven>0) return $codeEven; else 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); $tabFonctions=$tabNoms=$tabCodeFct=$tabOldFct=array(); /** * On boucle sur chaque ligne qui doit contenir NOM PRENOM suivi de la fonction de la ligne suivante * La première ligne ne contient pas de NOM PRENOM car il s'agit de la 1ère ligne */ foreach ($tabAdministration as $i=>$ligne) { /** On recherche la fonction et son code fonction de la ligne */ foreach ($this->tabDirigeants as $fonction=>$numFct) { if (preg_match("/(.*)$fonction(.*)$/i", $ligne, $matches)) { $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)/i", $tabAdministration[$i+1])) $tabOldFct[$i]=1; else $tabOldFct[$i]=0; break; } } } /** 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?(.*)/i", $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("/^(.*)\((.*)\)/i", $noms, $matches)) { $nom=trim(str_replace(':', '', $matches[1])); if (preg_match("/(.*)repr.sent.e?(.*)/i", $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 ??? **/ $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) { $iDb=new WDB('npaipp'); $noms=$prenoms=$genre=''; $tabMots=preg_split('/( +|\.+)/', $strNomPrenom); //print_r($tabMots); foreach ($tabMots as $i=>$prenom) { $tabPrenoms=$iDb->select('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(); $iDb=new WDB(); $bodacc=$iDb->select('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/i", $texteAnnonce)) return 1; return 0; } function getJALparDep($dep) { $tabRet=array(); $iDb=new WDB(); $rep=$iDb->select('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(); $iDb=new WDB(); $rep=$iDb->select('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) { $iDb=new WDB(); $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=$iDb->select( 'bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, 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=$iDb->select( '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", true, 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=$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", true, 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)(?:.|)\:/Uis', $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) include_once(INCLUDE_PATH.'bodacc/configMBodacc.php'); $strFJ=strtoupper(trim(preg_replace('/[^a-z]/i','',$strFJ))); return @$tabCjBodacc[$strFJ]; } } ?>