6204 lines
288 KiB
PHP
6204 lines
288 KiB
PHP
<?
|
|
global $tabEvenInsee;
|
|
global $timer;
|
|
$tabEvenInsee=array(
|
|
// Anciens évènements de la quotidienne Insee
|
|
'i00'=>'Modification de l\'établissement',
|
|
'iOA'=>'Activation économique de l\'établissement par adjonction de moyens de production',
|
|
'i0C'=>'Création de l\'établissement',
|
|
'iOD'=>'Désactivation économique de l\'établissement par suppression de moyens de production',
|
|
'i0F'=>'Fermeture de l\'établissement',
|
|
'iOR'=>'Modification simple ou modification de moyen de production de l\'établissement',
|
|
'iCC'=>'Création de l\' entreprise par création du premier établissement',
|
|
'iRC'=>'Réactivation de l\'entreprise par création de l\'établissement',
|
|
'iRR'=>'Réactivation de l\'entreprise par réactivation de l\'établissement',
|
|
'iFF'=>'Fermeture de l\'établissement entraînant la fermeture de l\'entreprise',
|
|
'iTC'=>'Création de l\'établissement dans le cadre d\'un transfert',
|
|
'iTR'=>'Réactivation de l\'établissement dans le cadre d\'un transfert',
|
|
'iT0'=>'Modification simple ou de moyens de production sur l\'établissement dans le cadre d\'un transfert',
|
|
'iTA'=>'Activation économique de l\'établissement par adjonction de moyens de production dans le cadre d\'un transfert',
|
|
'iTD'=>'Désactivation économique de l\'établissement par suppression de moyens de production dans le cadre d\'un transfert',
|
|
'iTF'=>'Fermeture de l\'établissement dans le cadre d\'un transfert',
|
|
'iER'=>'Modification ERR de l\'établissement',
|
|
// Evènements Crées par différentiel de la Mensuelle Insee par S&D
|
|
'iM0C'=>'Création de l\'établissement',
|
|
'iM0F'=>'Fermeture de l\'établissement',
|
|
'iM0R'=>'Réactivation de l\'établissement',
|
|
'iM00'=>'Modification de l\'établissement',
|
|
'iMAS'=>'Modification de la nature d\'activité et de la saisonalité',
|
|
'iMAC'=>'Modification de la nature d\'activité de l\'établissement',
|
|
'iMSA'=>'Modification de la saisonalité de l\'établissement',
|
|
// Evènements Crées par diff3+4
|
|
'iMPF'=>'Etablissement présumé fermé (formalités de création faites par le repreneur)',
|
|
'iMNP'=>'Etablissement présumé fermé (retour de courrier en NPAI)',
|
|
// Décret n°2010-1042 du 01/09/2010 relatif à l'inscription au registre du commerce et des sociétés et au répertoire national mentionné à l'article R. 123-220 du code de commerce
|
|
// Codification provisoire à changer dans l'attente de l'INSEE
|
|
'i810'=>'Suppression du SIREN suite au refus d\'inscription au Registre du Commerce et des Sociétés', // Anciennement iRCS
|
|
// Nouveaux évènements Sirene3 de la quotidienne Insee
|
|
'i110'=>'Création de l\'entreprise',
|
|
'i120'=>'Réactivation de l\'entreprise',
|
|
'i125'=>'Réactivation de l\'entreprise suite à une mise à jour du répertoire SIRENE',
|
|
'i130'=>'Création de l\'établissement',
|
|
'i145'=>'Reprise d\'activité de l\'établissement suite à une mise à jour du répertoire SIRENE',
|
|
'i400'=>'Suppression du doublon',
|
|
'i410'=>'Cessation juridique de l\'entreprise',
|
|
'i420'=>'Absence d\'activité de l\'entreprise (cessation économique de l\'entreprise)',
|
|
'i425'=>'Absence d\'activité d\'une entreprise suite à une mise à jour au répertoire SIRENE',
|
|
'i430'=>'Fermeture de l\'établissement',
|
|
'i435'=>'Fermeture de l\'établissement suite à une mise à jour au répertoire SIRENE',
|
|
'i510'=>'Création de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i520'=>'Création de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i530'=>'Modification de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i540'=>'Modification de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i610'=>'Modification d\'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production',
|
|
'i620'=>'Modification d\'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production',
|
|
'i621'=>'Modification d\'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d\'erreur',
|
|
'i631'=>'Modification d\'activité du SIREN associé',
|
|
'i640'=>'Modification d\'activité au niveau de l\'établissement associée à une activation économique par adjonction de moyens de production',
|
|
'i650'=>'Modification d\'activité au niveau de l\'établissement associée à une désactivation économique par suppression de moyens de production',
|
|
'i661'=>'Modification d\'activité de l\'établissement',
|
|
'i710'=>'Modification de l\'identification du SIREN',
|
|
'i711'=>'Modification de l\'identification du SIREN suite à correction d\'erreur',
|
|
'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement',
|
|
'i780'=>'Modification de l\'établissement',
|
|
'i781'=>'Modification de l\'établissement suite à correction d\'erreur',
|
|
'i795'=>'Personne radiée à sa demande de de la base SIRENE diffusion',
|
|
// Nouveaux évènements Sirene4 de la quotidienne Insee (Syracuse)
|
|
'iCE' =>'Création établissement',
|
|
'iCS' =>'Création siège',
|
|
'iCTE' =>'Création établissement (transfert)',
|
|
'iCTS' =>'Création siège (transfert)',
|
|
'iSU' =>'Cessation juridique',
|
|
'iME' =>'Modification établissement',
|
|
'iMS' =>'Modification siège',
|
|
'iMTDE' =>'Modification établissement départ (transfert)',
|
|
'iMTAE' =>'Modification établissement arrivée (transfert)',
|
|
'iMTDS' =>'Modification siège départ (transfert)',
|
|
'iMTAS' =>'Modification siège arrivée (transfert)',
|
|
'iMU' =>'Modification entreprise',
|
|
'iRE' =>'Réactivation établissement',
|
|
'iRS' =>'Réactivation siège',
|
|
'iSE' =>'Fermeture (ou désactivation) établissement',
|
|
'iSS' =>'Fermeture (ou désactivation) siège',
|
|
'iSTE' =>'Fermeture établissement (transfert)',
|
|
'iSTS' =>'Fermeture siège (transfert)',
|
|
'iRI' =>'Refus d\'immatriculation au RCS',
|
|
'iCC' =>'Création par le calage',
|
|
'iMC' =>'Modification par le calage',
|
|
'iSC' =>'Suppression par le calage',
|
|
'iI' =>'Entrée dans le champ de la diffusion commerciale',
|
|
'iO' =>'Sortie du champ de la diffusion commerciale',
|
|
);
|
|
|
|
global $tabDestinat;
|
|
$tabDestinat=array( 'i3'=>'Etablissement vendu',
|
|
'i7'=>'Maintien d\'activité, l\'établissement devient siège',
|
|
'i8'=>'Maintien d\'activité, l\'établissement devient principal',
|
|
'iA'=>'Maintien d\'activité, l\'établissement devient secondaire',
|
|
'iB'=>'Etablissement fermé',
|
|
'iC'=>'Etablissement supprimé',
|
|
'iD'=>'Mise en location-gérance de la totalité du fonds',
|
|
'iE'=>'Mise en location-gérance d\'une partie du fonds',
|
|
'iF'=>'Cessation d\'activité (pour les liasses agricoles)',
|
|
'iG'=>'Mise en location-gérance de la totalité des terres et des bâtiments agricoles (pour les liasses agricoles)',
|
|
'iH'=>'Mise en location-gérance d\'une partie des terres et des bâtiments agricoles (pour les liasses agricoles)',
|
|
'iI'=>'Transmission au conjoint (pour les liasses agricoles)',
|
|
'iJ'=>'Cession (pour les liasses agricoles)',
|
|
'iVP'=>'Suppression partielle d\'activité par vente',
|
|
'iDP'=>'Suppression partielle d\'activité par disparition',
|
|
'iRP'=>'Suppression partielle d\'activité par reprise par le propriétaire',
|
|
);
|
|
global $tabTypEtab;
|
|
$tabTypEtab=array( 'i00'=>'Rappel des données de l\'établissement du siège en cas de modification exclusive de l\'entreprise',
|
|
'i08'=>'Siège avant transfert non fermé',
|
|
'i09'=>'Siège après transfert non créé',
|
|
'i10'=>'Siège avant transfert fermé',
|
|
'i11'=>'Siège après transfert créé',
|
|
'i12'=>'Siège créé (hors transfert)',
|
|
'i13'=>'Siège fermé (hors transfert)',
|
|
'i14'=>'Siège modifié (hors transfert) : modification de l\'activité principale avec activation économique',
|
|
'i15'=>'Siège modifié (hors transfert) : modification de l\'activité principale avec désactivation économique',
|
|
'i16'=>'Siège modifié (hors transfert) : modification de l\'activité principale de l\'établissement',
|
|
'i17'=>'Siège modifié (hors transfert) : modification de l\'identification de l\'établissement',
|
|
'i19'=>'Siège modifié (hors transfert) : autre modification de l\'établissement',
|
|
'i20'=>'Établissement avant transfert fermé',
|
|
'i21'=>'Établissement après transfert créé',
|
|
'i22'=>'Établissement créé (hors transfert)',
|
|
'i23'=>'Établissement fermé (hors transfert)',
|
|
'i24'=>'Établissement modifié (hors transfert) : modification de l\'activité principale avec activation économique',
|
|
'i25'=>'Établissement modifié (hors transfert) : modification de l\'activité principale avec désactivation économique',
|
|
'i26'=>'Établissement modifié (hors transfert) : autre modification de l\'activité principale de l\'établissement',
|
|
'i27'=>'Établissement modifié (hors transfert) : modification de l\'identification de l\'établissement',
|
|
'i29'=>'Établissement modifié (hors transfert) : modification d?une autre variable de l\'établissement',
|
|
'i30'=>'Établissement avant transfert non fermé',
|
|
'i31'=>'Établissement après transfert non créé',
|
|
'i32'=>'Établissement supprimé',
|
|
);
|
|
|
|
//include_once(FWK_PATH.'sphinx/recherche.php');
|
|
include_once(INCLUDE_PATH.'sphinx/rechercheFonc.php');
|
|
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
|
include_once(INCLUDE_PATH.'bodacc/classMBalo.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMAmabis.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
|
//include_once(INCLUDE_PATH.'scores/classMScores.php');
|
|
|
|
class MInsee {
|
|
|
|
private static $tabFct=array( 'ADM'=>'Administrateur',
|
|
'ASS'=>'Associé',
|
|
'COG'=>'Co-gérant',
|
|
'CON'=>'Contrôleur de gestion',
|
|
'DID'=>'Directeur Général Délégué',
|
|
'DIR'=>'Directeur',
|
|
'GER'=>'Gérant',
|
|
'PCS'=>'Président du Conseil de Surveillance',
|
|
'PDG'=>'Président Directeur Général',
|
|
'PP'=>'Personne Physique',
|
|
'PRD'=>'Président du directoire',
|
|
'PRE'=>'Président du Conseil d\'Administration',
|
|
'VIC'=>'Vice président du CA ou Surv.',
|
|
);
|
|
|
|
private static $tabDep=array( '01'=>'Ain',
|
|
'1'=>'Ain',
|
|
'02'=>'Aisne',
|
|
'2'=>'Aisne',
|
|
'03'=>'Allier',
|
|
'3'=>'Allier',
|
|
'04'=>'Alpes-de-Haute-Provence',
|
|
'4'=>'Alpes-de-Haute-Provence',
|
|
'05'=>'Hautes-Alpes',
|
|
'5'=>'Hautes-Alpes',
|
|
'06'=>'Alpes-Maritimes',
|
|
'6'=>'Alpes-Maritimes',
|
|
'07'=>'Ardèche',
|
|
'7'=>'Ardèche',
|
|
'08'=>'Ardennes',
|
|
'8'=>'Ardennes',
|
|
'09'=>'Ariège',
|
|
'9'=>'Ariège',
|
|
'10'=>'Aube',
|
|
'11'=>'Aude',
|
|
'12'=>'Aveyron',
|
|
'13'=>'Bouches-du-Rhône',
|
|
'14'=>'Calvados',
|
|
'15'=>'Cantal',
|
|
'16'=>'Charente',
|
|
'17'=>'Charente-Maritime',
|
|
'18'=>'Cher',
|
|
'19'=>'Corrèze',
|
|
'20'=>'Corse',
|
|
'2A'=>'Corse-du-Sud',
|
|
'20A'=>'Corse-du-Sud',
|
|
'2B'=>'Haute-Corse',
|
|
'20B'=>'Haute-Corse',
|
|
'21'=>'Côte-d\'Or',
|
|
'22'=>'Côtes-d\'Armor',
|
|
'23'=>'Creuse',
|
|
'24'=>'Dordogne',
|
|
'25'=>'Doubs',
|
|
'26'=>'Drôme',
|
|
'27'=>'Eure',
|
|
'28'=>'Eure-et-Loir',
|
|
'29'=>'Finistère',
|
|
'30'=>'Gard',
|
|
'31'=>'Haute-Garonne',
|
|
'32'=>'Gers',
|
|
'33'=>'Gironde',
|
|
'34'=>'Hérault',
|
|
'35'=>'Ille-et-Vilaine',
|
|
'36'=>'Indre',
|
|
'37'=>'Indre-et-Loire',
|
|
'38'=>'Isère',
|
|
'39'=>'Jura',
|
|
'40'=>'Landes',
|
|
'41'=>'Loir-et-Cher',
|
|
'42'=>'Loire',
|
|
'43'=>'Haute-Loire',
|
|
'44'=>'Loire-Atlantique',
|
|
'45'=>'Loiret',
|
|
'46'=>'Lot',
|
|
'47'=>'Lot-et-Garonne',
|
|
'48'=>'Lozère',
|
|
'49'=>'Maine-et-Loire',
|
|
'50'=>'Manche',
|
|
'51'=>'Marne',
|
|
'52'=>'Haute-Marne',
|
|
'53'=>'Mayenne',
|
|
'54'=>'Meurthe-et-Moselle',
|
|
'55'=>'Meuse',
|
|
'56'=>'Morbihan',
|
|
'57'=>'Moselle',
|
|
'58'=>'Nièvre',
|
|
'59'=>'Nord',
|
|
'60'=>'Oise',
|
|
'61'=>'Orne',
|
|
'62'=>'Pas-de-Calais',
|
|
'63'=>'Puy-de-Dôme',
|
|
'64'=>'Pyrénées-Atlantiques',
|
|
'65'=>'Hautes-Pyrénées',
|
|
'66'=>'Pyrénées-Orientales',
|
|
'67'=>'Bas-Rhin',
|
|
'68'=>'Haut-Rhin',
|
|
'69'=>'Rhône',
|
|
'70'=>'Haute-Saône',
|
|
'71'=>'Saône-et-Loire',
|
|
'72'=>'Sarthe',
|
|
'73'=>'Savoie',
|
|
'74'=>'Haute-Savoie',
|
|
'75'=>'Paris',
|
|
'76'=>'Seine-Maritime',
|
|
'77'=>'Seine-et-Marne',
|
|
'78'=>'Yvelines',
|
|
'79'=>'Deux-Sèvres',
|
|
'80'=>'Somme',
|
|
'81'=>'Tarn',
|
|
'82'=>'Tarn-et-Garonne',
|
|
'83'=>'Var',
|
|
'84'=>'Vaucluse',
|
|
'85'=>'Vendée',
|
|
'86'=>'Vienne',
|
|
'87'=>'Haute-Vienne',
|
|
'88'=>'Vosges',
|
|
'89'=>'Yonne',
|
|
'90'=>'Territoire de Belfort',
|
|
'91'=>'Essonne',
|
|
'92'=>'Hauts-de-Seine',
|
|
'93'=>'Seine-Saint-Denis',
|
|
'94'=>'Val-de-Marne',
|
|
'95'=>'Val-d\'Oise',
|
|
'971'=>'Guadeloupe',
|
|
'972'=>'Martinique',
|
|
'973'=>'Guyane',
|
|
'974'=>'Réunion',
|
|
'975'=>'Saint-Pierre-et-Miquelon',
|
|
'976'=>'Mayotte',
|
|
'985'=>'Mayotte', // Codification au Bodacc
|
|
'986'=>'Wallis-et-Futuna',
|
|
'987'=>'Polynésie-Française',
|
|
'988'=>'Nouvelle-Calédonie',
|
|
);
|
|
|
|
private static $tabDepArt=array( '01'=>'de l\'Ain',
|
|
'1'=>'de l\'Ain',
|
|
'02'=>'de l\'Aisne',
|
|
'2'=>'de l\'Aisne',
|
|
'03'=>'de l\'Allier',
|
|
'3'=>'de l\'Allier',
|
|
'04'=>'des Alpes-de-Haute-Provence',
|
|
'4'=>'des Alpes-de-Haute-Provence',
|
|
'05'=>'des Hautes-Alpes',
|
|
'5'=>'des Hautes-Alpes',
|
|
'06'=>'Ades lpes-Maritimes',
|
|
'6'=>'des Alpes-Maritimes',
|
|
'07'=>'de l\'Ardèche',
|
|
'7'=>'de l\'Ardèche',
|
|
'08'=>'des Ardennes',
|
|
'8'=>'des Ardennes',
|
|
'09'=>'de l\'Ariège',
|
|
'9'=>'de l\'Ariège',
|
|
'10'=>'de l\'Aube',
|
|
'11'=>'de l\'Aude',
|
|
'12'=>'de l\'Aveyron',
|
|
'13'=>'des Bouches-du-Rhône',
|
|
'14'=>'du Calvados',
|
|
'15'=>'du Cantal',
|
|
'16'=>'de la Charente',
|
|
'17'=>'de la Charente-Maritime',
|
|
'18'=>'du Cher',
|
|
'19'=>'de la Corrèze',
|
|
'20'=>'de la Corse',
|
|
'2A'=>'de la Corse-du-Sud',
|
|
'20A'=>'de la Corse-du-Sud',
|
|
'2B'=>'de la Haute-Corse',
|
|
'20B'=>'de la Haute-Corse',
|
|
'21'=>'de la Côte-d\'Or',
|
|
'22'=>'des Côtes-d\'Armor',
|
|
'23'=>'de la Creuse',
|
|
'24'=>'de la Dordogne',
|
|
'25'=>'du Doubs',
|
|
'26'=>'de la Drôme',
|
|
'27'=>'de l\'Eure',
|
|
'28'=>'de l\'Eure-et-Loir',
|
|
'29'=>'du Finistère',
|
|
'30'=>'du Gard',
|
|
'31'=>'de la Haute-Garonne',
|
|
'32'=>'du Gers',
|
|
'33'=>'de la Gironde',
|
|
'34'=>'de l\'Hérault',
|
|
'35'=>'de l\'Ille-et-Vilaine',
|
|
'36'=>'de l\'Indre',
|
|
'37'=>'de l\'Indre-et-Loire',
|
|
'38'=>'de l\'Isère',
|
|
'39'=>'du Jura',
|
|
'40'=>'des Landes',
|
|
'41'=>'du Loir-et-Cher',
|
|
'42'=>'de la Loire',
|
|
'43'=>'de la Haute-Loire',
|
|
'44'=>'de la Loire-Atlantique',
|
|
'45'=>'du Loiret',
|
|
'46'=>'du Lot',
|
|
'47'=>'du Lot-et-Garonne',
|
|
'48'=>'de la Lozère',
|
|
'49'=>'du Maine-et-Loire',
|
|
'50'=>'de la Manche',
|
|
'51'=>'de la Marne',
|
|
'52'=>'de la Haute-Marne',
|
|
'53'=>'de la Mayenne',
|
|
'54'=>'de la Meurthe-et-Moselle',
|
|
'55'=>'de la Meuse',
|
|
'56'=>'du Morbihan',
|
|
'57'=>'de la Moselle',
|
|
'58'=>'de la Nièvre',
|
|
'59'=>'du Nord',
|
|
'60'=>'de l\'Oise',
|
|
'61'=>'de l\'Orne',
|
|
'62'=>'du Pas-de-Calais',
|
|
'63'=>'du Puy-de-Dôme',
|
|
'64'=>'des Pyrénées-Atlantiques',
|
|
'65'=>'des Hautes-Pyrénées',
|
|
'66'=>'des Pyrénées-Orientales',
|
|
'67'=>'du Bas-Rhin',
|
|
'68'=>'du Haut-Rhin',
|
|
'69'=>'du Rhône',
|
|
'70'=>'de la Haute-Saône',
|
|
'71'=>'de la Saône-et-Loire',
|
|
'72'=>'de la Sarthe',
|
|
'73'=>'de la Savoie',
|
|
'74'=>'de la Haute-Savoie',
|
|
'75'=>'de Paris',
|
|
'76'=>'de la Seine-Maritime',
|
|
'77'=>'de la Seine-et-Marne',
|
|
'78'=>'des Yvelines',
|
|
'79'=>'des Deux-Sèvres',
|
|
'80'=>'de la Somme',
|
|
'81'=>'du Tarn',
|
|
'82'=>'du Tarn-et-Garonne',
|
|
'83'=>'du Var',
|
|
'84'=>'du Vaucluse',
|
|
'85'=>'de la Vendée',
|
|
'86'=>'de la Vienne',
|
|
'87'=>'de la Haute-Vienne',
|
|
'88'=>'des Vosges',
|
|
'89'=>'de l\'Yonne',
|
|
'90'=>'du Territoire de Belfort',
|
|
'91'=>'de l\'Essonne',
|
|
'92'=>'des Hauts-de-Seine',
|
|
'93'=>'de la Seine-Saint-Denis',
|
|
'94'=>'du Val-de-Marne',
|
|
'95'=>'du Val-d\'Oise',
|
|
'971'=>'de la Guadeloupe',
|
|
'972'=>'de la Martinique',
|
|
'973'=>'de la Guyane',
|
|
'974'=>'de la Réunion',
|
|
'975'=>'de Saint-Pierre-et-Miquelon',
|
|
'976'=>'de Mayotte',
|
|
'985'=>'de Mayotte', // Codification au Bodacc
|
|
'986'=>'de Wallis-et-Futuna',
|
|
'987'=>'de la Polynésie-Française',
|
|
'988'=>'de la Nouvelle-Calédonie',
|
|
);
|
|
|
|
/**Nature d'établissements*/
|
|
private static $tabNature = array( '20'=>'Petit magasin (moins de 300m²)',
|
|
'21'=>'Magasin (de 300m² à 400m²)',
|
|
'22'=>'Grande surface (de 400 à 2500m²)',
|
|
'23'=>'Très grande surface (plus de 2500m²)',
|
|
'91'=>'Base d\'activité sur chantiers',
|
|
'92'=>'Base d\'activité sur marchés',
|
|
'93'=>'Base d\'activité en clientèle',
|
|
'99'=>'Autre');
|
|
|
|
/**Régions du code officiel géographique*/
|
|
private static $tabRegion = array( '1'=>'Guadeloupe',
|
|
'2'=>'Martinique',
|
|
'3'=>'Guyane',
|
|
'4'=>'Réunion',
|
|
'11'=>'Ile-de-France',
|
|
'21'=>'Champagne-Ardenne',
|
|
'22'=>'Picardie',
|
|
'23'=>'Haute-Normandie',
|
|
'24'=>'Centre',
|
|
'25'=>'Basse-Normandie',
|
|
'26'=>'Bourgogne',
|
|
'31'=>'Nord-Pas-de-Calais',
|
|
'41'=>'Lorraine',
|
|
'42'=>'Alsace',
|
|
'43'=>'Franche-Comté',
|
|
'52'=>'Pays de la Loire',
|
|
'53'=>'Bretagne',
|
|
'54'=>'Poitou-Charentes',
|
|
'72'=>'Aquitaine',
|
|
'73'=>'Midi-Pyrénées',
|
|
'74'=>'Limousin',
|
|
'82'=>'Rhône-Alpes',
|
|
'83'=>'Auvergne',
|
|
'91'=>'Languedoc-Roussillon',
|
|
'93'=>'Provence Alpes Côte d Azur',
|
|
'94'=>'Corse',
|
|
'98'=>'Territoire d outre-mer (TOM)',
|
|
'99'=>'Etranger');
|
|
|
|
/**Tranches de Chiffre d'Affaires INSEE
|
|
**/
|
|
private static $tabTCA = array( '0'=>'N/C',
|
|
'1'=>'de 500 000 à 1 ME',
|
|
'2'=>'de 1 à 2 ME',
|
|
'3'=>'de 2 à 5 ME',
|
|
'4'=>'de 5 à 10 ME',
|
|
'5'=>'de 10 à 20 ME',
|
|
'6'=>'de 20 à 50 ME',
|
|
'7'=>'de 50 à 100 ME',
|
|
'8'=>'de 100 à 200 ME',
|
|
'9'=>'plus de 200 ME'
|
|
);
|
|
|
|
/** Tranche de CA Export **/
|
|
private static $tabTCAexp = array( '0'=>'0%',
|
|
'1'=>'moins de 5%',
|
|
'2'=>'de 5 à 25%',
|
|
'3'=>'de 25 à 50%',
|
|
'4'=>'plus de 50%',
|
|
);
|
|
|
|
/**Tranche d'habitants de commune détaillée*/
|
|
private static $tabTCD=array( '1'=>'Commune de moins de 50 habitants',
|
|
'2'=>'Commune de 50 à 99 habitants',
|
|
'3'=>'Commune de 100 à 149 habitants',
|
|
'4'=>'Commune de 150 à 199 habitants',
|
|
'5'=>'Commune de 200 à 249 habitants',
|
|
'6'=>'Commune de 250 à 299 habitants',
|
|
'7'=>'Commune de 300 à 399 habitants',
|
|
'8'=>'Commune de 400 à 499 habitants',
|
|
'11'=>'Commune de 500 à 699 habitants',
|
|
'12'=>'Commune de 700 à 999 habitants',
|
|
'13'=>'Commune de 1000 à 1499 habitants',
|
|
'14'=>'Commune de 1500 à 1999 habitants',
|
|
'15'=>'Commune de 2000 à 2499 habitants',
|
|
'16'=>'Commune de 2500 à 2999 habitants',
|
|
'17'=>'Commune de 3000 à 3999 habitants',
|
|
'18'=>'Commune de 4000 à 4999 habitants',
|
|
'21'=>'De 5 000 à 6 999 habitants',
|
|
'22'=>'De 7 000 à 9 999 habitants',
|
|
'31'=>'De 10 000 à 14 999 habitants',
|
|
'32'=>'De 15 000 à 19 999 habitants',
|
|
'41'=>'De 20 000 à 24 999 habitants',
|
|
'42'=>'De 25 000 à 29 999 habitants',
|
|
'43'=>'De 30 000 à 39 999 habitants',
|
|
'44'=>'De 40 000 à 49 999 habitants',
|
|
'51'=>'De 50 000 à 69 999 habitants',
|
|
'52'=>'De 70 000 à 99 999 habitants',
|
|
'61'=>'De 100 000 à 149 999 habitants',
|
|
'62'=>'De 150 000 à 199 999 habitants',
|
|
'71'=>'De 200 000 à 299 999 habitants',
|
|
'72'=>'De 300 000 à 499 999 habitants',
|
|
'73'=>'De 500 000 à 1 499 999 habitants',
|
|
'80'=>'Plus de 1 500 000 habitants');
|
|
|
|
/**Tranches d'effectifs INSEE*/
|
|
private static $tabEffectif=array( 0=>'N/C',
|
|
1=>'de 1 à 2 salarié(s)',
|
|
2=>'de 3 à 5 salariés',
|
|
3=>'de 6 à 9 salariés',
|
|
11=>'de 10 à 19 salariés',
|
|
12=>'de 20 à 49 salariés',
|
|
21=>'de 50 à 99 salariés',
|
|
22=>'de 100 à 199 salariés',
|
|
31=>'de 200 à 249 salariés',
|
|
32=>'de 250 à 499 salariés',
|
|
41=>'de 500 à 999 salariés',
|
|
42=>'de 1 000 à 1 999 salariés',
|
|
51=>'de 2 000 à 4 999 salariés',
|
|
52=>'de 5 000 à 9 999 salariés',
|
|
53=>'plus de 10 000 salariés');
|
|
|
|
/**Libellé des singularités INSEE*/
|
|
private static $tabSingularite=array('1'=>'Propiétaire Exploitant direct',
|
|
'2'=>'Locataire Gérant',
|
|
'10'=>'Loueur de fonds',
|
|
'30'=>'Unité singulière de première espèce: avocats assocés, stations services sous mandat..',
|
|
'31'=>'Associé d\'exploitation en commun; ce groupe comprend notamment: associé de société de fait, associé d\'indivision',
|
|
'33'=>'Employeur non exploitant: prestataire de personnel, gérant mandataire',
|
|
'34'=>'Membre d\'une société civile professionnelle',
|
|
'40'=>'Siège d\'une unité SIREN de droit privé sans activité',
|
|
'41'=>'Siège d\'un organisme public sans activité',
|
|
'42'=>'Siège d\'un établissement public local non doté de l\'autonomie comptable: une partie des centres communaux d\'action sociale, une partie des caisses des écoles',
|
|
'43'=>'Sièges de domiciliation',
|
|
'52'=>'Sans domicile fixe',
|
|
'60'=>'Activité occasionnelle ou accessoire: Expert auprès des tribunaux, médecin, infirmier, pharmacien remplçant, avocat stagiaire, sportif amateur',
|
|
'70'=>'Activité en location (autre que le fond de commerce): Exploitant de terrain de camping, location de garage ou parking, locations de meublés, location de terres agricoles',
|
|
'80'=>'Gestion immobilière de biens propres: syndicats de copropriétaires',
|
|
'90'=>'Unité singulière de seconde espèce: établissement d\'une entreprise installée à Monaco, siège à l\'etranger de sociétés, associé gérant de sociétés');
|
|
|
|
/**Libellé des origines de création INSEE*/
|
|
private static $tabOrigine=array(
|
|
'0'=>'Non renseigné',
|
|
'1'=>'Création pure',
|
|
'2'=>'Création suite à déménagement', // Création S&D du 20/04/2011 ancien 'Réinstallation après transfert'
|
|
'3'=>'Achat',
|
|
'4'=>'Apport',
|
|
'5'=>'Reprise au conjoint ou apport reçu',
|
|
'6'=>'Prise en location-gérance',
|
|
'7'=>'Partage',
|
|
'8'=>'Reprise',
|
|
'9'=>'Autre modalité d\'acquisition',
|
|
'A'=>'Reprise globale d\'une exploitation agricole',
|
|
'B'=>'Poursuite de l\'exploitation agricole par le conjoint',
|
|
'C'=>'Transfert de propriété d\'une exploitation agricole',
|
|
'D'=>'Apport d\'exploitation(s) agricole(s) individuelle(s)',
|
|
'E'=>'Reprise totale ou partielle d\'exploitation individuelle',
|
|
);
|
|
|
|
private static $tabEven=array( 'i110'=>'Création d\'une entreprise',
|
|
'i120'=>'Réactivation d\'une entreprise',
|
|
'i125'=>'Réactivation d\'une entreprise suite à une mise à jour du répertoire',
|
|
'i130'=>'Création d\'un établissement',
|
|
'i145'=>'Reprise d\'activité dans un établissement suite à une mise à jour du répertoire',
|
|
'i400'=>'Suppression d\'un double',
|
|
'i410'=>'Cessation juridique de l\'entreprise',
|
|
'i420'=>'Absence d\'activité de l\'entreprise (cessation économique de l\'entreprise)',
|
|
'i425'=>'Absence d\'activité d\'une entreprise suite à une mise à jour au répertoire',
|
|
'i430'=>'Fermeture d\'un établissement',
|
|
'i435'=>'Fermeture d\'un établissement suite à une mise à jour au répertoire',
|
|
'i510'=>'Création de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i520'=>'Création de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i530'=>'Modification de l\'établissement d\'arrivée et cessation de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i540'=>'Modification de l\'établissement d\'arrivée et modification de l\'établissement de départ dans le cadre d\'un transfert',
|
|
'i610'=>'Modification d\'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production',
|
|
'i620'=>'Modification d\'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production',
|
|
'i621'=>'Modification d\'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d\'erreur',
|
|
'i631'=>'Autre modification d\'activité du SIREN associé',
|
|
'i640'=>'Modification d\'activité au niveau de l\'établissement associée à une activation économique par adjonction de moyens de production',
|
|
'i650'=>'Modification d\'activité au niveau de l\'établissement associée à une désactivation économique par suppression de moyens de production',
|
|
'i661'=>'Autre modification d\'activité au niveau de l\'établissement',
|
|
'i710'=>'Modification de l\'identification du SIREN',
|
|
'i711'=>'Modification de l\'identification du SIREN suite à correction d\'erreur',
|
|
'i720'=>'Modification de l\'adresse ou de l\'identification de l\'établissement',
|
|
'i780'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire',
|
|
'i781'=>'Autre modification entraînant la mise à jour d\'au moins une variable du répertoire suite à correction d\'erreur',
|
|
);
|
|
|
|
private $tabCodeVoie=array();
|
|
private $tabCodesNaf=array();
|
|
private $tabCodesNafa=array();
|
|
private $tabCodesNace=array();
|
|
|
|
private $body='';
|
|
private $codeRetour=0;
|
|
private $header=array();
|
|
|
|
private $iDb;
|
|
private $iDbInsee;
|
|
private $iDbSD;
|
|
private $iBodacc;
|
|
|
|
// Plan de redressement ou de continuation
|
|
private $debutPlan; // Date de début/jugement/publication du plan SSAAMMJJ
|
|
private $dureePlan; // Durée du plan en mois
|
|
private $finPlan; // Date de fin du plan SSAAMMJJ
|
|
|
|
// Appel de jugement
|
|
private $appelJugement=false; // Présence d'un appel de jugement
|
|
|
|
public function __construct() {
|
|
$this->iDb=new WDB();
|
|
//$this->iDb->setCharSet('UTF-8');
|
|
$this->iDbInsee=new WDB('insee');
|
|
//$this->iDbInsee->setCharSet('UTF-8');
|
|
$this->iDbSD=new WDB('sdv1');
|
|
//$this->iDbSD->setCharSet('UTF-8');
|
|
$this->tabCodeVoie=$this->getTabCodeVoie();
|
|
$this->iBodacc=new MBodacc();
|
|
}
|
|
|
|
/** Test de la validité du siren demandé
|
|
* @param int SIREN à tester
|
|
* @param int NIC (facultatif)
|
|
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
|
|
* @return mixed true, false ou Message d'erreur passé en paramètre
|
|
*/
|
|
function valideSiren($siren, $nic='', $erreur=false) {
|
|
|
|
/** Si le siren est de taille < à 9, on ajoute des 0 significatifs **/
|
|
switch (strlen($siren)) {
|
|
case 1: $siren='00000000'.$siren; break;
|
|
case 2: $siren='0000000'.$siren; break;
|
|
case 3: $siren='000000'.$siren; break;
|
|
case 4: $siren='00000'.$siren; break;
|
|
case 5: $siren='0000'.$siren; break;
|
|
case 6: $siren='000'.$siren; break;
|
|
case 7: $siren='00'.$siren; break;
|
|
case 8: $siren='0'.$siren; break;
|
|
}
|
|
|
|
if (strlen($nic)>0) {
|
|
switch (strlen($nic)) {
|
|
case 1: $nic='0000'.$nic; break;
|
|
case 2: $nic='000'.$nic; break;
|
|
case 3: $nic='00'.$nic; break;
|
|
case 4: $nic='0'.$nic; break;
|
|
}
|
|
}
|
|
|
|
|
|
if (!valideData($siren, 9, 9,'N')) //Siren non précisé ou incorrect.
|
|
return $erreur;
|
|
elseif ($siren*1==0) // Siren vide
|
|
return $erreur;
|
|
else
|
|
{
|
|
if (!isset($nic) || trim($nic)=='')
|
|
{
|
|
$somme=0;
|
|
for ($i=0; $i<=8; $i+=2) // Traitement IMPAIR
|
|
$somme+=(integer)substr($siren,$i,1);
|
|
|
|
for ($i=1; $i<=7; $i+=2)
|
|
{ // Traitement PAIR
|
|
$var_tmp=(string)(2*((integer)substr($siren,$i,1)));
|
|
$som_tmp=0;
|
|
for($j=0;$j<strlen($var_tmp);$j++)
|
|
$som_tmp+=(integer)substr($var_tmp,$j,1);
|
|
$somme+=$som_tmp;
|
|
}
|
|
|
|
if ((integer)($somme/10)!=($somme/10))
|
|
{ // Le Siren est faux
|
|
if (substr($siren,0,3)!='200') // Les siren débutant par 200 sont toujours valides (sirens provisoires de la BDF?!)
|
|
return $erreur;
|
|
}
|
|
} else {
|
|
if (!valideData($nic,1,5,'N')) // Nic de format incorrect.
|
|
return $erreur;
|
|
|
|
$SIRET=$siren.$nic;
|
|
if ($siren<>356000000) {
|
|
$somme=0;
|
|
for ($i=0; $i<=12; $i+=2)
|
|
{ // Traitement PAIR
|
|
$var_tmp=(string)(2*((integer)substr($SIRET,$i,1)));
|
|
$som_tmp=0;
|
|
for($j=0;$j<strlen($var_tmp);$j++)
|
|
$som_tmp+=(integer)substr($var_tmp,$j,1);
|
|
$somme+=$som_tmp;
|
|
}
|
|
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
|
|
$somme+=(integer)substr($SIRET,$i,1);
|
|
|
|
if ((integer)($somme/10)!=($somme/10))// Le Siret est faux
|
|
return $erreur;
|
|
} else {
|
|
// Cas particulier du siren de LA POSTE : 356 000 000 00000
|
|
$somme=14;
|
|
for ($i=9; $i<=13; $i++)
|
|
$somme+=(integer)substr($SIRET,$i,1);
|
|
if ($somme%5!=0) // Le NIC de l'établissement de LA POSTE est faux !
|
|
return $erreur;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/** Test de la validité du siren demandé
|
|
**
|
|
** @param int $siren SIREN à tester
|
|
** @param int $numEtab N° d'établissement dont ont fdoit calculer le NIC
|
|
** @return int
|
|
**/
|
|
function getNic($siren, $numEtab=1) {
|
|
|
|
if (!$this->valideSiren($siren))
|
|
return -1;
|
|
elseif (!valideData($numEtab,1,4,'N')) // Nic de format incorrect.
|
|
return -1;
|
|
else {
|
|
for ($cle=0; $cle<10; $cle++) {
|
|
if ($this->valideSiren($siren, ''.$nic.''.$cle))
|
|
return $cle;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
/** Vérifie si le n° de département est un département français valide
|
|
** @param int Numéro de département Français
|
|
** @return bool
|
|
**/
|
|
public function isDepartement($dept) {
|
|
return array_key_exists($dept, self::$tabDep);
|
|
}
|
|
|
|
/** Retourne le libellé du département si département français valide
|
|
** @param int Numéro de département Français
|
|
** @return string Libellé département
|
|
**/
|
|
public function getDepartement($dept, $article=false) {
|
|
if ($article)
|
|
return self::$tabDepArt[$dept];
|
|
|
|
return self::$tabDep[$dept];
|
|
}
|
|
|
|
public function getEffectifMoyen($trancheEffectif) {
|
|
$trancheEffectif=$trancheEffectif*1;
|
|
if ($trancheEffectif==0) return 0;
|
|
elseif ($trancheEffectif==53) return 10000;
|
|
else {
|
|
$libEffectif=self::$tabEffectif[$trancheEffectif];
|
|
$tabTmp=explode('à', $libEffectif);
|
|
$eff_min=trim(str_replace(' ','', $tabTmp[0]));
|
|
$tabTmp=explode('salari', $tabTmp[1]);
|
|
$eff_max=trim(str_replace(' ','', $tabTmp[0]));
|
|
return floor(($eff_min+$eff_max)/2);
|
|
}
|
|
}
|
|
|
|
/** Retourne le code forme juridique d'une entreprise.
|
|
** @param int Numéro de SIREN (9 chiffres) ou SIRET (14 chiffres)
|
|
** @return string Forme Juridique sur 4 caractères ou <b>false</b>en cas d'erreur ou si inexistant
|
|
**/
|
|
function getFJInsee($siren_siret) {
|
|
$len=strlen($siren_siret);
|
|
if ($len==9)
|
|
$siren=$siren_siret;
|
|
elseif ($len==14)
|
|
$siren=$siren_siret;
|
|
else
|
|
return false;
|
|
$rep=$this->iDb->select('identite', 'CJ', "SIREN='$siren'");
|
|
return $rep[0][0];
|
|
}
|
|
|
|
/**
|
|
* Enter description here...
|
|
*
|
|
* @param unknown_type $raisonSociale
|
|
* @param unknown_type $adresse
|
|
* @param unknown_type $codePostal
|
|
* @param unknown_type $ville
|
|
* @param unknown_type $siege
|
|
* @param unknown_type $nbRep
|
|
* @param unknown_type $pertinence
|
|
* @param bool $uniquementAvecSiren
|
|
* @return unknown
|
|
*/
|
|
public function rechercheEtab($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='', $ape_etab='') {
|
|
$tabAdr=$this->structureVoie(strtoupper($adresse));
|
|
$numAdresse=preg_replace('/^0+/','',''.$tabAdr['num']*1);
|
|
$adresse=trimAccent($tabAdr['libVoie']);
|
|
$formR=array('type'=>'ent',
|
|
'siret'=>'',
|
|
'raisonSociale'=>$raisonSociale,
|
|
'numVoie'=>$numAdresse,
|
|
'voie'=>$adresse,
|
|
'cpVille'=>$codePostal.' '.$ville,
|
|
);
|
|
if ($ape_etab<>'') $formR['naf']=$ape_etab;
|
|
if ($uniquementAvecSiren=='')
|
|
return rechercheEnt($formR, $deb, $nbRep, $maxRep);
|
|
else
|
|
return rechercheEnt($formR, $deb, $nbRep, $maxRep, $uniquementAvecSiren);
|
|
}
|
|
|
|
public function rechercheEtabOld($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $uniquementAvecSiren='', $ape_etab='') {
|
|
debugLog('I',"rechercheEtab de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
// $raisonSociale=trim(strtoupper(trimAccent($raisonSociale))); //)("/^(scp |s c p |me )/i", '',
|
|
// $adresse=trim(/*strtr(*/strtoupper(trimAccent($adresse))/*, array('RUE '=>''))*/);
|
|
//$raisonSociale=$raisonSociale)); //)("/^(scp |s c p |me )/i", '',
|
|
//$raisonSociale=strtr(strtolower($raisonSociale), 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ',
|
|
// 'aaaaaaaceeeeiiiionooooouuuuyy');
|
|
$raisonSociale=trim(strtoupper(trimAccent($raisonSociale)));
|
|
$tabAdr=$this->structureVoie(strtoupper($adresse));
|
|
/*
|
|
[num] => 6
|
|
[typeVoie] => R
|
|
[libVoie] => RONDELET
|
|
*/
|
|
$numAdresse=$tabAdr['num']*1;
|
|
$adresse=trimAccent($tabAdr['libVoie']);
|
|
|
|
$ville=trim(strtoupper(trimAccent($ville))); //)("/^(scp |s c p |me )/i", '',
|
|
$tabFiltres=$tabFiltresCP=array();
|
|
if (trim($codePostal)<>'' && ($codePostal*1)>0) {
|
|
$cp=$codePostal*1;
|
|
$dep=false;
|
|
if ($cp>0 && $cp<100) { $dep=$cp; $cp=false; } // Remettre à 96 quand cela fonctionnera
|
|
elseif ($cp>970 && $cp<977) { $dep=$cp; $cp=false; }
|
|
elseif ($cp>999 && $cp<10000) { $dep='0'.substr($cp,0,1); $cp='0'.$cp; }
|
|
elseif ($cp>=10000 && $cp<96000) $dep=substr($cp,0,2);
|
|
elseif ($cp>=99000) { $dep=substr($cp,0,2); $cp=false; }
|
|
elseif ($cp>=98000) { $dep=substr($cp,0,3); $cp=false; }
|
|
elseif ($cp>=97100 && $cp<97700) $dep=substr($cp,0,3);
|
|
else $cp=false;
|
|
|
|
if (isset($cp) && $cp) $tabFiltresCP=array('adr_cp'=>$cp);
|
|
elseif (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep);
|
|
}
|
|
|
|
if ($siege==true) $tabFiltresSiege=array('siege'=>1);
|
|
else $tabFiltresSiege=array();
|
|
|
|
if ($actif==true) $tabFiltresActif=array('actif'=>1);
|
|
else $tabFiltresActif=array();
|
|
|
|
if ($numAdresse>0) $tabFiltresNumAdr=array('adr_num'=>$numAdresse);
|
|
else { $tabFiltresNumAdr=array();
|
|
$numAdresse='';
|
|
}
|
|
|
|
if ($uniquementAvecSiren==true) $tabFiltresAvecSiren=array('sirenValide'=>1);
|
|
// elseif ($uniquementAvecSiren==false) $tabFiltresAvecSiren=array('sirenValide'=>0);
|
|
else $tabFiltresAvecSiren=array();
|
|
|
|
|
|
debugLog('I',"Je recherche avec tous les filtres $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$ret=search('etab', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence);
|
|
$liste=$ret['results'];
|
|
$nbTot=$ret['nbTot'];
|
|
$duree=$ret['duration'];
|
|
//$liste=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr), $deb, $nbRep, $maxRep, $pertinence);
|
|
if ($liste===false) die();
|
|
if (count($liste)==0) {
|
|
// echo "Je recherche dans le Département entier\n";
|
|
debugLog('I',"Je recherche dans le Département entier $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
if (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep);
|
|
elseif (preg_match('/DEFENSE/i', $ville)) {
|
|
$tabFiltresCP=array('adr_dep'=>92);
|
|
$ville='';
|
|
}
|
|
$ret=search('etab', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence);
|
|
$liste=$ret['results'];
|
|
$nbTot=$ret['nbTot'];
|
|
$duree=$ret['duration'];
|
|
}
|
|
if (count($liste)==0) {
|
|
debugLog('I',"Je recherche en soundex dans le CP $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
// echo "Je recherche en soundex dans le CP\n";
|
|
if (isset($cp) && $cp) $tabFiltresCP=array('adr_cp'=>$cp);
|
|
$ret=search('etab_shx', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence);
|
|
$liste=$ret['results'];
|
|
$nbTot=$ret['nbTot'];
|
|
$duree=$ret['duration'];
|
|
}
|
|
if (count($liste)==0) {
|
|
// echo "Je recherche en soundex dans le département entier\n";
|
|
debugLog('I',"Je recherche en soundex dans le département entier $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
if (isset($dep) && $dep) $tabFiltresCP=array('adr_dep'=>$dep);
|
|
$ret=search('etab_shx', "@nom $raisonSociale @adresse $adresse @ville $ville @ape_etab $ape_etab", array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr, $tabFiltresAvecSiren), $deb, $nbRep, $maxRep, $pertinence);
|
|
$liste=$ret['results'];
|
|
$nbTot=$ret['nbTot'];
|
|
$duree=$ret['duration'];
|
|
|
|
}
|
|
$tabRet=array();
|
|
$tabMotsRsIn=explode(' ', $raisonSociale);
|
|
$tabMotsAdrIn=explode(' ', $adresse);
|
|
$tabMotsVilleIn=explode(' ', $ville);
|
|
$k=0;
|
|
$rsOK=$adrOK=$vilOK=true;
|
|
//$nbTot=count($liste);
|
|
foreach ($liste as $n=>$etab) {
|
|
$tabRet[]=array( 'id'=>$etab['id'],
|
|
'Pertinence'=>$etab['Pertinence'],
|
|
'Siret'=>$etab['Siret'],
|
|
'Siege'=>$etab['Siege'],
|
|
'Nom'=>$etab['Nom'],
|
|
'Nom2'=>$etab['Nom2'],
|
|
'Sigle'=>$etab['Sigle'],
|
|
'Enseigne'=>$etab['Enseigne'],
|
|
'Adresse'=>$etab['Adresse'],
|
|
'CP'=>$etab['CP'],
|
|
'Ville'=>$etab['Ville'],
|
|
'Tel'=>$etab['Tel'],
|
|
'Fax'=>$etab['Fax'],
|
|
'FJ'=>$etab['FJ'],
|
|
'FJLib'=>$this->getLibelleFJ($etab['FJ']),
|
|
'Siren'=>$etab['Siren'],
|
|
'Nic'=>$etab['Nic'],
|
|
'Actif'=>$etab['Actif'],
|
|
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
|
'NafEtabLib'=>$this->getLibelleNaf($etab['NafEtab']), // Etablissement
|
|
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
|
'NafEntLib'=>$this->getLibelleNaf($etab['NafEnt']),
|
|
);
|
|
$k++;
|
|
}
|
|
|
|
return array( 'criteres'=>array('rs'=>$raisonSociale, 'adresse'=>trim($numAdresse.' '.$adresse), 'cp'=>$codePostal, 'ville'=>$ville, 'naf'=>$ape_etab,),
|
|
'nbReponses'=>count($tabRet),
|
|
'nbReponsesTotal'=>$nbTot,
|
|
'duree'=>$duree,
|
|
'reponses'=>$tabRet);
|
|
}
|
|
|
|
public function rechercheDir($nom, $prenom='', $fonction='', $dateNaiss='', $villeNaiss='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) {
|
|
debugLog('I',"rechercheDir de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
$jour=$mois=$annee='';
|
|
if ($dateNaiss<>'' && $dateNaiss<>'//' && $dateNaiss<>'0/0/0') {
|
|
$tabDateNaiss=explode('/', $dateNaiss);
|
|
|
|
$jour=$tabDateNaiss[0]*1;
|
|
if ($jour<1 || $$jour>31) $jour='';
|
|
|
|
$mois =$tabDateNaiss[1]*1;
|
|
if ($mois<1 || $mois>12) $mois='';
|
|
|
|
$annee=$tabDateNaiss[2]*1;
|
|
if ($annee>0 && $annee<100) $annee=('19'.$annee)*1;
|
|
if ($annee<1800 || $annee>date('Y')*1) $annee='';
|
|
}
|
|
$formR=array('type' => 'dir',
|
|
'nom' => $nom,
|
|
'prenom' => $prenom,
|
|
'dirDateNaissAAAA' => $annee,
|
|
'dirDateNaissMM' => $mois,
|
|
'dirDateNaissJJ' => $jour,
|
|
// 'departement' => 'D',
|
|
'cpVille' => $villeNaiss,
|
|
);
|
|
return rechercheDir($formR, $deb, $nbRep, $maxRep);
|
|
}
|
|
|
|
public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $villeNaiss='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) {
|
|
debugLog('I',"rechercheDir de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$nom=trim(strtoupper(trimAccent($nom)));
|
|
$prenom=trim(strtoupper(trimAccent($prenom)));
|
|
//$dirDateNaiss JJ/MM/AAAA
|
|
$tabFiltresMois=$tabFiltresAnnee=array();
|
|
|
|
if ($dateNaiss<>'' && $dateNaiss<>'//' && $dateNaiss<>'0/0/0') {
|
|
$tabDateNaiss=explode('/', $dateNaiss);
|
|
$mois =$tabDateNaiss[1]*1;
|
|
if ($mois>0 && $mois<12) $tabFiltresMois=array('naiss_mois'=>$mois);
|
|
|
|
$annee=$tabDateNaiss[2]*1;
|
|
if ($annee<100) $annee=('19'.$annee)*1;
|
|
if ($annee>=1900 && $annee<=date('Y')*1) $tabFiltresAnnee=array('naiss_annee'=>$annee);
|
|
}
|
|
$dateNaiss=preg_replace('/^00/','0', "0$mois/$annee");
|
|
$dateNaiss=preg_replace('/^0\//','', $dateNaiss);
|
|
/*
|
|
$dateNaiss=preg_replace('/\/0$/','', $dateNaiss);
|
|
*/
|
|
|
|
//$ret=search('dirigeants', $nom.' '.$prenom, array(), $deb, $nbRep, $maxRep, $pertinence);
|
|
$ret=search('dirigeants_rncs', "@nom $nom @prenom $prenom @naissance_lieu $villeNaiss", array_merge($tabFiltresMois, $tabFiltresAnnee), $deb, $nbRep, $maxRep, $pertinence);
|
|
//=search('etab', $raisonSociale.' '.$adresse.' '.$ville, array_merge($tabFiltresCP, $tabFiltresSiege, $tabFiltresActif, $tabFiltresNumAdr), $deb, $nbRep, $maxRep, $pertinence);
|
|
//print_r($ret);die();
|
|
$liste=$ret['results'];
|
|
$nbTot=$ret['nbTot'];
|
|
$duree=$ret['duration'];
|
|
|
|
if (count($liste)==0) {
|
|
debugLog('I',"rechercheDir en soundex de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
//$ret=search('dirigeants_shx', $nom.' '.$prenom, array(), $deb, $nbRep, $maxRep, $pertinence);
|
|
$ret=search('dirigeants_rncs_shx', "@nom $nom @prenom $prenom @naissance_lieu $villeNaiss", array_merge($tabFiltresMois, $tabFiltresAnnee), $deb, $nbRep, $maxRep, $pertinence);
|
|
$liste=$ret['results'];
|
|
$nbTot=$ret['nbTot'];
|
|
$duree=$ret['duration'];
|
|
}
|
|
$tabRet=array();
|
|
$tabMotsNomIn=explode(' ', $nom);
|
|
$tabMotsPrenomIn=explode(' ', $prenom);
|
|
$k=0;
|
|
// $nomOK=$prenomOK=true;
|
|
// $nbTot=count($liste);
|
|
foreach ($liste as $n=>$etab) {
|
|
/* if ($nom<>'') {
|
|
$tabMotsNomOut=explode(' ', $etab['nomD'].' '.$etab['nomUsage'].' '.$etab['rs']);
|
|
$nomOK=false;
|
|
foreach ($tabMotsNomOut as $motOut) {
|
|
foreach ($tabMotsNomIn as $motIn) {
|
|
if (strlen($motOut)>=3 && strlen($motIn)>=3) {
|
|
$levMin=levenshtein($motOut, $motIn);
|
|
if ($levMin<5) {
|
|
$nomOK=true;
|
|
break(2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ($prenom<>'') {
|
|
$tabMotsPrenomOut=explode(' ', $etab['prenom']);
|
|
$prenomOK=false;
|
|
foreach ($tabMotsPrenomOut as $motOut) {
|
|
foreach ($tabMotsPrenomIn as $motIn) {
|
|
if (strlen($motOut)>=3 && strlen($motIn)>=3) {
|
|
$levMin=levenshtein($motOut, $motIn);
|
|
if ($levMin<5) {
|
|
$prenomOK=true;
|
|
break(2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($nomOK && $prenomOK) {*/
|
|
$tabRet[]=array( 'id'=>$etab['id'],
|
|
'Pertinence'=>$etab['Pertinence'],
|
|
'Siret'=>$etab['Siret'],
|
|
'Siege'=>$etab['Siege'],
|
|
'Nom'=>$etab['Nom'],
|
|
'Nom2'=>$etab['Nom2'],
|
|
'Sigle'=>$etab['Sigle'],
|
|
'Enseigne'=>$etab['Enseigne'],
|
|
'Adresse'=>$etab['Adresse'],
|
|
'CP'=>$etab['CP'],
|
|
'Ville'=>$etab['Ville'],
|
|
'Tel'=>$etab['Tel'],
|
|
'Fax'=>$etab['Fax'],
|
|
'FJ'=>$etab['FJ'],
|
|
'FJLib'=>$this->getLibelleFJ($etab['FJ']),
|
|
'Siren'=>$etab['Siren'],
|
|
'Nic'=>$etab['Nic'],
|
|
'Actif'=>$etab['Actif'],
|
|
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
|
'NafEtabLib'=>$this->getLibelleNaf($etab['NafEtab']), // Etablissement
|
|
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
|
'NafEntLib'=>$this->getLibelleNaf($etab['NafEnt']),
|
|
|
|
// Dirigeant
|
|
'DirRs'=>$etab['rs'],
|
|
'DirNom'=>$etab['nomD'],
|
|
'DirPrenom'=>$etab['prenom'],
|
|
'DirNomUsage'=>$etab['nomUsage'],
|
|
'DirDateEffet'=>$etab['dateEffet'],
|
|
'DirFonction'=>$etab['fonction'],
|
|
'DirDepart'=>$etab['depart'],
|
|
);
|
|
$k++;
|
|
//if ($k==$nbRep) break;
|
|
//}
|
|
}
|
|
|
|
return array( 'criteres'=>array('nom'=>$nom, 'prenom'=>$prenom, 'dateNaissance'=>$dateNaiss, 'lieuNaissance'=>$villeNaiss),
|
|
'nbReponses'=>count($tabRet),
|
|
'nbReponsesTotal'=>$nbTot,
|
|
'duree'=>$duree,
|
|
'reponses'=>$tabRet);
|
|
}
|
|
|
|
|
|
private function getTabCodeVoie() {
|
|
$row = 1;
|
|
$handle = fopen(DOC_WEB_LOCAL.'tables/voies.csv', 'r');
|
|
if (!$handle) die('Impossible d\'ouvrir le fichier de configuration des voies INSEE');
|
|
$tabTmp=array();
|
|
while (($data = fgetcsv($handle, 1000, ';')) !== FALSE)
|
|
if (substr($data[0],0,1)<>'#') // Ligne en commentaires CSV
|
|
$tabTmp[$data[0]]=$data[1];
|
|
fclose($handle);
|
|
return $tabTmp;
|
|
}
|
|
|
|
/** Vérifie si le code voie est une abréviation autorisée (selon la Norme AFNOR XP Z 10-011)
|
|
** @param string Code voie
|
|
** @return bool
|
|
**/
|
|
public function isCodeVoie($codeVoie) {
|
|
return array_key_exists($codeVoie, $this->tabCodeVoie);
|
|
}
|
|
|
|
/** Retourne le libellé du code voie selon les abréviations autorisées pour les types de voie (Norme AFNOR XP Z 10-011)
|
|
** @param string Code voie
|
|
** @return string Libellé de la voie
|
|
**/
|
|
public function getCodeVoie($codeVoie) {
|
|
return $this->tabCodeVoie[$codeVoie];
|
|
}
|
|
|
|
/** Initialise la table des codes NAF 4 et 5 positions
|
|
**/
|
|
private function setTabCodesNaf() {
|
|
if (count($this->tabCodesNaf)==0) {
|
|
$tabNafs=$tabNace=array();
|
|
$tabTmp=$this->iDb->select( 'tabNaf4', 'codNaf700 AS naf, libNaf700 AS LibNaf', 1, true, MYSQL_ASSOC);
|
|
foreach ($tabTmp as $i=>$tabNaf)
|
|
$tabNafs[$tabNaf['naf']]=$tabNaf['LibNaf'];
|
|
$tabTmp=$this->iDb->select( 'tabNaf5', 'codNaf5 AS naf, libNaf5 AS LibNaf, codNaf1', 1, true, MYSQL_ASSOC);
|
|
foreach ($tabTmp as $i=>$tabNaf) {
|
|
$tabNafs[$tabNaf['naf']]=$tabNaf['LibNaf'];
|
|
$tabNace[$tabNaf['naf']]=$tabNaf['codNaf1'].preg_replace('/^0/','',substr($tabNaf['naf'],0,4));
|
|
}
|
|
$this->tabCodesNaf=$tabNafs;
|
|
$this->tabCodesNace=$tabNace;
|
|
}
|
|
}
|
|
|
|
public function getLibelleNaf($code_naf) {
|
|
if ($code_naf<>'') {
|
|
$this->setTabCodesNaf();
|
|
return $this->tabCodesNaf[$code_naf];
|
|
}
|
|
else
|
|
return '';
|
|
}
|
|
|
|
public function getCodesNaf() {
|
|
$this->setTabCodesNaf();
|
|
return array_keys($this->tabCodesNaf);
|
|
}
|
|
|
|
/** Initialise la table des codes NAFA rev 2
|
|
**/
|
|
private function setTabCodesNafa() {
|
|
if (count($this->tabCodesNafa)==0) {
|
|
$tabNafs=array();
|
|
$tabTmp=$this->iDb->select( 'tabNafa', 'codNafa AS nafa, libNafa', 1, true, MYSQL_ASSOC);
|
|
foreach ($tabTmp as $i=>$tabNaf)
|
|
$tabNafs[$tabNaf['nafa']]=$tabNaf['libNafa'];
|
|
$this->tabCodesNafa=$tabNafs;
|
|
}
|
|
}
|
|
public function getLibelleNafa($code_nafa) {
|
|
if ($code_nafa<>'') {
|
|
$this->setTabCodesNafa();
|
|
return $this->tabCodesNafa[$code_nafa];
|
|
}
|
|
else
|
|
return '';
|
|
}
|
|
|
|
public function getEvenements($siren, $nic=0, $iDeb=0, $iMax=1000) {
|
|
global $tabEvenInsee;
|
|
global $tabDestinat;
|
|
global $tabTypEtab;
|
|
$tabRet=$tabId=array();
|
|
|
|
$strNic='';
|
|
if ($nic*1>0) $strNic=" AND insNIC=$nic ";
|
|
|
|
$insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN', "insSIREN=$siren $strNic ORDER BY insDATEMAJ DESC LIMIT $iDeb, $iMax",false, MYSQL_ASSOC);
|
|
foreach ($insee as $i=>$even) {
|
|
$tabSiren[$even['insDATEVE']]=array('rs'=>$even['insNOMEN'],
|
|
'sigle'=>$even['insSIGLE'],
|
|
'ape'=>$even['insAPEN700'],
|
|
'nic'=>$even['insNICSIEGE'],
|
|
'cj'=>$even['insCJ'],
|
|
);
|
|
$tabSiret[$even['insNIC']][$even['insDATEVE']]
|
|
= array('ens'=>$even['insENSEIGNE'],
|
|
'ape'=>$even['insAPET700'],
|
|
'adresse'=>$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG'],
|
|
'effectif'=>$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].')',
|
|
);
|
|
}
|
|
foreach ($insee as $i=>$even) {
|
|
$tabId[]=$even['id'];
|
|
$libDet='';
|
|
if ($even['insMNOMEN']==1) {
|
|
$libDet.='Modification de la raison sociale : '.$even['insNOMEN'];
|
|
$strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'rs');
|
|
if ($strPre<>'' && $strPre<>$even['insNOMEN']) $libDet.=" (Précédent : $strPre)";
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMENSEIGNE']==1) {
|
|
$libDet.='Modification de l\'enseigne : '.$even['insENSEIGNE'];
|
|
$strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'ens');
|
|
if ($strPre<>'' && $strPre<>$even['insENSEIGNE']) $libDet.=" (Précédent : $strPre)";
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMSIGLE']==1) {
|
|
$libDet.='Modification du sigle : '.$even['insSIGLE'];
|
|
$strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'sigle');
|
|
if ($strPre<>'' && $strPre<>$even['insSIGLE']) $libDet.=" (Précédent : $strPre)";
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMAPEN']==1) {
|
|
$libDet.='Modification de l\'activité de l\'entreprise : '.$even['insAPEN700'].' - '.$this->getLibelleNaf($even['insAPEN700']);
|
|
$strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'ape');
|
|
if ($strPre<>'' && $strPre<>$even['insAPEN700']) $libDet.=" (Précédent : $strPre - ".$this->getLibelleNaf($strPre).')';
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMAPET']==1) {
|
|
$libDet.='Modification de l\'activité de l\'établissement : '.$even['insAPET700'].' - '.$this->getLibelleNaf($even['insAPET700']);
|
|
$strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'ape');
|
|
if ($strPre<>'' && $strPre<>$even['insAPET700']) $libDet.=" (Précédent : $strPre - ".$this->getLibelleNaf($strPre).')';
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMNICSIEGE']==1) {
|
|
$libDet.='Modification du nic du siège : '.$even['insNICSIEGE'];
|
|
$strPre=getInfoPrecedente($tabSiren, $even['insDATEVE'], 'nic');
|
|
if ($strPre<>'' && $strPre<>$even['insNICSIEGE']) $libDet.=" (Précédent : $strPre)";
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMADRESSE']==1) {
|
|
$libDet.='Modification de l\'adresse : '.$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG'];
|
|
$strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'adresse');
|
|
if ($strPre<>'' && $strPre<>$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG']) $libDet.=" (Précédent : $strPre)";
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insMEFET']==1) $libDet.='Modification de l\'effectif : '.$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].'), ';
|
|
if ($even['insEXPLET']=='O') $strTmp='Exploitant';
|
|
elseif ($even['insEXPLET']=='N')$strTmp='Non exploitant participant au système productif';
|
|
elseif ($even['insEXPLET']=='X')$strTmp='Non exploitant ne participant pas au système productif';
|
|
if ($even['insMEXPLET']==1) $libDet.='Modification du caractère exploitant de l\'établissement : '.$strTmp.', ';
|
|
if ($even['insEXPLEN']=='O') $strTmp='Exploitant';
|
|
elseif ($even['insEXPLEN']=='N')$strTmp='Non exploitant participant au système productif';
|
|
elseif ($even['insEXPLEN']=='X')$strTmp='Non exploitant ne participant pas au système productif';
|
|
if ($even['insMEXPLEN']==1) $libDet.='Modification du caractère exploitant de l\'entreprise : '.$strTmp.', ';
|
|
if ($even['insMCJ']==1) {
|
|
$libDet.='Modification de la forme juridique : '.$even['insCJ'].' - '.$this->getLibelleFJ($even['insCJ']);
|
|
$strPre=getInfoPrecedente($tabSiret[$even['insNIC']], $even['insDATEVE'], 'cj');
|
|
if ($strPre<>'' && $strPre<>$even['insCJ']) $libDet.=" (Précédent : $strPre - ".$this->getLibelleFJ($even['insCJ']).')';
|
|
$libDet.=', ';
|
|
}
|
|
if ($even['insAUXILT']==1) $strTmp='Auxiliaire';
|
|
else $strTmp='Non auxiliaire';
|
|
if ($even['insMAUXILT']==1) $libDet.='Modification du caractère auxiliaire de l\'établissement : '.$strTmp.', ';
|
|
|
|
if (trim($even['insDESTINAT'])<>'' && $even['insDESTINAT']<>'NR' && $even['insDESTINAT']*1<>9)
|
|
$libDet.=$tabDestinat['i'.trim($even['insDESTINAT'])].', ';
|
|
|
|
$libDet.=$tabTypEtab['i'.trim($even['insTYPETAB'])].', ';
|
|
|
|
$typeSiretAss='';
|
|
$siretAss=$even['insSIRETASS'];
|
|
switch ($even['insPRODPART']*1) {
|
|
case 1: $typeSiretAss='Loueur de fond'; break;
|
|
case 2: $typeSiretAss='Locataire du fond'; break;
|
|
case 3: $typeSiretAss='Prestataire de personnel'; break;
|
|
}
|
|
if ($siretAss*1==0) {
|
|
$tabPS=array();
|
|
$siretAss=$even['insSIRETPS'];
|
|
if ($siretAss*1>0)
|
|
$tabPS=$this->getIdentiteLight(substr($siretAss,0,9));
|
|
$tabEt=$this->getIdentiteLight($siren);
|
|
// 'Nom'=>$etab['raisonSociale'],
|
|
if ($tabPS['actif']==1 && $tabEt['actif']==0) $typeSiretAss='Successeur';
|
|
elseif ($tabPS['actif']==0 && $tabEt['actif']==1) $typeSiretAss='Prédécesseur';
|
|
else $typeSiretAss='Prédécesseur ou Successeur';
|
|
}
|
|
|
|
$dateEve=$even['insDATEVE'];
|
|
$dateMaj=$even['insDATEMAJ'];
|
|
if (str_replace('-','',$dateEve*1)==0) $dateEve=$dateMaj;
|
|
|
|
$tabRet[]=array('codeEven' => 'I'.$even['insEVE'],
|
|
'nic' => $even['insNIC'],
|
|
'siretAssocie'=>$siretAss,
|
|
'typeSiretAss'=>$typeSiretAss,
|
|
'siege' => $even['insSIEGE'],
|
|
'libEven' => $tabEvenInsee['i'.trim($even['insEVE'])],
|
|
'libEvenDet'=> substr($libDet,0,-2),
|
|
'dateMAJ' => $dateMaj,
|
|
'dateEven' => $dateEve,
|
|
);
|
|
}
|
|
|
|
/** Recherche d'évènement pour lesquels le SIREN est ASSOCIE **/
|
|
$siretDeb=$siren.'00000';
|
|
$siretFin=$siren.'99999';
|
|
$insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN, ROUND(insSIRETASS/100000) AS sirenAss', "insSIRETASS BETWEEN $siretDeb AND $siretFin GROUP BY insSIREN, sirenAss ORDER BY insDATEMAJ DESC LIMIT 0,4500",false, MYSQL_ASSOC);
|
|
foreach ($insee as $i=>$even) {
|
|
if (in_array($even['id'], $tabId))
|
|
continue;
|
|
else
|
|
$tabId[]=$even['id'];
|
|
$libDet='';/*
|
|
if ($even['insMNOMEN']==1) $libDet.='Modification de la raison sociale : '.$even['insNOMEN'].', ';
|
|
if ($even['insMENSEIGNE']==1) $libDet.='Modification de l\'enseigne : '.$even['insENSEIGNE'].', ';
|
|
if ($even['insMSIGLE']==1) $libDet.='Modification du sigle : '.$even['insSIGLE'].', ';
|
|
if ($even['insMAPEN']==1) $libDet.='Modification de l\'activité de l\'entreprise : '.$even['insAPEN700'].', ';
|
|
if ($even['insMAPET']==1) $libDet.='Modification de l\'activité de l\'établissement : '.$even['insAPET700'].', ';
|
|
if ($even['insMADRESSE']==1) $libDet.='Modification de l\'adresse : '.$even['insL2_COMP'].' '.$even['insL3_CADR'].' '.$even['insL4_VOIE'].' '.$even['insL5_DISP'].' '.$even['insL6_POST'].' '.$even['insL7_ETRG'].', ';
|
|
if ($even['insMEFET']==1) $libDet.='Modification de l\'effectif : '.$even['insEFENCENT'].' (Tranche '.$even['insTEFET'].'), ';
|
|
if (trim($even['insDESTINAT'])<>'' && $even['insDESTINAT']<>'NR' && $even['insDESTINAT']*1<>9)
|
|
$libDet.=$tabDestinat['i'.trim($even['insDESTINAT'])].', ';
|
|
|
|
$libDet.=$tabTypEtab['i'.trim($even['insTYPETAB'])].', ';
|
|
*/
|
|
$typeSiretAss='';
|
|
switch ($even['insPRODPART']*1) {
|
|
case 2: $typeSiretAss='Loueur de fond'; break;
|
|
case 1: $typeSiretAss='Locataire du fond'; break;
|
|
case 3: $typeSiretAss='Client en delegation de personnel'; break;
|
|
}
|
|
/*if ($siretAss*1==0) {
|
|
$tabPS=array();
|
|
$siretAss=$even['insSIRETPS'];
|
|
if ($siretAss*1>0)
|
|
$tabPS=$this->getIdentiteLight(substr($siretAss,0,9));
|
|
$tabEt=$this->getIdentiteLight($siren);
|
|
// 'Nom'=>$etab['raisonSociale'],
|
|
if ($tabPS['actif']==1 && $tabEt['actif']==0) $typeSiretAss='Successeur';
|
|
elseif ($tabPS['actif']==0 && $tabEt['actif']==1) $typeSiretAss='Prédécesseur';
|
|
else $typeSiretAss='Prédécesseur ou Successeur';
|
|
}*/
|
|
|
|
$dateEve=$even['insDATEVE'];
|
|
$dateMaj=$even['insDATEMAJ'];
|
|
if (str_replace('-','',$dateEve*1)==0) $dateEve=$dateMaj;
|
|
|
|
$tabRet[]=array('codeEven' => 'I'.$even['insEVE'],
|
|
'nic' => substr($even['insSIRETASS'],9,5),
|
|
'siretAssocie'=>''.$even['insSIREN'].$even['insNIC'],
|
|
'typeSiretAss'=>$typeSiretAss,
|
|
'siege' => $even['insSIEGE'],
|
|
'libEven' => "Modification d'une entreprise/établissement lié",//$tabEvenInsee['i'.trim($even['insEVE'])],
|
|
'libEvenDet'=> '',//substr($libDet,0,-3),
|
|
'dateMAJ' => $dateMaj,
|
|
'dateEven' => $dateEve,
|
|
);
|
|
}
|
|
|
|
/** Recherche d'évènement pour lesquels le SIREN est Prédécesseur ou Successeur **/
|
|
$siretDeb=$siren.'00000';
|
|
$siretFin=$siren.'99999';
|
|
$insee=$this->iDbInsee->select('insee_even', 'id, insSIREN, siretValide, insNIC, insLIBCOM, insSIEGE, insAUXILT, insORIGINE, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET, insSAISONAT, insACTIVNAT, insENSEIGNE, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH, insEVE, insDATEVE, insTRAN, insNICTRAN, insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN, insFiller1, insFiller2, insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insFiller3, insMENSEIGNE, insMAPET, insMNATURE, insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT, insSIRETPS, insDESTINAT, insDATEMAJ, idFlux, dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insSIRETASS, insDREACTEN, insEXPLEN, insFiller4, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insTYPETAB, insDAPEN, ROUND(insSIRETPS/100000) AS sirenAss', "insSIRETPS BETWEEN $siretDeb AND $siretFin GROUP BY insSIREN, sirenAss ORDER BY insDATEMAJ DESC LIMIT 0,4500",false, MYSQL_ASSOC);
|
|
foreach ($insee as $i=>$even) {
|
|
if (in_array($even['id'], $tabId))
|
|
continue;
|
|
else
|
|
$tabId[]=$even['id'];
|
|
$libDet='';
|
|
|
|
$typeSiretAss='Prédécesseur ou Successeur';
|
|
$dateEve=$even['insDATEVE'];
|
|
$dateMaj=$even['insDATEMAJ'];
|
|
if (str_replace('-','',$dateEve*1)==0) $dateEve=$dateMaj;
|
|
|
|
$tabRet[]=array('codeEven' => 'I'.$even['insEVE'],
|
|
'nic' => substr($even['insSIRETPS'],9,5),
|
|
'siretAssocie'=>''.$even['insSIREN'].$even['insNIC'],
|
|
'typeSiretAss'=>$typeSiretAss,
|
|
'siege' => $even['insSIEGE'],
|
|
'libEven' => "Modification d'une entreprise/établissement lié",//$tabEvenInsee['i'.trim($even['insEVE'])],
|
|
'libEvenDet'=> '',//substr($libDet,0,-3),
|
|
'dateMAJ' => $dateMaj,
|
|
'dateEven' => $dateEve,
|
|
);
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
public function getLibelleFJ($code_forme_juridique, $court=false) {
|
|
$fj=$code_forme_juridique*1;
|
|
if ($fj>0 && $fj<10000) {
|
|
$tmp=$this->iDb->select( 'tabFJur', 'libelle AS LibFJ, libelleCourt AS LibCourt', "code=$fj", false, MYSQL_ASSOC);
|
|
$libLong =@$tmp[0]['LibFJ'];
|
|
$libCourt=@$tmp[0]['LibCourt'];
|
|
if ($court) {
|
|
if ($libCourt=='') {
|
|
if (strlen($libLong)>20) return substr($libLong,0,17).'...';
|
|
else return $libLong;
|
|
}
|
|
return $libCourt;
|
|
}
|
|
else
|
|
return $libLong;
|
|
}
|
|
if ($court) return "En chiffrement";
|
|
return 'En instance de chiffrement';
|
|
}
|
|
|
|
public function getCodesFJ() {
|
|
$tabFJ=array();
|
|
$tabTmp=$this->iDb->select('tabFJur', 'code AS FJ, libelle AS libFJ', 'code>=1000', false, MYSQL_ASSOC);
|
|
foreach ($tabTmp as $i=>$tabCJ)
|
|
$tabFJ[$tabCJ['FJ']]=$tabCJ['LibFJ'];
|
|
|
|
return array_keys($tabFJ);
|
|
}
|
|
|
|
/** Découpe une ligne d'adresse textuelle en un tableau contenant les différentes composantes de l'adresse
|
|
** <pre>Array (
|
|
** [adrComp0] => Maison des associations
|
|
** [num] => 33
|
|
** [typeVoie] => R
|
|
** [libVoie] => Louis Blanc
|
|
** [cp] => ...
|
|
** [ville] => ... Si contenu dans l'adresse
|
|
** )</pre>
|
|
**
|
|
** @param string $strLigneDAdresse La ligne d'adresse textuelle (ex : Maison des associations, 33 rue Louis Blanc
|
|
** @return array tableau contenant l'adresse structurée ici
|
|
**/
|
|
public function structureVoie($strLigneDAdresse) {
|
|
$tabRet=$tabAdr=array();
|
|
$strLigneDAdresse=trim($strLigneDAdresse);
|
|
if ($strLigneDAdresse=='') return $tabRet;
|
|
$tabLignes=explode(',', preg_replace('/,$/', '', $strLigneDAdresse));
|
|
foreach ($tabLignes as $strLigneDAdresse) {
|
|
$strLigneDAdresse=trimAccent($strLigneDAdresse);
|
|
$strLigneDAdresse=preg_replace('/[^0-9a-zA-Z]/', ' ', $strLigneDAdresse);
|
|
$strLigneDAdresse=trim(preg_replace('/ +/', ' ', $strLigneDAdresse));
|
|
//echo "1. Adresse nettoyées = $strLigneDAdresse".EOL;
|
|
$adrAvecCP=preg_match("/(.*)([0-9]{5,5}|[0-9][0-9] [0-9]{3,3})([\D]*)/", $strLigneDAdresse, $tabAdrTmp);
|
|
if ($adrAvecCP) {
|
|
//echo "Adresse avec Code Postal\n";
|
|
//print_r($tabAdrTmp);
|
|
$strLigneDAdresse=trim($tabAdrTmp[1]);
|
|
$tabRet['cp']=$tabAdrTmp[2];
|
|
$tabRet['ville']=trim(strtoupper($tabAdrTmp[3]));
|
|
}// else echo "Adresse sans Code Postal\n";
|
|
$adrAvecNum=preg_match("/^([0-9]{1,4})(.*)/", $strLigneDAdresse, $tabAdrTmp);
|
|
if ($adrAvecNum) {
|
|
//echo "Adresse avec Numéro de voie\n";
|
|
//print_r($tabAdrTmp);
|
|
$tabRet['num']=$tabAdrTmp[1];
|
|
if (preg_match("/^\s(B|BIS|T|TER|Q|a|c|d|e|f|g|h|i|j|k|l|m|n|o|p|s)\s(.*)/i", $tabAdrTmp[2], $tabAdrTmp2))
|
|
{ //echo "Adresse avec Bis, Ter, Q...\n";
|
|
//print_r($tabAdrTmp2);
|
|
$tabRet['indRep']=strtoupper(trim($tabAdrTmp2[1]));
|
|
$typeVoie=trim($tabAdrTmp2[2]);}
|
|
else
|
|
$typeVoie=trim($tabAdrTmp[2]);
|
|
} else
|
|
$typeVoie=trim($strLigneDAdresse);
|
|
// On récupère le type de voie si possible et le libellé de la voie
|
|
$voieTrouvee=false;
|
|
foreach ($this->tabCodeVoie as $code=>$voie) {
|
|
if (preg_match("/^($voie |$voie".'s '."|$code )(.*)/i", $typeVoie, $tabAdrTmp)) {
|
|
//echo "Adresse avec type de voie\n";
|
|
//print_r($tabAdrTmp);
|
|
$tabRet['typeVoie']=$code;
|
|
$tabRet['libVoie']=trim(strtoupper($tabAdrTmp[2]));
|
|
$voieTrouvee=true;
|
|
break;
|
|
}
|
|
}
|
|
if (!$voieTrouvee) $tabAdr[]=$typeVoie;
|
|
}
|
|
foreach ($tabAdr as $k=>$ligne)
|
|
$tabRet['adrComp'.$k]=trim(strtoupper($ligne));
|
|
|
|
if (!isset($tabRet['libVoie'])) { $tabRet['libVoie']=$ligne; unset($tabRet['adrComp'.$k]); }
|
|
|
|
if (isset($tabRet['adrComp0'])) {
|
|
if ($tabRet['adrComp0']=='BIS' || $tabRet['adrComp0']=='B') {
|
|
$tabRet['indRep']='B';
|
|
$tabRet['adrComp0']='';
|
|
} elseif ($tabRet['adrComp0']=='TER' || $tabRet['adrComp0']=='T') {
|
|
$tabRet['indRep']='T';
|
|
$tabRet['adrComp0']='';
|
|
}
|
|
}
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
public function getEtablissements($siren, $nic='', $deb=0, $nbRep=20, $maxRep=200, $dep=0, $actif=-1) {
|
|
|
|
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getEtab sur $siren", "$siren, $nic, $deb, $nbRep, $maxRep, $dep, $actif");
|
|
$this->setTabCodesNaf();
|
|
$deb=$deb*1;
|
|
$dep=$dep*1;
|
|
$nbRep=$nbRep*1;
|
|
$limit="LIMIT $deb, $nbRep";
|
|
$strInfo='';
|
|
if ($actif*1==1) $strActif=' AND e.actif=1 ';
|
|
elseif ($actif*1==-1) $strActif='';
|
|
else $strActif=' AND e.actif=0 ';
|
|
/* "CONCAT(e.siren, e.nic) as siret, e.actif",
|
|
"$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC);
|
|
$etab=@$listeEtab[0];
|
|
|
|
$nom=trim($etab['raisonSociale']);
|
|
// Cas des noms vides à l'INSEE (une centaine)
|
|
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
|
|
*/
|
|
if ($dep>0 && $dep<99999) {
|
|
if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999';
|
|
elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep";
|
|
else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99';
|
|
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren $strDep");
|
|
$nbTot=$tabTmp[0][0];
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
|
|
"siren=$siren $strDep $strActif ORDER BY e.siege , e.actif DESC $limit", true, MYSQL_ASSOC);
|
|
} elseif ($nic=='') {
|
|
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren=$siren");
|
|
$nbTot=$tabTmp[0][0];
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
|
|
"e.siren=$siren $strActif ORDER BY e.siege DESC, e.actif DESC $limit", true, MYSQL_ASSOC);
|
|
} else {
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
|
|
"siren=$siren AND (nic=$nic OR siege=1) $strActif ORDER BY e.siege , e.actif DESC $limit", true, MYSQL_ASSOC);
|
|
$nbTot=count($listeEtab);
|
|
}
|
|
if ($nbTot==0 && $actif==-1) {
|
|
$liste = verificationDuSiret($siren);
|
|
if ($liste != false) {
|
|
//print 'Essayez :<br/>';
|
|
$listeSiren=array();
|
|
foreach ($liste as $s) {
|
|
if (sommeDeControle($s) != 0) {
|
|
print 'erreur somme de controle sur '.$s.
|
|
' ('.sommeDeControle($s).')<br/>';
|
|
} else {
|
|
$listeSiren[]=$s;
|
|
}
|
|
}
|
|
$strSiren=implode(',',$listeSiren);
|
|
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "siren IN ($strSiren) AND siege=1");
|
|
$nbTot=$tabTmp[0][0];
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
|
|
"siren IN ($strSiren) AND siege=1 ORDER BY e.rang DESC, e.actif DESC, e.nic ASC $limit", true, MYSQL_ASSOC);
|
|
$strInfo='Siren saisit invalide';
|
|
}
|
|
}
|
|
foreach ($listeEtab as $etab) {
|
|
$tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
|
|
if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2));
|
|
else $tel='';
|
|
|
|
$fax=sprintf('%010d', strtr($etab['fax'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
|
|
if ($fax<>'0000000000') $fax=implode('.', str_split($fax,2));
|
|
else $fax='';
|
|
|
|
$nom=trim($etab['raisonSociale']);
|
|
// Cas des noms vides à l'INSEE (une centaine)
|
|
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
|
|
|
|
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
|
|
'id'=>$etab['id'],
|
|
'Pertinence'=>100,
|
|
'Siret'=>$etab['siret'],
|
|
'Siege'=>$etab['siege'],
|
|
'Nom'=>$nom,
|
|
'Sigle'=>$etab['sigle'],
|
|
'Enseigne'=>$etab['enseigne'],
|
|
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
|
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
|
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
|
'CP'=>$etab['adr_cp'],
|
|
'Ville'=>$etab['adr_ville'],
|
|
'Tel'=>$tel,
|
|
'Fax'=>$fax,
|
|
'FJ'=>$etab['cj'],
|
|
'FJLib'=>$this->getLibelleFJ($etab['cj']),
|
|
'Siren'=>$etab['siren'],
|
|
'Nic'=>$etab['nic'],
|
|
'Actif'=>$etab['actif'],
|
|
'NafEtab'=>$etab['ape_etab'], // Etablissement
|
|
'NafEnt'=>$etab['ape_entrep'], // Entreprise
|
|
'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']),
|
|
'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']),
|
|
'EffEtTr'=>$etab['teff_etab'],
|
|
'EffEtTrLib'=>self::$tabEffectif[$etab['teff_etab']],
|
|
);
|
|
}
|
|
|
|
if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet
|
|
|
|
return array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
|
'info'=>$strInfo,
|
|
'nbReponses'=>count($tabRet),
|
|
'nbReponsesTotal'=>$nbTot,
|
|
'reponses'=>$tabRet);
|
|
}
|
|
|
|
|
|
public function getEtablissementsParId($typeId, $id, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
|
|
|
$this->setTabCodesNaf();
|
|
$deb=$deb*1;
|
|
$dep=$dep*1;
|
|
|
|
$nbRep=$nbRep*1;
|
|
$limit="LIMIT $deb, $nbRep";
|
|
|
|
if ($typeId=='TEL') {
|
|
debugLog('I',"Recherche par TEL de $id avec un maximum de $nbRep réponses",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "TEL=$id OR FAX=$id");
|
|
$nbTot=$tabTmp[0][0];
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif",
|
|
"TEL=$id OR FAX=$id ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC);
|
|
/*if (count($listeEtab)==0) {
|
|
$iAmabis=new MAmabis();
|
|
$repAmabis=$iAmabis->searchByTelFax($id);
|
|
}*/
|
|
|
|
} elseif ($typeId=='AUTRE') {
|
|
/** Formatage des numéros de RC **/
|
|
$tabId=array($id);
|
|
if (preg_match('/(\d*)(\D)(\d*)/', $id,$matches)) {
|
|
if (strlen($matches[1])<=2) {
|
|
// Années du type 54 ou 07
|
|
if ($matches[1]>date('y')) $deb='19'.$matches[1];
|
|
else $deb='20'.$matches[1];
|
|
} else // Années du type 1900 ou 2000
|
|
$deb=substr($matches[1],2,2);
|
|
$numero =$matches[3]*1;
|
|
for ($i=strlen($numero); $i<=7; $i++) {
|
|
$tabId[]=$matches[1].$matches[2].sprintf('%0'.$i.'s',$numero);
|
|
$tabId[]=$deb.$matches[2].sprintf('%0'.$i.'s',$numero);
|
|
}
|
|
}
|
|
$strId=implode("','", $tabId);
|
|
|
|
/** Gestion du numéro de département ou CP **/
|
|
$strDep='';
|
|
if ($dep>0 && $dep<99999) {
|
|
if ($dep<96) $strDep='AND adr_cp BETWEEN '.$dep.'000 AND '.$dep.'999';
|
|
elseif ($dep>9999) $strDep="AND adr_cp BETWEEN $dep AND $dep";
|
|
else $strDep='AND adr_cp BETWEEN '.$dep.'00 AND '.$dep.'99';
|
|
}
|
|
$tabTmp=$this->iDb->select('etablissements', 'count(*)', "autre_id IN ('$strId') $strDep");
|
|
$nbTot=$tabTmp[0][0];
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif",
|
|
"autre_id IN ('$strId') $strDep ORDER BY siege DESC $limit", false, MYSQL_ASSOC);
|
|
}
|
|
foreach ($listeEtab as $etab) {
|
|
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
|
|
'id'=>$etab['id'],
|
|
'Pertinence'=>100,
|
|
'Siret'=>$etab['siret'],
|
|
'Siege'=>$etab['siege'],
|
|
'Nom'=>$etab['raisonSociale'],
|
|
'Sigle'=>$etab['sigle'],
|
|
'Enseigne'=>$etab['enseigne'],
|
|
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
|
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
|
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
|
'CP'=>$etab['adr_cp'],
|
|
'Ville'=>$etab['adr_ville'],
|
|
'Tel'=>$etab['tel'],
|
|
'Fax'=>$etab['fax'],
|
|
'FJ'=>$etab['cj'],
|
|
'FJLib'=>$this->getLibelleFJ($etab['cj']),
|
|
'Siren'=>$etab['siren'],
|
|
'Nic'=>$etab['nic'],
|
|
'Actif'=>$etab['actif'],
|
|
'NafEtab'=>$etab['ape_etab'], // Etablissement
|
|
'NafEnt'=>$etab['ape_entrep'], // Entreprise
|
|
'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']),
|
|
'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']),
|
|
);
|
|
}
|
|
|
|
if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet
|
|
|
|
return array( 'criteres'=>array('autreId'=>$id, 'dep'=>$dep),
|
|
'nbReponses'=>count($tabRet),
|
|
'nbReponsesTotal'=>$nbTot,
|
|
'reponses'=>$tabRet);
|
|
}
|
|
|
|
/** Retourne juste si un siren existe
|
|
**
|
|
** @param integer $siren
|
|
** @return bool
|
|
**/
|
|
function sirenExiste($siren) {
|
|
$siren=$siren*1;
|
|
$listeEtab=$this->iDb->select('etablissements', 'id', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC);
|
|
if (@count($listeEtab)>0)
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
/** Retourne l'identité issue de la table établissements
|
|
**
|
|
** @param integer $siren
|
|
** @return bool
|
|
**/
|
|
function getIdentiteLight($siren, $nic=0, $id=0) {
|
|
$siren=$siren*1;
|
|
$nic=$nic*1;
|
|
$id=$id*1;
|
|
$limit=''; //LIMIT 0,1' ;
|
|
if ($id>0 && $siren<1000) $where=" id=$id ";
|
|
elseif ($nic<>0) $where=" siren=$siren AND nic=$nic ";
|
|
elseif ($siren<>0) $where=" siren=$siren ";
|
|
else return array();
|
|
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"e.id, e.source, e.source_id, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, e.triCode, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ".
|
|
"e.adr_dep, e.adr_com, e.capital, e.capitalDev, e.capitalSrc, e.tca, e.teff_entrep, e.teff_etab, ".
|
|
"CONCAT(e.siren, e.nic) as siret, e.actif, e.identite_pre",
|
|
"$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC);
|
|
$etab=@$listeEtab[0];
|
|
|
|
$nom=trim($etab['raisonSociale']);
|
|
// Cas des noms vides à l'INSEE (une centaine)
|
|
if ($nom=='') $nom=@preg_replace('/,.*$/','',$etab['identite_pre']);
|
|
|
|
$tabRet=array( 'id'=>$etab['id'],
|
|
'Siret'=>$etab['siret'],
|
|
'Siege'=>$etab['siege'],
|
|
'Nom'=>$nom,
|
|
'Tribunal'=>$etab['triCode'],
|
|
'Sigle'=>$etab['sigle'],
|
|
'Enseigne'=>$etab['enseigne'],
|
|
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
|
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
|
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
|
'AdresseNum'=>$etab['adr_num'],
|
|
'AdresseBtq'=>$etab['adr_btq'],
|
|
'AdresseVoie'=>$etab['adr_typeVoie'],
|
|
'AdresseRue'=>$etab['adr_libVoie'],
|
|
'CP'=>$etab['adr_cp'],
|
|
'Ville'=>$etab['adr_ville'],
|
|
'Tel'=>$etab['tel'],
|
|
'Fax'=>$etab['fax'],
|
|
'FJ'=>$etab['cj'],
|
|
'FJ_lib'=>$this->getLibelleFJ($etab['cj']),
|
|
'Siren'=>$etab['siren'],
|
|
'Nic'=>$etab['nic'],
|
|
'Actif'=>$etab['actif'],
|
|
'NafEtab'=>$etab['ape_etab'],
|
|
'NafEnt'=>$etab['ape_entrep'],
|
|
'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']),
|
|
'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']),
|
|
'AutreId'=>$etab['autre_id'],
|
|
'Source'=>$etab['source'],
|
|
'SourceId'=>$etab['source_id'],
|
|
// Ajout du 25 mars 2010
|
|
'Dept'=>$etab['adr_dep'],
|
|
'codeCommune'=>$etab['adr_com'],
|
|
'Capital'=>$etab['capital'],
|
|
'CapitalDev'=>$etab['capitalDev'],
|
|
'TrancheCA'=>$etab['tca'],
|
|
'TrancheCALib'=>self::$tabTCA[$etab['tca']],
|
|
'EffEnTr'=>$etab['teff_entrep'],
|
|
'EffEnTrLib'=>self::$tabEffectif[$etab['teff_entrep']],
|
|
'EffEtTr'=>$etab['teff_etab'],
|
|
'EffEtTrLib'=>self::$tabEffectif[$etab['teff_etab']],
|
|
// Added 30/05/2012
|
|
//'EffEn'=>$etab['teff_entrep'],
|
|
//'EffEt'=>$etab['teff_etab'],
|
|
);
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Retourne la liste des devise
|
|
**
|
|
** @param string $codeDevise Code ISO devise
|
|
** @return Devise ou liste des devises (si pas de code ISO en entrée)
|
|
**/
|
|
function getDevises($codeIso='') {
|
|
if (trim($codeIso)<>'') $strWhere="devIso='$codeIso'";
|
|
else $strWhere='1';
|
|
$liste=$this->iDb->select('tabDevises', 'devIso, devNom', $strWhere, false, MYSQL_ASSOC);
|
|
$tabRet=array();
|
|
foreach ($liste as $ligne)
|
|
$tabRet[$ligne['devIso']]=$ligne['devNom'];
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Retourne la liste des mandataires/administrateurs/oppositions d'une ou plusieurs cours d'appel
|
|
**
|
|
** @param array $arrIdCA Id S&D de la cour d'appel
|
|
** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète
|
|
** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire
|
|
** @return Liste des Mandataires/Administrateurs de la cours d'appel
|
|
**/
|
|
function getMandataires($arrIdCA=array(), $condense=true, $type=array()) {
|
|
if (count($arrIdCA)>0) $strIdCA='AND ( coursAppel in ('.implode(',', $arrIdCA).') OR coursAppel2 in ('.implode(',', $arrIdCA).') )';
|
|
else $strIdCA='';
|
|
|
|
if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') ";
|
|
else $strType='';
|
|
|
|
|
|
if (!$condense)
|
|
$fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact';
|
|
else
|
|
$fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand";
|
|
|
|
$liste=$this->iDb->select('tabMandataires', $fields, "1 $strIdCA $strType ORDER BY sirenGrp", true, MYSQL_ASSOC);
|
|
$tabRet=array();
|
|
if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne;
|
|
else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']);
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Retourne la liste des mandataires/administrateurs/oppositions correspondant à un nom
|
|
**
|
|
** @param string $nom Nom du mandataire
|
|
** @param bool $condense Par défaut retourne un tableau concatenant Nom, prenom, adresse complète
|
|
** @param array $type Type d'opposition. Ex array('A','M') pour Admin/Mandataires. Autres: a'V'ocat,'H'uissier,'N'otaire
|
|
** @return Liste des Mandataires/Administrateurs de la cours d'appel
|
|
**/
|
|
function searchMandataires($nom, $condense=true, $type=array(), $cpDep=0) {
|
|
|
|
$strIdCA="AND (Nom LIKE '%$nom%' OR Prenom LIKE '%$nom%') ";
|
|
|
|
if (count($type)>0) $strType="AND type in ('".implode("','", $type)."') ";
|
|
else $strType='';
|
|
|
|
if ($cpDep>0 && $cpDep<100) $strCp="AND cp BETWEEN $cpDep"."000 AND $cpDep"."999 ";
|
|
elseif ($cpDep>99 && $cpDep<1000) $strCp="AND cp BETWEEN $cpDep"."00 AND $cpDep"."99 ";
|
|
elseif ($cpDep>999) $strCp="AND cp=$cpDep ";
|
|
else $strCp='';
|
|
|
|
if (!$condense)
|
|
$fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact';
|
|
else
|
|
$fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand";
|
|
|
|
$liste=$this->iDb->select('tabMandataires', $fields, "1 $strIdCA $strType $strCp ORDER BY sirenGrp", true, MYSQL_ASSOC);
|
|
$tabRet=array();
|
|
if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne;
|
|
else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']);
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Récupère les informations du mandataire
|
|
**
|
|
** @param integer $idMand Identifiant SD du mandataire
|
|
** @return array
|
|
**/
|
|
function getMandataire($idMand) {
|
|
$fields='id,sirenGrp,sirenMand,Nom,Prenom,type,coursAppel,coursAppel2,tribunal,Statut,stagiaire,adresse,adresseComp,cp,ville,tel,fax,email,web,contact';
|
|
$liste=$this->iDb->select('tabMandataires', $fields, "id=$idMand", true, MYSQL_ASSOC);
|
|
return @$liste[0];
|
|
}
|
|
|
|
|
|
function getHuissiers($arrIdCA=array(), $condense=true) {
|
|
if (count($arrIdCA)>0)
|
|
$strIdCA="AND tribunal in ('".implode("','", $arrIdCA)."')";
|
|
|
|
else $strIdCA='';
|
|
if (!$condense)
|
|
$fields='id,sirenGrp,sirenMand,Nom,Prenom,type,tribunal,Statut,adresse,adresseComp,cp,ville,tel,fax,email,web,contact';
|
|
else
|
|
$fields="id, CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand";
|
|
|
|
$liste=$this->iDb->select('tabMandataires', $fields, "1 AND type='H' $strIdCA ORDER BY sirenGrp", true, MYSQL_ASSOC);
|
|
$tabRet=array();
|
|
if (!$condense) foreach ($liste as $ligne) $tabRet[]=$ligne;
|
|
else foreach ($liste as $ligne) $tabRet[$ligne['id']]=preg_replace('/ +/',' ',$ligne['Mand']);
|
|
//@wsLog('HUISSIERS',$strIdCA,count($liste));
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Retourne l'identite Textuelle d'un mandataires/administrateurs
|
|
**
|
|
** @param integer $idMand Id S&d du mandataire
|
|
** @return string Mandataire
|
|
**/
|
|
function getMandatairesParId($idMand) {
|
|
if ($idMand>0) {
|
|
$liste=$this->iDb->select('tabMandataires', "CONCAT(Nom,' ',Prenom,' ',adresse,' ',adresseComp,' ',cp,' ',ville) as Mand", "id=$idMand", false);
|
|
return $liste[0][0];
|
|
}
|
|
return '';
|
|
}
|
|
|
|
function getNaf4($siren, $nic=0, $id=0) {
|
|
$tabRet=array();
|
|
$siren=$siren*1;
|
|
if ($siren==0) return false;
|
|
$nic=$nic*1;
|
|
$id=$id*1;
|
|
/*if ($id>0 && $siren==0) $where=" id=$id ";
|
|
else*/if ($nic<>0) $where=" siren=$siren AND nic=$nic ";
|
|
else $where=" siren=$siren AND siege=1 ";
|
|
|
|
$insee=$this->iDbInsee->select('bascule', 'siren, nic, apen5, apen4, apet5, apet4', $where, false, MYSQL_ASSOC);
|
|
$tabRet=$insee[0];
|
|
$tabRet['apen4_lib']=$this->getLibelleNaf($tabRet['apen4']);
|
|
$tabRet['apet4_lib']=$this->getLibelleNaf($tabRet['apet4']);
|
|
return $tabRet;
|
|
}
|
|
|
|
function getIdentiteEntreprise($siren, $nic=0, $id=0, $forceVerif=false, $accesDist=true) {
|
|
global $timer;
|
|
$timer=array('debutIdentite'=>microtime(true));
|
|
//$accesDist=false;
|
|
$tdebIni=microtime(1);
|
|
$ligne=date('YmdHis').";$siren;getIdentiteEntreprise Début ---";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
|
|
$siren=$siren*1;
|
|
$nic=$nic*1;
|
|
$id=$id*1;
|
|
$limit=''; //LIMIT 0,1' ;
|
|
if ($id>0 && $siren<1000) $where=" id=$id ";
|
|
elseif ($nic<>0) $where=" siren=$siren AND nic=$nic ";
|
|
elseif ($siren<>0) $where=" siren=$siren ";//AND siege=1 ";
|
|
$listeEtab=$this->iDb->select('etablissements e',
|
|
"e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, e.autre_id, ".
|
|
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
|
|
"e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ".
|
|
"e.capital, e.capitalDev, e.capitalSrc, CONCAT(e.siren, e.nic) as siret, e.actif, ".
|
|
"e.age_entrep, e.age_etab, e.tca, e.tcaexp, e.teff_entrep, e.teff_etab",
|
|
"$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC);
|
|
|
|
$etab=@$listeEtab[0];
|
|
$nic=@$etab['nic'];
|
|
$timer['tableEtablissements']=microtime(true);
|
|
|
|
/** Si le siren est valide, on part chez Infogreffe **/
|
|
if (count($listeEtab)==0 && $this->valideSiren($siren) && $accesDist) {
|
|
$iGeffes=new MGreffes();
|
|
$etabG=$iGeffes->getIdentite($siren);
|
|
if ($etabG) {
|
|
$adr=$this->structureVoie($etabG['Adresse']);
|
|
// Date de dernière MAJ
|
|
$lastMaj=str_replace('-','',$etabG['DateRadiation'])*1;
|
|
if (str_replace('-','',$etabG['DateCreation'])*1>$lastMaj)
|
|
$lastMaj=str_replace('-','',$etabG['DateCreation'])*1;
|
|
if (str_replace('-','',$etabG['DateUpdate'])*1>$lastMaj)
|
|
$lastMaj=str_replace('-','',$etabG['DateUpdate'])*1;
|
|
|
|
$etab=array( 'id' => $etabG['id'],
|
|
'siret' => $etabG['Siret'],
|
|
'siege' => $etabG['Siege'],
|
|
'raisonSociale' => $etabG['Nom'],
|
|
'sigle' => $etabG['Sigle'],
|
|
'enseigne' => $etabG['Enseigne'],
|
|
'Adresse' => $etabG['Adresse'],
|
|
'adr_comp' => $etabG['Adresse2'],
|
|
'adr_num' => $adr['num'],
|
|
'adr_btq' => $adr['adr_btq'],
|
|
'adr_typeVoie' => $adr['typeVoie'],
|
|
'adr_libVoie' => $adr['libVoie'],
|
|
'adr_dep' => substr($etabG['CP'],0,2),
|
|
'adr_cp' => $etabG['CP'],
|
|
'adr_ville' => $etabG['Ville'],
|
|
'tel' => $etabG['Tel'],
|
|
'fax' => $etabG['Fax'],
|
|
'cj' => $etabG['FJ'],
|
|
'siren' => $etabG['Siren'],
|
|
'nic' => $etabG['Nic'],
|
|
'actif' => $etabG['Actif'],
|
|
'ape_etab' => $etabG['NafEtab'],
|
|
'ape_entrep' => $etabG['NafEnt'],
|
|
'autre_id' => $etabG['NumRC'],
|
|
'dateMAJ' => WDate::DateT('Ymd','Y-m-d',$lastMaj),
|
|
);
|
|
}
|
|
$timer['accesInfogreffeCarInconnu']=microtime(true);
|
|
}
|
|
unset($listeEtab);
|
|
|
|
/** Informations locales issues de la table infos_entrep
|
|
**/
|
|
if ($siren>100) {
|
|
$info=$this->iDb->select('infos_entrep', 'raisonSociale, isin, nscrl, tel, fax, web, mail, latitude, longitude, precis, dateCreation, dateFermeture, naf, naf_lib, ca, effectif, nbEtab, activite, sirenDoublon, waldec', "siren=$siren", false, MYSQL_ASSOC);
|
|
$tab=$info[0];
|
|
$waldec=$tab['waldec'];
|
|
if ($tab['sirenDoublon']==0) {
|
|
$info=$this->iDb->select('infos_entrep', 'siren AS sirenDoublon', "sirenDoublon=$siren", false, MYSQL_ASSOC);
|
|
$tab['sirenDoublon']=$info[0]['sirenDoublon'];
|
|
}
|
|
|
|
$insee=$this->iDb->select('etablissements', 'CONCAT(SIREN,NIC) AS siret', "SIREN=$siren AND SIEGE=1 ORDER BY ACTIF%10 DESC, NIC DESC",false,MYSQL_ASSOC);
|
|
$siretSiege=$insee[0]['siret'];
|
|
$timer['infosEntrep']=microtime(true);
|
|
}
|
|
|
|
if ($nic>0) $strNic="AND NIC=$nic";
|
|
else $strNic='AND NIC<100000 AND SIEGE=1';
|
|
|
|
$moisNonDiff=0;
|
|
|
|
/** Informations INSEE
|
|
**/
|
|
if ($siren>100) {
|
|
$insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, actifEco%10 AS actifEco, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE, insL1_NOMEN, insL2_COMP, insL3_CADR, insL4_VOIE, insL5_DISP, insL6_POST, insL7_ETRG, dateMajRNVP, insCATEGORIE, insIND_PUBLIPO, RPET, ARRONET, CTONET, DU, TU, UU, TCD, ZEMET, ESAANN, ESAAPEN, DREACTET, AMINTRET, DREACTEN, AMINTREN, NOMEN_LONG, CEDEX, EPCI, NOM_COM, NATETAB, PRODET, PRODEN, hexavia',
|
|
"SIREN=$siren $strNic ORDER BY SIEGE DESC, ACTIF DESC LIMIT 0,1",false,MYSQL_ASSOC);
|
|
if (count($insee)>0) {
|
|
$tabInsee=$insee[0];
|
|
$tabNotice=$this->getInfosNotice($siren, $nic);
|
|
$tabInsee['TCA_AN']=$tabNotice['insEAEANT'];
|
|
$tabInsee['RECME']=$tabNotice['insRECME'];
|
|
// On force l'indicateur "actifEco" à 0 si l'établissement est juridiquement inactif
|
|
if ($tabInsee['ACTIF']*1==0) $tabInsee['actifEco']=0;
|
|
if (trim($tabInsee['CODEVOIE'])=='') {
|
|
$codeCommune=$tabInsee['ADR_DEP'].sprintf("%03s",$tabInsee['ADR_COM']);
|
|
//echo $codeCommune.','.$tabInsee['ADR_TYPVOIE'].','.$tabInsee['ADR_LIBVOIE'].EOL;
|
|
$tabInsee['CODEVOIE']=$this->getCodeVoieRivoli($codeCommune, $tabInsee['ADR_TYPVOIE'], $tabInsee['ADR_LIBVOIE']);
|
|
//echo $tabInsee['CODEVOIE'].EOL;
|
|
}
|
|
} else {
|
|
// Siren absent de l'Insee
|
|
$tabInsee=array(
|
|
'CIVILITE'=>0,
|
|
'NBETAB'=>1,
|
|
'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/
|
|
'FAX'=>$etab['fax'], /** @todo idem **/
|
|
'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/
|
|
'Mail'=>'', /** @todo idem **/
|
|
'CJ'=>$etab['cj'],
|
|
'CJ_lib'=>$this->getLibelleFJ($etab['cj']),
|
|
'ACTIF'=>$etab['actif'],
|
|
'APE_ETAB'=>$etab['ape_etab']?$etab['ape_etab']:$etab['ape_entrep'],
|
|
'APE_ENT'=>$etab['ape_entrep']?$etab['ape_entrep']:$etab['ape_etab'],
|
|
'CAPITAL'=>$etab['capital'],
|
|
'CAPITAL_DEV'=>$etab['capitalDev'],
|
|
'ADR_DEP'=>$etab['adr_dep'],
|
|
'TEFF_ENT'=>$etab['teff_entrep'],
|
|
'DEFEN'=>'',
|
|
'TEFF_ET'=>$etab['teff_etab'],
|
|
'DEFET'=>'',
|
|
'TCA'=>$etab['tca'],
|
|
'TCA_AN'=>'',
|
|
'TCAEXP'=>$etab['tcaexp'],
|
|
);
|
|
}
|
|
|
|
$tabTmp=$this->iDb->select('etablissements', 'count(*) AS nbEtabs', "siren=$siren AND NIC<100000 AND ACTIF%10=1",false,MYSQL_ASSOC);
|
|
$nbEtab=$tabTmp[0]['nbEtabs'];
|
|
$inseeND=$this->iDbInsee->select('insee_nondiff', 'siren, mois, dateInsert',"siren=$siren",false,MYSQL_ASSOC);
|
|
$moisNonDiff=@$tabTmp[0]['mois'];
|
|
$timer['tableIdentite']=microtime(true);
|
|
}
|
|
else {
|
|
$tabInsee=array(
|
|
'CIVILITE'=>0,
|
|
'NBETAB'=>1,
|
|
'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/
|
|
'FAX'=>$etab['fax'], /** @todo idem **/
|
|
'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/
|
|
'Mail'=>'', /** @todo idem **/
|
|
'CJ'=>$etab['cj'],
|
|
'CJ_lib'=>$this->getLibelleFJ($etab['cj']),
|
|
'ACTIF'=>$etab['actif'],
|
|
'APE_ETAB'=>$etab['ape_etab']?$etab['ape_etab']:$etab['ape_entrep'],
|
|
'APE_ENT'=>$etab['ape_entrep']?$etab['ape_entrep']:$etab['ape_etab'],
|
|
'CAPITAL'=>'',
|
|
'CAPITAL_DEV'=>'',
|
|
'ADR_DEP'=>$etab['adr_dep'],
|
|
);
|
|
$nbEtab='N/C';
|
|
}
|
|
|
|
if (count($info)==0) {
|
|
$idComp=$this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle'], 0, $accesDist);
|
|
$tab=$idComp;
|
|
$timer['getIdentitePart']=microtime(true);
|
|
}
|
|
|
|
/** Géocodage de l'adresse
|
|
**/
|
|
$ligne=date('YmdHis').";$siren;MMap AVANT";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$mMap=new MMap(true);//$etab['adr_num'].' '.$this->getCodeVoie($etab['adr_typeVoie']).' '.$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville']);
|
|
$mMap->geoCodeAdresse($etab['adr_num'],'',$etab['adr_typeVoie'],$this->getCodeVoie($etab['adr_typeVoie']), $etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], 'France', trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']));
|
|
$ligne=date('YmdHis').";$siren;MMap APRES ($duree s)";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$tab['latitude']=$mMap->latitudeDec;
|
|
$tab['longitude']=$mMap->longitudeDec;
|
|
$tab['altitude']=$mMap->altitude;
|
|
$tab['precis']=$mMap->precision;
|
|
$timer['geoCodage']=microtime(true);
|
|
|
|
/** Accès provisoire à AMABIS
|
|
**/
|
|
if ($accesDist) {
|
|
$ligne=date('YmdHis').";$siren;MAmabis Avant";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$tdeb=microtime(1);
|
|
$iAmabis=new MAmabis();
|
|
$repAmabis=$iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false);
|
|
$duree=round(microtime(1)-$tdeb,3);
|
|
$ligne=date('YmdHis').";$siren;MAmabis APRES ($duree s)";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$timer['zonesPrioritaires']=microtime(true);
|
|
} else
|
|
$repAmabis=array();
|
|
|
|
|
|
/** N° de TVA Intracommunautaire
|
|
**/
|
|
if ($siren*1>100) {
|
|
$ligne=date('YmdHis').";$siren;MTva Avant";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$tdeb=microtime(1);
|
|
$iTva=new MTva($siren, $accesDist);
|
|
$vatNumber=$iTva->vatNumber;
|
|
$vatDefined=$iTva->vatDefined;
|
|
$duree=round(microtime(1)-$tdeb,3);
|
|
$ligne=date('YmdHis').";$siren;MTva APRES ($duree s)";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$timer['tvaIntra']=microtime(true);
|
|
} else {
|
|
$vatNumber='FR00000000000';
|
|
$vatDefined=false;
|
|
}
|
|
|
|
$nom =trim($etab['raisonSociale']);
|
|
if ($nom=='') $nom=@preg_replace('/,.*$/','',$tabInsee['IDENTITE_PRE']);
|
|
$nom2=$tel=$fax='';
|
|
if (strtoupper(trim($tabInsee['NOM2']))<>strtoupper(trim($etab['sigle'])))
|
|
$nom2=trim($tabInsee['NOM2']);
|
|
|
|
if (trim($tab['tel'])<>'') $tel=trim($tab['tel']);
|
|
elseif ($tabInsee['TEL']<>'') $tel=implode('.', str_split($tabInsee['TEL'],2));
|
|
|
|
if (trim($tab['fax'])<>'') $fax=trim($tab['fax']);
|
|
elseif ($tabInsee['FAX']<>'') $fax=implode('.', str_split($tabInsee['FAX'],2));
|
|
|
|
/*if ( $accesDist && $etab['actif']==1 ) {/*&&
|
|
($tel=='' || /*$fax=='' ||* // Pas de tél ou Fax
|
|
($etab['siege']==1 && ($tab['web']=='' || $tab['web']=='http://'))
|
|
//$tab['web']=='' || $tab['mail']=='' || // Pas de Web/Mail
|
|
)
|
|
) */
|
|
$ligne=date('YmdHis').";$siren;MTel Avant";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$tdeb=microtime(1);
|
|
$iTel=new MTel(false);//$accesDist);
|
|
$iTel->getTel($siren);
|
|
$tmp=$iTel->getTel($siren, $nic);
|
|
$duree=round(microtime(1)-$tdeb,3);
|
|
$ligne=date('YmdHis').";$siren;MTel APRES ($duree s)";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$activitePJ_An8='';
|
|
foreach ($tmp as $tmp2) {
|
|
if ($tmp2['typeTel']=='tel' && ($tel==''||$tel==trim($tab['tel'])) )
|
|
$tel=implode('.', str_split($tmp2['telephone'],2));
|
|
if ($tmp2['typeTel']=='fax' && ($fax==''||$fax==trim($tab['fax'])) )
|
|
$fax=implode('.', str_split($tmp2['telephone'],2));
|
|
if ($tmp2['typeTel']=='web' && $tab['web']=='') $tab['web']=$tmp2['infoTel'];
|
|
if ($tmp2['typeTel']=='mail' && $tab['mail']=='') $tab['mail']=$tmp2['infoTel'];
|
|
if ($tmp2['typeTel']=='an8') $activitePJ_An8=$tmp2['infoTel'];
|
|
}
|
|
$timer['telFax']=microtime(true);
|
|
//}
|
|
|
|
/** Type d'exploitation
|
|
** 0 : N/C
|
|
** 1 : Locataire d'un fond de commerce
|
|
** 2 : Loueur d'un fond de commerce
|
|
** 3 : Prestataire de personnel
|
|
** 10: Exploitation directe
|
|
** 11: Sans activité ???
|
|
**/
|
|
$typeExploitation=0;
|
|
if (strtoupper($tabInsee['EXPLET'])=='O') {
|
|
switch ($tabInsee['PRODPART']*1) {
|
|
case 1: // Locataire d'un fond de commerce
|
|
$tabAnn2=$this->getAnnoncesLegales($siren, 0, array(5700));
|
|
if (count($tabAnn2)>0) $typeExploitation=0;
|
|
else $typeExploitation=1;
|
|
break;
|
|
case 2: // Loueur d'un fond de commerce
|
|
case 3: // Prestataire de personnel
|
|
$typeExploitation=$tabInsee['PRODPART']*1;
|
|
break;
|
|
default:
|
|
if (!($tabInsee['CJ']>=7000 && $tabInsee['CJ']<8000) &&
|
|
!($tabInsee['CJ']>=9000 && $tabInsee['CJ']<10000) ) {
|
|
if ($tabInsee['ORIGINE']*1==6) // Prise en location-gérance
|
|
$typeExploitation=1; // Locataire d'un fond de commerce
|
|
elseif ($tabInsee['ORIGINE']*1==1 || // Création pure
|
|
$tabInsee['ORIGINE']*1==3 || // Achat
|
|
$tabInsee['ORIGINE']*1==4) // Apport
|
|
/*
|
|
'2'=>'Réinstallation après transfert',
|
|
'5'=>'Reprise au conjoint ou apport reçu',
|
|
|
|
'7'=>'Partage',
|
|
'8'=>'Reprise',
|
|
'9'=>'Autre modalité d\'acquisition',
|
|
'A'=>'Reprise globale d\'une exploitation agricole',
|
|
'B'=>'Poursuite de l\'exploitation agricole par le conjoint',
|
|
'C'=>'Transfert de propriété d\'une exploitation agricole',
|
|
'D'=>'Apport d\'exploitation(s) agricole(s) individuelle(s)',
|
|
'E'=>'Reprise totale ou partielle d\'exploitation individuelle',
|
|
*/
|
|
$typeExploitation=10;
|
|
elseif ($nbEtab<2) {
|
|
$tabAnn=$this->getAnnoncesLegales($siren, 0, 'L');
|
|
if (count($tabAnn)>0) {
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", print_r($this->getAnnoncesLegales($siren, 0, 'L'), true));
|
|
//ICI
|
|
if ($tabAnn[0]['DateParution']>$tabInsee['DCRET'] && ($tabAnn[0]['Departement']==$tabInsee['ADR_DEP'] || $tabAnn[0]['Departement']==substr(''.$tabInsee['ADR_DEP'].''.$tabInsee['ADR_COM'],O,3)*1))
|
|
$typeExploitation=1; // Locataire d'un fond de commerce
|
|
} elseif (count($this->getAnnoncesLegales($siren, 0, 'G'))>0) {
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", print_r($this->getAnnoncesLegales($siren, 0, 'G'), true));
|
|
$typeExploitation=2; // Loueur d'un fond de commerce
|
|
}
|
|
} elseif ($tabInsee['ORIGINE']*1 <>0 &&
|
|
$tabInsee['ORIGINE']*1 <>8 &&
|
|
$tabInsee['ORIGINE']*1 <>9 &&
|
|
$tabInsee['ORIGINE'] <>'NR')
|
|
$typeExploitation=10; // Exploitation directe
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
$timer['typeExploitation']=microtime(true);
|
|
|
|
/** Recherche de prédécesseur ou successeur
|
|
**/
|
|
global $tabInfoUser;
|
|
$tabAssoc=$this->getSiretAssoc($siren, $nic);
|
|
if (count($tabAssoc)>0) {
|
|
if (isset($tabAssoc['pre'])) {
|
|
// Il y a un prédécesseur
|
|
if ($tabInsee['ORIGINE']*1==0 ||
|
|
$tabInsee['ORIGINE']*1==1 ||
|
|
$tabInsee['ORIGINE']*1==9 ||
|
|
$tabInsee['ORIGINE']=='NR')
|
|
$tabInsee['ORIGINE']=2; // Transfert
|
|
}
|
|
}
|
|
$timer['siretPrecSuivant']=microtime(true);
|
|
|
|
/** Code Pays
|
|
**/
|
|
$codePaysIso2='FR';
|
|
if ($tabInsee['ADR_DEP']>98) {
|
|
$codePaysInsee=$tabInsee['ADR_COM'];
|
|
$tabTmp=$this->iDb->select( 'jo.tabPays j, insee.insee_tabPays i',
|
|
'j.codPays, j.numPays, j.codPays3, j.codePaysInpi, j.libPays, i.LIBCOG, i.ACTUAL',
|
|
"j.codePaysInsee=$codePaysInsee AND j.codePaysInsee=substring( i.COG, 3, 3 ) AND i.ACTUAL IN (1,4) AND j.numPays is NOT NULL", true, MYSQL_ASSOC);
|
|
if (count($tabTmp)==1) {
|
|
$codePaysIso2=$tabTmp[0]['codPays'];
|
|
} else {
|
|
$codePaysIso2='';
|
|
foreach ($tabTmp as $tabTmp2) {
|
|
if (trim(preg_replace('/[^A-Z]/','',strtoupper(strtr($tabTmp2['libPays'],
|
|
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ',
|
|
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY"))))==trim(preg_replace('/[^A-Z]/','',strtoupper($tabTmp2['LIBCOG'])))) {
|
|
$codePaysIso2=$tabTmp2['codPays'];
|
|
break;
|
|
}
|
|
}
|
|
// Exception lié à anomalies de données INSEE
|
|
if ($codePaysIso2=='' && $codePaysInsee==237) $codePaysIso2='KR';
|
|
|
|
if ($codePaysIso2=='') {
|
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getIdentiteEntreprise(siren=$siren,nic=$nic=,id=$id) Plusieurs Codes Pays", "Siret $siren $nic
|
|
Id=$id".EOL.
|
|
print_r($tabInsee, true).EOL.
|
|
print_r($tabTmp, true));
|
|
}
|
|
}
|
|
}
|
|
$timer['codePays']=microtime(true);
|
|
|
|
$tabIris=$this->getInfosIris($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'], substr($tabInsee['CODEVOIE'],0,4), $etab['adr_num'], $etab['adr_btq'], $etab['adr_typeVoie'], $etab['adr_libVoie']);
|
|
if ($tabInsee['CODEVOIE']=='') {
|
|
// On récupere le code Rivoli s'il est absent de SIRENE (cf. doc Sirene)
|
|
$tabInsee['CODEVOIE']=@$tabIris['Rivoli'];
|
|
}
|
|
$timer['codeIris']=microtime(true);
|
|
/*
|
|
return array('codIris'=>$ret[0]['codeIris'],
|
|
'codComIris'=>$ret[0]['codeInseeIris'],
|
|
'libIris'=>$ret[0]['LIB_IRIS'],
|
|
'typIris'=>$tabTypeIris[$ret[0]['TYP_IRIS']],
|
|
*/
|
|
// Est-ce un ancien établissement siège ?
|
|
$ancienSiege=false;
|
|
$dateFinSiege=0;
|
|
if ($etab['siege']==0 || ($etab['siege']==1 && $tabInsee['ACTIF']==0)) {
|
|
$dateFinSiege=$this->isAncienSiege($siren,$nic);
|
|
if ($dateFinSiege>19000101) $ancienSiege=true;
|
|
}
|
|
$timer['ancienSiege']=microtime(true);
|
|
|
|
if ($tabInsee['ACTIF']*1==1 && $tabInsee['actifEco']*1==0) {
|
|
/** L'établissement est actif juridiquement à l'INSEE mais sans activité économique
|
|
**/
|
|
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
|
|
"insSIREN=$siren AND insEVE IN ('OD','TD','MPF','MNP','420','425','620','621','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
|
|
if (count($tabTmp)>0) {
|
|
$tabModif=$tabTmp[0];
|
|
switch(''.$tabModif['insEVE']) {
|
|
case 'OD':
|
|
case 'TD':
|
|
case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise)
|
|
case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire //
|
|
case '620':
|
|
case '621':
|
|
case '650':
|
|
// Fermé économiquement
|
|
$tabInsee['actifEcoType']='ECOF';
|
|
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
|
|
break;
|
|
case 'MPF': // Présumé Fermé
|
|
$tabInsee['actifEcoType']='PFER';
|
|
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
|
|
break;
|
|
case 'MNP': // NPAI
|
|
$tabInsee['actifEcoType']='NPAI';
|
|
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
|
|
break;
|
|
default:
|
|
$tabInsee['actifEco']=1;
|
|
$tabInsee['actifEcoDate']='';
|
|
$tabInsee['actifEcoType']='';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($tabInsee['CIVILITE']==1) $dir1Genre='M';
|
|
elseif ($tabInsee['CIVILITE']==2) $dir1Genre='F';
|
|
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $dir1Genre='';
|
|
|
|
$tabRet=array( 'id'=>$etab['id'],
|
|
'Siret'=>$etab['siret'],
|
|
'SiretSiege'=>$siretSiege,
|
|
'AncienSiege'=>$ancienSiege,
|
|
'AncienSiegeDateFin'=>$dateFinSiege,
|
|
'Siege'=>$etab['siege'],
|
|
'Tribunal'=>strtr($etab['triCode'],array('préfec'=>'','sous-p'=>'','Déclar'=>'')),
|
|
'Nom'=>$nom, //EIRL
|
|
|
|
'Nom2'=>$nom2,
|
|
'Sigle'=>$etab['sigle'],
|
|
'Enseigne'=>$etab['enseigne'], //EIRL
|
|
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
|
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
|
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
|
'AdresseNum'=>$etab['adr_num'],
|
|
'AdresseBtq'=>$etab['adr_btq'],
|
|
'AdresseVoie'=>$etab['adr_typeVoie'],
|
|
'AdresseRue'=>$etab['adr_libVoie'],
|
|
'AdresseDistSP'=>$tabInsee['ADR_DISTSP'],
|
|
'CP'=>$etab['adr_cp'],
|
|
'Ville'=>$etab['adr_ville'],
|
|
'Pays'=>$tabInsee['PAYS'],
|
|
'PaysIso2'=>$codePaysIso2,
|
|
|
|
'Civilite'=>$tabInsee['CIVILITE'],
|
|
'NbEtab'=>$nbEtab,
|
|
'Tel'=>$tel,
|
|
'Fax'=>$fax,
|
|
'Web'=>$tab['web'],
|
|
'Mail'=>$tab['mail'],
|
|
|
|
'GeoLat'=>$tab['latitude'],
|
|
'GeoLon'=>$tab['longitude'],
|
|
'GeoAlt'=>$tab['altitude'],
|
|
'GeoPrecis'=>$tab['precis'],
|
|
|
|
'TvaNumero'=>$vatNumber,
|
|
'TvaAttribue'=>$vatDefined,
|
|
|
|
'FJ'=>$tabInsee['CJ'],
|
|
'FJ_lib'=>$this->getLibelleFJ($tabInsee['CJ']),
|
|
'RECME'=>$tabInsee['RECME'],
|
|
'Siren'=>$etab['siren'],
|
|
'Nic'=>$etab['nic'],
|
|
'Actif'=>$tabInsee['ACTIF'], // Etablissement juridiquement ACTIF
|
|
'ActifEco'=>$tabInsee['actifEco'], // Etablissement économiquement ACTIF
|
|
'ActifEcoDate'=>$tabInsee['actifEcoDate'], // Etablissement économiquement Inactif depuis
|
|
'ActifEcoType'=>$tabInsee['actifEcoType'], // Type d'inactivité éco ECOF, NPAI, PFER ou vide
|
|
'NafEtab'=>$tabInsee['APE_ETAB'],
|
|
'NafEnt'=>$tabInsee['APE_ENT'],
|
|
'NaceEtab'=>$this->getCodeNace($tabInsee['APE_ETAB']),
|
|
'NaceEnt'=>$this->getCodeNace($tabInsee['APE_ENT']),
|
|
'NafEntLib' =>$this->getLibelleNaf($tabInsee['APE_ENT']),
|
|
'NafEtabLib'=>$this->getLibelleNaf($tabInsee['APE_ETAB']),
|
|
'AutreId'=>$etab['autre_id'],
|
|
'Source'=>$etab['source'],
|
|
'SourceId'=>$etab['source_id'],
|
|
'Isin'=>$tab['isin'],
|
|
'Capital'=>$etab['capital'],
|
|
'CapitalDev'=>$etab['capitalDev'],
|
|
'CapitalSrc'=>$etab['capitalSrc'],
|
|
|
|
// 'Singularite'=>'',
|
|
'DateCreaEt'=>$tabInsee['DCRET'],
|
|
'DateCreaEn'=>$tabInsee['DCREN'],
|
|
// 'DateClotEn'=>$tabInsee[''],
|
|
// 'DateClotEt'=>$tabInsee[''],
|
|
// 'SitJur_lib'=>$tabInsee['PROCOL_TYPE'],
|
|
// 'SitJur_date'=>$tabInsee['PROCOL_DATE'],
|
|
'SituationJuridique'=>'',
|
|
'EffEnTr'=>$tabInsee['TEFF_ENT'],
|
|
'EffEnTrLib'=>self::$tabEffectif[$tabInsee['TEFF_ENT']],
|
|
'EffEtTr'=>$tabInsee['TEFF_ET'],
|
|
'EffEtTrLib'=>self::$tabEffectif[$tabInsee['TEFF_ET']],
|
|
'EffectifEtab'=>$tabInsee['EFF_ET'],
|
|
'Effectif'=>$tabInsee['EFF_ENT'],
|
|
'Dept'=>$tabInsee['ADR_DEP'],
|
|
'codeCommune'=>$tabInsee['ADR_COM'],
|
|
'TrancheCA'=>$tabInsee['TCA'],
|
|
'TrancheCALib'=>self::$tabTCA[$tabInsee['TCA']],
|
|
'TrancheCAexp'=>$tabInsee['TCAEXP'],
|
|
'TrancheCAexpLib'=>self::$tabTCAexp[$tabInsee['TCAEXP']],
|
|
'TrancheCAType'=>'I',
|
|
'AnneeEffEn'=>$tabInsee['DEFEN'],
|
|
'AnneeEffEt'=>$tabInsee['DEFET'],
|
|
'AnneeTCA'=>$tabInsee['TCA_AN'],
|
|
|
|
'dir1Titre'=>self::$tabFct[$tabInsee['DIR_FCT']],
|
|
'dir1NomPrenom'=>preg_replace('/^EIRL\s/','',$tabInsee['DIR_IDEN']),
|
|
'dir1Genre'=>$dir1Genre,
|
|
|
|
'Rivoli'=>trim(substr($tabInsee['CODEVOIE'],0,4).' '.substr($tabInsee['CODEVOIE'],-1)),
|
|
'Hexavia'=>$tabInsee['hexavia'],
|
|
'InfosIris'=>$tabIris,
|
|
'NatureActivite'=>$tabInsee['ACTIVNAT'], // Nature de l'activité
|
|
'OrigineCreation'=>$tabInsee['ORIGINE'], // Origine de la création
|
|
'Auxiliaire'=>$tabInsee['AUXILT'], // 1=Auxiliaire / 0=Non auxiliaire
|
|
'Saisonnalite'=>$tabInsee['SAISONAT'], // P=Activité permanente / S=Activité saisonnière
|
|
'ACTISURF'=>$tabInsee['ACTISURF'],
|
|
'EXPLEN'=>$tabInsee['EXPLEN'],
|
|
'EXPLET'=>$tabInsee['EXPLET'],
|
|
'LIEUACT'=>$tabInsee['LIEUACT'],
|
|
'MODEN'=>$tabInsee['MODEN'],
|
|
'MONOACT'=>$tabInsee['MONOACT'],
|
|
'MONOREG'=>$tabInsee['MONOREG'],
|
|
'REGIMP'=>$tabInsee['REGIMP'],
|
|
'PRODPART'=>$tabInsee['PRODPART'],
|
|
'GeoInfos'=>$repAmabis,
|
|
'NonDiffusible'=>$moisNonDiff,
|
|
'TypeExploitation'=>$typeExploitation,
|
|
'DateMajINSEE'=>str_replace('--','',WDate::dateT('Ymd','Y-m-d',$tabInsee['DATE_MAJ'])),
|
|
'APRM'=>$tabInsee['APRM'],
|
|
'APRM_Lib'=>$this->getLibelleNafa($tabInsee['APRM']),
|
|
'AutreSiret'=>$tabAssoc,
|
|
|
|
'L1_NOMEN'=>$tabInsee['insL1_NOMEN'], // Nom ou raison sociale de l'entreprise pour l'adressage
|
|
'L2_COMP'=> $tabInsee['insL2_COMP'], // Complément de nom de l'entreprise pour l'adressage
|
|
'L3_CADR'=> $tabInsee['insL3_CADR'], // Complément d'adresse pour l.adressage
|
|
'L4_VOIE'=> $tabInsee['insL4_VOIE'], // Numéro et libellé dans la voie
|
|
'L5_DISP'=> $tabInsee['insL5_DISP'], // Distribution spéciale
|
|
'L6_POST'=> $tabInsee['insL6_POST'], // Ligne d'acheminement postal pour l'adressage
|
|
'L7_ETRG'=> $tabInsee['insL7_ETRG'], // Libellé du pays pour les adresses à l'étranger
|
|
'IND_PUBLIPO'=> $tabInsee['insIND_PUBLIPO'], // Indicateur du champ de publipostage
|
|
'dateMajRNVP'=>$tabInsee['dateMajRNVP'],
|
|
'RNVP_Niveau'=>0,
|
|
|
|
'RPET'=> $tabInsee['RPET'], //
|
|
'ARRONET'=> $tabInsee['ARRONET'], //
|
|
'CTONET'=> $tabInsee['CTONET'], //
|
|
'DU'=> $tabInsee['DU'], //
|
|
'TU'=> $tabInsee['TU'], //
|
|
'UU'=> $tabInsee['UU'], //
|
|
'TCD'=> $tabInsee['TCD'], //
|
|
'ZEMET'=> $tabInsee['ZEMET'], //
|
|
'ESAANN'=> $tabInsee['ESAANN'], //
|
|
'ESAAPEN'=> $tabInsee['ESAAPEN'], //
|
|
|
|
'DREACTET'=> $tabInsee['DREACTET'], //
|
|
'AMINTRET'=> $tabInsee['AMINTRET'], //
|
|
'DREACTEN'=> $tabInsee['DREACTEN'], //
|
|
'AMINTREN'=> $tabInsee['AMINTREN'], //
|
|
|
|
'CATEGORIE'=> $tabInsee['insCATEGORIE'], // Catégorie d'entreprise
|
|
'NOMEN_LONG'=> $tabInsee['NOMEN_LONG'], // Nom ou raison sociale de l'entreprise
|
|
'PRODET'=> $tabInsee['PRODET'],
|
|
'PRODEN'=> $tabInsee['PRODEN'],
|
|
'NATETAB'=> $tabInsee['NATETAB'],
|
|
'CEDEX'=> $tabInsee['CEDEX'],
|
|
'EPCI'=> $tabInsee['EPCI'],
|
|
// MODET,
|
|
);
|
|
|
|
/** Estimation du Chiffre d'affaires **/
|
|
$cj1=substr($tabInsee['CJ'],0,1)*1;
|
|
if ($tabRet['TrancheCA']*1==0 && $tabRet['AnneeTCA']*1==0 && $tabInsee['ACTIF']==1 && $tabInsee['CJ']<>1800 && $tabInsee['CJ']<>1900 && $cj1<>7 && $cj1<>8 && $cj1<>9) {
|
|
$caEstime=$this->getCAnafEffectif($tabInsee['APE_ENT'], $tabInsee['EFF_ENT']);
|
|
$tabRet['TrancheCA']=$this->getTca($caEstime);
|
|
$tabRet['TrancheCALib']=self::$tabTCA[$tabRet['TrancheCA']];
|
|
if ($tabRet['TrancheCA']*1>0) {
|
|
$tabRet['TrancheCAType']='E';
|
|
$tabRet['AnneeTCA']=date('Y')-2;
|
|
}
|
|
}
|
|
|
|
/** Si tourisme, recherche du classeement **/
|
|
$tabNafTourisme=array( '5510Z', // Hôtels et hébergement similaire
|
|
'5520Z', // Hébergement touristique et autre hébergement de co
|
|
'5530Z', // Terrains de camping et parcs pour caravanes ou véh
|
|
'702A', // Location de logements
|
|
'6820A', // Location de logements
|
|
'6820B', // Location de terrains et d'autres biens immobiliers
|
|
'551A', // Hôtels touristiques avec restaurant
|
|
'5610A', // Restauration traditionnelle
|
|
'741J', // Administration d'entreprises
|
|
'7010Z', // Activités des sièges sociaux
|
|
'552C', // Exploitation de terrains de camping
|
|
'702C', // Location d'autres biens immobiliers
|
|
'551C', // Hôtels touristiques sans restaurant
|
|
'553A', // Restauration de type traditionnel
|
|
);
|
|
if (in_array($tabInsee['APE_ENT'], $tabNafTourisme) ||
|
|
in_array($tabInsee['APE_ETAB'], $tabNafTourisme) ) {
|
|
$ret=$this->iDb->select('tourisme', 'id, nom, adresse, adrCp, adrVille, nbEtoiles, typeClasse, categorie, dateClasse, tel, fax, mail, web, typeChambres, capacite', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
|
|
if (isset($ret[0])) {
|
|
$tabRet['NafEtabLib'].=' ('.$ret[0]['nbEtoiles'].' étoiles le '.
|
|
WDate::dateT('Y-m-d','d/m/Y',$ret[0]['dateClasse']).')';
|
|
if ($tabRet['Tel']=='') $tabRet['Tel']=$ret[0]['tel'];
|
|
if ($tabRet['Fax']=='') $tabRet['Fax']=$ret[0]['fax'];
|
|
if ($tabRet['Web']=='') $tabRet['Web']=$ret[0]['web'];
|
|
if ($tabRet['Mail']=='') $tabRet['Mail']=$ret[0]['mail'];
|
|
}
|
|
}
|
|
|
|
/** Nombre d'actions du capital si disponible **/
|
|
if ($etab['capital']>0) {
|
|
$insee=$this->iDbInsee->select(
|
|
'sdv1.capitalActions',
|
|
'capital, deviseCapital, nbActions, actionNominale, dateInfo',
|
|
"siren=$siren AND capital>0 ORDER BY dateInfo DESC LIMIT 0,1",false,MYSQL_ASSOC);
|
|
$tabRet['CapitalNbActions']=0;
|
|
$tabRet['CapitalMtActions']=0;
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getIdentite sur $siren", print_r($insee, true).EOL.mysql_error());
|
|
if (count($insee)>0) {
|
|
if ($etab['capital']==$insee[0]['capital']) {
|
|
$tabRet['CapitalNbActions']=$insee[0]['nbActions'];
|
|
$tabRet['CapitalMtActions']=$insee[0]['actionNominale'];
|
|
}
|
|
}
|
|
}
|
|
$timer['nbActionsCapital']=microtime(true);
|
|
|
|
/** Numéro de TVA non défini
|
|
**/
|
|
if (!$vatDefined) {
|
|
// Dom Tom ou étranger
|
|
if ($tabRet['Dept']>96)
|
|
$tabRet['TvaFacultatif']=2;
|
|
// Micro-entreprise
|
|
if ($tabRet['FJ']*1<2000 && $tabRet['Effectif']==0 && $tabRet['TrancheCA']==0)
|
|
$tabRet['TvaFacultatif']=1;
|
|
// Erreur lors de la récupération du numéro de TVA
|
|
if ($vatDefined===NULL)
|
|
$tabRet['TvaFacultatif']=99;
|
|
}
|
|
|
|
|
|
/** Date de début d'activité de l'entreprise si absente INSEE
|
|
**/
|
|
if ($siren>100 && $tabRet['DateCreaEn']==0) {
|
|
$insee=$this->iDbInsee->select('identite', 'DCREN', "SIREN=$siren AND DCREN>0 ORDER BY DCREN ASC LIMIT 0,1",false,MYSQL_ASSOC);
|
|
if (count($insee)>0)
|
|
$tabRet['DateCreaEn']=$insee[0]['DCREN'];
|
|
else {
|
|
$tmp=$this->getAvisInsee($siren);
|
|
$dateCreaEn=WDate::dateT('Y-m-d','Ymd',$tmp['dateEtatEn']);
|
|
if (preg_match("/Prise d'activité/", $tmp['etatEn']) &&
|
|
$dateCreaEn>19000101) {
|
|
$this->iDbInsee->update('identite', array('DCREN'=>$dateCreaEn),
|
|
"SIREN=$siren AND NIC=".$etab['nic']);
|
|
/* @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren DateCreaEn trouvée",
|
|
print_r($tmp, true));
|
|
} else
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren date NON TROUVEE",
|
|
print_r($tmp, true));
|
|
*/
|
|
}
|
|
}
|
|
}
|
|
$timer['dateDebutActivite']=microtime(true);
|
|
|
|
|
|
/** Adresse de domiciliation
|
|
**/
|
|
$tabDom=$this->infoAdresseDom( $tabRet['AdresseNum'],
|
|
$tabRet['AdresseBtq'],
|
|
$tabRet['AdresseVoie'],
|
|
$tabRet['AdresseRue'],
|
|
$tabRet['Adresse2'],
|
|
$tabRet['CP'], $tabRet['Ville']);
|
|
if (is_array($tabDom) && count($tabDom)>0)
|
|
foreach($tabDom as $i=>$dom) {
|
|
$tabRet['AdresseDom']=1;
|
|
$tabRet['AdresseDomNb']=$dom['nbEntrep'];
|
|
$domiciliataire='';
|
|
if (preg_match('/^CHEZ (.*)$/i',$tabRet['Adresse2'], $matches) &&
|
|
!preg_match('/ M | M. | MR | MME | MLLE /i',$tabRet['Adresse2'])) {
|
|
$domiciliataire=$matches[1];
|
|
$tabRet['AdresseDom']=2;
|
|
}
|
|
$tabRet['AdresseDomEnt'][]=array('siren'=>$dom['siren'],
|
|
'nom'=>prepareString($dom['nom']),
|
|
);
|
|
}
|
|
$timer['adresseDom']=microtime(true);
|
|
|
|
|
|
/** Siren en Doublon ?
|
|
**/
|
|
if ($tab['sirenDoublon']>0) $tabRet['AutreSiren']=array('listeSiren'=>array('siren'=>$tab['sirenDoublon'],
|
|
'type' =>'doublon'));
|
|
if ($siren>100) {
|
|
$tabProcol=$this->getAnnoncesLegales($siren, 0, 'P', false);
|
|
$tabDates=array();
|
|
foreach ($tabProcol as $iProcol=>$procol)
|
|
$tabDates[]=$procol['dateJugement'];
|
|
rsort($tabDates);
|
|
$dateProcol=str_replace('-','',$tabDates[0])*1;
|
|
if (count($tabProcol)>0) {
|
|
if ($this->dureePlan>0 && date('Ymd')<$this->finPlan) {
|
|
/** En cours de plan de continuation/redressement
|
|
$this->debutPlan; // Date de début/jugement/publication du plan SSAAMMJJ
|
|
$this->dureePlan; // Durée du plan en mois
|
|
$this->finPlan; // Date de fin du plan SSAAMMJJ
|
|
*/
|
|
$tabRet['SituationJuridique']='PL';
|
|
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren En cours de plan",
|
|
'Début du plan : '. $this->debutPlan .EOL.
|
|
'Durée du plan : '. $this->dureePlan .' mois'.EOL.
|
|
'Fin du plan : '. $this->finPlan);*/
|
|
} elseif ($this->dureePlan>0 && date('Ymd')>=$this->finPlan) {
|
|
// Plan révolu
|
|
$tabRet['SituationJuridique']='';
|
|
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren PLAN REVOLU",
|
|
'Début du plan : '. $this->debutPlan .EOL.
|
|
'Durée du plan : '. $this->dureePlan .' mois'.EOL.
|
|
'Fin du plan : '. $this->finPlan);*/
|
|
} elseif ($this->appelJugement)
|
|
// Appel de jugement
|
|
$tabRet['SituationJuridique']='PA';
|
|
else
|
|
// En cours de procédure
|
|
$tabRet['SituationJuridique']='P';
|
|
|
|
$tabTmp=$this->iDb->select('scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", true, MYSQL_ASSOC);
|
|
if ($tabTmp[0]['scoreSolv']>0) {
|
|
if($tabTmp[0]['dateUpdate']>$tabTmp[0]['dateInsert'])
|
|
$dateMaj=str_replace('-','',$tabTmp[0]['dateUpdate']);
|
|
else
|
|
$dateMaj=str_replace('-','',$tabTmp[0]['dateInsert']);
|
|
if ($dateProcol<=$dateMaj)
|
|
$tabRet['SituationJuridique']='';
|
|
}
|
|
} elseif (count($this->getAnnoncesLegales($siren, 0, 'A', false))>0)
|
|
$tabRet['SituationJuridique']='A';
|
|
elseif (count($this->getAnnoncesLegales($siren, 0, 'D', false))>0)
|
|
$tabRet['SituationJuridique']='D';
|
|
|
|
/** Date de dernière mise à jour **/
|
|
$tabAnn=$this->getAnnoncesLegales($siren, 0, '', false, false);
|
|
$tabDates=array();
|
|
foreach ($tabAnn as $iAnn=>$ann)
|
|
$tabDates[]=$ann['dateInsertionSD'];
|
|
rsort($tabDates);
|
|
$tabRet['dateMajANN']=WDate::dateT('Y-m-d','Y-m-d',$tabDates[0]);
|
|
if ($tabRet['dateMajANN']=='--') $tabRet['dateMajANN']='';
|
|
$timer['getAnnoncesLegales']=microtime(true);
|
|
}
|
|
if (($tabInsee['CJ']>0 && $tabInsee['CJ']<20 ||
|
|
$tabInsee['CJ']>999 && $tabInsee['CJ']<2000) && $tabInsee['DIR_FCT']=='')
|
|
$tabRet['dir1Titre']=self::$tabFct['PP'];
|
|
|
|
if ($tabInsee['CIVILITE']>0 && $tabRet['dir1NomPrenom']=='') {
|
|
if ($tabInsee['CIVILITE']==1) { $tabRet['dir1NomPrenom']='M. '; $tabRet['dir1Genre']='M'; }
|
|
elseif ($tabInsee['CIVILITE']==2) { $tabRet['dir1NomPrenom']='Mme '; $tabRet['dir1Genre']='F'; }
|
|
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']='';
|
|
$tabRet['dir1NomPrenom'].=$tabInsee['NOM'];
|
|
}
|
|
|
|
if ($tabInsee['CIVILITE']>0 && ($tabRet['dir1Nom']=='' || $tabRet['dir1Prenom'])) {
|
|
$tmp=$this->iDbInsee->select( 'insee_even', 'dirNom, dirNomUsage, dirPrenom, insCIVILITE', "insSIREN=$siren ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
$tabRet['dir1Nom']=@strtoupper($tmp[0]['dirNom']);
|
|
$tabRet['dir1Prenom']=@ucwords(strtolower(@$tmp[0]['dirPrenom']));
|
|
$tabRet['dir1NomUsage']=@strtoupper($tmp[0]['dirNomUsage']);
|
|
if ($tmp[0]['insCIVILITE']==1) $tabRet['dir1Genre']='M';
|
|
elseif ($tmp[0]['insCIVILITE']==2) $tabRet['dir1Genre']='F';
|
|
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']='';
|
|
|
|
$entrep['sexe']=$tabRet['dir1Genre'];
|
|
unset($tmp);
|
|
}
|
|
|
|
if ($tabInsee['ACTIF']==0 && $siren>100) {
|
|
if ($etab['nic']*1>0) $strNic='AND insNIC='.$etab['nic'];
|
|
else $strNic='';
|
|
// $tmp=$this->iDbInsee->select( 'insee_even', 'insDATEVE', "insSIREN=$siren $strNic AND ( insEVE LIKE 'FF' OR insEVE LIKE '410' OR insEVE LIKE '420' OR insEVE LIKE '425' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
// $tabRet['DateClotEn']=@$tmp[0]['insDATEVE'];
|
|
$tmp=$this->iDbInsee->select( 'insee_even', 'insDATEVE', "insSIREN=$siren $strNic AND ( insEVE LIKE 'FF' OR insEVE LIKE 'TF' OR insEVE LIKE '0F' OR insEVE LIKE 'TD' OR insEVE LIKE '0D' OR insEVE LIKE '410' OR insEVE LIKE '420' OR insEVE LIKE '425' OR insEVE LIKE '400' OR insEVE LIKE '430' OR insEVE LIKE '435' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
$tabRet['DateClotEt']=@$tmp[0]['insDATEVE'];
|
|
unset($tmp);
|
|
$timer['dateClotureInsee']=microtime(true);
|
|
}
|
|
|
|
if ($tabRet['TrancheCALib']=='') $tabRet['TrancheCALib']='N/C';
|
|
if ($tabRet['EffEnTrLib']=='') $tabRet['EffEnTrLib']='N/C';
|
|
|
|
$tabRet['CapitalLib']='';
|
|
$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%' ";
|
|
if ($siren>100) {
|
|
if ($tabRet['CapitalSrc']<>5) {
|
|
/** Recherche du n° RC, de la Forme Juridique et du Capital au Bodacc **/
|
|
$bodacc=$this->iDb->select( 'bodacc_detail', 'Capital, CapitalDev',
|
|
"siren=$siren AND capital<>0 $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
$annCap=@$bodacc[0];
|
|
if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='' || $tabRet['Capital']<>$annCap['Capital']*1) {
|
|
if ($tabInsee['CJ']>1999 && $tabInsee['CJ']<7000) {
|
|
$tabRet['Capital']=$annCap['Capital']*1;
|
|
$tabRet['CapitalDev']=$annCap['CapitalDev'];
|
|
$tabRet['CapitalSrc']=10;
|
|
}
|
|
}
|
|
|
|
if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='') {
|
|
$iDbHisto=new WDB('historiques');
|
|
$bodaccHisto=$iDbHisto->select(
|
|
'entrep e, texte x',//.codEven Code évènement du mouvement Bodacc libEven ',
|
|
'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 '%capital%' /*AND (e.CODEVE BETWEEN 10 AND 19 OR e.CODEVE BETWEEN 30 AND 41 OR e.CODEVE BETWEEN 51 AND 79 ) */ GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);
|
|
if (count($bodaccHisto)>0) {
|
|
foreach ($bodaccHisto as $ann) {
|
|
if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue;
|
|
$tabCodeTri=$ann['CODTRI'];
|
|
if ( ($ann['CODEVE']>=10 && $ann['CODEVE']<20) ||
|
|
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
|
|
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
|
|
if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches) && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000)
|
|
|
|
$tabRet['Capital']=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1;
|
|
if (substr(strtoupper($matches[2]),0,3)=='EUR')
|
|
$tabRet['CapitalDev']='EUR';
|
|
elseif (substr(strtoupper($matches[2]),0,3)=='LIV')
|
|
$tabRet['CapitalDev']='GBP';
|
|
else
|
|
$tabRet['CapitalDev']='FRF';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ($tabRet['CapitalDev']<>'' && $tabRet['CapitalDev']<>'EUR') {
|
|
$dev=$tabRet['CapitalDev'];
|
|
$devise=$this->iDbSD->select( 'devise_liste l, devise_cours c', 'c.devise, c.valeur, c.date, l.devNom, l.devNomPays, l.devPaysIso', "c.devise='$dev' and l.devIso='$dev' ORDER BY c.date DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
$dev=@$devise[0];
|
|
//die(print_r($dev));
|
|
$devise=$tabRet['Capital']*$dev['valeur']*1;
|
|
$tabRet['CapitalLib']=''.$dev['devNom'].' soit '.number_format(round($devise),null,null,' ').' EUR';
|
|
}
|
|
$timer['capital']=microtime(true);
|
|
|
|
/** Recherche du code Tribunal du siège **/
|
|
if ($tabRet['CapitalSrc']<>5) {
|
|
$bodacc=$this->iDb->select( 'bodacc_detail', 'RC, FJ, Tribunal_Code',
|
|
"siren=$siren AND RC<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
if ($tabRet['AutreId']=='') $tabRet['AutreId']=@$bodacc[0]['RC'];
|
|
if ($tabRet['Tribunal']=='') $tabRet['Tribunal']=@$bodacc[0]['Tribunal_Code'];
|
|
}
|
|
|
|
if ($tabRet['FJ_lib']=='') {
|
|
$bodacc=$this->iDb->select( 'bodacc_detail', 'FJ',
|
|
"siren=$siren AND FJ<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
$tabRet['FJ_lib']=@$bodacc[0]['FJ'];
|
|
}
|
|
/** Recherche de l'activité réelle **/
|
|
$bodacc=$this->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 ($tabInsee['CJ']<7000 || $tabInsee['CJ']>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']=='' && ($tabInsee['CJ']>90 && $tabInsee['CJ']<94 ||
|
|
$tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) {
|
|
$siretMin=(''.$siren.'00000')*1;
|
|
$siretMax=(''.$siren.'99999')*1;
|
|
//$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet, Assoc_Nom, typeAsso, Waldec', "siren=$siren AND dateSuppr=0 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 (trim($tabRet['AutreId'])=='')
|
|
$tabRet['AutreId'] = trim($annCap['Waldec']);
|
|
$tabRet['nomLong'] = trim($annCap['Assoc_Nom']);
|
|
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']);
|
|
if ($annCap['typeAsso']=='ASL' && $tabRet['FJ']<>9150) {
|
|
$tabRet['FJ2'] = $tabRet['FJ'];
|
|
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
|
$tabRet['FJ'] = 9150;
|
|
$tabRet['FJ_lib'] = $this->getLibelleFJ(9150);
|
|
} elseif ($annCap['typeAsso']=='FOD') {
|
|
$tabRet['FJ_lib'].= ' (Fonds de dotation)';
|
|
}
|
|
if (trim($tabRet['AutreId'])=='')
|
|
$tabRet['AutreId'] = trim($waldec);
|
|
|
|
} elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999)) {
|
|
$iDbHisto=new WDB('historiques');
|
|
//10 à 19// Création d'entreprise
|
|
//30 à 41
|
|
//51 à 79=>'1503', // Cloture insuf.Actif
|
|
$bodaccHisto=$iDbHisto->select(
|
|
'entrep e, texte x',//.codEven Code évènement du mouvement Bodacc libEven ',
|
|
'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 ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue;
|
|
if ($tabCodeTri<>'' && $tabCodeTri<>@$ann['CODTRI']) $tabCodeTri=@$ann['CODTRI'];
|
|
//if ($siren==403119431) $tabRet['Activite'].="$idx(".$ann['CODEVE'].'):'.$ann['annonceTxt'].' / ';
|
|
if ( ($ann['CODEVE']<20) ||
|
|
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
|
|
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
|
|
//Activite: r
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$timer['activiteReelle']=microtime(true);
|
|
|
|
$bodacc=$this->iDb->select('rncs_dirigeants',
|
|
"nom, prenom, naissance_nom, civilite, fonction_code as code, fonction_lib as libelle, naissance_date AS dateNaiss, naissance_lieu AS lieuNaiss, dirRS as rs, '' as dateEffet",
|
|
"siren=$siren AND actif%10=1 AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", true, MYSQL_ASSOC);
|
|
if (count($bodacc)==0)
|
|
$bodacc=$this->iDb->select('rncs_dirigeants',
|
|
"nom, prenom, naissance_nom, civilite, fonction_code as code, fonction_lib as libelle, naissance_date AS dateNaiss, naissance_lieu AS lieuNaiss, dirRS as rs, '' as dateEffet",
|
|
"siren=$siren AND actif%10=0 AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", true, MYSQL_ASSOC);
|
|
|
|
if (count($bodacc)>0) {
|
|
$k=1;
|
|
foreach ($bodacc as $ann) {
|
|
if ($tabInsee['CJ']>=7000 && $tabInsee['CJ']<=7999 &&
|
|
$ann['libelle']<>'Maire' &&
|
|
//$ann['libelle']<>'Premier Adjoint' &&
|
|
$ann['libelle']<>'Président' &&
|
|
$ann['libelle']<>'Directeur général') continue;
|
|
$tabRet['dir'.$k.'Code']=$ann['code'];
|
|
$tabRet['dir'.$k.'Titre']=$ann['libelle'];
|
|
if (trim($ann['naissance_nom'])<>'') {
|
|
if ($ann['civilite']=='MME' || $ann['civilite']=='MLLE') {
|
|
$nomNaiss=' née '.trim($ann['naissance_nom']);
|
|
$tabRet['dir'.$k.'Genre']='F';
|
|
} elseif ($ann['civilite']=='M') {
|
|
$nomNaiss=' né '.trim($ann['naissance_nom']);
|
|
$tabRet['dir'.$k.'Genre']='M';
|
|
}
|
|
else
|
|
$nomNaiss=' né(e) '.trim($ann['naissance_nom']);
|
|
} else $nomNaiss='';
|
|
if (trim($ann['rs'])<>'') {
|
|
$tabRet['dir'.$k.'NomPrenom']=$ann['rs'];
|
|
if (trim($ann['nom'])<>'' || trim($ann['prenom'])<>'')
|
|
$tabRet['dir'.$k.'NomPrenom'].=' repr. par '.$ann['nom'].' '.$ann['prenom'];
|
|
} else {
|
|
$tabRet['dir'.$k.'NomPrenom']=$ann['nom'].' '.$ann['prenom'].$nomNaiss;
|
|
$tabRet['dir'.$k.'Nom']=$ann['nom'];
|
|
$tabRet['dir'.$k.'Prenom']=$ann['prenom'];
|
|
if ($ann['civilite']=='M')
|
|
$tabRet['dir'.$k.'Genre']='M';
|
|
elseif ($ann['civilite']=='MME' || $ann['civilite']=='MLLE')
|
|
$tabRet['dir'.$k.'Genre']='F';
|
|
}
|
|
$tabRet['dir'.$k.'DateFct']=$ann['dateEffet'];
|
|
$tabRet['dir'.$k.'DateNaiss']=$ann['dateNaiss'];
|
|
$tabRet['dir'.$k.'LieuNaiss']=$ann['lieuNaiss'];
|
|
if ($k==2) break;
|
|
$k++;
|
|
}
|
|
}
|
|
else {
|
|
$bodacc=$this->iDb->select('bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f',
|
|
'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle',
|
|
"b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.depart<>1 AND f.triCode IN ('ASS','COG','DID','DIR','GER','PCS','PDG','PRD','PRE','PRT','VIC') GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC", true, MYSQL_ASSOC);
|
|
//$annCap=@$bodacc[0];
|
|
if (count($bodacc)>0) {
|
|
$k=1;
|
|
foreach ($bodacc as $ann) {
|
|
$tabRet['dir'.$k.'Code']=$ann['fonction'];
|
|
$tabRet['dir'.$k.'Titre']=$ann['libelle'];
|
|
$tabRet['dir'.$k.'NomPrenom']=$ann['rs'].' '.$ann['nom'].' '.$ann['prenom'];
|
|
$tabRet['dir'.$k.'Nom']=$ann['nom'];
|
|
$tabRet['dir'.$k.'Prenom']=$ann['prenom'];
|
|
$tabRet['dir'.$k.'DateFct']=$ann['dateEffet'];
|
|
$tabRet['dir'.$k.'Genre']='';
|
|
if ($k==2) break;
|
|
$k++;
|
|
}
|
|
}
|
|
}
|
|
$timer['dirigeants']=microtime(true);
|
|
|
|
/** Recherche du site Web ou Email dans le JO ASSO
|
|
**/
|
|
if ( ($tabRet['Web']=='' || $tabRet['Mail']=='') &&
|
|
($tabInsee['CJ']>90 && $tabInsee['CJ']<94 ||
|
|
$tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) {
|
|
$siretMin=(''.$siren.'00000')*1;
|
|
$siretMax=(''.$siren.'99999')*1;
|
|
//$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "siren=$siren AND dateSuppr=0 AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
|
|
$annCap=@$bodacc[0];
|
|
if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']);
|
|
if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']);
|
|
|
|
}
|
|
} else {
|
|
if ($etab['source']==3) {
|
|
$id=$etab['source_id'];
|
|
$bodacc=$this->iDb->select( 'asso', 'Activite, Sous_Prefecture, Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_Fusion, Assoc_Date_Declaration2', "id=$id AND dateSuppr=0", true, MYSQL_ASSOC);
|
|
$annCap=@$bodacc[0];
|
|
$tabRet['Activite'] = $annCap['Assoc_Objet'];
|
|
$tabRet['Web'] = $annCap['Assoc_Web'];
|
|
$tabRet['Mail'] = $annCap['Assoc_Mail'];
|
|
$tabRet['VilleDecl'] = $annCap['Sous_Prefecture'];
|
|
if ($tabRet['Actif']==0) {
|
|
// $tabRet['DateClotEn'] = $annCap['Assoc_Date_Declaration2'];
|
|
$tabRet['DateClotEt'] = $annCap['Assoc_Date_Declaration2'];
|
|
} else {
|
|
$tabRet['DateCreaEt'] = $annCap['Assoc_Date_Declaration2'];
|
|
$tabRet['DateCreaEn'] = $annCap['Assoc_Date_Declaration2'];
|
|
}
|
|
}
|
|
}
|
|
$timer['association']=microtime(true);
|
|
|
|
|
|
if (@count($etabG)>0) {
|
|
// On initialise les dernères variables en prov. d'Infogreffes
|
|
//$tabRet['DateClotEn'] = $etabG['DateRadiation'];
|
|
$tabRet['DateClotEt'] = $etabG['DateRadiation'];
|
|
$tabRet['dateImmat'] = $etabG['DateCreation'];
|
|
if ($tabRet['dateImmat']*1==0)
|
|
$tabRet['dateImmat']= substr($etabG['NumRC2'],0,4).'0101';
|
|
$tabRet['DateCreaEt'] = $tabRet['DateCreaEn'] = substr($etabG['NumRC2'],0,4).'0100';
|
|
|
|
$tabRet['FJ'] = $etabG['FJ'];
|
|
if ($etabG['FJ']==1900) {
|
|
$tabRet['dir1Titre']='PP';
|
|
$tabNom=explode(' ', $etabG['Nom']);
|
|
$tabNom[0]=strtoupper($tabNom[0]);
|
|
for($i=1; isset($tabNom[$i]); $i++)
|
|
if ($tabNom[$i]=='EPOUSE')
|
|
$tabNom[$i]='epouse';
|
|
elseif ($tabNom[$i-1]<>'epouse')
|
|
$tabNom[$i]=ucwords(strtolower($tabNom[$i]));
|
|
$tabRet['dir1NomPrenom']=implode(' ', $tabNom);
|
|
}
|
|
$tabRet['FJ_lib'] = $etabG['FJLib']; // prepareString($etab['FJLib']),
|
|
$tabRet['AutreId'] = $etabG['NumRC'];
|
|
/* 'Source'=>$etab['source'],
|
|
'SourceId'=>$etab['source_id'],*/
|
|
$tabRet['NafEtab'] = $etabG['NafEtab'];
|
|
$tabRet['NafEnt'] = $etabG['NafEnt'];
|
|
$tabRet['NafEntLib'] = $etabG['NafEntLib'];
|
|
$tabRet['NafEtabLib'] = $etabG['NafEtabLib'];
|
|
$tabRet['SiretSiege'] = $etabG['Siret'];
|
|
$tabRet['DateMajRCS'] = $etab['dateMAJ'];
|
|
$tabRet['numGreffe'] = $etabG['NumGreffe'];
|
|
$tabRet['numRC'] = $etabG['NumRC2'];
|
|
$tabRet['Enseigne'] = $etabG['Enseigne'];
|
|
$iRncs=new MRncs();
|
|
$tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']);
|
|
}
|
|
if ($tabRet['Siege']==1 && $tabRet['Actif'] && $tabRet['Tribunal']=='')
|
|
$tabRet['Tribunal']=$tabCodeTri;
|
|
|
|
$rep=$this->iDb->select('rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, dateRad*1 AS dateRadNum, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC);
|
|
$entrep=$rep[0];
|
|
if (isset($entrep['numGreffe'])) { //ETRANGER//
|
|
$tabRet['numGreffe'] = $entrep['numGreffe'];
|
|
$tabRet['numRC'] = $entrep['numRC2'];
|
|
if (( preg_match('/[A-Z]/i',substr($tabRet['AutreId'],2,2)) &&
|
|
!preg_match('/[A-Z]/i',substr($tabRet['AutreId'],0,2))
|
|
) || $tabRet['AutreId']=='')
|
|
$tabRet['AutreId'] = $etabG['NumRC2'];
|
|
$tabRet['Tribunal'] = $entrep['triCode'];
|
|
if (strtoupper(trim($entrep['raisonSociale']))<>strtoupper(trim($tabRet['Nom'])))
|
|
$tabRet['nomLong'] = strtoupper($entrep['raisonSociale']);
|
|
if (strtoupper(trim($entrep['sigle']))<>strtoupper(trim($tabRet['Sigle'])))
|
|
$tabRet['sigleLong']= strtoupper($entrep['sigle']);
|
|
$tabRet['dateImmat'] = $entrep['dateImma'];
|
|
$tabRet['dateRad'] = $entrep['dateRad'];
|
|
//if ($entrep['actif']==0 && $entrep['dateRadNum']==0) {}
|
|
$tabRet['Capital'] = $entrep['capitalMontant']+($entrep['capitalCent']/100);
|
|
$tabRet['CapitalDev'] = $entrep['capitalDevIso'];
|
|
$tabRet['CapitalType'] = trim(strtoupper(substr($entrep['capitalType'],0,1)));
|
|
|
|
// Par défaut, la Forme juridique qui fait foie est celle de l'INPI
|
|
$fjInpi=$entrep['cj']*1;
|
|
if ($tabRet['FJ']*1<>$fjInpi && $fjInpi>0) {
|
|
$tabRet['FJ2'] = $tabRet['FJ'];
|
|
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
|
$tabRet['FJ'] = $fjInpi;
|
|
$tabRet['FJ_lib'] = $this->getLibelleFJ($fjInpi);
|
|
} else {
|
|
$tabRet['FJ2'] = $tabRet['FJ'];
|
|
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
|
}
|
|
if ($fjInpi>=1000 && $fjInpi<2000) {
|
|
$tabRet['dir1Titre']='Personne physique';
|
|
$tabRet['dir1Code']='1050';
|
|
$tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom']));
|
|
$tabRet['dir1Nom']=strtoupper($entrep['nom']);
|
|
$tabRet['dir1Prenom']=ucwords(strtolower($entrep['prenom']));
|
|
$tabRet['dir1NomUsage']=@strtoupper($entrep['nomUsage']);
|
|
$tabRet['dir1DateNaiss']=$entrep['dateNaiss'];
|
|
$tabRet['dir1LieuNaiss']=$entrep['lieuNaiss'];
|
|
$tabRet['dir1Genre']=$entrep['sexe'];
|
|
}
|
|
|
|
if ($tabRet['DateMajRCS']=='') {
|
|
if ($entrep['jourUpdate']<>'0000-00-00')
|
|
$tabRet['DateMajRCS']=$entrep['jourUpdate'];
|
|
else
|
|
$tabRet['DateMajRCS']=$entrep['flux'];
|
|
}
|
|
if ($entrep['actif']==1 || $entrep['actif']==11)
|
|
$tabRet['EntActiveRCS']=1; // On signal que l'entreprise est active au RCS
|
|
else {
|
|
$tabRet['EntActiveRCS']=0; // On signal que l'entreprise est radié du RCS
|
|
if ($tabRet['SituationJuridique']=='')
|
|
$tabRet['SituationJuridique']='RR'; // On signal que l'entreprise est radié du RCS
|
|
}
|
|
|
|
/** Spécificité EIRL **/
|
|
if ($fjInpi==1000) {
|
|
$rep=$this->iDb->select('rncs_eirl',
|
|
'denomination, activite',
|
|
"siren=$siren", false, MYSQL_ASSOC);
|
|
$entrep=$rep[0];
|
|
$tabRet['Activite']=$entrep['activite'];
|
|
}
|
|
|
|
/** Informations sur l'établissement au RNCS **/
|
|
$rep=$this->iDb->select('rncs_etab',
|
|
'id, siege, actif, enseigne, nomCommercial,
|
|
adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie,
|
|
cp, commune, adrComp, adresse1, adresse2, adresse3,
|
|
naf, dateFermeture, flux, dateInsert, DATE(dateUpdate) AS jourUpdate',
|
|
"siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
|
|
$entrep=$rep[0];
|
|
if (isset($entrep['id'])) {
|
|
$tabRet['EtabActifRCS']=0;
|
|
if ($entrep['jourUpdate']<>'0000-00-00' &&
|
|
str_replace('-','',$entrep['jourUpdate'])*1>str_replace('-','',$tabRet['DateMajRCS']))
|
|
$tabRet['DateMajRCS']=$entrep['jourUpdate'];
|
|
|
|
if ($entrep['actif']*1==1) $tabRet['EtabActifRCS']=1; // On signal que l'établissement est actif au RCS
|
|
$tabRet['NomCommercial']=$entrep['nomCommercial'];
|
|
$tabRet['enseigneLong']=$entrep['enseigne'];
|
|
|
|
if ($codePaysIso2<>'FR' && $codePaysIso2<>'') {
|
|
$tabRet['Adresse'] = trim(preg_replace('/ +/', ' ', $entrep['adrNumVoie'] .' '.$entrep['adrIndRep'].' '.
|
|
$entrep['adrTypeVoie'].' '.$entrep['adrVoie']));
|
|
$tabRet['Adresse2'] = trim(preg_replace('/ +/', ' ', $entrep['adrComp']));
|
|
$tabRet['AdresseNum'] = $entrep['adrNumVoie'];
|
|
$tabRet['AdresseBtq'] = $entrep['adrIndRep'];
|
|
$tabRet['AdresseVoie'] = $entrep['adrTypeVoie'];
|
|
$tabRet['AdresseRue'] = $entrep['adrVoie'];
|
|
$tabRet['CP'] = $entrep['cp'];
|
|
$tabRet['Ville'] = $entrep['commune'];
|
|
/* 'Siren'=>$etab['siren'],
|
|
'Nic'=>$etab['nic'],
|
|
*/
|
|
}
|
|
}
|
|
$timer['infosRNCS']=microtime(true);
|
|
} elseif ($siren>1000) {
|
|
/**
|
|
** Recherche au RM
|
|
**/
|
|
$rep=$this->iDb->select('artisanat', 'siren, actif, numRM, denomination, sigle, nomCommercial, enseigne, fj, effectif, aprm, debutActivite, activite, adresse, cp, ville, cessation, radiation, nom,prenom,nomUsage,dateNaiss,lieuNaiss,qualite,qualif,dateQualif,dateFctDeb,dateFctFin,DATE(dateUpdate) AS jourUpdate, DATE(dateInsert) AS dateInsert', "siren=$siren", false, MYSQL_ASSOC);
|
|
$entrep=$rep[0];
|
|
if (isset($entrep['numRM'])) {
|
|
$tabRet['AutreId'] = $entrep['numRM'];
|
|
|
|
/** @todo Traiter ou non les zones :
|
|
* - denomination, fj,effectif,adresse,cp,ville,
|
|
* - cessation, dateQualif,dateFctDeb,dateFctFin
|
|
* Transformer les FJ en CJ dans la table
|
|
* Ajouter les fonctions des dir dans la table
|
|
* Ne pas prendre les supprimer dans la construction des index !
|
|
*/
|
|
if ($tabRet['Activite']=='') $tabRet['Activite']=$entrep['activite'];
|
|
if ($tabRet['APRM']=='') {
|
|
$tabRet['APRM']=$entrep['aprm'];
|
|
$tabRet['APRM_Lib']=$this->getLibelleNafa($entrep['aprm']);
|
|
}
|
|
|
|
// $tabRet['Tribunal'] = $entrep['triCode'];
|
|
if (strtoupper(trim($entrep['nom'].' '.$entrep['prenom'].' '.$entrep['nomUsage']))<>strtoupper(trim($tabRet['Nom'])))
|
|
$tabRet['nomLong'] = strtoupper(trim($entrep['nom'].' '.$entrep['prenom'].' '.$entrep['nomUsage']));
|
|
if (strtoupper(trim($entrep['sigle']))<>strtoupper(trim($tabRet['Sigle'])))
|
|
$tabRet['sigleLong']= strtoupper($entrep['sigle']);
|
|
|
|
$tabRet['dateImmat'] = $entrep['debutActivite'];
|
|
$tabRet['dateRad'] = $entrep['radiation'];
|
|
|
|
// Si on est au greffe, on est artisan commercant
|
|
if ($tabRet['numGreffe']*1>0)
|
|
$fjInpi=1100; // Artisan Commerçant
|
|
else
|
|
$fjInpi=1300; // Artisan
|
|
|
|
// Par défaut, la Forme juridique qui fait foie est celle de l'INPI
|
|
if ($tabRet['FJ']*1<>$fjInpi) {
|
|
$tabRet['FJ2'] = $tabRet['FJ'];
|
|
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
|
$tabRet['FJ'] = $fjInpi;
|
|
$tabRet['FJ_lib'] = $this->getLibelleFJ($fjInpi);
|
|
} else {
|
|
$tabRet['FJ2'] = $tabRet['FJ'];
|
|
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
|
}
|
|
|
|
$tabRet['dir1Titre']=ucwords(strtolower($entrep['qualite'].' '.$entrep['qualif']));
|
|
$tabRet['dir1NomPrenom']=strtoupper($entrep['nom']).' '.ucwords(strtolower($entrep['prenom']));
|
|
$tabRet['dir1Nom']=strtoupper($entrep['nom']);
|
|
$tabRet['dir1Prenom']=ucwords(strtolower($entrep['prenom']));
|
|
$tabRet['dir1DateNaiss']=$entrep['dateNaiss'];
|
|
$tabRet['dir1LieuNaiss']=$entrep['lieuNaiss'];
|
|
|
|
if ($tabRet['DateMajRCS']=='') {
|
|
if ($entrep['jourUpdate']<>'0000-00-00')
|
|
$tabRet['DateMajRCS']=$entrep['jourUpdate'];
|
|
else
|
|
$tabRet['DateMajRCS']=$entrep['dateInsert'];
|
|
}
|
|
if ($entrep['actif']==1 || $entrep['actif']==11)
|
|
$tabRet['EntActiveRCS']=1; // On signal que l'entreprise est active au RCS
|
|
else {
|
|
$tabRet['EntActiveRCS']=0; // On signal que l'entreprise est radié du RCS
|
|
if ($tabRet['SituationJuridique']=='')
|
|
$tabRet['SituationJuridique']='RR'; // On signal que l'entreprise est radié du RCS
|
|
}
|
|
|
|
$tabRet['NomCommercial']=$entrep['nomCommercial'];
|
|
$tabRet['enseigneLong']=$entrep['enseigne'];
|
|
}
|
|
}
|
|
|
|
if ($tabRet['dir1Genre']=='M' || $tabRet['dir1Genre']=='F') {
|
|
$tabRet['dir1Titre']='Personne physique';
|
|
$tabRet['dir1Code']='1050';
|
|
}
|
|
|
|
if ( $accesDist &&
|
|
// Département couvert par Infogreffe
|
|
$tabRet['Dept']<>57 && $tabRet['Dept']<>67 && $tabRet['Dept']<>68 && $tabRet['Dept']<>97 && $tabRet['Dept']<>98 && $tabRet['Dept']<>99 &&
|
|
// Forme Juridique présente au greffe
|
|
( $tabInsee['CJ']==1100 ||
|
|
$tabInsee['CJ']==1200 ||
|
|
$tabInsee['CJ']==1300 ||
|
|
$tabInsee['CJ']==1700 ||
|
|
($tabInsee['CJ']>=3100 && $tabInsee['CJ']<=3299) ||
|
|
($tabInsee['CJ']>=4100 && $tabInsee['CJ']<=4199) ||
|
|
($tabInsee['CJ']>=5100 && $tabInsee['CJ']<=5899) ||
|
|
($tabInsee['CJ']>=6100 && $tabInsee['CJ']<=6599) ||
|
|
$tabInsee['CJ']==9900 ||
|
|
preg_match('/EIRL/', $nom) || preg_match('/EIRL/', $nom2) ||
|
|
preg_match('/EIRL/', $tabRet['Sigle']) || preg_match('/EIRL/', $tabRet['Enseigne']) ||
|
|
preg_match('/EIRL/', $tabRet['Adresse']) || preg_match('/EIRL/', $tabRet['Adresse2'])
|
|
) &&
|
|
( $tabInsee['CJ']==1700 || // Agents commerciaux (uniquement au Greffes RSAC)
|
|
$tabRet['numRC']=='' || // Numéro de RCS absent = Anomalie (<à3%)
|
|
$tabRet['Tribunal']=='' || // Tribunal absent = anomalie
|
|
str_replace('-','',$tabRet['dateImmat'])*1==0 || // Pas de date d'immat = anomalie (<à9%)
|
|
($nbEtab*1==0 && str_replace('-','',$tabRet['dateRad'])*1==0) // Inactif sans date de RAD
|
|
)
|
|
) {
|
|
$ligne=date('YmdHis').";$siren;MGreffes Avant";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
$tdeb=microtime(1);
|
|
$iGeffes=new MGreffes();
|
|
$iRncs=new MRncs();
|
|
$etabG=$iGeffes->getIdentite($siren);
|
|
$duree=round(microtime(1)-$tdeb,3);
|
|
$ligne=date('YmdHis').";$siren;MGreffes APRES ($duree s)";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
if ($etabG) {
|
|
if ($tabRet['numRC']=='') $tabRet['numRC'] = $etabG['NumRC2'];
|
|
if ($tabRet['Tribunal']=='') $tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']);
|
|
if (str_replace('-','',$tabRet['dateImmat'])*1==0) $tabRet['dateImmat']= $etabG['DateCreation'];
|
|
if (str_replace('-','',$tabRet['dateRad'])*1==0) {
|
|
$tabRet['dateRad'] = $etabG['DateRadiation'];
|
|
if (str_replace('-','',$tabRet['dateRad'])*1>0 && $tabRet['SituationJuridique']=='')
|
|
$tabRet['SituationJuridique']='RR';
|
|
}
|
|
if (preg_match('/[A-Z]/i',substr($tabRet['AutreId'],2,2)) || $tabRet['AutreId']=='')
|
|
$tabRet['AutreId'] = $etabG['NumRC2'];
|
|
}
|
|
$timer['infosInfogreffes']=microtime(true);
|
|
}
|
|
|
|
/** Si il n'y a aucun établissement actif et qu'on est radié au RCS :
|
|
** on part chercher la dernière annonce de Radiation au Bodacc
|
|
**/
|
|
if (($nbEtab*1)==0 || (isset($entrep['numGreffe']) && $entrep['actif']==0 && $entrep['dateRadNum']==0)) {
|
|
$tabRad=$this->getAnnoncesLegales($siren, 0, 'R');
|
|
//@file_put_contents('/var/www/html/ws2/inseeDebug.log', print_r($tabRad, true));
|
|
if (count($tabRad)>0) {
|
|
// Il y a au moins une annonce de radiation au Bodacc
|
|
if ($tabRet['SituationJuridique']=='')
|
|
$tabRet['SituationJuridique']='RP';
|
|
|
|
$dateEff=str_replace('-','', $tabRad[0]['dateEffet'])*1;
|
|
$dateJug=str_replace('-','', $tabRad[0]['dateJugement'])*1;
|
|
$datePar=str_replace('-','', $tabRad[0]['DateParution'])*1;
|
|
if ($dateEff>0)
|
|
$tabRet['dateRad']=$dateEff;
|
|
elseif ($dateJug>0)
|
|
$tabRet['dateRad']=$dateJug;
|
|
elseif ($datePar>0)
|
|
$tabRet['dateRad']=$datePar;
|
|
}
|
|
$timer['infosRadiation']=microtime(true);
|
|
}
|
|
|
|
/** Eléments Financiers en provenance du dernier Bilan
|
|
**/
|
|
$rep=$this->iDb->select('bilans', 'siren, dateExercice, dureeExercice, monnaie, typeBilan, unite, postes, dateProvPartenaire, dateInsert', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
$entrep=$rep[0];
|
|
if (isset($entrep['dateExercice'])) {
|
|
$tabRet['bilanAnnee'] = substr($entrep['dateExercice'],0,4);
|
|
$tabRet['bilanDate'] = $entrep['dateExercice'];
|
|
$tabRet['bilanMois'] = $entrep['dureeExercice'];
|
|
$tabRet['bilanDevise'] = $entrep['monnaie'];
|
|
if ($entrep['dateProvPartenaire']>0)
|
|
$tabRet['bilanDateMaj']=WDate::dateT('Ymd','Y-m-d',$entrep['dateProvPartenaire']);
|
|
else
|
|
$tabRet['bilanDateMaj']=WDate::dateT('Y-m-d','Y-m-d',$entrep['dateInsert']);
|
|
|
|
switch (strtoupper(trim($entrep['unite']))) {
|
|
case 'M': $unite='M'; break;
|
|
case 'K': $unite='K'; break;
|
|
default: $unite='U'; break;
|
|
}
|
|
$tabTmp=explode(';', $entrep['postes']);
|
|
$tabBilan=array();
|
|
foreach ($tabTmp as $i=>$strTmp) {
|
|
$tabTmp2=explode('=', $strTmp);
|
|
if (isset($tabTmp2[1]))
|
|
if ($unite=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376')
|
|
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
|
|
elseif ($unite=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1' && $tabTmp2[0]<>'376')
|
|
$tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
|
|
else $tabBilan[$tabTmp2[0]]=$tabTmp2[1];
|
|
}
|
|
if (strtoupper($entrep['typeBilan'])=='S') {
|
|
$mBil=new MBilans(0);
|
|
$tabTmp=$mBil->bilanSimplifie2Normal($tabBilan);
|
|
$tabBilan=array_merge($tabTmp, $tabBilan);
|
|
}
|
|
|
|
$tabRet['bilanDA'] = $tabBilan['DA'];
|
|
$tabRet['bilanFL'] = $tabBilan['FL'];
|
|
$tabRet['bilanHN'] = $tabBilan['HN'];
|
|
$tabRet['bilanYP'] = $tabBilan['YP'];
|
|
|
|
// Fiche AGS
|
|
$tabRet['bilanPQ'] = $tabBilan['PQ'];
|
|
$tabRet['bilanPU'] = $tabBilan['PU'];
|
|
$tabRet['bilanPY'] = $tabBilan['PY'];
|
|
$tabRet['bilanQC'] = $tabBilan['QC'];
|
|
|
|
/** Tranche de CA Bilan Réel si TCA Insee ou Estimée < dernière clôture **/
|
|
if ($tabRet['AnneeTCA']<=$tabRet['bilanAnnee'] && $tabInsee['ACTIF']==1) {
|
|
$tabRet['TrancheCA']=$this->getTca($tabBilan['FL']);
|
|
$tabRet['TrancheCALib']=self::$tabTCA[$tabRet['TrancheCA']];
|
|
$tabRet['TrancheCAType']='R';
|
|
$tabRet['AnneeTCA']=$tabRet['bilanAnnee'];
|
|
}
|
|
|
|
/** Contrôle de la cohérence du type d'exploitation **/
|
|
if ($tabBilan['AH']>0 && // Je possède un fond commercial
|
|
$tabRet['TypeExploitation']<>2 && // et je ne suis pas Loueur d'un fond
|
|
$tabRet['TypeExploitation']<>3 && // et je ne suis pas Prestataire de personnel
|
|
$tabRet['TypeExploitation']<>10) { // et je ne suis pas exploitant direct
|
|
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Identite sur $siren : Type d'exploitation",
|
|
"Fonds commercial au dernier bilan .... ".$tabBilan['AH'].EOL.
|
|
"Ancien type d'exploitation ........... ".$tabRet['TypeExploitation'].EOL.
|
|
"Nouveau type d'exploitation .......... 10 (exploitation directe)".EOL.print_r($tabBilan,true));*/
|
|
$tabRet['TypeExploitation']=10;
|
|
}
|
|
|
|
/** Controle de cohérence du capital car parfois absent en Alsace Moselle au RNCS **/
|
|
if ($tabRet['FJ']>2000 && $tabRet['Capital']==0 && $tabRet['CapitalDev']=='') {
|
|
$tabRet['Capital']=$tabRet['bilanDA'];
|
|
$tabRet['CapitalDev']=$tabRet['bilanDevise'];
|
|
}
|
|
|
|
$timer['infosBilan']=microtime(true);
|
|
} elseif($caEstime>0 && $tabInsee['ACTIF']==1) {
|
|
$tabRet['bilanAnnee'] = date('Y')-2;
|
|
$tabRet['bilanFLestime']=$caEstime;
|
|
}
|
|
|
|
/** CA Estimé si aucune info Bilan au TCA Insee
|
|
**/
|
|
//$tabRet['caEstime'] = getCAnafEffectif($tabRet['NafEnt'],$tabRet['Effectif']);
|
|
|
|
|
|
//exec("/var/www/batch/getInfosId.php $siren $piece > /dev/null &");
|
|
|
|
/** DEBUT parallele **
|
|
$pids = array();
|
|
$shm = ftok(__FILE__, 'c');
|
|
$shm_id = shm_attach($shm);
|
|
$mutex = sem_get($shm);
|
|
|
|
define("_IDCOMP", -1);
|
|
define("_MAP", -1);
|
|
define("_AMABIS", -1);
|
|
define("_TVA", -1);
|
|
define("_TEL", -1);
|
|
define("_GREFFE", -1);
|
|
|
|
shm_put_var($shm_id, _IDCOMP, -1);
|
|
shm_put_var($shm_id, _MAP, -1);
|
|
shm_put_var($shm_id, _AMABIS, -1);
|
|
shm_put_var($shm_id, _TVA, -1);
|
|
shm_put_var($shm_id, _TEL, -1);
|
|
shm_put_var($shm_id, _GREFFE, -1);
|
|
|
|
for($instance=0; $instance<7; $instance++)
|
|
{
|
|
$pid = pcntl_fork();
|
|
if ($pid == -1) {
|
|
die('could not fork');
|
|
} else if ($pid) {
|
|
// we are in the parent
|
|
$pids[] = $pid;
|
|
} else {
|
|
// we're in the child - download the movie
|
|
switch ($instance) {
|
|
case 0: // Identité partenaire
|
|
if (count($info)==0 && $accesDist) {
|
|
$idComp=$this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle']);
|
|
shm_put_var($shm_id, _IDCOMP, serialize($idComp));
|
|
}
|
|
break;
|
|
case 1: // Google MAP
|
|
$mMap=new MMap(true);
|
|
$mMap->geoCodeAdresse($etab['adr_num'],'',$etab['adr_typeVoie'],$this->getCodeVoie($etab['adr_typeVoie']), $etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], 'France', trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']));
|
|
shm_put_var($shm_id, _MAP, serialize($mMap));
|
|
break;
|
|
case 2: // Zones prioritaires
|
|
if ($accesDist) {
|
|
$iAmabis=new MAmabis();
|
|
$repAmabis=$iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false);
|
|
}
|
|
shm_put_var($shm_id, _AMABIS, serialize($repAmabis));
|
|
break;
|
|
case 3: // N° de TVA
|
|
if ($siren*1>100)
|
|
$iTva=new MTva($siren, $accesDist);
|
|
shm_put_var($shm_id, _TVA, serialize($iTva));
|
|
break;
|
|
case 4: // Téléphonie Siège
|
|
if ( $accesDist && (
|
|
$tel=='' || $fax=='' || // Pas de tél ou Fax
|
|
$tab['web']=='' || $tab['mail']=='' || // Pas de Web/Mail
|
|
($etab['siege']==0 && $etab['actif']==1) ) // Ets secondaire actif
|
|
) {
|
|
$iTel=new MTel();
|
|
$iTel->getTel($siren);
|
|
}
|
|
break;
|
|
case 5: // Téléphonie Etab
|
|
if ( $accesDist && (
|
|
$tel=='' || $fax=='' || // Pas de tél ou Fax
|
|
$tab['web']=='' || $tab['mail']=='' || // Pas de Web/Mail
|
|
($etab['siege']==0 && $etab['actif']==1) ) // Ets secondaire actif
|
|
) {
|
|
$iTel=new MTel();
|
|
$tmp=$iTel->getTel($siren, $nic);
|
|
shm_put_var($shm_id, _TEL, serialize($tmp));
|
|
}
|
|
break;
|
|
case 6: // Infogreffe
|
|
if ( $accesDist && $tabRet['Dept']<>57 && $tabRet['Dept']<>67 && $tabRet['Dept']<>68 && $tabRet['Dept']<>97 && $tabRet['Dept']<>98 && $tabRet['Dept']<>99 && // Départements du périmètre infogreffe
|
|
( $tabInsee['CJ']==1700 || // Agents commerciaux (uniquement au Greffes RSAC
|
|
$tabRet['numRC']=='' || // Numéro de RCS absent = Anomalie
|
|
$tabRet['Tribunal']=='' || // Tribunal absent = anomalie
|
|
str_replace('-','',$tabRet['dateImmat'])*1==0 || // Pas de date d'immat = anomalie
|
|
($nbEtab*1==0 && str_replace('-','',$tabRet['dateRad'])*1==0) // Inactif sans date de RAD
|
|
)
|
|
) {
|
|
$iGeffes=new MGreffes();
|
|
$etabG=$iGeffes->getIdentite($siren);
|
|
shm_put_var($shm_id, _GREFFE, serialize($etabG));
|
|
}
|
|
break;
|
|
}
|
|
exit();
|
|
}
|
|
}
|
|
|
|
foreach($pids as $pid) {
|
|
pcntl_waitpid($pid, $status);
|
|
}
|
|
|
|
$idComp = unserialize(shm_get_var($shm_id, _IDCOMP));
|
|
$mMap = unserialize(shm_get_var($shm_id, _MAP));
|
|
$repAmabis = unserialize(shm_get_var($shm_id, _AMABIS));
|
|
$iTva = unserialize(shm_get_var($shm_id, _TVA));
|
|
$iTel = unserialize(shm_get_var($shm_id, _TEL));
|
|
$etabG = unserialize(shm_get_var($shm_id, _GREFFE));
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentiteEntreprise() sur $siren", "Données récoltées en //".EOL.
|
|
print_r($idComp, true) .EOL.
|
|
print_r($mMap, true) .EOL.
|
|
print_r($repAmabis, true) .EOL.
|
|
print_r($iTva, true) .EOL.
|
|
print_r($iTel, true) .EOL.
|
|
print_r($etabG, true));
|
|
/** FIN parallele **/
|
|
|
|
$tabRet['TribunalLib']=$this->iBodacc->getTribunalNom($tabRet['Tribunal']);
|
|
$duree=round(microtime(1)-$tdebIni,3);
|
|
$ligne=date('YmdHis').";$siren;getIdentiteEntreprise Fin ($duree s) ===";
|
|
$fp=fopen('/var/www/log/accesDistant.log', 'a');
|
|
fwrite($fp,$ligne.EOL);
|
|
fclose($fp);
|
|
|
|
/** Si on n'a trouvé aucune activité, on prend le libellé de l'activité pages Jaunes **/
|
|
if ($tabRet['Activite']=='' && $activitePJ_An8<>'')
|
|
$tabRet['Activite']=$activitePJ_An8;
|
|
|
|
/** Numero de Registre du métier si nécessaire **/
|
|
if ( ($tabRet['FJ']==1100 || $tabRet['FJ']==1300 || $tabRet['FJ']==11 || $tabRet['FJ']==13 || $tabInsee['APRM']<>'') &&
|
|
($tabRet['Dept']=='2A' || $tabRet['Dept']=='2B' || $tabRet['Dept']<98) ) {
|
|
// Artisan Commerçant OU Artisan en FRANCE
|
|
$tabRet['NumRM']=$siren.' RM '.$tabRet['Dept'];
|
|
if ($tabRet['Dept']=='2A') $tabRet['NumRM'].='.1'; // Ajaccio
|
|
elseif ($tabRet['Dept']=='2B') $tabRet['NumRM'].='.2'; // Bastia
|
|
elseif ($tabRet['Dept']==97) $tabRet['NumRM'].=substr($tabRet['codeCommune'],0,1);
|
|
}
|
|
|
|
/** Recherche des infos boursières **/
|
|
$iBourse=new MBourse($siren);
|
|
$bourse=$iBourse->getInfosBourse($siren);
|
|
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
|
'nombreTitres'=>$bourse['nombreTitres'],
|
|
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
|
'derCoursDate'=>$bourse['date'],
|
|
'derCoursCloture'=>$bourse['close']);
|
|
$timer['infosBoursieres']=microtime(true);
|
|
|
|
/** Date de dernière mise à jour **/
|
|
$lastMaj=str_replace('-','',$tabRet['DateMajINSEE'])*1;
|
|
if (str_replace('-','',$tabRet['DateMajRCS'])*1>$lastMaj)
|
|
$lastMaj=str_replace('-','',$tabRet['DateMajRCS'])*1;
|
|
if (str_replace('-','',$tabRet['bilanDateMaj'])*1>$lastMaj)
|
|
$lastMaj=str_replace('-','',$tabRet['bilanDateMaj'])*1;
|
|
if (str_replace('-','',$tabRet['dateMajANN'])*1>$lastMaj)
|
|
$lastMaj=str_replace('-','',$tabRet['dateMajANN'])*1;
|
|
$tabRet['dateMajIdentite']=WDate::dateT('Ymd','Y-m-d',$lastMaj);
|
|
|
|
$i=$dureeCalc=0;$strTime='';
|
|
$strTimeCsv=date('Y/m/d H:i:s').",$siren,$nic,$id,";
|
|
foreach ($timer as $lib=>$time) {
|
|
$strTime.=sprintf("%30s",$lib)."\t:\t";
|
|
$duree=round($time-$timePre,3);
|
|
$dureeCalc+=$duree;
|
|
if ($i==0) { $strTime.="0 s"; $timeDeb=$time; }
|
|
else $strTime.="$duree s";
|
|
$strTimeCsv.="$duree,";
|
|
$strTime.="\n";
|
|
$timePre=$time;
|
|
$i++;
|
|
}
|
|
$dureeTot=round($time-$timeDeb,3);
|
|
$tempsPerdu=round($dureeTot-$dureeCalc,3);
|
|
if ($tempsPerdu<0) $tempsPerdu=0;
|
|
$strTime.="Temps perdu\t:\t$tempsPerdu s
|
|
---------------------
|
|
TOTAL : $dureeTot s\n";
|
|
$strTimeCsv.="$tempsPerdu,$dureeTot".EOL;
|
|
|
|
if (!file_exists(REP_TEMP.'debugIdentite.csv')) {
|
|
$fp=fopen(REP_TEMP.'debugIdentite.csv', 'a+');
|
|
$strTimeTmp='dateTime,siren,nic,id,';
|
|
foreach ($timer as $lib=>$time)
|
|
$strTimeTmp.=$lib.',';
|
|
$strTimeTmp.='tempsPerdu,dureeTot'.EOL;
|
|
fwrite($fp, $strTimeTmp);
|
|
fclose($fp);
|
|
}
|
|
$fp=fopen(REP_TEMP.'debugIdentite.csv', 'a+');
|
|
fwrite($fp, $strTimeCsv);
|
|
fclose($fp);
|
|
|
|
if(ENV<>'PRD' && $tabInfoUser['login']=='ylenaour')
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Identite sur $siren : Durées ".ENV, $strTime.EOL.print_r($tabRet,true));
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
|
|
function getDirigeantsOp($siren) {
|
|
$siren=$siren*1;
|
|
$tabRet=array();
|
|
$dirs=$this->iDb->select(
|
|
'sdv1.dirigeantsOp d, jo.bodacc_fonctions f',
|
|
'siren, nic, civ, nom, prenom, d.codFct, f.libelle, tel, fax, email, dateInsert, dateUpdate',
|
|
"siren=$siren AND d.codFct=f.codeFct", true, MYSQL_ASSOC);
|
|
|
|
foreach ($dirs as $k=>$dir) {
|
|
$tabRet[]=array( 'Fonction' => $dir['codFct'],
|
|
'Titre' => $dir['libelle'],
|
|
'Societe' => '',
|
|
'Civilite' => $dir['civ'],
|
|
'Nom' => trim(strtoupper($dir['nom'])),
|
|
'Prenom' => ucwords(strtolower($dir['prenom'])),
|
|
'NaissDate' => '',
|
|
'NaissVille' => '',
|
|
'NaissDepPays' => '',
|
|
'Ancien' => 0,
|
|
'DateFct' => '',
|
|
'Cinf' => 0,
|
|
);
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
function getDirigeants($siren, $histo=true) {
|
|
$siren=$siren*1;
|
|
$tabRet=array();
|
|
|
|
if ($histo) {
|
|
$bodacc=$this->iDb->select(
|
|
'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f',
|
|
'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle',
|
|
"b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateInsert DESC, d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC);
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
/* if (!$histo && (
|
|
$ann['fonction']<>300 && // Commissaire aux comptes titulaire
|
|
$ann['fonction']<>301 && // Co-commissaire aux comptes suppléant
|
|
$ann['fonction']<>302 && // Co-commissaire aux comptes titulaire
|
|
$ann['fonction']<>303 && // Commissaire aux comptes suppléant
|
|
$ann['fonction']<>304) ) // Commissaire aux comptes
|
|
continue;*/
|
|
$tabRet[]=array( 'Fonction' => $ann['fonction'],
|
|
'Titre' => $ann['libelle'],
|
|
'Societe' => $ann['rs'],
|
|
'Nom' => trim(strtr($ann['nom'], array( "Modification d'"=>'',
|
|
"Modification de"=>'',
|
|
"Nomination d'un"=>'',
|
|
))),
|
|
'Prenom' => $ann['prenom'],
|
|
'NomUsage' => $ann['nomUsage'],
|
|
'Ancien' => $ann['depart'],
|
|
'DateFct' => $ann['dateEffet'],
|
|
);
|
|
}
|
|
}
|
|
$iDbHisto=new WDB('historiques');
|
|
$iBodacc=new MBodacc();
|
|
$bodaccHisto=$iDbHisto->select(
|
|
'entrep e, 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 20050101 AND x.annonceTxt LIKE '%Administration%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);
|
|
if (count($bodaccHisto)>0) {
|
|
foreach ($bodaccHisto as $ann) {
|
|
if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue;
|
|
if ( ($ann['CODEVE']<20) ||
|
|
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
|
|
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
|
|
if (preg_match('/Administration(?:.|)\:(.*)(?:Adresse.*|Commentaires?|Activit(?:e|é)|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) {
|
|
$iDir=0;
|
|
$tabAdministration=$iBodacc->getDirigeants($matches[1]);
|
|
foreach ($tabAdministration as $tabDir) {
|
|
/* $tabDir['num']=$numDir;
|
|
$tabDir['dateEffet']=$dateEffet;
|
|
$tabDir['id']=$idAnnRet;
|
|
$tabDir['Rubrique']='mmd';
|
|
$tabDir['dateInsert']=$dateInsert;
|
|
//'fonction'=>$numFonction, 'rs'=>trim(str_replace(',','',$raisonSociale)), 'nom'=>$nom, 'prenom'=>$prenom, 'nomUsage'=>$usage, 'depart'=>$oldFonction);
|
|
|
|
*/
|
|
$nom=trim(strtr(preg_replace('/ +/',' ', $tabDir['nom']),
|
|
array( "Modification d'"=>'',
|
|
"Modification"=>'',
|
|
"Modification de"=>'',
|
|
"Nomination d'un"=>'',
|
|
"Nomination en qualité d'"=>'',
|
|
"Nomination en qualité de"=>'',
|
|
"dont le est"=>'',
|
|
"nouvel"=>'',
|
|
"partant"=>'',
|
|
"ancien d'honneur"=>'',
|
|
"nouveaux"=>'',
|
|
"nouveau"=>'',
|
|
"ancien"=>'',
|
|
"Nouveau"=>'',
|
|
"Cette société se constitue Date de début d'"=>'',
|
|
)));
|
|
if ($nom<>'') {
|
|
$tabRet[]=array( 'Fonction' => $tabDir['fonction'],
|
|
'Titre' => $iBodacc->getFctDir($tabDir['fonction']),//.' ('.$tabDir['fonction'].')',
|
|
'Societe' => $tabDir['rs'],
|
|
'Nom' => $nom,
|
|
'Prenom' => $tabDir['prenom'],
|
|
'NomUsage' => $tabDir['nomUsage'],
|
|
'Ancien' => $tabDir['depart'],
|
|
'DateFct' => Wdate::dateT('Ymd','Y-m-d', $ann['DATE']),
|
|
);
|
|
$this->iDb->insert('bodacc_dirigeants_histo',
|
|
array( 'siren' => $siren,
|
|
'id' => $ann['ANBASE'],
|
|
'num' => $iDir,
|
|
'dateEffet' => Wdate::dateT('Ymd','Y-m-d', $ann['DATE']),
|
|
'fonction' => $tabDir['fonction'],
|
|
'rs' => $tabDir['rs'],
|
|
'nom' => $nom,
|
|
'prenom' => $tabDir['prenom'],
|
|
'nomUsage' => $tabDir['nomUsage'],
|
|
'depart' => $tabDir['depart'],
|
|
), true);
|
|
/*if (mysql_errno()>0) {
|
|
echo mysql_errno().' : '.mysql_error().EOL;
|
|
}*/
|
|
$iDir++;
|
|
}
|
|
}
|
|
//break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!$histo || ($histo && count($tabRet)==0) ) {
|
|
$dirs=$this->iDb->select(
|
|
'rncs_dirigeants/* d, bodacc_fonctions f*/',
|
|
'siren, raisonSociale, dirRS, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert/*f.libelle*/',
|
|
"siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=1", true, MYSQL_ASSOC);
|
|
|
|
foreach ($dirs as $k=>$dir) {
|
|
if ($dir['naissance_date']<>'0000-00-00')
|
|
$dateNaiss=Wdate::dateT('Y-m-d','d/m/Y', $dir['naissance_date']);
|
|
else
|
|
$dateNaiss='';
|
|
if ($dir['flux']<>'0000-00-00')
|
|
$dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['flux']);
|
|
else
|
|
$dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['dateInsert']);
|
|
$nom=trim($dir['nom']);
|
|
$nomUsage='';
|
|
if (trim($dir['naissance_nom'])<>'') {
|
|
$nom=trim($dir['naissance_nom']);
|
|
$nomUsage=trim($dir['nom']);
|
|
}
|
|
$tabRet[]=array( 'Fonction' =>$dir['fonction_code'],
|
|
'Titre' =>$dir['fonction_lib'],
|
|
'Societe' =>$dir['dirRS'],
|
|
'Civilite' =>$dir['civilite'],
|
|
'Nom' =>$nom,
|
|
'Prenom' =>$dir['prenom'],
|
|
'NomUsage' =>$nomUsage,
|
|
'NaissDate' =>$dateNaiss,
|
|
'NaissVille' =>$dir['naissance_lieu'],
|
|
'NaissDepPays' =>'', // 25
|
|
'Ancien' =>0,
|
|
'DateFct' =>$dateModif,
|
|
'Cinf' =>$dir['cinf'],
|
|
);
|
|
}
|
|
}
|
|
|
|
/** Recherche de CAC si liste des dirigeants actifs **/
|
|
if (!$histo) {
|
|
$bodacc=$this->iDb->select(
|
|
'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f',
|
|
'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle',
|
|
"b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.fonction BETWEEN 300 AND 304 GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC);
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
$rs=trim(strtoupper($ann['rs']));
|
|
$nom=preg_replace('/en fonction le .*/i','',$ann['nom']);
|
|
$nom=preg_replace('/Nomination .*/i','',$nom);
|
|
$nom=preg_replace('/Modification .*/i','',$nom);
|
|
$nom=preg_replace('/Nouvelles?\s+$/i','',trim($nom));
|
|
$nom=preg_replace('/Nouveaux?\s+$/i','',trim($nom));
|
|
$nom=preg_replace('/ancien.*/i','',$nom);
|
|
$nom=preg_replace('/en remplacement d.*/i','',$nom);
|
|
$nom=trim(strtoupper(preg_replace('/(\.|,)$/','',trim($nom))));
|
|
$prenom=trim($ann['prenom']);
|
|
if ($prenom=='' && $rs=='' && $nom<>'') {
|
|
$rs=$nom;
|
|
$nom='';
|
|
}
|
|
//if ($rs==$nom)
|
|
$tabRet[]=array('Fonction' => $ann['fonction'],
|
|
'Titre' => $ann['libelle'],
|
|
'Societe' => $rs,
|
|
'Nom' => $nom,
|
|
'Prenom' => $prenom,
|
|
'NomUsage' => $ann['nomUsage'],
|
|
'Ancien' => $ann['depart'],
|
|
'DateFct' => $ann['dateEffet'],
|
|
);
|
|
if ($k>1) break; // On s'arrête à 2 CAC (pb des co-cac non gérés)
|
|
}
|
|
}
|
|
}
|
|
|
|
if (count($tabRet)==0) {
|
|
$dirs=$this->iDb->select(
|
|
'rncs_dirigeants/* d, bodacc_fonctions f*/',
|
|
'siren, raisonSociale, civilite, nom, prenom, naissance_nom, naissance_date, naissance_lieu, fonction_code, fonction_lib, cinf, dateFin, flux, dateInsert, /*f.libelle*/ date(dateUpdate)*1 as dateUpdate',
|
|
"siren=$siren /*AND d.fonction_code=f.codeFct*/ AND actif%10=0 ORDER BY dateUpdate DESC", true, MYSQL_ASSOC);
|
|
$dateUpdatePre=$dirs[0]['dateUpdate'];
|
|
foreach ($dirs as $k=>$dir) {
|
|
if ($dir['naissance_date']<>'0000-00-00')
|
|
$dateNaiss=Wdate::dateT('Y-m-d','d/m/Y', $dir['naissance_date']);
|
|
else
|
|
$dateNaiss='';
|
|
if ($dir['flux']<>'0000-00-00')
|
|
$dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['flux']);
|
|
else
|
|
$dateModif=Wdate::dateT('Y-m-d','d/m/Y', $dir['dateInsert']);
|
|
if ($dir['dateUpdate']<>$dateUpdatePre) break;
|
|
$tabRet[]=array( 'Fonction' =>$dir['fonction_code'],
|
|
'Titre' =>$dir['fonction_lib'],
|
|
'Societe' =>'',//utf8_encode($dir['Societe']),
|
|
'Civilite' =>$dir['civilite'],
|
|
'Nom' =>trim($dir['nom']),
|
|
'Prenom' =>$dir['prenom'],
|
|
'NomUsage' => $tabDir['nomUsage'],
|
|
'NaissDate' =>$dateNaiss,
|
|
'NaissVille' =>$dir['naissance_lieu'],
|
|
'NaissDepPays' =>'', // 25
|
|
'Ancien' =>1,
|
|
'DateFct' =>$dateModif,
|
|
'Cinf' =>$dir['cinf'],
|
|
);
|
|
$dateUpdatePre=$dir['dateUpdate'];
|
|
}
|
|
}
|
|
|
|
if (count($tabRet)==0) {
|
|
|
|
if ($tabIdentite['FJ']*1>1000 && $tabIdentite['FJ']*1<2000) {
|
|
$tabTmp=explode(' ', $tabIdentite['Nom']);
|
|
$nom=$prenom='';
|
|
foreach ($tabTmp as $mot)
|
|
if (strtoupper($mot)==$mot)
|
|
$nom.=' '.$mot;
|
|
else
|
|
$prenom.=' '.$mot;
|
|
if ($etab['Civilite']*1==1) { $genre='Monsieur '; $civilite='M'; }
|
|
elseif ($etab['Civilite']*1==2) { $genre='Madame '; $civilite='MME'; }
|
|
else { $genre=''; $civilite=''; }
|
|
|
|
$tabTmp=$this->iDbInsee->select('identite', 'SIREN, CJ, CIVILITE, DIR_DATEN, DIR_LIEUN',
|
|
"SIREN=$siren AND (DIR_DATEN>0 OR DIR_LIEUN<>'') ORDER BY DIR_DATEN DESC, DIR_LIEUN DESC",
|
|
false, MYSQL_ASSOC);
|
|
$tabTmp=@$tabTmp[0];
|
|
|
|
$tabRet[]=array( 'Titre' =>'Personne physique',
|
|
'Societe' =>'',//utf8_encode($dir['Societe']),
|
|
'Civilite' =>$civilite,
|
|
'Nom' =>trim($nom),
|
|
'Prenom' =>trim($prenom),
|
|
'NomUsage' =>'',
|
|
'NaissDate' =>Wdate::dateT('Ymd', 'd/m/Y', $tabTmp['DIR_DATEN']),// 07/09/1961
|
|
'NaissVille' =>$tabTmp['DIR_LIEUN'], // LE RUSSEY//,
|
|
'NaissDepPays' =>'', // 25
|
|
'Ancien' =>0,
|
|
'DateFct' =>$tabIdentite['DateCrea'],//$tabIdentite['DateImma'],
|
|
);
|
|
$this->iDb->insert('rncs_dirigeants', array('siren' => $siren,
|
|
'raisonSociale' => $etab['Nom'],
|
|
'civilite' => $civilite,
|
|
'nom' => trim($nom),
|
|
'prenom' => trim($prenom),
|
|
'naissance_nom' => '',
|
|
'naissance_date'=> $tabTmp['DIR_DATEN'],
|
|
'naissance_lieu'=> $tabTmp['DIR_LIEUN'],
|
|
'fonction_code' => 1050,
|
|
'fonction_lib' => 'Personne physique',
|
|
'actif' => 1,
|
|
'dateInsert' => date('YmdHis'),
|
|
'source' => 'inp',
|
|
), true);
|
|
}
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Liste des annonces légales pour un siren donnée
|
|
**
|
|
** @param integer $siren
|
|
** @param integer $idAnnonce
|
|
** @param mixed $rubrique Filter par rubrique (P)rocol, (D)issolution, (R)adiation, (A)bsorption, (L)ocataire,
|
|
** (G)érance:propriétaire, (V)endeur, bodacc (C), (BODA) (BODB) (BODC) ou tableau des codeEven
|
|
** @param bool $forceVerif
|
|
** @return array
|
|
**/
|
|
function getAnnoncesLegales($siren, $idAnnonce=0, $rubrique='', $forceVerif=false, $allTextes=false) {// rubrique =
|
|
$siren=$siren*1;
|
|
$strIdAnn='';
|
|
$tabRet=array();
|
|
$procol=false; // Par défaut, on ne trouve pas de procédure collective !
|
|
$this->dureePlan=0; // Par défaut, on ne trouve aucune durée de plan
|
|
|
|
$tabId=$this->getIdentiteLight($siren);
|
|
$fj=$tabId['FJ'];
|
|
|
|
if ($idAnnonce>0) $strIdAnn=" AND d.id=$idAnnonce ";
|
|
elseif ($idAnnonce==0 && $siren<100) return $tabRet;
|
|
|
|
if ($rubrique=='P' ||
|
|
$rubrique=='PH') // Procédure collective
|
|
$strIdAnn=" AND d.Rubrique='procol' AND d.typeEven NOT LIKE '%1005%'
|
|
AND d.typeEven NOT LIKE '%1010%'
|
|
AND d.typeEven NOT LIKE '%1050%'
|
|
AND d.typeEven NOT LIKE '%1055%'
|
|
AND d.typeEven NOT LIKE '%1550%' ";
|
|
/** @todo Prévoir de ne pas sortir l'annonce si 'P' demandé et date juge > 10 ans
|
|
** AND e.DATE>=".((date('Y')*1)-10).''.date('md')
|
|
**/
|
|
elseif ($rubrique=='D') // Dissolution de la société
|
|
$strIdAnn=" AND (d.typeEven LIKE '%2202%' OR d.typeEven LIKE '%2203%' OR d.typeEven LIKE '%2204%' OR
|
|
d.typeEven LIKE '%2210%' OR d.typeEven LIKE '%2211%' OR d.typeEven LIKE '%2212%') ";
|
|
elseif ($rubrique=='A') // Absorption
|
|
$strIdAnn=" AND (d.typeEven LIKE '%2720%' OR d.typeEven LIKE '%2721%') ";
|
|
|
|
elseif ($rubrique=='BODA') // BODACC A
|
|
$strIdAnn=" AND d.Rubrique IN ('creations','procol','ventes') ";
|
|
elseif ($rubrique=='BODB') // BODACC B
|
|
$strIdAnn=" AND d.Rubrique IN ('mmd','radiations') ";
|
|
|
|
elseif ($rubrique=='C' || $rubrique=='BODC') // Dépôt des comptes, BODACC C
|
|
$strIdAnn=" AND (d.Rubrique='comptes' OR d.typeEven LIKE '%3100%' OR d.typeEven LIKE '%3200%'
|
|
OR d.typeEven LIKE '%3300%' OR d.typeEven LIKE '%3999%') ";
|
|
elseif ($rubrique=='R')
|
|
$strIdAnn=" AND (d.typeEven LIKE '%2202%' OR d.typeEven LIKE '%2203%' OR d.typeEven LIKE '%2204%' OR
|
|
d.typeEven LIKE '%2210%' OR d.typeEven LIKE '%2211%' OR d.typeEven LIKE '%2212%' OR d.Rubrique='radiations') ";
|
|
elseif ($rubrique=='L') // Location gérance Locataire
|
|
$strIdAnn=" AND (d.typeEven LIKE '%2800%' OR d.typeEven LIKE '%2875%' OR d.typeEven LIKE '%2880%' OR
|
|
d.typeEven LIKE '%2881%' OR d.typeEven LIKE '%2885%' OR d.typeEven LIKE '%2840%' OR
|
|
d.typeEven LIKE '%4355%') ";
|
|
elseif ($rubrique=='G') // Location gérance Propriétaire
|
|
$strIdAnn=" AND (d.typeEven LIKE '%2850%' OR d.typeEven LIKE '%2851%' OR d.typeEven LIKE '%2860%' OR
|
|
d.typeEven LIKE '%2870%') ";
|
|
elseif ($rubrique=='V') // Ventes/Cessions
|
|
$strIdAnn=" AND (d.typeEven LIKE '%5500%' OR d.typeEven LIKE '%5501%' OR d.typeEven LIKE '%5502%' OR
|
|
d.typeEven LIKE '%5503%' OR d.typeEven LIKE '%5510%' OR d.typeEven LIKE '%5600%' OR
|
|
d.typeEven LIKE '%5650%') ";
|
|
elseif (is_array($rubrique) && count($rubrique)>0) {
|
|
$strIdAnn=" AND (";
|
|
foreach ($rubrique as $codeEven)
|
|
$tabTmp[]=" d.typeEven LIKE '%$codeEven%' ";
|
|
$strIdAnn.=implode(' OR ',$tabTmp);
|
|
$strIdAnn.=')';
|
|
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAnnonces... sur $siren", $strIdAnn);
|
|
}
|
|
|
|
//elseif ($rubrique=='V') $strIdAnn=" AND d.Rubrique='ventes' ";
|
|
|
|
if ($rubrique<>'' && $rubrique<>'P' && $rubrique<>'PH' && $rubrique<>'D' && $rubrique<>'A' && $rubrique<>'C' && $rubrique<>'R'
|
|
&& $rubrique<>'L' && $rubrique<>'G' && $rubrique<>'V'
|
|
&& $rubrique<>'BODA' && $rubrique<>'BODB' && $rubrique<>'BODC' && !is_array($rubrique))
|
|
return false;
|
|
|
|
if ($idAnnonce==0 || $idAnnonce>=1) { /** On recherche dans les annonces récentes **/
|
|
$groupBy=' ';
|
|
$strCle='1 ';
|
|
if ($siren<>0) $strCle ="d.siren=$siren ";
|
|
else $groupBy=' GROUP BY d.id ';
|
|
$bodacc=$this->iDb->select(
|
|
'bodacc_detail d, bodacc b, tribunaux t',//.codEven Code évènement du mouvement Bodacc libEven ',
|
|
"b.id, b.Bodacc_Code, b.Bodacc_Annee_Parution, b.Bodacc_Num, b.Num_Annonce, b.Bodacc_Date_Parution, b.Tribunal_Dept, b.Tribunal_Code, d.Rubrique, b.typeAnnonce, b.corrNum_Annonce, b.corrBodacc_Date_Parution, b.corrPage, b.corrNumParution, b.corrTexteRectificatif, b.annonce, b.dateInsert, t.triCode, t.triNom, t.triSiret, d.typeEven, d.dateEffet, d.dateDebutActivite, d.dateCessationActivite, d.dateJugement, d.dateFinObservation, d.VenteMt, d.VenteDev, d.FJ, d.Capital, d.CapitalDev, CONCAT(d.commentaires,' ',d.fusion) as complement, d.raisonSociale, d.nomCommercial, d.enseigne, d.sigle, d.adresse, d.codePostal, d.ville, d.adresseSiege, d.codePostalSiege, d.villeSiege",
|
|
"$strCle AND d.id=b.id AND b.Tribunal_Code=t.triCode AND d.dateSuppr=0 $strIdAnn $groupBy ORDER BY b.Bodacc_Date_Parution DESC", true, MYSQL_ASSOC);
|
|
$k=0;
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
$tabEven=explode(';', $ann['typeEven']);
|
|
$tabRetEven=array();
|
|
if ($ann['typeAnnonce']<>'Insertion')//BODACC n°002 A du 04/01/2006.
|
|
$tabRetEven[]=array('CodeEven'=>'0000',
|
|
'LibEven'=> $ann['typeAnnonce'].' de l\'annonce './*n°'.
|
|
$ann['corrNum_Annonce'].' BODACC n°'.
|
|
$ann['corrNumParution'].*/' du '.
|
|
WDate::dateT('Y-m-d','d/m/Y',$ann['corrBodacc_Date_Parution'])/*.' (page '.
|
|
$ann['corrPage'].')'*/);
|
|
else {
|
|
if (trim($ann['typeEven'])<>'') {
|
|
foreach ($tabEven as $even) {
|
|
$tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even));
|
|
if (($this->dureePlan==0 || $this->dureePlan==120) &&
|
|
( $even==1407 || // Modification de plan
|
|
$even==1409 || // Modification du plan de continuation
|
|
$even==1413 || // Arrêt du plan de continuation
|
|
$even==1414) ) // Arrêt du plan de redressement
|
|
{
|
|
$this->debutPlan=str_replace('-','',$ann['dateJugement']); // SSAAMMJJ
|
|
if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $ann['annonce'], $matches)) {
|
|
$this->dureePlan=$matches[1]*12; // 10 ans = 120 mois
|
|
}
|
|
if ($this->dureePlan<1 || $this->dureePlan>120) {
|
|
if (($fj==16 || $fj==1600 || // Exploitant agricole
|
|
$fj==63 || $fj==6316 || $fj==6317 || $fj==6318 || // Société coopérative agricole
|
|
$fj==5431 || $fj==5432 || $fj==5531 || $fj==5532 || // SMIA, SICA
|
|
$fj==5631 || $fj==5632 || $fj==6532 ||
|
|
$fj==6533 || $fj==6534 || $fj==6535 || // GAEC, GFA, Gpt Agricole Foncier
|
|
$fj==6597 || $fj==6598)/* && $this->dureePlan>180*/)
|
|
$this->dureePlan=180; // 15 ans
|
|
else
|
|
$this->dureePlan=120; // 10 ans = 120 mois
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Annonce de Plan Récent sur $siren sans durée (CJ=$fj, durée du plan=".$this->dureePlan.')', print_r($ann, true).EOL.print_r($matches, true));
|
|
}
|
|
$this->finPlan=WDate::period2Days($this->debutPlan, $this->dureePlan.' mois');
|
|
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnoncesLegales($siren, idAn=$idAnnonce, rubrique=$rubrique, verif=$forceVerif, txt=$allTextes) Annonce de Plan", print_r($ann, true));
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
switch ($ann['Rubrique']) {
|
|
case 'mmd': $codeEven='2313'; $libEven='Modification(s) diverse(s)'; break;
|
|
case 'comptes': $codeEven='3999'; $libEven='Dépôt des comptes'; break;
|
|
case 'creations': $codeEven='4999'; $libEven='Création d\'entreprise'; break;
|
|
case 'procol': $codeEven='1999'; $libEven='Procédure collective'; break;
|
|
case 'radiations': $codeEven='6700'; $libEven='Radiation'; break;
|
|
case 'ventes': $codeEven='5999'; $libEven='Vente/Cession'; break;
|
|
default: $codeEven='0000'; $libEven=$ann['Rubrique']; break;
|
|
}
|
|
$tabRetEven[]=array('CodeEven'=>$codeEven,'LibEven'=>$libEven);
|
|
}
|
|
}
|
|
|
|
if ($ann['Rubrique']=='procol') $procol=true;
|
|
|
|
//dateDebutActivite
|
|
//
|
|
$dateCes=str_replace('-','', $ann['dateCessationActivite'])*1;
|
|
$dateDeb=str_replace('-','', $ann['dateDebutActivite'])*1;
|
|
$dateEff=str_replace('-','', $ann['dateEffet'])*1;
|
|
if ($dateCes>0)
|
|
$dateEffet=$ann['dateCessationActivite'];
|
|
elseif ($dateDeb>0)
|
|
$dateEffet=$ann['dateDebutActivite'];
|
|
else
|
|
$dateEffet=$ann['dateEffet'];
|
|
$adresseAnn=trim(preg_replace('/ +/',' ', $ann['adresseSiege'].' '.$ann['codePostalSiege'].' '.$ann['villeSiege']));
|
|
if (strlen($adresse)<8)
|
|
$adresseAnn=trim(preg_replace('/ +/',' ', $ann['adresse'].' '.$ann['codePostal'].' '.$ann['ville']));
|
|
$tabRet[$k]=array( 'id'=>$ann['id'],
|
|
'BodaccCode'=>'BOD'.$ann['Bodacc_Code'],
|
|
'BodaccNum'=>$ann['Bodacc_Num'],
|
|
'NumAnnonce'=>$ann['Num_Annonce'],
|
|
'DateParution'=>$ann['Bodacc_Date_Parution'],
|
|
'Departement'=>$ann['Tribunal_Dept'],
|
|
'Tribunal'=>$ann['triNom'],
|
|
'TribunalCode'=>$ann['triCode'],
|
|
'TribunalSiret'=>$ann['triSiret'],
|
|
'Rubrique'=>$ann['Rubrique'],
|
|
'typeAnnonce'=>$ann['typeAnnonce'],
|
|
'texteRectificatif'=>$ann['corrTexteRectificatif'],
|
|
// 'texteAnnonce'=>$ann['annonce'],
|
|
'dateEffet'=>$dateEffet,
|
|
'dateJugement'=>$ann['dateJugement'],
|
|
/// d.dateDebutActivite, d.dateCessationActivite, d.dateJugement',
|
|
'dateFin'=>$ann['dateFinObservation'],
|
|
'montantVente'=>trim($ann['VenteMt'].' '.$ann['VenteDev']),
|
|
'libFJ'=>$ann['FJ'],
|
|
'codFJ'=>$this->iBodacc->getCodeFormeJur($ann['FJ']),
|
|
'capital'=>$ann['Capital'],
|
|
'capitalDev'=>$ann['CapitalDev'],
|
|
'raisonSociale'=>$ann['raisonSociale'],
|
|
'nomCommercial'=>$ann['nomCommercial'],
|
|
'sigle'=>$ann['sigle'],
|
|
'adresse'=>$adresseAnn,
|
|
'dateInsertionSD'=>$ann['dateInsert'],
|
|
'evenements'=>$tabRetEven,
|
|
'complement'=>$ann['complement'],
|
|
);
|
|
if ($idAnnonce<>0 || $allTextes)
|
|
$tabRet[$k]['texteAnnonce']=$ann['annonce'];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($idAnnonce==0 || $idAnnonce<0) { /** On recherche dans les annonces passées **/
|
|
$iDbHisto=new WDB('historiques');
|
|
$tabTmp=array( 10=>'4000', // Création d'entreprise
|
|
11=>'4000',
|
|
13=>'4000',
|
|
14=>'4000',
|
|
15=>'4000',
|
|
16=>'4000',
|
|
17=>'4200', // Création d'établissement
|
|
18=>'4200',
|
|
19=>'4200',
|
|
20=>'5999', // ou 5700 en fonction du code xxx
|
|
21=>'5999',
|
|
22=>'5999',
|
|
24=>'5999',
|
|
25=>'5999',
|
|
30=>'2500', // Confirmation Ets
|
|
31=>'2318',
|
|
32=>'2318',
|
|
33=>'2318',
|
|
34=>'2318',
|
|
35=>'2318',
|
|
36=>'2318',
|
|
37=>'2800', // Loc. Gérance recue
|
|
38=>'2860', // Loc. Gérance donnée
|
|
39=>'2318',
|
|
40=>'6700', // Radiation
|
|
41=>'2202', // Dissolution
|
|
42=>'2885', // Fin location gérance
|
|
51=>'1209', // Règlement Judiciaire
|
|
52=>'1200', // Redressement Judiciaire
|
|
53=>'1207', // Règlemement amiable
|
|
//53=> Conciliation ????????????????????????????????????????
|
|
56=>'1310', // Procédure d'Insolvabilité Européenne
|
|
57=>'1100', // Jugement de sauvegarde
|
|
58=>'1101', // Plan de sauvegarde
|
|
59=>'1506', // Rectif ou Annulation RJ
|
|
60=>'1305', // Redr.& liq.Judiciaire
|
|
61=>'1603', // Liquidation de Biens
|
|
62=>'1305',
|
|
63=>'1600', // Faillite personnelle
|
|
64=>'1601', // Interdiction de gérer
|
|
65=>'1305',
|
|
66=>'1306', // Liquidation Judiciaire Simplifiée
|
|
69=>'1506',//Rectif ou Annul.LJ
|
|
70=>'1550', // Suites de jugements
|
|
71=>'1550', // Suite reglement/L
|
|
72=>'1550', // Suite redressement/L
|
|
73=>'1550', // Susp.Provis.pours. ?????????????????????????????????????????
|
|
74=>'1505', // Appel de jugement
|
|
75=>'1407', // Modif. de Plan
|
|
76=>'1502', // Extinction Passif
|
|
77=>'1210', // Production
|
|
78=>'1204', // Dépôt des créances
|
|
79=>'1503', // Cloture insuf.Actif
|
|
92=>'1450', //Cessation paiement ??
|
|
);
|
|
$tabTmp2=array( ''=>'2318',
|
|
'a'=>'2308', // Chg de dénomination(RS,Ens,Sigle)
|
|
'b'=>'2300', // Changement d'Adresse
|
|
'c'=>'2101', // Chg.Capital/Cess.apport de parts
|
|
'd'=>'2315', // Changement de Dirigeants
|
|
'e'=>'2313', // Mod Act/obj.soc./Cess./Mise somm.
|
|
'f'=>'2307', // Changement de Forme juridique
|
|
'g'=>'2318', // Opération sur Participations
|
|
'h'=>'2725', // Fusion Absorption
|
|
'i'=>'2318', // Mod.garantie financière/Caution
|
|
'j'=>'2401', // Changement de régime matrimonial
|
|
'k'=>'2319', // Non dissolution anticipée
|
|
'l'=>'2318', // Non dissolution anticipée
|
|
'm'=>'2318', // Dissolution anticipée (ou non)
|
|
'n'=>'2303', // Mod.date cloture exercice social
|
|
'o'=>'2300;2101', // Mod.Adresse + Capital
|
|
'p'=>'2300;2315', // Mod.Adresse + Dirigeants
|
|
'q'=>'2300;2313', // Mod.Adresse + Activité
|
|
'r'=>'2300;2307', // Mod.Adresse + F.Juridique
|
|
's'=>'2101;2315', // Modification Capital + Dirigeants
|
|
't'=>'2101;2313', // Modification Capital + Activité
|
|
'u'=>'2101;2307', // Mod.Capital + Forme Juridique
|
|
'v'=>'2315;2313', // Mod.Dirigeants + Activité
|
|
'w'=>'2315;2307', // Mod.Dirigeants + Forme Juridique
|
|
'x'=>'2313;2307', // Mod.Activité + Forme Juridique
|
|
'y'=>'2318', // Changement de Dirigeants ?
|
|
'z'=>'2318', //
|
|
//'K'=>
|
|
);
|
|
|
|
if ($idAnnonce<0) {
|
|
$idAnnonce=abs($idAnnonce);
|
|
$strIdAnn=" AND e.ANBASE=$idAnnonce ";
|
|
} else
|
|
$strIdAnn='';
|
|
if ($rubrique=='P') $strIdAnn=" AND e.E1GSIR NOT IN(340460104) AND e.CODEVE BETWEEN 50 AND 79 ";//AND e.DATE>=".((date('Y')*1)-10).''.date('md');
|
|
elseif ($rubrique=='PH')$strIdAnn=" AND e.CODEVE BETWEEN 50 AND 79 ";
|
|
elseif ($rubrique=='R') $strIdAnn=" AND e.CODEVE BETWEEN 40 AND 42 ";
|
|
elseif ($rubrique=='L') $strIdAnn=" AND e.CODEVE IN(37,42) ";
|
|
elseif ($rubrique=='G') $strIdAnn=" AND e.CODEVE=38 ";
|
|
elseif ($rubrique=='BODA') $strIdAnn=" AND e.JAL=1 ";
|
|
elseif ($rubrique=='BODB') $strIdAnn=" AND e.JAL=200 ";
|
|
elseif (is_array($rubrique)) {
|
|
$tabCodEve=$tabCodRol=array();
|
|
foreach ($rubrique as $codeEvenTmp) {
|
|
$codRet=array_search($codeEvenTmp, $tabTmp2); // Ne gère pas les ; de tabtmp2
|
|
if ($codRet) $tabCodRol[]=$codRet;
|
|
else {
|
|
$tabCodEve[]=array_search($codeEvenTmp, $tabTmp)*1;
|
|
}
|
|
}
|
|
$strIdAnn='';
|
|
$tabCodEve=array_unique($tabCodEve);
|
|
$tabCodRol=array_unique($tabCodRol);
|
|
if (count($tabCodEve)>0)
|
|
$strIdAnn.=' AND e.CODEVE IN('.implode(',',$tabCodEve).') ';
|
|
if (count($tabCodRol)>0)
|
|
$strIdAnn.=" AND e.ROLE IN('".implode("','",$tabCodRol)."') ";
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnoncesLegales($siren, idAn=$idAnnonce, rubrique=$rubrique, verif=$forceVerif, txt=$allTextes)", print_r($rubrique, true).EOL.$strIdAnn);
|
|
/*
|
|
if (!$codRet) {
|
|
$codRet=array_search($codeEvenTmp, $tabTmp)*1;
|
|
$strIdAnn=" AND e.CODEVE=$codRet ";
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnoncesLegales($siren, idAn=$idAnnonce, rubrique=$rubrique, verif=$forceVerif, txt=$allTextes)", print_r($rubrique, true));
|
|
} else
|
|
$strIdAnn=" AND e.ROLE='$codRet' ";
|
|
}*/
|
|
//$strIdAnn=$tabCodRet
|
|
}
|
|
|
|
// On ne part pas dans l'histo dans certains cas...
|
|
if ($rubrique<>'V' && $rubrique<>'D' && $rubrique<>'A' && $rubrique<>'C' && $rubrique<>'BODC') {
|
|
$bodaccHisto=$iDbHisto->select(
|
|
'texte x, entrep e',//.codEven Code évènement du mouvement Bodacc libEven ',
|
|
'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/*, t.triNom, t.triSiret*/',
|
|
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum /*AND e.CODTRI=t.triCode*/ $strIdAnn AND e.DATE BETWEEN 19890101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);
|
|
if (count($bodaccHisto)>0) {
|
|
foreach ($bodaccHisto as $ann) {
|
|
if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue;
|
|
$k++;
|
|
//if ($ann['DATE']<19920101) break;
|
|
//if ($ann['DATE']>20051231) continue;
|
|
if ($ann['JAL']==1) $Bodacc_Code='BODA';
|
|
elseif ($ann['JAL']==200) $Bodacc_Code='BODB';
|
|
|
|
if ($ann['CODEVE']>49 && $ann['CODEVE']<80) $procol=true;
|
|
|
|
if ($ann['CODEVE']<20) $rub='creations'; // 4xxx
|
|
elseif ($ann['CODEVE']<=25) $rub='ventes'; // 5xxx
|
|
elseif ($ann['CODEVE']<40) $rub='mmd'; // 2xxx
|
|
elseif ($ann['CODEVE']<42) $rub='radiations'; // 6xxx
|
|
elseif ($ann['CODEVE']<50) $rub='mmd'; // 2xxx
|
|
elseif ($ann['CODEVE']<80) $rub='procol'; // 1xxx
|
|
$tabEvens=array();
|
|
$newCodeEven=$tabTmp[$ann['CODEVE']];
|
|
if ($newCodeEven*1==2318) {
|
|
$tabNewEven=@explode(';', $tabTmp2[$ann['ROLE']]);
|
|
if (count($tabNewEven)>0) {
|
|
foreach ($tabNewEven as $newCodeEven)
|
|
$tabEvens[]=array('CodeEven'=>$newCodeEven,'LibEven'=>$this->iBodacc->getEvenement($newCodeEven));
|
|
} else
|
|
$tabEvens[]=array('CodeEven'=>$newCodeEven,'LibEven'=>$this->iBodacc->getEvenement($newCodeEven));
|
|
} else {
|
|
$tabEvens[]=array('CodeEven'=>$newCodeEven,'LibEven'=>$this->iBodacc->getEvenement($newCodeEven));
|
|
if (($this->dureePlan==0 || $this->dureePlan==120) && $ann['CODEVE']==75) { // Modification de plan
|
|
$this->debutPlan=$ann['DATE']; // SSAAMMJJ
|
|
if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $ann['annonceTxt'], $matches)) {
|
|
$this->dureePlan=$matches[1]*12; // 10 ans = 120 mois
|
|
}
|
|
if ($this->dureePlan<1 || $this->dureePlan>120) {
|
|
if (($fj==16 || $fj==1600 || // Exploitant agricole
|
|
$fj==63 || $fj==6316 || $fj==6317 || $fj==6318 || // Société coopérative agricole
|
|
$fj==5431 || $fj==5432 || $fj==5531 || $fj==5532 || // SMIA, SICA
|
|
$fj==5631 || $fj==5632 || $fj==6532 ||
|
|
$fj==6533 || $fj==6534 || $fj==6535 || // GAEC, GFA, Gpt Agricole Foncier
|
|
$fj==6597 || $fj==6598) && $this->dureePlan>180)
|
|
$this->dureePlan=180; // 15 ans
|
|
else
|
|
$this->dureePlan=120; // 10 ans = 120 mois
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Annonce de Plan Récent sur $siren sans durée", print_r($ann, true).EOL.print_r($matches, true));
|
|
}
|
|
$this->finPlan=WDate::period2Days($this->debutPlan, $this->dureePlan.' mois');
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Annonce de Plan Histo sur $siren se terminant le $finPlan (durée=$dureePlan mois, début le $debutPlan)", print_r($ann, true).EOL.print_r($matches, true));
|
|
}
|
|
}
|
|
// Recherche du capital et de la FJ dans le texte histo
|
|
if ( ($ann['CODEVE']>=10 && $ann['CODEVE']<20) ||
|
|
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
|
|
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
|
|
// Recherche du capital
|
|
if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches)) {// && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000)
|
|
$capital=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1;
|
|
if (substr(strtoupper($matches[2]),0,3)=='EUR')
|
|
$capitalDev='EUR';
|
|
elseif (substr(strtoupper($matches[2]),0,3)=='LIV')
|
|
$capitalDev='GBP';
|
|
else
|
|
$capitalDev='FRF';
|
|
} else
|
|
$capital=$capitalDev='';
|
|
// Recherche de la forme juridique
|
|
if (preg_match('/Forme(?:.|)\:(.*)(Capital|Adresse|Activit.|Administration|Commentaire)(?:.|)\:/Uis', $ann['annonceTxt'], $matches)) {// && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000)
|
|
$libFJ=trim($matches[1]);
|
|
}
|
|
}
|
|
|
|
$tabRet[$k]=array( 'id'=>-$ann['ANBASE'],
|
|
'BodaccCode'=>$Bodacc_Code,
|
|
'BodaccNum'=>$ann['NOBOD'],
|
|
'NumAnnonce'=>$ann['NOANN'],
|
|
'DateParution'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2),
|
|
'Departement'=>$ann['DEPT'],
|
|
'Tribunal'=>$this->iBodacc->getTribunalNom['CODTRI'], //$ann['triNom'],
|
|
'TribunalSiret'=>$this->iBodacc->getTribunalSiret['CODTRI'],//$ann['triSiret'],
|
|
'Rubrique'=>$rub,
|
|
'typeAnnonce'=>'Insertion',/** @todo à GERER $ann['SSCODE'],**/
|
|
//'texteRectificatif'=>$ann['corrTexteRectificatif'],
|
|
// 'texteAnnonce'=>$ann['annonceTxt'],
|
|
'dateEffet'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2),
|
|
'dateJugement'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2), 'dateFin'=>'',
|
|
'montantVente'=>'',
|
|
'libFJ'=>$libFJ,
|
|
'codFJ'=>$this->iBodacc->getCodeFormeJur($libFJ),
|
|
'capital'=>$capital,
|
|
'capitalDev'=>$capitalDev,
|
|
'raisonSociale'=>'',//$ann['raisonSociale'],
|
|
'nomCommercial'=>'',//$ann['nomCommercial'],
|
|
'sigle'=>'',//$ann['sigle'],
|
|
'adresse'=>'',//$adresseAnn,
|
|
'dateInsertionSD'=>'',
|
|
'evenements'=>$tabEvens,
|
|
);
|
|
if ($idAnnonce<>0 || $allTextes)
|
|
$tabRet[$k]['texteAnnonce']=$ann['NOANN'].' - '.$ann['annonceTxt'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug 5 sur $siren", print_r($tabRet,true));
|
|
|
|
// On ne cherche pas de PROCOL + récente si on est en visualisation d'annonce Bodacc Classique
|
|
if ($idAnnonce>=1 || $idAnnonce<0) return $tabRet;
|
|
|
|
// Si je n'ai pas d'annonce Bodacc de procol on vérifie dans la table de collecte
|
|
// Si annonce Bodacc de Procol et pas de Vérif Forcée chez un partenaire alors on affiche la collecte
|
|
/* if (!$procol || ($procol && !$forceVerif)) {*/
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug avMerge sur $siren", print_r($tabRet,true));
|
|
$tabTmp=$this->getProColPart($siren, $rubrique, $forceVerif, $idAnnonce, $fj);
|
|
$tabRet=array_merge($tabTmp, $tabRet);
|
|
// }
|
|
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug apMerge sur $siren", print_r($tabRet,true));
|
|
|
|
/** On vérifie si la société n'est pas in bonis pour les raisons suivantes :
|
|
** 1502 : Clôture de la procédure pour extinction du passif
|
|
**/
|
|
if ($rubrique=='P') {
|
|
$tabJugements=array();
|
|
foreach ($tabRet as $i=>$ann) {
|
|
$tabJugements[$ann['dateJugement']]=$ann['evenements'][0]['CodeEven'];
|
|
}
|
|
// Si plan recherche des annonces suivantes
|
|
if ($this->dureePlan>0) {
|
|
ksort($tabJugements);
|
|
// Tableau chronologique des dates de jugement ==> code jugement
|
|
reset($tabJugements);
|
|
foreach ($tabJugements as $dateJuge=>$codeJuge) {
|
|
if ($dateJuge>$this->debutPlan & (
|
|
($codeJuge>=1100 && $codeJuge<=1101)|| // Sauvegarde
|
|
($codeJuge>=1200 && $codeJuge<=1202)||$codeJuge==1211|| // RJ
|
|
($codeJuge>=1300 && $codeJuge<=1313)|| // LJ
|
|
($codeJuge>=1500 && $codeJuge<=1504) ) ) // Cloture
|
|
// Si plan suivi de SV, RJ, LJ ou clôture alors pas de plan
|
|
$this->dureePlan=0;
|
|
}
|
|
}
|
|
|
|
// Tableau ante-chronologique des dates de jugement ==> code jugement
|
|
krsort($tabJugements);
|
|
reset($tabJugements);
|
|
|
|
$tabNoProcol=array();
|
|
$tmp=$this->iDb->select('tabEvenements', 'codEven,affProcol', 'affProcol>0', true, MYSQL_ASSOC);
|
|
foreach ($tmp as $tmp2)
|
|
$tabNoProcol[$tmp2['codEven']]=$tmp2['affProcol'];
|
|
|
|
if (@array_key_exists(current($tabJugements), $tabNoProcol)) {
|
|
// Ce code jugement Procol n'appel pas forcément l'indicateur : SituationJuridique=P
|
|
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (avant le SWITCH)", print_r($tabNoProcol, true));
|
|
switch($tabNoProcol[current($tabJugements)]) {
|
|
case 1: // PAS DE MENTION DE LA PROCOL
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 1)", print_r($tabNoProcol, true));
|
|
$tabRet=array();
|
|
break;
|
|
case 2: // Ne pas mentionner la procol si CJ=1xxx
|
|
//$tabId=$this->getIdentiteLight($siren);
|
|
if (substr($tabId['FJ'],0,1)*1==1) {
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 2a)", print_r($tabNoProcol, true));
|
|
$tabRet=array();
|
|
} elseif ($tabId['Actif']*1>0 && substr($tabId['FJ'],0,1)*1<>9 ) {
|
|
$derProcol =str_replace('-','',key($tabJugements))*1;
|
|
$maxLatence=date('Ymd',mktime(0,0,0,(substr($derProcol,4,2)*1)+1,substr($derProcol,6,2),substr($derProcol,0,4)));
|
|
if (date('Ymd')>$maxLatence) {
|
|
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 2b)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." alors qu'elle est encore active !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !");
|
|
$tabRet=array();
|
|
}/*
|
|
$iRncs=new MRncs();
|
|
$tabId2=$iRncs->getInfosEntrep($siren);
|
|
if ($tabId2['siren']==$siren)
|
|
$tabId2['actif']*/
|
|
}
|
|
break;
|
|
case 3: // Pas Procol si actif RCS
|
|
//$tabId=$this->getIdentiteLight($siren);
|
|
if ($tabId['Actif']*1>0) {
|
|
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol sur $siren (cas 3)", print_r($tabNoProcol, true));
|
|
$tabRet=array();
|
|
}
|
|
break;
|
|
case 4: // Le dernier jugement est un appel => Procol Suspendu
|
|
$this->appelJugement=true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (count($tabRet)>0) {
|
|
$derProcol=str_replace('-','',key($tabJugements))*1;
|
|
$dateTropAncienne=(date('Ymd')*1)-120000;
|
|
if ($derProcol<$dateTropAncienne) {
|
|
//$tabId=$this->getIdentiteLight($siren);
|
|
if ($tabId['Actif']*1>0) {
|
|
/** Procédure trop ancienne **/
|
|
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
|
|
@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 5)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que cela fait plus de 12 ans !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true));
|
|
$tabRet=array();
|
|
}
|
|
} elseif ((current($tabJugements)>=1300 && current($tabJugements)<=1313 && current($tabJugements)!=1310) ||
|
|
(current($tabJugements)>=1500 && current($tabJugements)<=1504)) {
|
|
/** En Procol mais présence d'une annonce de cloture ou LJ
|
|
avec Bilan publié ultérieurement
|
|
**/
|
|
$mBil=new MBilans($siren);
|
|
$tabBilans=$mBil->listeBilans($accesDist);
|
|
$derExercice=0;
|
|
|
|
foreach ($tabBilans as $idx=>$bilan)
|
|
if ($bilan['dateExercice']>$derExercice) $derExercice=$bilan['dateExercice'];
|
|
|
|
if ($derExercice>$derProcol) {
|
|
$derEx=WDate::dateT('Ymd','d/m/Y',$derExercice);
|
|
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
|
|
@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "Vérifier la Procédure Collective sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une clôture de procédure collective de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer la procédure le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des derniers jugements :".EOL.print_r($tabJugements,true));
|
|
$tabRet=array();
|
|
}
|
|
}
|
|
}
|
|
} elseif ($rubrique=='D' && count($tabRet)>0) {
|
|
$tabJugements=array();
|
|
foreach ($tabRet as $i=>$ann) {
|
|
$tabJugements[$ann['DateParution']]=$ann['evenements'][0]['CodeEven'];
|
|
}
|
|
// Tableau ante-chronologique des dates de jugement ==> code jugement
|
|
krsort($tabJugements);
|
|
reset($tabJugements);
|
|
|
|
$mBil=new MBilans($siren);
|
|
$tabBilans=$mBil->listeBilans($accesDist);
|
|
$derExercice=0;
|
|
$derProcol=str_replace('-','',key($tabJugements))*1;
|
|
foreach ($tabBilans as $idx=>$bilan)
|
|
if ($bilan['dateExercice']>$derExercice) $derExercice=$bilan['dateExercice'];
|
|
if ($derExercice>$derProcol) {
|
|
$derEx=WDate::dateT('Ymd','d/m/Y',$derExercice);
|
|
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
|
|
@sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', "MInsee::getAnnonceProcol Dissolution sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une dissolution de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer le code évènement le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des dernieres annonces :".EOL.print_r($tabJugements,true));
|
|
$tabRet=array();
|
|
}
|
|
}
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Debug Fin sur $siren", print_r($tabRet,true));
|
|
return $tabRet;
|
|
}
|
|
|
|
function getAnnoncesBalo($siren, $idAnnonce=0) {
|
|
$siren=$siren*1;
|
|
|
|
if ($siren<001000000) $siren='000'.$siren;
|
|
elseif ($siren<010000000) $siren='00'.$siren;
|
|
elseif ($siren<100000000) $siren='0'.$siren;
|
|
|
|
$strIdAnn='';
|
|
$tabRet=array();
|
|
|
|
if ($idAnnonce>0) {
|
|
//$idBalo=//.$tabBalo['Num_Affaire'].','.$tabBalo['Num_Parution'];
|
|
$tmp=explode('.', $idAnnonce);
|
|
//if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0];
|
|
if (is_numeric($tmp[0])) $num=$tmp[0];
|
|
if (is_numeric($tmp[1])) $par=$tmp[1];
|
|
//$idBaloPdf=basename($tabBalo['Url_Annonce_Pdf']);
|
|
$strIdAnn=" AND Num_Affaire='$num' AND Num_Parution='$par' ";
|
|
//$idAnnonce
|
|
}
|
|
|
|
$mBalo=new MBalo();
|
|
|
|
$bodacc=$this->iDb->select('balo', "Societe_Rcs, Categorie, Num_Affaire, Date_Parution, Num_Parution, Url_Annonce_Html, Url_Annonce_Pdf, Annonce_Html, dateInsert", "Societe_Rcs='$siren' AND Date_Parution>='2004-01-01' $strIdAnn ORDER BY Date_Parution DESC, Num_Affaire", true, MYSQL_ASSOC);
|
|
// $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' ");
|
|
$k=0;
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
$tabRetEven=array();
|
|
$tabRetEven[]=array('CodeEven'=>$mBalo->getLibEven($ann['Categorie']),
|
|
'LibEven'=> $ann['Categorie']);
|
|
|
|
$tabRet[$k]=array( 'id'=>$ann['Num_Affaire'].'.'.$ann['Num_Parution'],
|
|
'BodaccCode'=>'BALO',
|
|
'BodaccNum'=>$ann['Num_Parution'],
|
|
'NumAnnonce'=>$ann['Num_Affaire'],
|
|
'DateParution'=>$ann['Date_Parution'],
|
|
//'Departement'=>'',$ann['Tribunal_Dept'],
|
|
//'Tribunal'=>$ann['triNom'],
|
|
//'TribunalSiret'=>$ann['triSiret'],
|
|
//'Rubrique'=>$ann['Rubrique'],
|
|
'typeAnnonce'=>'Insertion',
|
|
'dateInsertionSD'=>$ann['dateInsert'],
|
|
'evenements'=>$tabRetEven,
|
|
'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']),
|
|
);
|
|
if ($idAnnonce<>0) $tabRet[$k]['texteAnnonce']=strtr( preg_replace('/<html.*<body.*>/Uis', '',
|
|
preg_replace('/( class=".*")/ie', ' ', $ann['Annonce_Html'])), array(' '=>' ', '</html>'=>'', '</body>'=>''));
|
|
}
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
function getAnnoncesBoamp($siren, $idAnnonce='') {
|
|
$siren=$siren*1;
|
|
|
|
if ($siren<001000000) $siren='000'.$siren;
|
|
elseif ($siren<010000000) $siren='00'.$siren;
|
|
elseif ($siren<100000000) $siren='0'.$siren;
|
|
|
|
$strIdAnn='';
|
|
$idA=0;
|
|
$tabRet=array();
|
|
|
|
$mBoamp=new MBoamp();
|
|
/** Recherche dans les avis d'attribution **/
|
|
if ($idAnnonce<>'') {
|
|
$tmp=explode('.', $idAnnonce);
|
|
$idA=$tmp[1];
|
|
//if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0];
|
|
if ($tmp[0]=='A') $strIdAnn=" AND l.id='$idA' ";
|
|
elseif ($tmp[0]=='O') $strIdAnn="";
|
|
}
|
|
|
|
$bodacc=$this->iDb->select( 'boamp_lots l, boamp b, boamp_detail d',
|
|
"l.id, l.idAnn, l.Boamp_Code, l.Boamp_Rubrique, b.Boamp_Rubrique_Lib, b.typeAnnonce, l.Boamp_Date_Parution, b.Boamp_Num, b.Boamp_Annee_Parution, b.Num_AnnoncePre, b.Num_Annonce, b.Boamp_Dept, b.annonce, l.num, l.`desc` AS description, l.nom, d.raisonSociale, l.montantTxt, sum(l.montant) AS montant, l.montantAnMin, l.montantAnMax, l.trancheCond, l.trancheFerme, l.dateAttrib, l.intitule, l.nomenclature, l.objets, l.cpv, l.cpvComp, l.volume, l.execution, l.livraison, l.dureeJours, l.dureeMois, l.dateDeb, l.dateFin, l.dateInsert, d.titre, d.objet, d.titreMarche, d.typeObjetMarche, d.objetAutre, d.autres",
|
|
"l.siren='$siren' AND l.idAnn=b.id AND l.idAnn=d.id $strIdAnn GROUP BY b.id ORDER BY l.Boamp_Date_Parution DESC", true, MYSQL_ASSOC);
|
|
$k=0;
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
$tabRetEven=array();
|
|
/*montantTxt, l.montant, l.montantAnMin, , l.trancheCond, l.trancheFerme, l.dateAttrib*/
|
|
if ($ann['nom']<>'') $strMontant=' "'.strtoupper($ann['raisonSociale']).'"';
|
|
|
|
if ($ann['montant']*1>0) $strMontant.=' ('.number_format($ann['montant'], 2, ',', ' ').' EUR)';
|
|
elseif ($ann['montantTxt']<>'') $strMontant.=' ('.$ann['montantTxt'].')';
|
|
elseif ($ann['montantAnMin']<>'' && $ann['montantAnMax'])
|
|
$strMontant.=' ('.$ann['montantAnMin'].' à '.
|
|
$ann['montantAnMax'].')';
|
|
elseif ($ann['trancheCond']<>'' && $ann['trancheFerme'])
|
|
$strMontant.=' ('.$ann['trancheCond'].' / '.
|
|
$ann['trancheFerme'].')';
|
|
else $strMontant.='';
|
|
$tabRetEven[]=array('CodeEven'=>$mBoamp->getCodEvenSd($ann['Boamp_Rubrique']),
|
|
'LibEven'=>$mBoamp->getLibEvenBoamp($ann['Boamp_Rubrique'], $ann['Boamp_Rubrique_Lib']).$strMontant);
|
|
// Axxx pour lot attribué ou Oxxx pour Organisation
|
|
if ($ann['Num_AnnoncePre']<>0) $numAnn=$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce'];
|
|
else $numAnn=$ann['Num_Annonce'];
|
|
if ($ann['Boamp_Code']=='MAPA')
|
|
$lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution=MAPA&num_annonce='.$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce'].'&total=500&_s=0&indice=0';//&affichage_avis=officiel';
|
|
else {
|
|
$lettre = substr($ann['Boamp_Code'],-1);
|
|
$annee = $ann['Boamp_Annee_Parution'];
|
|
$num = sprintf("%04d",$ann['Boamp_Num']);
|
|
$numPar=$lettre.$annee.$num;
|
|
$lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution='.$numPar.'&num_annonce='.$ann['Num_Annonce'].'&total=500&_s=0&indice=0';
|
|
}
|
|
$infosComp='';
|
|
$objetMarche=trim($ann['objet'].' '.$ann['objetAutre'].' '.$ann['autres']);
|
|
//titre, titreMarche, typeObjetMarche
|
|
$tabRet[$k]=array( 'id'=>'A.'.$ann['id'],
|
|
'BodaccCode'=>$ann['Boamp_Code'],
|
|
'BodaccNum'=>$ann['Boamp_Num'],
|
|
'NumAnnonce'=>$numAnn,
|
|
'DateParution'=>$ann['Boamp_Date_Parution'],
|
|
'Departement'=>$ann['Boamp_Dept'],
|
|
//'Tribunal'=>$ann['triNom'],
|
|
//'TribunalSiret'=>$ann['triSiret'],
|
|
//'Rubrique'=>$ann['Boamp_Rubrique_Lib'],
|
|
'typeAnnonce'=>$ann['typeAnnonce'],
|
|
'dateInsertionSD'=>$ann['dateInsert'],
|
|
'Montant'=>$ann['montant'],
|
|
'Organisme'=>strtoupper($ann['raisonSociale']),
|
|
'Objet'=>$objetMarche,
|
|
'evenements'=>$tabRetEven,
|
|
'infosComp'=>$infosComp, // Non géré
|
|
'Lien_Annonce_Html'=>$lienMapa, // Non géré
|
|
);
|
|
/**/
|
|
if ($idA<>0)
|
|
if ($ann['Boamp_Code']=='MAPA')
|
|
$tabRet[$k]['texteAnnonce']=$ann['annonce'];
|
|
else
|
|
$tabRet[$k]['texteAnnonce']=
|
|
strtr( preg_replace('/<html.*<body.*>/Uis', '',
|
|
preg_replace('/<p\s+.*>/Uis', '',
|
|
preg_replace('/( class=".*")/ie', ' ', $ann['annonce']))),
|
|
array(' '=>' ', '</html>'=>'', '</body>'=>'', '</p>'=>'<br/>')
|
|
);
|
|
}
|
|
}
|
|
|
|
/** Recherche dans les avis de marchés **/
|
|
if ($idAnnonce<>'') {
|
|
$tmp=explode('.', $idAnnonce);
|
|
$idA=$tmp[1];
|
|
//if (strlen($tmp[0])==9 && is_numeric($tmp[0])) $rcs=$tmp[0];
|
|
if ($tmp[0]=='A') $strIdAnn=" AND d.id='$idA' ";
|
|
elseif ($tmp[0]=='O') $strIdAnn="";
|
|
}
|
|
|
|
$bodacc=$this->iDb->select( 'boamp b, boamp_detail d',
|
|
"d.id, d.Boamp_Code, d.Boamp_Rubrique, b.Boamp_Rubrique_Lib, b.typeAnnonce, d.Boamp_Date_Parution, b.Boamp_Num, b.Boamp_Annee_Parution, b.Num_AnnoncePre, b.Num_Annonce, b.Boamp_Dept, b.annonce, titre AS description, d.raisonSociale, d.estimValeur AS montantTxt, d.estimValeurMin AS montantAnMin, d.estimValeurMax AS montantAnMax, objet, cpv_obj, cpv_comp, d.dateInsert",
|
|
"d.siren='$siren' AND d.id=b.id $strIdAnn GROUP BY b.id ORDER BY d.Boamp_Date_Parution DESC", true, MYSQL_ASSOC);
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
$id=$ann['id'];
|
|
$rub=$ann['Boamp_Rubrique'];
|
|
$tabRetEven=array();
|
|
$strMontant='';
|
|
if ($ann['objet']<>'') $strMontant.=' "'.$ann['objet'].'"';
|
|
|
|
if ($rub=='6' || // Avis d'attribution
|
|
$rub=='7' || // Avis en cas de transparence ex ante volontaire
|
|
$rub=='77' || // Avis d'attribution
|
|
$rub=='8' || // Avis d'attribution
|
|
$rub=='82' || // Rectificatif
|
|
$rub=='83' || // Rectificatif
|
|
$rub=='84' || // Avis d'attribution comportant des lots infructueux
|
|
$rub=='9' || // Résultat de marché
|
|
$rub=='92' || // Rectificatif
|
|
$rub=='93' || // Résultat de marché / Infructueux - Sans suite
|
|
$rub=='94' || // Résultat de marché / Résultat de marché comportant des lots infructueux
|
|
$rub=='96' || // Annulation - Rectificatif - Sans suite - Infructueux
|
|
$rub=='977' // Annulation - Rectificatif / Avis en cas de transparence ex ante volontaire
|
|
) {
|
|
$tabTmp=$this->iDb->select( 'boamp_lots l',
|
|
"l.id, l.idAnn, l.Boamp_Code, l.Boamp_Rubrique, l.Boamp_Date_Parution, l.num, l.`desc` AS description, l.nom, l.montantTxt, l.montant, l.montantAnMin, l.montantAnMax, l.trancheCond, l.trancheFerme, l.dateAttrib, l.intitule, l.nomenclature, l.objets, l.cpv, l.cpvComp, l.volume, l.execution, l.livraison, l.dureeJours, l.dureeMois, l.dateDeb, l.dateFin",
|
|
"l.idAnn=$id", true, MYSQL_ASSOC);
|
|
foreach ($tabTmp as $k2=>$ann2) {
|
|
if ($ann2['nom']<>'') $strMontant.=' "'.strtoupper($ann2['nom']).'"';
|
|
if ($ann2['montant']*1>0) $strMontant.=' ('.number_format($ann2['montant'], 2, ',', ' ').' EUR)';
|
|
elseif ($ann2['montantTxt']<>'') $strMontant.=' ('.$ann2['montantTxt'].')';
|
|
elseif ($ann2['montantAnMin']<>'' && $ann2['montantAnMax'])
|
|
$strMontant.=' ('.$ann2['montantAnMin'].' à '.
|
|
$ann2['montantAnMax'].')';
|
|
elseif ($ann2['trancheCond']<>'' && $ann2['trancheFerme'])
|
|
$strMontant.=' ('.$ann['trancheCond'].' / '.
|
|
$ann['trancheFerme'].')';
|
|
else $strMontant.='';
|
|
}
|
|
}
|
|
$tabRetEven[]=array('CodeEven'=>$mBoamp->getCodEvenSd($ann['Boamp_Rubrique']),
|
|
'LibEven'=>$mBoamp->getLibEvenBoamp($ann['Boamp_Rubrique'], $ann['Boamp_Rubrique_Lib']).$strMontant);
|
|
// Axxx pour lot attribué ou Oxxx pour Organisation
|
|
if ($ann['Num_AnnoncePre']<>0) $numAnn=$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce'];
|
|
else $numAnn=$ann['Num_Annonce'];
|
|
if ($ann['Boamp_Code']=='MAPA')
|
|
$lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution=MAPA&num_annonce='.$ann['Num_AnnoncePre'].'-'.$ann['Num_Annonce'].'&total=500&_s=0&indice=0';//&affichage_avis=officiel';
|
|
else {
|
|
$lettre = substr($ann['Boamp_Code'],-1);
|
|
$annee = $ann['Boamp_Annee_Parution'];
|
|
$num = sprintf("%04d",$ann['Boamp_Num']);
|
|
$numPar=$lettre.$annee.$num;
|
|
$lienMapa='http://www.boamp.fr/index.php?action=avis&num_parution='.$numPar.'&num_annonce='.$ann['Num_Annonce'].'&total=500&_s=0&indice=0';
|
|
}
|
|
$infosComp='';
|
|
$tabRet[$k]=array( 'id'=>'O.'.$id,
|
|
'BodaccCode'=>$ann['Boamp_Code'],
|
|
'BodaccNum'=>$ann['Boamp_Num'],
|
|
'NumAnnonce'=>$numAnn,
|
|
'DateParution'=>$ann['Boamp_Date_Parution'],
|
|
'Departement'=>$ann['Boamp_Dept'],
|
|
//'Tribunal'=>$ann['triNom'],
|
|
//'TribunalSiret'=>$ann['triSiret'],
|
|
//'Rubrique'=>$ann['Boamp_Rubrique_Lib'],
|
|
'typeAnnonce'=>$ann['typeAnnonce'],
|
|
'dateInsertionSD'=>$ann['dateInsert'],
|
|
'evenements'=>$tabRetEven,
|
|
'infosComp'=>$infosComp, // Non géré
|
|
'Lien_Annonce_Html'=>$lienMapa, // Non géré
|
|
);
|
|
/**/
|
|
if ($idA<>0)
|
|
if ($ann['Boamp_Code']=='MAPA')
|
|
$tabRet[$k]['texteAnnonce']=$ann['annonce'];
|
|
else
|
|
$tabRet[$k]['texteAnnonce']=
|
|
strtr( preg_replace('/<html.*<body.*>/Uis', '',
|
|
preg_replace('/<p\s+.*>/Uis', '',
|
|
preg_replace('/( class=".*")/ie', ' ', $ann['annonce']))),
|
|
array(' '=>' ', '</html>'=>'', '</body>'=>'', '</p>'=>'<br/>')
|
|
);
|
|
}
|
|
}
|
|
debugLog('I', "getAnnoncesBoamp(siren=$siren, idAnnonce=$idAnnonce, $idA)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
return $tabRet;
|
|
}
|
|
|
|
function getAnnoncesAsso($siren, $idAnnonce=0) {
|
|
debugLog('I', "Début getAnnoncesAsso(siren=$siren, idAnnonce=$idAnnonce)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
$siretMin=$siren.'00000';
|
|
$siretMax=$siren.'99999';
|
|
$strIdAnn='';
|
|
$tabRet=array();
|
|
|
|
if ($idAnnonce>0){
|
|
$strIdAnn=" AND id=$idAnnonce ";
|
|
//$mAsso=new MAsso();
|
|
if ($siren==0) {
|
|
//$bodacc=$this->iDb->select('asso', "Waldec", "Siret BETWEEN $siretMin AND $siretMax $strIdAnn AND Waldec<>''");
|
|
$bodacc=$this->iDb->select('asso', "Waldec", "siren=$siren $strIdAnn AND Waldec<>'' AND dateSuppr=0");
|
|
if (@$bodacc[0][0]<>'') $strIdAnn=" AND Waldec='".$bodacc[0][0]."' ";
|
|
}
|
|
}
|
|
//$bodacc=$this->iDb->select('asso', "id, Assoc_Nom, Siret, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, dateInsert", "Siret BETWEEN $siretMin AND $siretMax $strIdAnn ORDER BY Date_Parution DESC", true, MYSQL_ASSOC);
|
|
$bodacc=$this->iDb->select('asso', "id, Assoc_Nom, siren, nic, Waldec, Activite, Num_Annonce, Date_Parution, Num_Parution, Departement, Sous_Prefecture, Type_Annonce, Annonce_Html, Assoc_Objet, Assoc_Adresse, Assoc_NObjet, Assoc_AObjet, Assoc_NAdresse, Assoc_Fusion, Assoc_Annulation, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration, Assoc_Date_Declaration2, typeAnnonce, codEven, dateInsert", "siren=$siren $strIdAnn AND dateSuppr=0 ORDER BY Date_Parution DESC", true, MYSQL_ASSOC);
|
|
// $RP=mysql_select('balo', " ", "Societe_Rcs='$rcs' ");
|
|
$k=0;
|
|
if (count($bodacc)>0) {
|
|
foreach ($bodacc as $k=>$ann) {
|
|
$tabEven=explode(';', $ann['codEven']);
|
|
$tabRetEven=array();
|
|
if ($ann['typeAnnonce']<>'Insertion')//BODACC n°002 A du 04/01/2006.
|
|
$tabRetEven[]=array('CodeEven'=>'0000',
|
|
'LibEven'=> $ann['typeAnnonce'].' de l\'annonce './*n°'.
|
|
$ann['corrNum_Annonce'].' BODACC n°'.
|
|
$ann['corrNumParution'].*/' du '.
|
|
WDate::dateT('Y-m-d','d/m/Y',$ann['corrDate_Parution'])/*.' (page '.
|
|
$ann['corrPage'].')'*/);
|
|
else {
|
|
if (trim($ann['codEven'])<>'') {
|
|
foreach ($tabEven as $even)
|
|
$tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even));
|
|
}
|
|
else {
|
|
$tabRetEven[]=array('CodeEven'=>0000,//$mAsso->getLibEven($ann['Categorie']),
|
|
'LibEven'=> $ann['Type_Annonce']);
|
|
}
|
|
}
|
|
|
|
// Rubrique
|
|
if (preg_match('/cr(é|e)ation/i', $ann['Type_Annonce']))
|
|
$rub='creations';
|
|
elseif (preg_match('/Dissolution/i', $ann['Type_Annonce']))
|
|
$rub='radiations';
|
|
else
|
|
$rub='mmd';
|
|
// typeAnnonce
|
|
if (preg_match('/Annulation/i', $ann['Type_Annonce']))
|
|
$type='Suppression';
|
|
elseif (preg_match('/Rectif/i', $ann['Type_Annonce']))
|
|
$type='Rectificatif';
|
|
else
|
|
$type='Insertion';
|
|
if (str_replace('-','',$ann['Date_Parution'])*1>=20070401) $dateInsert=$ann['Date_Parution'];
|
|
else $dateInsert='';
|
|
|
|
$tabRet[$k]=array( 'id'=>$ann['id'],
|
|
'BodaccCode'=>'ASSO',
|
|
'BodaccNum'=>$ann['Num_Parution'],
|
|
'NumAnnonce'=>$ann['Num_Annonce'],
|
|
'DateParution'=>$ann['Date_Parution'],
|
|
'Departement'=>$ann['Departement'],
|
|
'Tribunal'=>$ann['Sous_Prefecture'],
|
|
//'TribunalSiret'=>$ann['triSiret'],
|
|
'Rubrique'=>$rub,
|
|
'typeAnnonce'=>$type,
|
|
'dateInsertionSD'=>$dateInsert,
|
|
'evenements'=>$tabRetEven,
|
|
//'Lien_Annonce_Pdf'=>basename($ann['Url_Annonce_Pdf']),
|
|
);
|
|
if ($idAnnonce<>0)
|
|
/*if ( preg_match( "~(\x00[\x80-\xff]|[\x00-\x07][\x00-\xff]~", $ann['Annonce_Html'] ) )
|
|
$tabRet[$k]['texteAnnonce']='utf8 : '.$ann['Annonce_Html'];
|
|
else */
|
|
$tabRet[$k]['texteAnnonce']=strip_tags(strtr(htmlentities($ann['Annonce_Html']),array('>'=>'>','&'=>'&','<'=>'<')));
|
|
}
|
|
}
|
|
debugLog('I', "Fin getAnnoncesAsso(siren=$siren, idAnnonce=$idAnnonce) : ".count($tabRet).' annonce(s)', __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
/** @todo $nic inutilisé pour l'instant **/
|
|
function getIdentitePart($siren, $rs, $enseigne, $sigle, $nic=0, $refresh=false) {
|
|
$dateUpdate=0;
|
|
$lastYear=date('Ymd',mktime(0,0,0,date('m'),date('d'),date('Y')-1))*1;
|
|
$tabRet=array();
|
|
|
|
/** Chargement initial au cas ou la requête Coface plante **/
|
|
$tabTmp=$this->iDb->select('infos_entrep', 'raisonSociale, isin, nscrl, tel, fax, web, mail, DATE(dateUpdate)*1 as dateUpdate', "siren=$siren", false, MYSQL_ASSOC);
|
|
$idComp=@$tabTmp[0];
|
|
if (isset($idComp['raisonSociale'])) {
|
|
// L'entrep est en base infos_entrep
|
|
if ($idComp['web']<>'http://') $web=$idComp['web'];
|
|
else $web='';
|
|
$tabRet=array( 'raisonSociale'=>$idComp['raisonSociale'],
|
|
'isin'=>$idComp['isin'],
|
|
'nscrl'=>$idComp['nscrl'],
|
|
'tel'=>$idComp['tel'],
|
|
'fax'=>$idComp['fax'],
|
|
'web'=>$web,
|
|
'mail'=>$idComp['mail'],
|
|
'enCache'=>true,
|
|
);
|
|
$dateUpdate=$idComp['dateUpdate'];
|
|
}
|
|
|
|
// On ne rafraichie que si demandé et
|
|
// que la requête en base est trop ancienne et nscrl est vide ou tel ou web
|
|
$refresh=false;
|
|
if ($refresh && $dateUpdate<$lastYear && ($idComp['nscrl']==0 || $idComp['tel']=='') ) {
|
|
$timeout=20;
|
|
// La mise à jour ne se fera pas si lastMAJ<365
|
|
/*$strUpdate='AND (DATEDIFF(NOW(),dateUpdate)<365 OR (nscrl<>0 AND DATEDIFF(NOW(),dateUpdate)>0))';
|
|
$timeout=10;
|
|
$strUpdate='AND nscrl<>0 AND DATEDIFF(NOW(),dateUpdate)>0';*/
|
|
$referer='';
|
|
$url='http://www.elliscore.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
|
|
$tdeb=microtime(1);
|
|
$page=getUrl($url, '', '', $referer, false, 'www.elliscore.fr', '', $timeout);
|
|
$duree=round(microtime(1)-$tdeb,3);
|
|
$this->body=$page['body'];
|
|
$this->codeRetour=$page['code'];
|
|
$this->header=$page['header'];
|
|
if ($this->codeRetour==408)
|
|
// Si timeout, on sort afin de ne pas écraser les données en base
|
|
return $tabRet;
|
|
|
|
$tabRet['nscrl']=@getTextInHtml($this->body, '&nscrl=', '=','&');
|
|
$strTmp=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne"> <b> Raison sociale<br>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval"><b>','</tr>')))));
|
|
$tmp=explode('<br>', $strTmp);
|
|
$tabRet['raisonSociale']=trim($tmp[0]);
|
|
unset($tmp[0]);
|
|
$tabRet['adresse']=trim(strip_tags(implode(',', $tmp)));
|
|
|
|
$tel=trim(@getTextInHtml($this->body, '<td bgcolor="#F3E5CC" class="tabligne"><b>Téléphone<br>', '<td bgcolor="#FFF3DE" class="tabval" valign="top">', '<br>'));
|
|
$fax=trim(@getTextInHtml($this->body, 'Télécopie</b></td>', '<br>', '</td>'));
|
|
$web=trim(@getTextInHtml($this->body, '><b>Adresse internet <br>', '<a class="tabval" HREF="', '" target="_new">'));
|
|
$mail=trim(@getTextInHtml($this->body, '<a class="tabval" href="mailto:', ':', '">'));
|
|
$bourse=trim(@getTextInHtml($this->body, 'Ville Bourse</b></td>', 'class="tabval">', '</td>'));
|
|
$tmp=explode('<br>', $bourse);
|
|
$isin=trim($tmp[0]);
|
|
$tabRet['bourseMarche']=trim($tmp[1]);
|
|
$tabRet['bourseVille']=trim($tmp[2]);
|
|
|
|
/** On ne charge les valeurs tel, fax, web et mail que si non vides
|
|
**/
|
|
if ($tel<>'') $tabRet['tel']=$tel;
|
|
if ($fax<>'') $tabRet['fax']=$fax;
|
|
if ($web<>'') $tabRet['web']=$web;
|
|
if ($mail<>'') $tabRet['mail']=$mail;
|
|
if (($tabRet['isin']<>'' || trim($tmp[0])<>'') && trim($tmp[0])<>$tabRet['isin']) {
|
|
if (trim($tmp[0])<>'' && $tabRet['isin']=='')
|
|
$tabRet['isin']=$isin;
|
|
// else
|
|
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentitePart sur $siren ISIN différents", "Les codes ISIN du siren $siren sont différents en base et chez notre partenaire : ".$tabRet['isin'].' différent de '.trim($tmp[0]).EOL.print_r($tabRet, true));
|
|
} elseif ($isin<>'') $tabRet['isin']=$isin;
|
|
|
|
$tabRet['bourseIsin']=$tabRet['isin'];
|
|
|
|
/*
|
|
$infosDispo=trim(@getTextInHtml($this->body, '<b>Liste Produits</b><br></td>', '<br></td><td class="menu3"><img src="../images/vide.gif" border="0"><br></td><td colspan="2" class="menu3">', 'Un secteur ou une région en France</a><br></td>'));
|
|
$tabTmp=explode('<a href="', $infosDispo);
|
|
foreach ($tabTmp as $k=>$lien) {
|
|
preg_match('/^(.*)">(.*)<\/a>/i', $lien, $matches);
|
|
if ($matches[2]<>'') $this->tabInfos[$matches[2]]=$matches[1];
|
|
if (substr($matches[2], 0, 12)=='rapport éco.') $this->infoEco='http://www.cofacerating.fr/portail/entreprise_identite/'.$matches[1];
|
|
elseif (substr($matches[2], 0, 6)=='bilan ') $this->tabBilans[]=substr($matches[2], 6,strlen($matches[2])-6);
|
|
}*
|
|
$tabRet['activite']=trim(str_replace(chr(160), ' ', html_entity_decode(utf8_encode(@getTextInHtml($this->body, '<td WIDTH="40%" bgcolor="#F3E5CC" class="tabligne" valign="top"><b>Libellé code activité </b></td>', '<td WIDTH="60%" bgcolor="#FFF3DE" class="tabval">', '</td>')))));
|
|
$tabRet['naf']=trim(@getTextInHtml($this->body, '<a href="../chaineeco_dynaeco/DynaEco.asp?cnaf=', 'cnaf=', '&'));
|
|
//$tabRet=array();
|
|
*/
|
|
if ($tabRet['web']=='' || $tabRet['web']=='http://') {
|
|
$tabRet['web']=trim($this->findSiteWeb($rs));
|
|
}
|
|
if ($tabRet['web']=='' && $enseigne<>'') {
|
|
$tabRet['web']=trim($this->findSiteWeb($enseigne));
|
|
}
|
|
if ($tabRet['web']=='' && $sigle<>'') {
|
|
$tabRet['web']=trim($this->findSiteWeb($sigle));
|
|
}
|
|
|
|
if ($tabRet['web']<>'http://') $web=$tabRet['web'];
|
|
else $web='';
|
|
|
|
$tabRet['enCache']=false;
|
|
$tabRet['duree']=$duree;
|
|
|
|
$tabUpdate=array( 'raisonSociale'=>$tabRet['raisonSociale'],
|
|
'isin'=>$tabRet['bourseIsin'],
|
|
'nscrl'=>$tabRet['nscrl'],
|
|
'tel'=>$tabRet['tel'],
|
|
'fax'=>$tabRet['fax'],
|
|
'web'=>$web,
|
|
'mail'=>$tabRet['mail'],
|
|
// 'dateCreation'=>$idComp['dateCreation'],
|
|
// 'dateFermeture'=>$idComp['dateFermeture'],
|
|
// 'naf'=>$idComp['naf'],
|
|
// 'naf_lib'=>$this->getLibelleNaf($idComp['naf']),
|
|
// 'ca'=>str_replace('€','?', $idComp['ca']),
|
|
// 'nbEtab'=>$idComp['nbEtab'],
|
|
// 'effectif'=>$idComp['effectif'],
|
|
);
|
|
$tabInsert=array_merge($tabUpdate,array('siren'=>$siren));
|
|
if (!$this->iDb->insert('infos_entrep', $tabInsert))
|
|
$this->iDb->update('infos_entrep', $tabUpdate, "siren=$siren");
|
|
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getIdentitePart sur $siren après accès Distant", print_r($tabRet, true));
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
function getProColPart($siren, $rubrique='', $forceVerif=false, $idAnnonce=0, $fj=false) {
|
|
$forceVerif=false;
|
|
$tabRet=array();
|
|
$strIdAnn='';
|
|
$tabInter=array('A'=>'Administrateur judiciaire',
|
|
'M'=>'Mandataire judiciaire',
|
|
'H'=>'Huissier',
|
|
'L'=>'Liquidateur',
|
|
'R'=>'Représentant des Créanciers',
|
|
'O'=>'Opposition',
|
|
'U'=>'Curateur',
|
|
'C'=>'Commissaire au plan',
|
|
'S'=>'Syndic',
|
|
'D'=>'Commissaire au concordat',
|
|
'T'=>'Conciliateur',
|
|
'V'=>'Avocat',
|
|
'N'=>'Notaire',
|
|
'J'=>'Juge Commissaire',
|
|
'K'=>'Juge Commissaire Suppléant',
|
|
);
|
|
|
|
/** Date la plus ancienne acceptée pour les jugements collectés **/
|
|
$debutForclusion=date('Ymd',mktime(0,0,0,date('m')-24,date('d'),date('Y')));
|
|
|
|
|
|
if ($rubrique=='P' ||
|
|
$rubrique=='PH') // Procédure collective
|
|
$strIdAnn=" AND a.typeEven BETWEEN 1000 AND 1999 AND a.typeEven NOT IN(1005, 1010, 1050, 1055, 1550) ";
|
|
elseif ($rubrique=='D') // Dissolution de la société
|
|
$strIdAnn=" AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) ";
|
|
elseif ($rubrique=='A') // Absorption
|
|
$strIdAnn=" AND a.typeEven IN (2720, 2721) ";
|
|
elseif ($rubrique=='C' || $rubrique=='BODC') // Dépôt des comptes
|
|
$strIdAnn=" AND a.typeEven BETWEEN 3000 AND 3999 ";
|
|
elseif ($rubrique=='R')
|
|
$strIdAnn=" AND a.typeEven IN (2202, 2203, 2204, 2210, 2211, 2212) ";
|
|
elseif ($rubrique=='L') // Location gérance Locataire
|
|
$strIdAnn=" AND a.typeEven IN (2800, 2875, 2880, 2881, 2885, 2840) ";
|
|
elseif ($rubrique=='G') // Location gérance Propriétaire
|
|
$strIdAnn=" AND a.typeEven IN (2850, 2851, 2860, 2870) ";
|
|
elseif ($rubrique=='V') // Ventes/Cessions
|
|
$strIdAnn=" AND a.typeEven IN (5500, 5501, 5502, 5503, 5510, 5600, 5650) ";
|
|
elseif (is_array($rubrique) && count($rubrique)>0) {
|
|
$strIdAnn=" AND (a.typeEven IN (".implode(',',$rubrique).') OR ';
|
|
foreach ($rubrique as $codeEven)
|
|
$tabTmp[]=" a.typeEven LIKE '%$codeEven%' ";
|
|
$strIdAnn.=implode(' OR ',$tabTmp);
|
|
$strIdAnn.=')';
|
|
}
|
|
//else return $tabRet;
|
|
|
|
if ($idAnnonce<>0) $strIdAnn.= " AND a.id=".preg_replace('/^0\./','', $idAnnonce);
|
|
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getProcolPart Deb $siren", print_r($tabRet,true));
|
|
|
|
/** Recherche des jugements enregistrés en base S&D **/
|
|
$collecte=$this->iDb->select( 'annonces a, tribunaux t/*, etablissements e*/',
|
|
'a.id, a.siren, a.typeEven, a.strEven, a.dateJugement, a.dateCessationPaiement, a.dateEffetFinP, a.numero, a.inter1type, a.inter1id, a.inter1nom, a.inter2type, a.inter2id, a.inter2nom, a.inter3type, a.inter3id, a.inter3nom, a.inter4type, a.inter4id, a.inter4nom, a.tribunal, a.montant, a.actionsNb, a.complement, a.nouvActivite, a.nouvDir, a.nouvAdr, a.nouvFJ, a.source, a.parutionIdJal, a.parutionNum, a.dateSource, a.annonce, a.dateInsert, t.triNom, t.triSiret, t.triCP, a.raisonSociale, a.adresse, a.codePostal, a.ville',
|
|
"a.siren=$siren AND a.tribunal=t.triCode /*AND a.siren=e.siren*/ $strIdAnn AND a.dateSuppr=0 GROUP BY a.siren, a.dateJugement, typeEven ORDER BY /*e.siege DESC, e.actif DESC,*/ a.dateJugement DESC", true, MYSQL_ASSOC);
|
|
/*sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getProcolPart Deb $siren", "
|
|
SELECT a.id, a.siren, a.typeEven, a.strEven, a.dateJugement, a.dateCessationPaiement, a.dateEffetFinP, a.numero, a.inter1type, a.inter1id, a.inter1nom, a.inter2type, a.inter2id, a.inter2nom, a.inter3type, a.inter3id, a.inter3nom, a.inter4type, a.inter4id, a.inter4nom, a.tribunal, a.montant, a.actionsNb, a.complement, a.nouvActivite, a.nouvDir, a.nouvAdr, a.nouvFJ, a.source, a.parutionIdJal, a.parutionNum, a.dateSource, a.annonce, a.dateInsert, t.triNom, t.triSiret, t.triCP, a.raisonSociale, a.adresse, a.codePostal, a.ville
|
|
FROM annonces a, tribunaux t
|
|
WHERE a.siren=$siren AND a.tribunal=t.triCode $strIdAnn AND a.dateSuppr=0
|
|
GROUP BY a.siren, a.dateJugement, typeEven
|
|
ORDER BY a.dateJugement DESC".EOL.EOL.print_r($collecte,true));*/
|
|
if (count($collecte)>0) {
|
|
foreach ($collecte as $k=>$ann) {
|
|
$dept=substr($ann['triCP'],0,2)*1;
|
|
$depotComptes=false;
|
|
if ($dept==97) $dept=substr($ann['triCP'],0,3)*1;
|
|
$adresse='';
|
|
|
|
/** Ajout des informations identitaires pour les annonces collecte avant Décembre 2008 **/
|
|
if (trim($ann['raisonSociale'])=='' || trim($ann['adresse'])=='' || trim($ann['codePostal'])=='' || trim($ann['ville'])=='') {
|
|
$tabTmp=$this->getIdentiteLight($siren);
|
|
$ann['raisonSociale'] = $tabTmp['Nom'];
|
|
$ann['adresse'] = $tabTmp['Adresse'];
|
|
$ann['codePostal'] = $tabTmp['CP'];
|
|
$ann['ville'] = $tabTmp['Ville'];
|
|
}
|
|
$adresse.=ucfirst(strtolower($ann['adresse'])).', ';
|
|
|
|
$adresse=trim(preg_replace('/^0+/','', preg_replace('/ +/',' ', $adresse)));
|
|
if (preg_match('/(3100|3200|3300|3999)/', $ann['typeEven'].';'.$ann['strEven'])) {
|
|
$depotComptes=true;
|
|
$strRCS='Siren : '. $ann['siren'] . '. ';
|
|
} else
|
|
$strRCS=$ann['siren'] . ' RCS '. ucfirst(strtolower(strtr($ann['triNom'], array('TGIcc '=>'','TGI '=>'','TC '=>'','TI '=>'',)))).'. ';
|
|
|
|
$texteAnnonce= 'Date : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateJugement'])) .'. '. $this->iBodacc->getEvenement($ann['typeEven']).'. '.
|
|
$strRCS .
|
|
trim($ann['raisonSociale']). '. Adresse : '. $adresse.' '.$ann['codePostal'].' '.$ann['ville'].'. ';
|
|
|
|
if (trim($ann['numero'])<>'') $texteAnnonce.='Jugement Numéro : '.trim($ann['numero']).'. ';
|
|
|
|
if ($ann['dateCessationPaiement']*1<>0) $texteAnnonce.='Cessation des paiements le '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateCessationPaiement'])).'. ';
|
|
|
|
if (trim($ann['inter1type'])<>'' && ($ann['inter1id']>0 || trim($ann['inter1nom'])<>'') ) {
|
|
$texteAnnonce.=$tabInter[$ann['inter1type']].' : '.$ann['inter1nom'];
|
|
if ($ann['inter1id']<>0) {
|
|
$tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter1id'], true, MYSQL_ASSOC);
|
|
$mand=$tabTmp[0];
|
|
if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp'];
|
|
if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand'];
|
|
if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel'];
|
|
if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax'];
|
|
if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email'];
|
|
}
|
|
$texteAnnonce.='. ';
|
|
}
|
|
if (trim($ann['inter2type'])<>'' && ($ann['inter2id']>0 || trim($ann['inter2nom'])<>'') ) {
|
|
$texteAnnonce.=$tabInter[$ann['inter2type']].' : '.$ann['inter2nom'];
|
|
if ($ann['inter2id']<>0) {
|
|
$tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter2id'], true, MYSQL_ASSOC);
|
|
$mand=$tabTmp[0];
|
|
if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp'];
|
|
if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand'];
|
|
if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel'];
|
|
if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax'];
|
|
if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email'];
|
|
}
|
|
$texteAnnonce.='. ';
|
|
}
|
|
if (trim($ann['inter3type'])<>'' && ($ann['inter3id']>0 || trim($ann['inter3nom'])<>'') ) {
|
|
$texteAnnonce.=$tabInter[$ann['inter3type']].' : '.$ann['inter3nom'];
|
|
if ($ann['inter3id']<>0) {
|
|
$tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter3id'], true, MYSQL_ASSOC);
|
|
$mand=$tabTmp[0];
|
|
if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp'];
|
|
if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand'];
|
|
if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel'];
|
|
if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax'];
|
|
if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email'];
|
|
}
|
|
$texteAnnonce.='. ';
|
|
}
|
|
if (trim($ann['inter4type'])<>'' && ($ann['inter4id']>0 || trim($ann['inter4nom'])<>'') ) {
|
|
$texteAnnonce.=$tabInter[$ann['inter4type']].' : '.$ann['inter4nom'];
|
|
if ($ann['inter4id']<>0) {
|
|
$tabTmp=$this->iDb->select( 'tabMandataires', 'sirenGrp, sirenMand, tel, fax, email', 'id='.$ann['inter4id'], true, MYSQL_ASSOC);
|
|
$mand=$tabTmp[0];
|
|
if ($mand['sirenGrp']<>0) $texteAnnonce.=', Siren SCP '.$mand['sirenGrp'];
|
|
if ($mand['sirenMand']<>0) $texteAnnonce.=', Siren '.$mand['sirenMand'];
|
|
if ($mand['tel']<>'') $texteAnnonce.=', Telephone '.$mand['tel'];
|
|
if ($mand['fax']<>'') $texteAnnonce.=', Telecopie '.$mand['fax'];
|
|
if ($mand['email']<>'') $texteAnnonce.=', E-mail : '.$mand['email'];
|
|
}
|
|
$texteAnnonce.='. ';
|
|
}
|
|
|
|
if (trim($ann['nouvActivite'])<>'') $texteAnnonce.=' Activité : '.trim($ann['nouvActivite']).'. ';
|
|
if (trim($ann['nouvDir'])<>'') $texteAnnonce.=' Administration : '.trim($ann['nouvDir']).'. ';
|
|
if (trim($ann['nouvAdr'])<>'') $texteAnnonce.=' Nouvelle adresse : '.trim($ann['nouvAdr']).'. ';
|
|
if ($ann['nouvFJ']*1>0) $texteAnnonce.=' Transformation de la société en '.$this->getLibelleFJ($ann['nouvFJ']).'. ';
|
|
|
|
if ($ann['dateEffetFinP']*1<>'') {
|
|
if ($depotComptes)
|
|
$texteAnnonce.=' Comptes annuels et rapports de l\'exercice clos le : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateEffetFinP'])).'. ';
|
|
else
|
|
$texteAnnonce.=' Date d\'effet : '.strtolower(WDate::dateT('Y-m-d','d M Y',$ann['dateEffetFinP'])).'. ';
|
|
}
|
|
|
|
if (trim($ann['complement'])<>'') $texteAnnonce.=' Observations : '.trim($ann['complement']).'.';
|
|
|
|
/** Si la procédure à moins de 4 mois on l'affiche **/
|
|
$tabEven=explode(';', $ann['strEven']);
|
|
|
|
$tabRetEven=array();
|
|
$tabRetEven[]=array('CodeEven'=>$ann['typeEven'],'LibEven'=>$this->iBodacc->getEvenement($ann['typeEven']));
|
|
if ($ann['typeEven']==2102 || $ann['typeEven']==2100) $capital=true;
|
|
else $capital=false;
|
|
|
|
if (trim($ann['strEven'])<>'') {
|
|
foreach ($tabEven as $even) {
|
|
$tabRetEven[]=array('CodeEven'=>$even,'LibEven'=>$this->iBodacc->getEvenement($even));
|
|
if ($even>=1000 && $even<2000) $rubriqueRet='procol';
|
|
elseif ($even>=2000 && $even<3000) $rubriqueRet='mmd';
|
|
elseif ($even>=3000 && $even<4000) $rubriqueRet='comptes';
|
|
elseif ($even>=4000 && $even<5000) $rubriqueRet='creations';
|
|
elseif ($even>=5000 && $even<6000) $rubriqueRet='ventes';
|
|
elseif ($even>=6000 && $even<7000) $rubriqueRet='radiations';
|
|
if ($even==2102 || $even==2100) $capital=true;
|
|
}
|
|
}
|
|
|
|
if (($this->dureePlan<1 || $this->dureePlan==120) &&
|
|
( $ann['typeEven']==1407 || // Modification de plan
|
|
$ann['typeEven']==1409 || // Modification du plan de continuation
|
|
$ann['typeEven']==1413 || // Arrêt du plan de continuation
|
|
$ann['typeEven']==1414) ) // Arrêt du plan de redressement
|
|
{
|
|
$this->debutPlan=str_replace('-','',$ann['dateJugement']); // SSAAMMJJ
|
|
if (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $ann['annonce'], $matches)) {
|
|
$this->dureePlan=$matches[1]*12; // 10 ans = 120 mois
|
|
} elseif (preg_match('/dur.e(?:.*)plan(?:.*)(\d+)\s+ans?/Uis', $texteAnnonce, $matches)) {
|
|
$this->dureePlan=$matches[1]*12; // 10 ans = 120 mois
|
|
}
|
|
if ($this->dureePlan<1 || $this->dureePlan>120) {
|
|
if (($fj==16 || $fj==1600 || // Exploitant agricole
|
|
$fj==63 || $fj==6316 || $fj==6317 || $fj==6318 || // Société coopérative agricole
|
|
$fj==5431 || $fj==5432 || $fj==5531 || $fj==5532 || // SMIA, SICA
|
|
$fj==5631 || $fj==5632 || $fj==6532 ||
|
|
$fj==6533 || $fj==6534 || $fj==6535 || // GAEC, GFA, Gpt Agricole Foncier
|
|
$fj==6597 || $fj==6598) && $this->dureePlan>180)
|
|
$this->dureePlan=180; // 15 ans
|
|
else
|
|
$this->dureePlan=120; // 10 ans = 120 mois
|
|
} $this->finPlan=WDate::period2Days($this->debutPlan, $this->dureePlan.' mois');
|
|
}
|
|
$strVente='';
|
|
$nouvCapital='';
|
|
if ($ann['montant']>0) {
|
|
if ($capital) {
|
|
$nouvCapital=$ann['montant'];
|
|
$texteAnnonce.=' Nouveau capital : '.trim($ann['montant']). ' euros';
|
|
if ($ann['actionsNb']>0)
|
|
$texteAnnonce.=' divisé en '.$ann['actionsNb'].' actions de '. round($ann['montant']/$ann['actionsNb']). ' euros';
|
|
} elseif (!preg_match('/ pour un montant de /Uis', $ann['complement'])) {
|
|
$texteAnnonce.=' Montant : '.trim($ann['montant']). ' euros';
|
|
$strVente=trim($ann['montant']). ' EUR';
|
|
}
|
|
$texteAnnonce.='. ';
|
|
}
|
|
|
|
// On ne prend l'annonce saisie directement que si elle est plus volumineuse
|
|
if (trim($ann['annonce'])<>'' && strlen(trim($ann['annonce']))>strlen($texteAnnonce))
|
|
$texteAnnonce=trim($ann['annonce']);
|
|
|
|
$texteAnnonce=preg_replace('/ +/', ' ', strtr($texteAnnonce, array('*'=>' ', '/'=>' ', '..'=>'.')));
|
|
|
|
if (str_replace('-','',$ann['dateSource'])*1<>0) $dateParution=$ann['dateSource'];
|
|
else $dateParution=$ann['dateInsert'];
|
|
|
|
/** Si la procédure à moins de 4 mois on l'affiche **/
|
|
if ((str_replace('-','',$ann['dateJugement'])*1)>=$debutForclusion) {
|
|
$tabRet[$k]=array('id'=>'0.'.$ann['id'],
|
|
'BodaccCode'=>$ann['source'].'-'.$ann['parutionIdJal'],
|
|
'BodaccNum'=>$ann['parutionNum'],
|
|
'NumAnnonce'=>0,
|
|
'DateParution'=>$dateParution,
|
|
'Departement'=>$dept,
|
|
'Tribunal'=>$ann['triNom'],
|
|
'TribunalSiret'=>$ann['triSiret'],
|
|
'Rubrique'=>$rubriqueRet,
|
|
'typeAnnonce'=>'insertion',
|
|
'dateEffet'=>$ann['dateCessationPaiement'],
|
|
'dateJugement'=>$ann['dateJugement'],
|
|
'dateFin'=>$ann['dateEffetFinP'],
|
|
'montantVente'=>$strVente,
|
|
'libFJ'=>$ann['nouvFJ'],//,if (trim($ann['nouvAdr'])<>'') $texteAnnonce.=' Nouvelle adresse : '.trim($ann['nouvAdr']).'. ';
|
|
'codFJ'=>$this->iBodacc->getCodeFormeJur($ann['nouvFJ']),
|
|
'capital'=>$nouvCapital,
|
|
'capitalDev'=>'EUR',
|
|
'raisonSociale'=>$ann['raisonSociale'],
|
|
'nomCommercial'=>'',
|
|
'sigle'=>'',
|
|
'adresse'=>$ann['nouvAdr'],
|
|
'dateInsertionSD'=>$ann['dateInsert'],
|
|
'evenements'=>$tabRetEven,
|
|
'texteAnnonce'=>$texteAnnonce,
|
|
'complement'=>$ann['complement'],
|
|
);
|
|
if ($depotComptes)
|
|
$tabRet[$k]['dateEffet']=$ann['dateEffetFinP'];
|
|
}
|
|
}
|
|
}
|
|
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getProcolPart Fin $siren", print_r($tabRet,true));
|
|
|
|
return $tabRet;
|
|
}
|
|
|
|
|
|
function listeConventions($naf4, $dep=0) {
|
|
$dep=$dep*1;
|
|
if ($dep>0) {
|
|
if ($dep<10) $dep='Dep0'.$dep;
|
|
else $dep='Dep'.$dep;
|
|
$strDep="AND (n.territoire='' OR n.territoire LIKE '%$dep%')";
|
|
}
|
|
$listeCC=$this->iDb->select('conv_naf n, conventions c',
|
|
'n.`id CC`, n.`nom CC`, n.`editeur CC`, n.`nb page CC`, n.`isbn CC`, n.`date edition CC`, c.infoCC, joCCmaj',
|
|
"n.naf='$naf4' AND substring(n.`id CC`,1,4)=c.numBrochure $strDep GROUP BY n.`id CC`", false, MYSQL_ASSOC);
|
|
return $listeCC;
|
|
}
|
|
/* $tabRet['nbEtab']=trim(strip_tags(str_replace('afficher la liste...', '', @getTextInHtml($pou, '<tr><td class="ligne1_2">Etablissements', '<td class="ligne2_2">', '</td></tr>'))));
|
|
/*$urlPEtab='http://www.score3.fr/etablissements.shtml?page=1&siren='.$siren;
|
|
$refererPEtab=$urlP;
|
|
}
|
|
|
|
$tabRet['effectif']=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Effectifs</td>', '<td class="ligne2_2">', '</td></tr>'));
|
|
|
|
$strTmp=trim(str_replace('/','',@getTextInHtml($pou, '<tr><td class="ligne1_2">Date d\'immatriculation</td>', '<td class="ligne2_2">', '</td></tr>')));
|
|
if (strlen($strTmp)==4)
|
|
$strTmp='0101'.$strTmp;
|
|
elseif (strlen($strTmp)==6)
|
|
$strTmp='01'.$strTmp;
|
|
$tabRet['dateCreation']=WDate::dateT('dmY','Y-m-d',$strTmp);
|
|
|
|
$strTmp=trim(str_replace('/','',@getTextInHtml($pou, '<tr><td class="ligne1_2">Date de fin d\'exploitation</td>', '<td class="ligne2_2">', '</td></tr>')));
|
|
if (strlen($strTmp)==4)
|
|
$strTmp='0101'.$strTmp;
|
|
elseif (strlen($strTmp)==6)
|
|
$strTmp='01'.$strTmp;
|
|
$tabRet['dateFermeture']=WDate::dateT('dmY','Y-m-d',$strTmp);
|
|
|
|
if($tabRet['tel']=='' || $tabRet['tel']=='0')
|
|
$tabRet['tel']=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Téléphone</td>', '<td class="ligne2_2">', '</td></tr>'));
|
|
|
|
if($tabRet['fax']=='' || $tabRet['fax']=='0')
|
|
$tabRet['fax']=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Fax</td>', '<td class="ligne2_2">', '</td></tr>'));
|
|
|
|
$strTmp=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Activité principale</td>', '<td class="ligne2_2">', '</td></tr>'));
|
|
$tabRet['naf_lib']=trim(strtr(substr($strTmp,0,strlen($strTmp)-6),'()',' '));
|
|
|
|
if ($tabRet['naf']=='')
|
|
$tabRet['naf']=trim(strtr(substr($strTmp,-6),'()',' '));
|
|
|
|
$strTmp=trim(@getTextInHtml($pou, '<tr><td class="ligne1_2">Chiffre d\'affaires</td>', '<td class="ligne2_2">', '</td></tr>'));
|
|
$tabRet['ca']=$strTmp;
|
|
|
|
$tabRet['score_pouey']=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&type=pouey&valeur=', '">'));
|
|
$tabRet['score_conan']=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&type=ch&valeur=', '">'));
|
|
$tabRet['score_afdcc']=trim(@getTextInHtml($pou, '<param name="movie" value="cadran.swf?rotation=', '&type=afdcc&valeur=', '">'));
|
|
$tabRet['vigilance'] =trim(@getTextInHtml($pou, '<param name="movie" value="vigilance.swf', 'degre=', '">'));
|
|
|
|
return $tabRet;
|
|
}
|
|
*/
|
|
|
|
private function findSiteWeb($rs)
|
|
{
|
|
/** @TODO Provisoirement tant qu'on ne vérifie pas le .fr ou .com auprès d'un registrar **/
|
|
return false;
|
|
|
|
$referer='http://www.google.fr/';
|
|
$url='http://www.google.fr/search?hl=fr&q='.urlencode($rs).'&btnG=Rechercher&meta=cr%3DcountryFR';
|
|
$page=getUrl($url, '', '', $referer, false, 'www.google.fr','', 5);
|
|
$fp=fopen('./findSiteWeb.log', 'a+');
|
|
if ($page['code']==200) {
|
|
$levMin=100;
|
|
$pctMin=0;
|
|
$urlLev=$urlPct='';
|
|
$body=$page['body'];
|
|
preg_match_all('/<a href="(.*)"/iU', $body, $matches);
|
|
$urlapprox="http://$rs.";
|
|
|
|
foreach ($matches[1] as $i=>$url)
|
|
{
|
|
$lev=@levenshtein ($urlapprox,$url);
|
|
if ($lev>0 && $lev<$levMin) {
|
|
$levMin=$lev;
|
|
$urlLev=$url;
|
|
}
|
|
$sim=similar_text($urlapprox,$url,$pct);
|
|
if ($pct>$pctMin && strpos($url, 'zonebourse')===false) {
|
|
$pctMin=$pct;
|
|
$urlPct=$url;
|
|
}
|
|
fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url\n");
|
|
//2008-05-20 20:01:08 - 200- ARKEMA FRANCE - 53 - 20 - 10 - http://www.arkema.fr/ - http://www.zonebourse.com/ARKEMA-17031/ - /intl/fr/about.html
|
|
|
|
}
|
|
|
|
fclose($fp);
|
|
|
|
if ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) {
|
|
fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!\n");
|
|
return $urlLev;
|
|
}
|
|
return false;
|
|
}
|
|
fclose($fp);
|
|
return false;
|
|
}
|
|
|
|
function getImportExport($siren, $type='', $annee='') {
|
|
if ($type=='') $strimportExport=" AND importExport IN ('I','E') ";
|
|
elseif ($type=='I') $strimportExport=" AND importExport='I' ";
|
|
elseif ($type=='E') $strimportExport=" AND importExport='E' ";
|
|
if ($annee*1>0) $strAnnees=" AND annee=$annee ";
|
|
else {
|
|
$tabAnnees=array();
|
|
$strAnnees=' AND annee IN (';
|
|
for ($an=date('Y')-6; $an<date('Y'); $an++)
|
|
$tabAnnees[]=$an;
|
|
$strAnnees.=implode(',', $tabAnnees).')';
|
|
}
|
|
$tabImportExport=$this->iDb->select('importExport', 'importExport, annee, /*siren, raisonSociale, naf, categorie, adresse,*/ rangNational, deptSiege', "1 $strImportExport $strAnnees AND siren=$siren ORDER BY annee DESC, importExport ASC",true, MYSQL_ASSOC);
|
|
return $tabImportExport;
|
|
}
|
|
|
|
function getInfosNotice($siren, $nic) {
|
|
/** Elements provenant du Notice 80 hors identité **/
|
|
$tabTmp=$this->iDbInsee->select('insee_notices', 'insSIREN, insNIC, insL4_VOIE, insL6_POST, insRPET, insDEPCOMEN, insRPEN, insARRONET, insCTONET, insTCD, insZEMET, insDU, insTU, insUU, insMMINTRET, insMMINTREN, insVMAJ, insVMAJ1, insVMAJ2, insVMAJ3, insRECME, insEAEANT, insEAEAPET, insEAESEC1T, insEAESEC2T, insEAEANN, insEAEAPEN, insEAESEC1N, insEAESEC2N, insEAESEC3N, insEAESEC4N, dateNotice', "insSIREN=$siren AND insNIC=$nic ORDER BY dateNotice DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
if (count($tabTmp)==0)
|
|
$tabTmp=$this->iDbInsee->select('insee_even', "insSIREN, insNIC, insL4_VOIE, insL6_POST, insRPET, insDEPCOMEN, insRPEN, insARRONET, insCTONET, insTCD, insZEMET, insDU, insTU, insUU, insAMINTRET, insAMINTREN, insVMAJ, insVMAJ1, insVMAJ2, insVMAJ3, '' AS insRECME, '' AS insEAEANT, '' AS insEAEAPET, '' AS insEAESEC1T, '' AS insEAESEC2T, insESAANN AS insEAEANN, insESAPEN AS insEAEAPEN, insESASEC1N AS insEAESEC1N, insESASEC2N AS insEAESEC2N, insESASEC3N AS insEAESEC3N, insESASEC4N AS insEAESEC4N, dateInsert AS dateNotice", "insSIREN=$siren AND insNIC=$nic ORDER BY dateInsert DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
return $tabTmp[0];
|
|
}
|
|
|
|
function infoAdresseDom($adresseNum, $adresseBtq, $adresseVoie, $adresseRue, $adresseComp, $cp, $ville, $active=true) {
|
|
$adresseNum=trim($adresseNum)*1;
|
|
$adresseBtq='';//trim($adresseBtq);
|
|
$adresseVoie=trim($adresseVoie);
|
|
$adresseRue=trim($adresseRue);
|
|
$cp=trim($cp);
|
|
$ville=trim($ville);
|
|
|
|
if ($adresseNum=='' && $adresseBtq=='' && $adresseVoie=='' && $adresseRue=='' && $cp=='' && $ville=='')
|
|
return false;
|
|
|
|
$tabAdr=$this->structureVoie($adresseNum.' '.$adresseBtq.' '.$adresseVoie.' '.$adresseRue);
|
|
$num=$tabAdr['num']*1;
|
|
if ($num==0) return false;
|
|
$indRep=trim($tabAdr['indRep']);
|
|
$typeVoie=trim($tabAdr['typeVoie']);
|
|
$libVoie=trim(substr($tabAdr['libVoie'],-5));
|
|
|
|
$strAdrActive='';
|
|
if ($active) {
|
|
$strAdrActive.=" AND (enActif=1 OR etActif=1) AND nbEntrep>30 AND pasEntrepDom=0 AND siren>1000 ";
|
|
}
|
|
$tabTmp=$this->iDb->select('tabAdrDom',
|
|
'id, siren, nic, enActif, etActif, procol, nom, nom2, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, adrComp, adrDistSp, cj, apen, apet, nbEntrep, dateInsert, dateUpdate',
|
|
"adrNum=$num AND adrBtq='$indRep' AND adrTypVoie LIKE '%$typeVoie%' AND adrLibVoie LIKE '%$libVoie%' AND cp=$cp $strAdrActive GROUP BY siren ORDER BY enActif DESC, nbEntrep DESC", false, MYSQL_ASSOC);
|
|
if (count($tabTmp)>0) {
|
|
/* sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Adresse de domiciliation", print_r($tabAdr,true).EOL.print_r($tabTmp, true).EOL.
|
|
"num=$num=$adresseNum".EOL.
|
|
"indRep=$indRep=$adresseBtq".EOL.
|
|
"typeVoie=$typeVoie=$adresseVoie".EOL.
|
|
"libVoie=$libVoie=$adresseRue".EOL.
|
|
"adresseComp=$adresseComp".EOL.
|
|
"cp/ville=$cp/$ville".EOL);*/
|
|
return $tabTmp;
|
|
}/* else {
|
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Adresse de domiciliation Debug", print_r($tabAdr,true).EOL.print_r($tabTmp, true).EOL.
|
|
"num=$num=$adresseNum".EOL.
|
|
"indRep=$indRep=$adresseBtq".EOL.
|
|
"typeVoie=$typeVoie=$adresseVoie".EOL.
|
|
"libVoie=$libVoie=$adresseRue".EOL.
|
|
"adresseComp=$adresseComp".EOL.
|
|
"cp/ville=$cp/$ville".EOL);
|
|
return $tabTmp;
|
|
}*/
|
|
|
|
return false;
|
|
}
|
|
|
|
function getAdresse($siren, $nic) {
|
|
/* 'Nom'=>$etab['raisonSociale'],
|
|
'Tribunal'=>$etab['triCode'],
|
|
'Sigle'=>$etab['sigle'],
|
|
''=>$etab['enseigne'],
|
|
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
|
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
|
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
|
'AdresseNum'=>$etab['adr_num'],
|
|
'AdresseBtq'=>$etab['adr_btq'],
|
|
'AdresseVoie'=>$etab['adr_typeVoie'],
|
|
'AdresseRue'=>$etab['adr_libVoie'],
|
|
'CP'=>$etab['adr_cp'],
|
|
'Ville'=>$etab['adr_ville'],
|
|
*/
|
|
/** On prend l'information dans la table etablissements **/
|
|
$tabIdentite=$this->getIdentiteLight($siren, $nic);
|
|
$codeVoie=@strtoupper($this->getCodeVoie($tabIdentite['AdresseVoie']));
|
|
//echo $codeVoie.EOL;
|
|
if ($codeVoie=='') $codeVoie=$tabIdentite['AdresseVoie'];
|
|
$tabRet=array('L1_NOM' => $tabIdentite['Nom'],
|
|
'L2_NOM2' => $tabIdentite['Enseigne'],
|
|
'L3_ADRCOMP' => '',
|
|
'L4_VOIE' => trim(preg_replace('/ +/',' ',preg_replace('/^0+/','',$tabIdentite['AdresseNum'].' '.
|
|
$tabIdentite['AdresseBtq'].' '.
|
|
$codeVoie.' '.
|
|
$tabIdentite['AdresseRue']))),
|
|
'L5_DISTSP' => $tabIdentite['Adresse2'],
|
|
'L6_POST' => $tabIdentite['CP'].' '.$tabIdentite['Ville'],
|
|
'L7_PAYS' => '',
|
|
);
|
|
if (strlen($tabRet['L4_VOIE'])>38)
|
|
$tabRet['L4_VOIE']=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','',
|
|
$tabIdentite['AdresseNum'].' '.
|
|
$tabIdentite['AdresseBtq'].' '.
|
|
$tabIdentite['AdresseVoie'].' '.
|
|
$tabIdentite['AdresseRue'])));
|
|
|
|
$tabNotice=$this->getInfosNotice($siren, $nic);
|
|
//if ($tabNotice['insL4_VOIE']<>'' && $tabNotice['insL4_VOIE']<>$tabRet['L4_VOIE'])
|
|
// $tabRet['L4_VOIE']=$tabNotice['insL4_VOIE'];
|
|
if ($tabNotice['L6_POST']<>'' && $tabNotice['L6_POST']<>$tabRet['L6_POST'])
|
|
$tabRet['L6_POST']=$tabNotice['L6_POST'];
|
|
|
|
$tabTmp=$this->iDbInsee->select('identite','NOM2, ADR_COMP, ADR_DISTSP, PAYS',
|
|
"SIREN=$siren AND NIC=$nic", false, MYSQL_ASSOC);
|
|
$tabIdentite=$tabTmp[0];
|
|
if ($tabIdentite['NOM2']<>'' && $tabIdentite['NOM2']<>$tabRet['L2_NOM2'])
|
|
$tabRet['L2_NOM2']=$tabIdentite['NOM2'];
|
|
if ($tabIdentite['ADR_COMP']<>'' && $tabIdentite['ADR_COMP']<>$tabRet['L3_ADRCOMP'])
|
|
$tabRet['L3_ADRCOMP']=$tabIdentite['ADR_COMP'];
|
|
if ($tabIdentite['ADR_DISTSP']<>'' && $tabIdentite['ADR_DISTSP']<>$tabRet['L5_DISTSP'])
|
|
$tabRet['L5_DISTSP']=$tabIdentite['ADR_DISTSP'];
|
|
if ($tabIdentite['PAYS']<>'' && $tabIdentite['PAYS']<>$tabRet['L7_PAYS'])
|
|
$tabRet['L7_PAYS']=$tabIdentite['PAYS'];
|
|
|
|
$tabTmp=$this->iDbInsee->select('cedexa','contrat, hexavia, codePostal, l1_nom, l2_nomComp, l3_compGeo, l4_numVoie, l4_indRep, l4_libVoie, l5_distrib, l5_numMS, l5_libCom, l6_codCedex, l6_achCedex, codeInsee, actif, dateFlux, dateInsert, dateUpdate', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
|
|
$tabCedex=$tabTmp[0];
|
|
|
|
if ($tabCedex['l2_nomComp']<>'' && $tabCedex['l2_nomComp']<>$tabRet['L2_NOM2'])
|
|
$tabRet['L2_NOM2']=$tabCedex['l2_nomComp'];
|
|
if ($tabCedex['l3_compGeo']<>'' && $tabCedex['l3_compGeo']<>$tabRet['L3_ADRCOMP'])
|
|
$tabRet['L3_ADRCOMP']=$tabCedex['l3_compGeo'];
|
|
|
|
$l4=trim(preg_replace('/ +/',' ',preg_replace('/^0+/','', $tabCedex['l4_numVoie'].' '.$tabCedex['l4_indRep'].' '.$tabCedex['l4_libVoie'])));
|
|
if ($l4<>'' && $l4<>$tabRet['L4_VOIE'])
|
|
$tabRet['L4_VOIE']=$l4;
|
|
|
|
$l5=trim(preg_replace('/ +/',' ', $tabCedex['l5_distrib'].' '.$tabCedex['l5_numMS'].' '.$tabCedex['l5_libCom']));
|
|
if ($l5<>'' && $l5<>$tabRet['L5_DISTSP'])
|
|
$tabRet['L5_DISTSP']=$l5;
|
|
|
|
$l6=trim(preg_replace('/ +/',' ', $tabCedex['l6_codCedex'].' '.$tabCedex['l6_achCedex']));
|
|
if ($l6<>'' && $l6<>$tabRet['L6_POST'])
|
|
$tabRet['L6_POST']=$l6;
|
|
|
|
return $tabRet;
|
|
/** RNCS ? **/
|
|
$tabTmp=$this->iDb->select('rncs_etab','enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie,
|
|
adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3',
|
|
"siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
|
|
$tabIdentite=$tabTmp[0];
|
|
}
|
|
|
|
function getActivite($siren, $nic=0) {
|
|
$tabIdentite=$this->getIdentiteLight($siren, $nic);
|
|
// F.Jur
|
|
$fj=$tabIdentite['FJ'];
|
|
// Naf 5
|
|
$naf5en=$tabIdentite['NafEnt'];
|
|
$naf5et=$tabIdentite['NafEtab'];
|
|
// Naf 4
|
|
$naf4en=$naf4et=-1;
|
|
$tabNaf4=$this->getNaf4($siren, $nic);
|
|
if (isset($tabNaf4['apen4']))
|
|
$naf4en=$tabNaf4['apen4'];
|
|
if (isset($tabNaf4['apet4']))
|
|
$naf4et=$tabNaf4['apet4'];
|
|
|
|
// Activité Pages Jaunes
|
|
$strNic='';
|
|
$an8en=$an8et=-1;
|
|
if ($nic*1>0) $strNic="AND nic=$nic";
|
|
$ret=$this->iDb->select('jo.telephonie',
|
|
'infoTel, count(*) AS nb',
|
|
"siren=$siren AND typeTel='an8' GROUP BY infoTel ORDER BY nb DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
if (count($ret)>0) {
|
|
$an8en=$ret[0]['infoTel'];
|
|
$ret=$this->iDb->select('jo.telephonie',
|
|
'infoTel',
|
|
"siren=$siren $strNic AND typeTel='an8' ORDER BY dateProvPartenaire DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
if (count($ret)>0)
|
|
$an8et=$ret[0]['infoTel'];
|
|
}
|
|
|
|
// Recherche des activités réglementées possibles Naf4&5 ou An8
|
|
$ret=$this->iDb->select('jo.tabActivReg',
|
|
'id, libActivite, listeActivite, naf5, naf4, codAn8, listeCJ, nomAutorite',
|
|
"naf5='$naf5en' OR naf5='$naf5et' OR naf4='$naf4en' OR
|
|
naf4='$naf4et' OR codAn8='$an8en' OR codAn8='$an8et'", false, MYSQL_ASSOC);
|
|
/* @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Activités réglementées sur $siren",
|
|
"naf5='$naf5en' OR naf5='$naf5et' OR naf4='$naf4en' OR naf4='$naf4et' OR codAn8='$an8en' OR codAn8='$an8et'".EOL.
|
|
print_r($ret, true));*/
|
|
foreach ($ret as $iRet=>$tabAct) {
|
|
// Filtre 'listeActivite' : Si défini, on recherche la présence de mots dans l'activité
|
|
if (trim($tabAct['listeActivite'])<>'') {
|
|
$ok=false;
|
|
$tabTmp=explode(';',trim($tabAct['listeActivite']));
|
|
$tabIdentite=$this->getIdentiteEntreprise($siren, $nic);
|
|
foreach ($tabTmp as $strTmp)
|
|
if (preg_match("/$strTmp/i", $tabIdentite['Activite'])) $ok=true;
|
|
if (!$ok) continue;
|
|
}
|
|
// Filtre 'listeCJ' : Si défini, on limite aux CJ listées
|
|
if (trim($tabAct['listeCJ'])<>'') {
|
|
$ok=false;
|
|
$tabTmp=explode(';',trim($tabAct['listeCJ']));
|
|
foreach ($tabTmp as $strTmp)
|
|
if (preg_match("/^$strTmp/", $fj)) $ok=true;
|
|
if (!$ok) continue;
|
|
}
|
|
return array( 'idActivite'=>$tabAct['id'],
|
|
'libActivite'=>$tabAct['libActivite'],
|
|
'nomAutorite'=>$tabAct['nomAutorite'],
|
|
);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public function getCodeNace($naf5) {
|
|
if ($naf5<>'') {
|
|
$this->setTabCodesNaf();
|
|
return $this->tabCodesNace[$naf5];
|
|
}
|
|
else
|
|
return '';
|
|
}
|
|
|
|
public function getEtabClients($refClient, $idClient, $login, $deb=0, $nbRep=20, $maxRep=200) {
|
|
$this->setTabCodesNaf();
|
|
$deb=$deb*1;
|
|
$nbRep=$nbRep*1;
|
|
$limit="LIMIT $deb, $nbRep";
|
|
|
|
// $strLogin=" AND idClient=$idClient ";
|
|
|
|
$listeEtab=$this->iDb->select('jo.etablissements e, jo.surveillances_site s',
|
|
"'Etab' AS Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, CONCAT( e.siren, e.nic ) AS siret, e.actif",
|
|
"s.login='$login' AND s.siren=e.siren AND (s.nic=e.nic OR e.siege=1) AND s.ref='$refClient' ORDER BY e.siege DESC, e.actif DESC $limit", true, MYSQL_ASSOC);
|
|
$nbTot=count($listeEtab);
|
|
foreach ($listeEtab as $etab) {
|
|
$tel=sprintf('%010d', strtr($etab['tel'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
|
|
if ($tel<>'0000000000') $tel=implode('.', str_split($tel,2));
|
|
else $tel='';
|
|
|
|
$fax=sprintf('%010d', strtr($etab['fax'],array('-'=>'', '/'=>'','.'=>'',','=>'')));
|
|
if ($fax<>'0000000000') $fax=implode('.', str_split($fax,2));
|
|
else $fax='';
|
|
|
|
$tabRet[]=array( 'Localisation'=>$etab['Loc'],
|
|
'id'=>$etab['id'],
|
|
'Pertinence'=>100,
|
|
'Siret'=>$etab['siret'],
|
|
'Siege'=>$etab['siege'],
|
|
'Nom'=>$etab['raisonSociale'],
|
|
'Sigle'=>$etab['sigle'],
|
|
'Enseigne'=>$etab['enseigne'],
|
|
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
|
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
|
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
|
'CP'=>$etab['adr_cp'],
|
|
'Ville'=>$etab['adr_ville'],
|
|
'Tel'=>$tel,
|
|
'Fax'=>$fax,
|
|
'FJ'=>$etab['cj'],
|
|
'FJLib'=>$this->getLibelleFJ($etab['cj']),
|
|
'Siren'=>$etab['siren'],
|
|
'Nic'=>$etab['nic'],
|
|
'Actif'=>$etab['actif'],
|
|
'NafEtab'=>$etab['ape_etab'], // Etablissement
|
|
'NafEnt'=>$etab['ape_entrep'], // Entreprise
|
|
'NafEtabLib'=>$this->getLibelleNaf($etab['ape_etab']),
|
|
'NafEntLib' =>$this->getLibelleNaf($etab['ape_entrep']),
|
|
);
|
|
}
|
|
|
|
if ($dep==0) $dep=''; // Evite l'affichage d'un 0 inutile sur l'Extranet
|
|
|
|
return array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
|
'nbReponses'=>count($tabRet),
|
|
'nbReponsesTotal'=>$nbTot,
|
|
'reponses'=>$tabRet);
|
|
}
|
|
|
|
public function getAvisInsee($siren, $nic='') {
|
|
if ($siren*1==0 || !$this->valideSiren($siren, $nic)) return false;
|
|
if ($nic=='' || $nic*1==0 || $nic>99999)
|
|
$strNic=" AND nic=nicSiege";
|
|
else $strNic=" AND nic=$nic";
|
|
$tabTmp=$this->iDbInsee->select('insee_avis', 'raiSoc, dateMaj, siren, nic, etatEt, dateEtatEt, typeEtab, adresseEt0, adresseEt1, adresseEt2, adresseEt3, fj, fjLib, nafEt, nafEtLib, effEtPeriode, effEtTr, erreurs, adresseEn0, adresseEn1, adresseEn2, adresseEn3, nafEn, nafEnLib, effEnPeriode, effEnTr, fjEn, fjEnLib, employes, etatEn, dateEtatEn, nicSiege, nbEtabActifs, dateInsert, dateUpdate, DATE(IF(dateUpdate>dateInsert, dateUpdate, dateInsert))*1 AS dateMajSD',
|
|
"siren=$siren $strNic",
|
|
false, MYSQL_ASSOC);
|
|
$tabInfos=@$tabTmp[0];
|
|
if ($tabInfos['dateMajSD']==date('Ymd')) {
|
|
$tabInfos['enCache']=true;
|
|
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAvisInsee... en cache sur $siren", print_r($tabInfos, true));
|
|
return $tabInfos;
|
|
}
|
|
|
|
/** Initialisation de la session sur le site de l'Insee **/
|
|
$url = 'http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp';
|
|
$referer = $cookie = '';
|
|
$page = getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 5);
|
|
//Code en 4xx ou 5xx signifie une erreur du serveur
|
|
$codeN = floor($page['code']/100);
|
|
if($codeN==4 || $codeN==5)
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
$tabInfos=array();
|
|
$referer = $url;
|
|
$body = $page['body'];
|
|
$serviceDispo = true;
|
|
|
|
if (preg_match("/<form name=\"demForm\" method=\"post\" action=\"\/avisitu\/IdentificationListeSiret.do/Uis", $body, $matches))
|
|
{
|
|
/*$fp = @fopen($fichier, "a");
|
|
@fwrite($fp, $body);
|
|
@fclose($fp);*/
|
|
$cookie = $page['header']['Set-Cookie'];
|
|
usleep(round(rand(500000,2000000)));
|
|
|
|
$dep=$depActif='';
|
|
if ($nic=='') $crit='S'; // l'établissement siège
|
|
else $crit=''; // établissement particulier, saisissez le NIC
|
|
/* $crit='T'; // tous les établissements de l'entreprise
|
|
$crit='T'; // tous les établissements de l'entreprise du département $dep
|
|
$crit='A'; // tous les établissements actifs de l'entreprise
|
|
$crit='A'; // tous les établissements actifs de l'entreprise du département $depActif
|
|
*/
|
|
//Post du formulaire
|
|
$url = 'http://avis-situation-sirene.insee.fr/avisitu/IdentificationListeSiret.do';
|
|
//$url='http://avis-situation-sirene.insee.fr/avisituV2/IdentificationDetailEtab.do';
|
|
$post = array(
|
|
'siren' => $siren,
|
|
'critere' => $crit, // S pour le siège ou vide avec un NIC !!!
|
|
'nic' => $nic,
|
|
'departement' => $dep,
|
|
'departement_actif' => $depActif,
|
|
'bSubmit' => 'Valider');
|
|
$page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 5);
|
|
$referer=$url;
|
|
$body = $page['body'];
|
|
/* $fp=@fopen($fichier, "a");
|
|
@fwrite($fp, $body);
|
|
@fclose($fp);*/
|
|
|
|
if (preg_match("/<h3>Fiche établissement<\/h3>/Uis", $body, $matches))//<li class="ongletActif">établissement</li>
|
|
$tabInfos['fiche']='etab';
|
|
|
|
if (preg_match('/<div class="TitreGauche">(.*)<br\/>/Uis', $body, $matches)) {
|
|
$tabInfos['raiSoc']=str_replace(''',"'",trim($matches[1]));
|
|
}
|
|
|
|
if (preg_match("/Dernière mise à jour : (.*)<\/div>/Uis", $body, $matches))
|
|
$tabInfos['dateMaj']=WDate::dateT('d/m/Y','Y-m-d',trim($matches[1]));
|
|
|
|
$s1=substr($siren,0,3);
|
|
$s2=substr($siren,3,3);
|
|
$s3=substr($siren,6,3);
|
|
if (preg_match('/<div class="TitreDroite">(?:.*)('.$s1.'(?:.*)'.$s2.'(?:.*)'.$s3.')(?:.*)(\d\d\d\d\d)(?:.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['siren'] = trim(str_replace(' ','',$matches[1]));
|
|
$tabInfos['nic'] = trim($matches[2]);
|
|
if ($nic=='') $nic=$tabInfos['nic'];
|
|
} else
|
|
$tabInfos['siren']=$siren;
|
|
|
|
if (preg_match('/<label id="labelFiche">Etat : <\/label>(.*)depuis le(.*)<\/p>/Uis', $body, $matches)) {
|
|
$tabInfos['etatEt'] = trim($matches[1]);
|
|
$tabInfos['dateEtatEt']=WDate::dateT('d/m/Y','Y-m-d',trim($matches[2]));
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Catégorie d\'établissement : <\/label>(.*)<\/p>/Uis', $body, $matches)) {
|
|
$tabInfos['typeEtab']= trim($matches[1]);
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Adresse d\'implantation \: <\/label>(?:.*)<ul id="adresse">(.*)<\/ul>/Uis', $body, $matches)) {
|
|
$strTmp=trim($matches[1]);
|
|
$tabTmp=explode('</li>', $strTmp);
|
|
foreach ($tabTmp as $i=>$strTmp)
|
|
$tabInfos['adresseEt'][$i]=trim(str_replace('<li>','',$strTmp));
|
|
}
|
|
|
|
if (preg_match('/gorie juridique \:(?:.*)<\/label>(.*) -(.*)<\/p>/Uis', $body, $matches)) {
|
|
$tabInfos['fj']= trim($matches[1]);
|
|
$tabInfos['fjLib']= trim($matches[2]);
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Activité principale exercée \:(?:.*)<\/label>(.*) -(.*)<\/p>/Uis', $body, $matches)) {
|
|
$tabInfos['nafEt']=trim($matches[1]);
|
|
$tabInfos['nafEtLib']=str_replace(''',"'",trim($matches[2]));
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">(?:.*)Tranche d'effectif(.*)<\/label>(.*)<\/p>/Uis', $body, $matches)) {
|
|
$tabInfos['effEtPeriode']=trim($matches[1]);
|
|
$tabInfos['effEtTr']=trim($matches[2]);
|
|
}
|
|
|
|
/* $strCsv=$siren.';'.$nic.';'.$tabInfos['fiche'].';'.$tabInfos['dateMaj'].';'.
|
|
$tabInfos['siren'].';'.$tabInfos['nic'].';'.$tabInfos['raiSoc'].';'.
|
|
$tabInfos['etat'].';'.$tabInfos['dateEtat'].';'.$tabInfos['fjCod'].';'.$tabInfos['fjLib'].';'.
|
|
$tabInfos['nafCod'].';'.$tabInfos['nafLib'].';'.$tabInfos['effPeriode'].';'.
|
|
$tabInfos['effTranche'].';'.
|
|
$tabInfos['typeEtab'].';'.@implode(';',@$tabAdresse).
|
|
";\n";
|
|
$fp=@fopen(PATH_LOGS."avis.csv", "a");
|
|
@fwrite($fp, $strCsv);
|
|
@fclose($fp);
|
|
*/
|
|
// $body contient l'avis de situation au format html
|
|
$tabErreurs=array();
|
|
if (preg_match('/name="erreurs" value="(.*)" class="erreurText" readonly/Ui', $body, $matches1) ||
|
|
preg_match('/name="erreurs_bis" value="(.*)" class="erreurTextBis" readonly/Ui', $body, $matches2)) {
|
|
$tabErreurs[]=@$matches1[1];
|
|
$tabErreurs[]=@$matches2[1];
|
|
//die('<font color="red">ERREUR '.utf8_encode(implode(' ', $tabErreurs)).'</font>'); // Gérer le retour d'une erreur
|
|
}
|
|
$tabInfos['erreurs']=implode('/',$tabErreurs);
|
|
|
|
//$tabInfos['debugEtab']=$body;
|
|
usleep(round(rand(500000,1000000)));
|
|
|
|
$url="http://avis-situation-sirene.insee.fr/avisitu/IdentificationEtabToEntr.do?nic=$nic&siren=$siren";
|
|
$page = getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 5);
|
|
$body = $page['body'];
|
|
//$tabInfos['debugEntrep']=$body;
|
|
if (preg_match('/<label id="labelFiche">Adresse d\'implantation \: <\/label>(?:.*)<ul id="adresse">(.*)<\/ul>/Uis', $body, $matches)) {
|
|
$strTmp=trim($matches[1]);
|
|
$tabTmp=explode('</li>', $strTmp);
|
|
foreach ($tabTmp as $i=>$strTmp)
|
|
$tabInfos['adresseEn'][$i]=trim(str_replace('<li>','',$strTmp));
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Activité principale exercée \:(?:.*)<div id="adresse">(.*) -(.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['nafEn']=trim($matches[1]);
|
|
$tabInfos['nafEnLib']=str_replace(''',"'",trim($matches[2]));
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">(?:.*)Tranche d'effectif(.*)<\/label>(?:.*)<div id="adresse">(.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['effEnPeriode']=trim($matches[1]);
|
|
$tabInfos['effEnTr']=trim($matches[2]);
|
|
}
|
|
|
|
if (preg_match('/gorie juridique \:(?:.*)<div id="adresse">(.*) -(.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['fjEn']= trim($matches[1]);
|
|
$tabInfos['fjEnLib']= str_replace(''',"'",trim($matches[2]));
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Entreprise employeuse \:(?:.*)<div id="adresse">(.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['employes']= trim($matches[1]);
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Etat : <\/label>(?:.*)<div id="adresse">(.*) le (.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['etatEn'] = str_replace(''',"'",trim($matches[1]));
|
|
$tabInfos['dateEtatEn']=WDate::dateT('d/m/Y','Y-m-d',trim($matches[2]));
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">NIC siège \:(?:.*)<div id="adresse">(.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['nicSiege']= trim($matches[1]);
|
|
}
|
|
|
|
if (preg_match('/<label id="labelFiche">Nb d\'établissements actifs \:(?:.*)<div id="adresse">(.*)<\/div>/Uis', $body, $matches)) {
|
|
$tabInfos['nbEtabActifs']= trim($matches[1]);
|
|
}
|
|
$tabInfos2=array();
|
|
for($i=0; $i<5; $i++) {
|
|
$tabInfos2['adresseEt'.$i]=str_replace(''',"'",$tabInfos['adresseEt'][$i]);
|
|
$tabInfos2['adresseEn'.$i]=str_replace(''',"'",$tabInfos['adresseEn'][$i]);
|
|
}
|
|
unset($tabInfos['fiche']);
|
|
unset($tabInfos['adresseEt']);
|
|
unset($tabInfos['adresseEn']);
|
|
|
|
$tabInsert=array_merge($tabInfos,$tabInfos2);
|
|
$tabInsert['dateInsert']=date('YmdHis');
|
|
$this->iDbInsee->insert('insee_avis', $tabInsert, true);
|
|
|
|
if (preg_match("/droit d'opposition/", $tabInsert['erreurs'])) {
|
|
$this->iDbInsee->insert('insee_nondiff', array('siren'=>$siren,
|
|
'dateInsert'=>date('YmdHis')));
|
|
}
|
|
$tabInfos['enCache']=false;
|
|
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getAvisInsee... en ACCES HTTP sur $siren", print_r($tabInfos, true).mysql_error());
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
return $tabInfos;
|
|
}
|
|
}
|
|
|
|
|
|
public function listeProduits($naf) {
|
|
$tabRet=array();
|
|
$ret=$this->iDbInsee->select('tabCpf', 'codCpf, libCpf',
|
|
"codCpf IN (SELECT cpf FROM tabNafCpf WHERE naf='$naf')", false, MYSQL_ASSOC);
|
|
foreach ($ret as $iRet=>$tabCpf) {
|
|
$tabRet[$tabCpf['codCpf']]=$tabCpf['libCpf'];
|
|
}
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::listeProduits sur $naf", print_r($tabRet, true));
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Retourne l'identifiant de l'Organisme de protection sociale compétent
|
|
**
|
|
** @param string $naf5 Code Naf de l'entreprise
|
|
** @param integer $codeCommune Code commune de l'entreprise
|
|
** @param integer $fj Forme juridique de l'entreprise
|
|
** @param date $dateCreation Date de création de l'entreprise
|
|
** @param integer $activiteReelle Activité réelle de l'entreprise
|
|
** @return
|
|
*/
|
|
public function getOPS($naf5, $codeCommune, $fj, $dateCreation, $activiteReelle='') {
|
|
/*
|
|
* 1. Vérifier si le NAF est dans la table sdv1.retraiteNaf (répertoire professionnel)
|
|
* 1.1. Si présent,
|
|
*
|
|
*/
|
|
$tabRet=array();
|
|
$naf4=substr($naf5,0,4);
|
|
$dep=substr($codeCommune,0,2);
|
|
if ($dep=='2A' || $dep=='2B') $dep=20;
|
|
else $dep=$dep*1;
|
|
if ($dep>96) $dep=substr($codeCommune,0,3)*1;
|
|
// Recherche par NAF
|
|
$ret=$this->iDb->select('sdv1.retraiteNaf',
|
|
'codeOPS, libInstitution, codeAnnexe, Limitations',
|
|
"naf5='$naf5' or naf5='$naf4'", false, MYSQL_ASSOC);
|
|
//print_r($ret);
|
|
//die();
|
|
if (count($ret)>0) {
|
|
$tabRet=array('competenceType'=>'professionnel');
|
|
foreach ($ret as $iRet=>$tabCaisses) {
|
|
if (count($ret)==1) {
|
|
$limite=$tabCaisses['Limitations'];
|
|
if ($tabCaisses['codeOPS']<>null) {
|
|
echo "Cas 1 : NAF $naf5 unique, annexe ".$tabCaisses['codeAnnexe']." - ".$tabCaisses['libInstitution']." (".$tabCaisses['Limitations'].")".EOL;
|
|
print_r($this->getInfoOPS($tabCaisses['codeOPS']));
|
|
return $tabCaisses['codeOPS'];
|
|
} elseif ($tabCaisses['Annexe']<>'') {
|
|
$annexe=$tabCaisses['Annexe'];
|
|
echo "Cas 2 : NAF $naf5, Annexe $annexe".EOL;
|
|
//print_r($this->getInfoOPS($idOPS));
|
|
break;
|
|
}
|
|
} else {
|
|
echo "Cas 3.1 : Non géré $naf5 !".EOL;
|
|
//print_r($this->getInfoOPS($idOPS));
|
|
print_r($tabCaisses);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Recherche par Département
|
|
$ret=$this->iDb->select('sdv1.retraiteDep',
|
|
'codeOPS, libInstitution',
|
|
"codeDep=$dep AND codeAnnexe IN ('$annexe','A','B') GROUP BY codeAnnexe ASC", false, MYSQL_ASSOC);
|
|
if (count($ret)>0) {
|
|
$tabRet=array('competenceType'=>'interprofessionnel');
|
|
foreach ($ret as $iRet=>$tabCaisses) {
|
|
//if (count($ret)==1) {
|
|
if ($tabCaisses['codeOPS']<>'') {
|
|
// echo "Cas 2.1 : NAF $naf5, Annexe $annexe".EOL;
|
|
echo "Cas 2.1 : NAF $naf5, annexe ".$tabCaisses['codeAnnexe']." - ".$tabCaisses['libInstitution']." (".$tabCaisses['Limitations'].")".EOL;
|
|
print_r($this->getInfoOPS($tabCaisses['codeOPS']));
|
|
return $tabCaisses['codeOPS'];
|
|
} else {
|
|
echo "Cas 2.2 : Non géré $naf5".EOL;
|
|
print_r($tabCaisses);
|
|
}
|
|
/*} else {
|
|
echo "Cas 3.2 : Non géré $naf5".EOL;
|
|
print_r($tabCaisses);
|
|
}*/
|
|
}
|
|
}
|
|
|
|
die();
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::listeProduits sur $naf", print_r($tabRet, true));
|
|
return false;
|
|
}
|
|
|
|
public function getInfoOPS($idOPS) {
|
|
$tabRet=array();
|
|
$ret=$this->iDb->select('sdv1.retraiteCaisses',
|
|
'siren,nic,codeOPS,nomLong,nomCourt,adresse1,adresse2,cp,ville,groupe,declaration,rattachement,codeOPSdest',
|
|
"codeOPS='$idOPS'", false, MYSQL_ASSOC);
|
|
return @$ret[0];
|
|
}
|
|
|
|
/** Retourne la date de changement de statut de siège à établissment secondaire pour un établissement donné
|
|
**
|
|
** @param integer $siren Siren de l'entreprise
|
|
** @param integer $nic Nic de l'étabissement
|
|
** @return date Date de changement d'état
|
|
*/
|
|
public function isAncienSiege($siren, $nic) {
|
|
$tabRet=array();
|
|
$ret=$this->iDbInsee->select('insee_even',
|
|
'insSIREN, insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insEVE, insDESTINAT, insTYPETAB, insORIGINE',
|
|
"insSIREN=$siren AND insNIC=$nic AND insMNICSIEGE=1 ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
return $ret[0]['insDATEVE'];
|
|
}
|
|
|
|
/** Recherche les siret associés à un siret (successeur et/ou prédécesseur)
|
|
**
|
|
** @param integer $siren Siren de l'entreprise
|
|
** @param integer $nic Nic de l'étabissement
|
|
** @param integer $lien Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
|
|
**/
|
|
public function getSiretAssoc($siren, $nic, $lien=0) {
|
|
$tabRet=array();
|
|
$ret=$this->iDbInsee->select('insee_even',
|
|
'insSIREN, insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insDESTINAT, insTYPETAB, insORIGINE, insTRAN, insNOMEN, insENSEIGNE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insVMAJ, sirVersion',
|
|
"insSIREN=$siren AND insNIC<>$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%') AND insDATEMAJ IN (
|
|
SELECT insDATEMAJ FROM insee_even WHERE insSIREN=$siren AND insNIC=$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%') )", false, MYSQL_ASSOC);
|
|
foreach ($ret as $iRet=>$tabEve) {
|
|
if ($tabEve['sirVersion']==4) {
|
|
if ($tabEve['insEVE']=='CTE' || $tabEve['insEVE']=='CTS' || $tabEve['insEVE']=='MTAE' || $tabEve['insEVE']=='MTAS') $typeLien='suc';
|
|
elseif ($tabEve['insEVE']=='STE' || $tabEve['insEVE']=='STS' || $tabEve['insEVE']=='MTDE' || $tabEve['insEVE']=='MTDS') $typeLien='pre';
|
|
else $typeLien='ind';
|
|
} else {
|
|
switch($tabEve['insTYPETAB']*1) {
|
|
case 8:
|
|
case 10:
|
|
case 20:
|
|
case 30:
|
|
if ($lien==1) continue;
|
|
$typeLien='pre';
|
|
break;
|
|
case 9:
|
|
case 11:
|
|
case 21:
|
|
case 31:
|
|
if ($lien==-1) continue;
|
|
$typeLien='suc';
|
|
break;
|
|
default:
|
|
switch($tabEve['insTRAN']) {
|
|
case 'D': if ($lien==1) continue; $typeLien='pre'; break(2);
|
|
case 'A': if ($lien==-1) continue; $typeLien='suc'; break(2);
|
|
default : if ($lien<>0) continue; $typeLien='ind'; break;
|
|
}
|
|
}
|
|
}
|
|
|
|
$adr1=$tabEve['insL1_NOMEN'];
|
|
if ($adr1==NULL) $adr1=$tabEve['insNOMEN'];
|
|
$adr2=$tabEve['insL2_COMP'];
|
|
if ($adr2==NULL) $adr2=$tabEve['insENSEIGNE'];
|
|
$adr4=$tabEve['insL4_VOIE'];
|
|
if ($adr4==NULL) $adr4=preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
|
|
|
|
$tabRet[$typeLien]=array('siren' => $tabEve['insSIREN'],
|
|
'nic' => $tabEve['insNIC'],
|
|
'apeEtab' => $tabEve['insAPET700'],
|
|
'codeEve' => $tabEve['insEVE'],
|
|
'dateEve' => $tabEve['insDATEVE'],
|
|
'adrL1' => trim($adr1),
|
|
'adrL2' => trim($adr2),
|
|
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
|
|
'adrL4' => trim($adr4),
|
|
'adrL5' => trim($tabEve['insL5_DISP']),
|
|
'adrL6' => trim($tabEve['insL6_POST']),
|
|
'adrL7' => trim($tabEve['insL7_ETRG']),
|
|
'depCom' => $tabEve['insDEPCOM'],
|
|
'rivoli' => $tabEve['insCODEVOIE'],
|
|
'siege' => $tabEve['insSIEGE'],
|
|
'destinat' => $tabEve['insDESTINAT'],
|
|
'typEtab' => $tabEve['insTYPETAB'],
|
|
'origine' => $tabEve['insORIGINE'],
|
|
// insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS,
|
|
);
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
public function getInfoSirene($dept, $siren, $apen=false) {
|
|
$strAdr1Comp=$tel='';
|
|
if ($siren>=100000000 && $siren<300000000){
|
|
$dept=18;
|
|
$strAdr1Comp=', Pôle Secteur Public';
|
|
} else {
|
|
if (!$apen) {
|
|
$tabId=$this->getIdentiteLight($siren);
|
|
$apen=$tabId['NafEnt'];
|
|
$strAdr1Comp=', Pôle Agricole';
|
|
}
|
|
$apen2=''.substr($apen,0,2);
|
|
if ($apen2=='01' || $apen2=='02') {
|
|
$dept=59; //
|
|
$tel='03.20.62.86.45';
|
|
}
|
|
}
|
|
$ret=$this->iDbInsee->select('insee_drsiren', 'siret,nom,adr1,adr2,adr3,cp,ville,tel,fax',
|
|
"dept='$dept'", false, MYSQL_ASSOC);
|
|
$ret=$ret[0];
|
|
if ($tel=='') $tel=$ret['tel'];
|
|
return array('siret'=>$ret['siret'],
|
|
'nom'=>$ret['nom'],
|
|
'adr1'=>$ret['adr1'].$strAdr1Comp,
|
|
'adr2'=>$ret['adr2'],
|
|
'adr3'=>$ret['adr3'],
|
|
'cp'=>$ret['cp'],
|
|
'ville'=>$ret['ville'],
|
|
'standard'=>'09.72.72.6000',
|
|
'tel'=>$tel,
|
|
'fax'=>$ret['fax']);
|
|
}
|
|
|
|
public function getInfosIris($codeCommune, $codeRivoli, $adrNum, $adrIndRep, $adrTypVoie, $adrLibVoie) {
|
|
$tabTypeIris=array('A'=>'IRIS d\'activité', 'H'=>'IRIS d\'habitat', 'D'=>'IRIS divers (grande zone peu habité dont parcs, ports, forêts, ...)', 'Z'=>'Commune non découpée en IRIS');
|
|
$tabRet=$ret2=array();
|
|
if (trim($codeRivoli)=='') {
|
|
$adrLibVoie2=addslashes($adrLibVoie);
|
|
$ret=$this->iDbInsee->select('iris', 'codeInsee, codeIris, rivoli, typVoie, libVoie, typeNum, numd,indd, numf, indf, codeInseeIris',
|
|
"codeInsee='$codeCommune' AND libVoie LIKE '$adrLibVoie2%' GROUP BY codeInsee, rivoli", false, MYSQL_ASSOC);
|
|
if (count($ret)==1)
|
|
$codeRivoli=$ret[0]['rivoli'];
|
|
elseif (count($ret)>1 && $adrLibVoie<>'') {
|
|
foreach ($ret as $retTmp) {
|
|
if ($retTmp['typVoie']==strtoupper($adrTypVoie)) {
|
|
$codeRivoli=$retTmp['rivoli'];
|
|
$trouve=true;
|
|
break;
|
|
}
|
|
}
|
|
if (!$trouve) {
|
|
@sendMail( 'production@scores-decisions.com', 'ylenaour@scores-decisions.com',
|
|
"classMInsee::getInfosIris sur $codeCommune pas de RIVOLI sur $adrNum $adrIndRep $adrTypVoie $adrLibVoie (cas 1a)",
|
|
"Plusieurs codes IRIS pour un même rivoli".EOL.print_r($ret, true));
|
|
print_r($ret);
|
|
// die("TROP DE RIVOLI POUR '$codeCommune' et '$adrLibVoie2' ($adrNum, $adrIndRep, $adrTypVoie)");
|
|
}
|
|
} else
|
|
return $tabRet;
|
|
}
|
|
$ret=$this->iDbInsee->select('iris', 'codeInsee, codeIris, rivoli, codeInseeIris',
|
|
"codeInsee='$codeCommune' AND rivoli LIKE '$codeRivoli%' GROUP BY codeInseeIris", false, MYSQL_ASSOC);
|
|
$adrNum=preg_replace('/^0/','',$adrNum)*1;
|
|
$strAdr='';
|
|
if (count($ret)>1) {
|
|
if($adrNum>0 && $adrNum&1) {
|
|
// Numéro impaire
|
|
$strAdr=" AND typeNum=1 AND $adrNum BETWEEN numd AND numf ";
|
|
} elseif($adrNum>=0) {
|
|
// Numéro paire
|
|
$strAdr=" AND typeNum=2 AND $adrNum BETWEEN numd AND numf ";
|
|
}
|
|
$ret=$this->iDbInsee->select('iris', 'codeInsee, codeIris, rivoli, codeInseeIris, numd,indd, numf, indf',
|
|
"codeInsee='$codeCommune' AND rivoli LIKE '$codeRivoli%' $strAdr GROUP BY codeInseeIris", false, MYSQL_ASSOC);
|
|
if (count($ret)>1 && $codeRivoli<>'') {
|
|
/** Attention, dans cette logique, le Bis fonctionne mais le Quater passe avant le Ter alors que
|
|
2 bis
|
|
3 ter
|
|
4 quater
|
|
mais il peut aussi s'agir de suites A, B, C, D, etc...
|
|
**/
|
|
$numAdrRep=$adrNum+ord(strtoupper($adrIndRep))/100;
|
|
foreach ($ret as $i=>$tabIris) {
|
|
$numIrisDeb=$tabIris['numd']+ord(strtoupper($tabIris['indd']))/100;
|
|
$numIrisFin=$tabIris['numf']+ord(strtoupper($tabIris['indf']))/100;
|
|
if ($adrNum==$tabIris['numd'] && $numAdrRep>=$numIrisDeb) {
|
|
// Le numéro de la rue correspond au début de la tranche des numéros IRIS
|
|
$ret2=array(0=>$tabIris);
|
|
break;
|
|
}
|
|
elseif ($adrNum==$tabIris['numf'] && $numAdrRep<=$numIrisFin) {
|
|
// Le numéro de la rue correspond à la fin de la tranche des numéros IRIS
|
|
$ret2=array(0=>$tabIris);
|
|
break;
|
|
}
|
|
}
|
|
if (count($ret2)<>1)
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getInfosIris sur $codeCommune/$codeRivoli IRIS multiple KO sur $adrNum $adrIndRep $adrTypVoie $adrLibVoie (cas 1a)", "Plusieurs codes IRIS pour le même rivoli".EOL.print_r($ret, true));
|
|
else {
|
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getInfosIris sur $codeCommune/$codeRivoli IRIS multiple ok sur $adrNum $adrIndRep $adrTypVoie $adrLibVoie (cas 1b)", "Plusieurs codes IRIS pour le même rivoli".EOL.print_r($ret2, true).EOL.print_r($ret, true));
|
|
$ret=$ret2;
|
|
}
|
|
}
|
|
} /*elseif ($codeRivoli<>'') {
|
|
|
|
}*/
|
|
if (count($ret)<2 || $codeRivoli=='') {
|
|
$codeIris=@$ret[0]['codeIris'];
|
|
$codeComIris=@$ret[0]['codeInseeIris'];
|
|
$ret=$this->iDbInsee->select('insee_tabIris', 'CODE_IRIS AS codeInseeIris, SUBSTRING(CODE_IRIS,6,4) AS codeIris, LIB_IRIS, TYP_IRIS, MODIF_IRIS, TRIRIS, GRD_QUART',
|
|
"DEPCOM='$codeCommune' AND (TYP_IRIS='Z' OR CODE_IRIS='$codeComIris')", false, MYSQL_ASSOC);
|
|
$tabRet=array('codIris'=>$ret[0]['codeIris'],
|
|
'codComIris'=>$ret[0]['codeInseeIris'],
|
|
'libIris'=>$ret[0]['LIB_IRIS'],
|
|
'typIris'=>$tabTypeIris[$ret[0]['TYP_IRIS']],
|
|
'evoIris'=>$ret[0]['MODIF_IRIS'],
|
|
'trIris'=>$ret[0]['TRIRIS'],
|
|
'grdQuartier'=>$ret[0]['GRD_QUART'],
|
|
'rivoli'=>$codeRivoli,
|
|
);
|
|
/*
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getInfosIris sur $codeCommune/$codeRivoli", "Debug IRIS sur $adrNum, $adrTypVoie, $adrLibVoie".EOL."SELECT codeInsee, codeIris, rivoli, codeInseeIris
|
|
FROM iris
|
|
WHERE codeInsee='$codeCommune' AND rivoli LIKE '$codeRivoli%' $strAdr GROUP BY codeInseeIris;
|
|
|
|
SELECT CODE_IRIS AS codeInseeIris, SUBSTRING(CODE_IRIS,6,4) AS codeIris, LIB_IRIS, TYP_IRIS, MODIF_IRIS, TRIRIS, GRD_QUART
|
|
FROM insee_tabIris
|
|
WHERE DEPCOM='$codeCommune' AND (TYP_IRIS='Z' OR CODE_IRIS='$codeComIris');".EOL.print_r($tabRet, true));
|
|
*/
|
|
} else {
|
|
//typVoie, libVoie, rivoli, typeNum 1:chiffres impaires, 2:chiffres paires
|
|
//numd, indd, numf, indf
|
|
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee::getInfosIris sur $codeCommune/$codeRivoli IRIS multiple KO sur $adrNum $adrIndRep $adrTypVoie $adrLibVoie (cas 2)", "Plusieurs codes IRIS pour le même rivoli".EOL.print_r($ret, true));
|
|
}
|
|
return $tabRet;
|
|
}
|
|
|
|
/** Donne la tranche de CA à partir du CA réel
|
|
* @param double $montantCA Chiffre d'affaires réel ou estimé
|
|
* @return integer Tranche de CA
|
|
*/
|
|
public function getTca($montantCA) {
|
|
$montantCA=$montantCA*1;
|
|
if ($montantCA>=200000000) // 9 : 200 millions d'euros ou plus)
|
|
return 9;
|
|
elseif ($montantCA>=100000000) // 8 : De 100 millions à moins de 200 millions d'euros
|
|
return 8;
|
|
elseif ($montantCA>= 50000000) // 7 : De 50 millions à moins de 100 millions d'euros
|
|
return 7;
|
|
elseif ($montantCA>= 20000000) // 6 : De 20 millions à moins de 50 millions d'euros
|
|
return 6;
|
|
elseif ($montantCA>= 10000000) // 5 : De 10 millions à moins de 20 millions d'euros
|
|
return 5;
|
|
elseif ($montantCA>= 5000000) // 4 : De 5 millions à moins de 10 millions d'euros
|
|
return 4;
|
|
elseif ($montantCA>= 2000000) // 3 : De 2 millions à moins de 5 millions d'euros
|
|
return 3;
|
|
elseif ($montantCA>= 1000000) // 2 : De 1 million à moins de 2 millions d'euros
|
|
return 2;
|
|
elseif ($montantCA>= 500000) // 1 : De 0,5 à moins de 1 million d'euros
|
|
return 1;
|
|
else
|
|
return 0; // Non renseignée ou moins de 0,5 million d'euros
|
|
}
|
|
|
|
/** CA Moyen par salarié pour un secteur donné
|
|
** @param string $naf Naf de l'entreprise
|
|
** @param integer $effectif Effectif de l'entreprise
|
|
**/
|
|
public function getCAnafEffectif($naf, $effectif=0) {
|
|
$tabTmp=$this->iDb->select('ratios_secteurs', 'id, naf5, annee, SUM(montant), SUM(nombre), SUM(montant)/SUM(nombre) AS moyenne', "naf5='$naf' AND id=267 AND ANNEE>(SELECT MAX(annee) FROM ratios_secteurs WHERE naf5='$naf' AND id=267)-2 GROUP BY id, naf5", true, MYSQL_ASSOC);
|
|
if (count($tabTmp)>0) {
|
|
$caSecteur=round($tabTmp[0]['moyenne']*1000);
|
|
// Encours moyen secteur * nb salariés
|
|
if ($effectif>0) return $caSecteur*$effectif;
|
|
else return $caSecteur;
|
|
} else
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
public function getCodeVoieRivoli($codeCommune, $adrTypVoie, $adrLibVoie) {
|
|
// echo "$codeCommune : Recherche du code RIVOLI pour '$adrTypVoie / $adrLibVoie'".EOL;
|
|
$codeVoie='';
|
|
$adrTypVoie=strtoupper($adrTypVoie);
|
|
$adrLibVoie=strtoupper($adrLibVoie);
|
|
$adrLibVoie2=addslashes($adrLibVoie);
|
|
$tDeb=microtime(1);
|
|
$tabVoiesNoff=array('LD'=> '',
|
|
'R'=> 'RUE',
|
|
'CITE'=>'CTE',
|
|
'FG'=> 'FBG',
|
|
'PL'=> 'PCE',
|
|
'QU'=> 'QUAI',
|
|
'QUA'=> 'QRT',
|
|
//'QUA'=>'QUR',
|
|
'SQ'=> 'SQR',
|
|
'VLGE'=>'VGE',
|
|
'VOI'=>'VOIE');
|
|
if (array_key_exists($adrTypVoie, $tabVoiesNoff) || in_array($adrTypVoie, $tabVoiesNoff)) {
|
|
$typeVoieNoff=$adrTypVoie;
|
|
$typeVoieOff=@$tabVoiesNoff[$adrTypVoie];
|
|
if ($typeVoieOff=='QUA')
|
|
$strTypesVoies=" AND voieNature IN('QUA','QRT','QUR') ";
|
|
else
|
|
$strTypesVoies=" AND voieNature IN('$typeVoieNoff','$typeVoieOff') ";
|
|
} else {
|
|
$typeVoieOff=$typeVoieNoff=$adrTypVoie;
|
|
$strTypesVoies=" AND voieNature='$typeVoieOff' ";
|
|
}
|
|
// $ret=$this->iDbInsee->select( 'fantoirVoi', "codComInsee, idVoieCom, cleRivoli, voieNature, voieLib, MATCH (codComInsee, voieNature, voieLib) AGAINST ('$codeCommune $adrTypVoie $adrLibVoie2' IN NATURAL LANGUAGE MODE) AS score",
|
|
// "codComInsee='$codeCommune' AND MATCH (codComInsee, voieNature, voieLib) AGAINST ('$codeCommune $adrTypVoie $adrLibVoie2' IN NATURAL LANGUAGE MODE) ORDER BY score DESC",false, MYSQL_ASSOC);
|
|
$ret=$this->iDbInsee->select( 'fantoirVoi', "codComInsee, idVoieCom, cleRivoli, voieNature, voieLib, 1 AS score",
|
|
"codComInsee='$codeCommune' $strTypesVoies AND voieLib='$adrLibVoie2'",false, MYSQL_ASSOC);
|
|
//echo "SQL WHERE : codComInsee='$codeCommune' $strTypesVoies AND voieLib='$adrLibVoie2'".EOL;
|
|
$nbRet=count($ret);
|
|
if ($nbRet==0) return '';//'Aucune correspondance Rivoli'.EOL;
|
|
else {
|
|
foreach($ret as $i=>$iRet) {
|
|
//echo "$codeCommune : je compare '$adrTypVoie' avec '".$iRet['voieNature']."' et '$adrLibVoie' avec '".$iRet['voieLib']."' ";
|
|
if (($iRet['voieNature']==$typeVoieOff || $iRet['voieNature']==$typeVoieNoff) && $iRet['voieLib']==$adrLibVoie) {
|
|
$codeVoie=$iRet['idVoieCom'];
|
|
break;
|
|
// echo 'OK ('.round(microtime(1)-$tDeb,3).'s.)'.EOL;
|
|
// if ($iRet['score']>17 || ($nbRet==1 && $iRet['score']>6.88)) break;
|
|
}
|
|
// echo 'ko ('.round(microtime(1)-$tDeb,3).'s.) !!!'.EOL;
|
|
}
|
|
}
|
|
return $codeVoie;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function getInfoPrecedente($tabSir, $dateEven, $even) {
|
|
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMInsee, getInfoPrecedente avant le $dateEven pour '$even'", print_r($tabSir, true));
|
|
foreach ($tabSir as $date=>$tabInfo) {
|
|
if ($date>$dateEven) continue;
|
|
return $tabInfo[$even];
|
|
}
|
|
return '';
|
|
}
|
|
|
|
?>
|