batch/old/convertSdCsv2.php
2013-06-19 08:24:49 +00:00

600 lines
32 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

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

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('VERSION_FICHIER_BODACC','0106');
/**
* @todo
* 1. Numéroter toutes les procédures OK
* 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc
* 101 Commentaire
* 102 Activite déclaré au Bodacc
* 103 texte rectificatif
* 104 Annonce complète au format texte
* 105 Structure Dirigeants BODACC
* 106 Libellé du Périmètre de la vente
* 3.
* 5. JugesCommissaires à intégrer correctement
Noms et prénoms des dirigeants de l'entreprise ' Anum. ?
Raison sociale du vendeur Anum. 255
Siren du vendeur (en cas de Vente/Cessions) Num. 9
Indicateur de correction du SIREN vendeur (si C, le siren diffusé au BODACC est faut mais S&D a affecté le bon SIREN) ' Car. 1
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
$iBodacc=new MBodacc();
$iInsee=new MInsee();
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Conversion de fichier(s) plat(s) multi-structures S&D en fichier(s) CSV.
Options :
-v Mode verbose
-n Ajout des nics A6CMO
-x Formater la sortie standard en CSV pour exploitation
";
$tabFichier=array();
$verbose=false;
$sortieCSV=false;
$ajoutNic=false;
$csvAnn=false;
$csvId=false;
$argv=$_SERVER['argv'];
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'a':
$csvAnn=true;
break;
case 'i':
$csvId=true;
break;
case 'n':
$ajoutNic=true;
break;
case 'v':
$verbose=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else $tabFichier[]=$argv[$i];
}
if (count($tabFichier)<1)
die($strInfoScript);
if (!$csvAnn && !$csvId) $csvAnn=true;
$ligne001tot=$ligne100tot=$ligne104tot=$ligne200tot=$ligne999tot=0;
$ligne100chaptot=array('comptes'=>0, 'creations'=>0, 'mmd'=>0, 'procol'=>0, 'radiations'=>0, 'ventes'=>0);
$procoltot=array('CONC'=>0, 'SAUV'=>0, 'RJ'=>0, 'LJ'=>0, 'SUITE'=>0);
foreach ($tabFichier as $iFic=>$fichier) {
$ligne001=$ligne100=$ligne104=$ligne200=$ligne999=0;
$ligne100chap=array('comptes'=>0, 'creations'=>0, 'mmd'=>0, 'procol'=>0, 'radiations'=>0, 'ventes'=>0);
$procol=array('CONC'=>0, 'SAUV'=>0, 'RJ'=>0, 'LJ'=>0, 'SUITE'=>0);
$tabLignes=file($fichier);
$fp=fopen($fichier.'.csv', 'w');
foreach ($tabLignes as $i=>$ligne) {
$ligne=strtr($ligne,';',' ');
$ecrireLignePre=false;
$typeLigne=substr($ligne, 0, 3)*1;
switch ($typeLigne) {
case 1: // Ligne ignorée
// if ($csvAnn && !$csvId)
// Ecriture de l'entête
$siren ='Siren';
$nic ='Nic';
$ref ='Référence';
$numPar ='Parution';
$bodacc ='Bodacc';
$datePar='Date parution';
$numAnn ='Numéro Annonce';
$cor ='Type Annonce';
$libTri ='Tribunal';
$numRC ='Numéro RCS';
$raisonS='Raison sociale';
$catEven='Chapitre';
$txtEven='Evènement(s)';
$txtAnn ='Texte Annonce';
$codeTri ='Code Tribunal';
$actifEt ='Etab. Actif';
$siege ='Siège';
$nomCom ='Nom Commercial';
$enseigne ='Enseigne';
$sigle ='Sigle';
$adrEtNum ='Adresse Num';
$adrEtBtq ='Adresse Btq';
$adrEtTypV ='Adresse Type Voie';
$adrEtVoie ='Adresse Lib Voie';
$adrEtComp ='Complèment adresse';
$adrEtDisp ='Adresse Distribution Spéciale';
$adrEtCp ='Adresse CP';
$adrEtVille ='Adresse Ville';
$adrEtPays ='Adresse Pays';
$capital ='Capital';
$capitalDev ='';
$cj ='Forme Juridique';
$civilite ='Civilité';
$nbEtab ='Nb Etab';
$dateMaj ='Date MAJ';
$sitJur ='Situation Juridique';
$depCom ='Code Commune';
$rivoli ='Fantoir';
$iris ='IRIS';
$ilot ='Ilot';
$indDom ='Domiciliation';
$tel ='Téléphone';
$fax ='Fax';
$web ='Web';
$mail ='Mail';
$auxil ='Auxiliarité';
$saisonat ='Saisonnalité';
$activnat ='Nature Activité';
$origine ='Origine création';
$typexploit ='Type Exploitation';
$lieuact ='Lieu Activité';
$actisurf ='Type magasin';
$prodpart ='ProdPart';
$arronet ='Arrondissemeent';
$ctonet ='Canton';
$tcd ='Tranche commune';
$zemet ='Zone Emploi';
$du ='Dépt Unité Urbaine';
$tu ='Taille Unité Urbaine';
$uu ='Numéro Unité Urbaine';
$dcret ='Date création étab.';
$apet ='NAF étab.';
$nacet ='NACE étab';
$dapet ='Année NAF étab';
$effet ='Effectif étab.';
$teffet ='Tranche Eff. ét.';
$defet ='Année effectif étab.';
$modet ='Modalité APE étab.';
$explet ='Etab. exploitant';
$rpet ='Région étab.';
$dreactet ='Date réactivation étab.';
$dateferet ='Date fermeture étab.';
$eaeant ='Année EAE';
$eaeapet ='APE1 EAE';
$eaesec1t ='APE2 EAE';
$eaesec2t ='APE3 EAE';
$dcren ='Date création ent.';
$apen ='NAF ent.';
$nacen ='NACE ent.';
$dapen ='Année NAF ent.';
$effen ='Effectif ent.';
$teffen ='Tranche Eff. ent';
$defen ='Année effectif ent.';
$moden ='Modalité APE ent.';
$explen ='Ent. exploitante';
$rpen ='Région ent.';
$dreacten ='Date réactivation ent.';
$dateferen ='Date fermeture ent.';
$dateImma ='Date Immatriculation';
$dateRad ='Date Radiation';
$tca ='Tranche CA';
$tcaExp ='Tranche CA Exp.';
$zus ='ZUS';
$zru ='ZRU';
$zfu ='ZFU';
$cucs ='CUCS';
$afr ='AFR';
$zrr ='ZRR';
$tva ='TVA';
$isin ='ISIN';
$dir1nom ='Dirigeant 1 nom';
$dir1prenom ='Dirigeant 1 prénom';
$dir1cfct ='Dirigeant 1 code Fct';
$dir2nom ='Dirigeant 2 nom';
$dir2prenom ='Dirigeant 2 prénom';
$dir2cfct ='Dirigeant 2 code Fct';
$bilanClot ='Date dernier bilan';
$bilanDuree ='Durée bilan';
$bilanCA ='Dernier CA';
$bilanRES ='Dernier Résultat';
$ligneOut='';
$ligne001++;
$ligne001tot++;
break;
case 200: // Structure Identité
if (!$csvId) break;
$ligneOut ="$siren;$nic;$codeTri;$libTri;$numRC;$actifEt;$siege;$raisonS;$nomCom;$enseigne;$sigle;";
$ligneOut.="$adrEtNum;$adrEtBtq;$adrEtTypV;$adrEtVoie;$adrEtComp;$adrEtDisp;$adrEtCp;$adrEtVille;$adrEtPays;";
$ligneOut.="$capital $capitalDev;$cj;$civilite;$nbEtab;$dateMaj;$sitJur;$depCom;$rivoli;$iris;$ilot;$indDom;";
$ligneOut.="$tel;$fax;$web;$mail;$auxil;$saisonat;$activnat;$origine;$typexploit;$lieuact;$actisurf;$prodpart;";
$ligneOut.="$arronet;$ctonet;$tcd;$zemet;$du;$tu;$uu;$dcret;$apet;$nacet;$dapet;$effet;$teffet;";
$ligneOut.="$defet;$modet;$explet;$rpet;$dreactet;$dateferet;$eaeant;$eaeapet;$eaesec1t;$eaesec2t;";
$ligneOut.="$dcren;$apen;$nacen;$dapen;$effen;$teffen;$moden;$explen;$rpen;$dreacten;$dateferen;$dateImma;$dateRad;$tca;$tcaExp;";
$ligneOut.="$zus;$zru;$zfu;$cucs;$afr;$zrr;$tva;$isin;$dir1nom;$dir1prenom;$dir1cfct;$dir2nom;$dir2prenom;$dir2cfct;";
$ligneOut.="$bilanClot;$bilanDuree;$bilanCA;$bilanRES";
$ligne200++;
$ligne200tot++;
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise
$nic = trim(substr($ligne, 22, 5 )); // Nic de l'établissement
/*
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ
$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc
$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion
$cor='';
if ($typeAnn<>'I')
$cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate);
switch($typeAnn) {
case 'I': $cor='Insertion'.$cor; break;
case 'A': $cor='Additif'.$cor; break;
case 'R': $cor='Rectificatif'.$cor; break;
case 'S': $cor='Suppression'.$cor; break;
default: break;
}
*/
$codeTri=trim(substr($ligne, 41 , 6 )); // Code Tribunal Codification interne utilisée par le Bodacc
$libTri=@$iBodacc->getTribunalNom($codeTri);
$adrEtNum= trim(substr($ligne, 513 , 4)); // Adresse de l'établissement : Numéro dans la voie
$adrEtBtq= trim(substr($ligne, 517 , 1 )); // ADR_BTQ Indicateur de répétition (Bis, Ter, etc...)
$adrEtTypV= trim(substr($ligne, 518 , 4 )); // ADR_TYPVOIE Type de voie
$adrEtVoie= trim(substr($ligne, 522 , 32 )); // Adresse de l'établissement : Libellé de la voie
$adrEtComp= trim(substr($ligne, 591 , 38 )); // ADR_COMP Complément d'adresse
$adrEtDisp = trim(substr($ligne, 629 , 38 )); // ADR_DISTSP Distribution spéciale
$adrEtCp= trim(substr($ligne, 586 , 5 )); // Code Postal de l'établissement
$adrEtVille=trim(substr($ligne, 554 , 32 )); // Ville de l'établissement
$adrEtPays = trim(substr($ligne, 667 , 38 )); // PAYS Pays
$numRC = trim(substr($ligne, 31 , 10 )); // Numéro de RC (Registre du Commerce) de l'entreprise
$raisonS= trim(substr($ligne, 73 , 160 )); // Raison sociale de l'entreprise
/* $siren = substr($ligne, 3 , 10 ); // ID Numéro unique d'identification interne d'un établissement S&D
$siren = substr($ligne, 27 , 3 ); // SOURCE Source de la fiche d'identité
$siren = substr($ligne, 30 , 1 ); // SIRETVALIDE Siren/siret valide
*/
$dateMaj= substr($ligne, 47 , 8 ); // DATEMAJ Date de la dernière mise à jour dans la base S&D
$actifEt = substr($ligne, 55 , 1 ); // ACTIF Établissement juridiquement actif
// $siren = substr($ligne, 56 , 1 ); // ACTIFECO Établissement économiquement actif
$sitJur = trim(substr($ligne, 57 , 2 )); // SITJUR Situation Juridique de l'entreprise
// $siren = substr($ligne, 59 , 3 ); // EVE Dernier événement Insee recensé
$dateEve = substr($ligne, 62 , 8 ); // DATEVE Date du dernier événement Insee recensé
// $siren = substr($ligne, 70 , 2 ); // TYPETAB Type d'établissement concerné par l'événement
$siege = substr($ligne, 72 , 1 ); // SIEGE Établissement siège, secondaire ou principal
$nomCom = trim(substr($ligne, 233 , 160 )); // NOMCOM Nom commercial
$enseigne = trim(substr($ligne, 393 , 80 )); // ENSEIGNE Enseigne de l'établissement
$sigle = trim(substr($ligne, 473 , 40 )); // SIGLE sigle de l'entreprise
$depCom = substr($ligne, 707 , 5 ); // ADR_DEP Département de l'établissement
$rivoli = trim(substr($ligne, 712 , 5 )); // CODEVOIE Code voie de l'établissement
$iris = trim(substr($ligne, 717 , 4 )); // CODEIRIS Code Iris de l'établissement
$ilot = trim(substr($ligne, 721 , 5 )); // CODEILOT Code Ilot de l'établissement
$indDom = trim(substr($ligne, 726 , 1 )); // ADRESSEDOM Indicateur d'adresse de domiciliation
$tel= trim(substr($ligne, 727 , 15 )); // TEL Numéro de téléphone
$fax = trim(substr($ligne, 742 , 15 )); // FAX Numéro de télécopie
$web = trim(substr($ligne, 757 , 80 )); // WEB Site Web
$mail = trim(substr($ligne, 837 , 80 )); // MAIL Adresse Email de contact générique
$auxilt = trim(substr($ligne, 917 , 1 )); // AUXILT Auxiliarité de l'activité de l'établissement
$saisonat= trim(substr($ligne, 918 , 1 )); // SAISONAT Saisonnalité de l'établissement
$activnat= trim(substr($ligne, 919 , 2 )); // ACTIVNAT Nature de l'activité de l'établissement
$origine= trim(substr($ligne, 921 , 2 )); // ORIGINE Origine de la création de l'établissement
$typexploit= trim(substr($ligne, 923 , 2 )); // TYPEXPLOIT Type d'exploitation
$lieuact=trim(substr($ligne, 925 , 2 )); // LIEUACT Lieu de l'activité de l'établissement
$actisurf=trim(substr($ligne, 927 , 2 )); // ACTISURF Type de magasin
$prodpart=trim(substr($ligne, 929 , 1 )); // PRODPART Participation particulière à la production de l'établissement
$arronet=trim(substr($ligne, 930 , 2 )); // ARRONET Arrondissement de l'établissement
$ctonet = trim(substr($ligne, 932 , 3 )); // CTONET Canton
$tcd=trim(substr($ligne, 935 , 2 )); // TCD Tranche de commune détaillée
$zemet= trim(substr($ligne, 937 , 2 )); // ZEMET Zone d'emploi
$du= trim(substr($ligne, 939 , 2 )); // DU Département de l'unité urbaine de localisation
$tu= trim(substr($ligne, 941 , 1 )); // TU Taille de l'unité urbaine
$uu= trim(substr($ligne, 942 , 2 )); // UU Numéro de l'untié urbaine
$dcret = substr($ligne, 944 , 8 ); // DCRET Date de création de l'établissement
$apet = substr($ligne, 952 , 5 ); // APE_ETAB Code activité dans la NAF rév2 de l'établissement
$nacet= trim(substr($ligne, 957 , 5 )); // NACE_ETAB Code activité NACE de l'établissement
$dapet = trim(substr($ligne, 962 , 4 )); // DAPET Année de validité de l'activité principale de l'établissement
$effet = trim(substr($ligne, 966 , 7 ))*1; // EFF_ET Effectif de l'établissement
$teffet = substr($ligne, 973 , 2 ); // TEFF_ET Tranche d'effectif de l'établissement
$defet = trim(substr($ligne, 975 , 4 )); // DEFET Année de mise à jour de l'effectif établissement
$modet = trim(substr($ligne, 979 , 1 )); // MODET Modalité de l'activité pricipale de l'établissement
$explet= trim(substr($ligne, 980 , 1 )); // EXPLET Etablissement exploitant tout ou partie des moyens de production
$rpet = trim(substr($ligne, 981 , 2 )); // RPET Région de localisation de l'établissement
$dreactet = trim(substr($ligne, 983 , 8 )); // DREACTET Date de réactivation de l'établissement
$dateferet = trim(substr($ligne, 991 , 8 )); // DATEFERET Date de fermeture de l'établissement
$eaeant = trim(substr($ligne, 999 , 4 )); // EAEANT Année de validité des rubriques de niveau Etab provenant des EAE*
$eaeapet = trim(substr($ligne, 1003 , 5 )); // EAEAPET Activité principale de l'établissement issue des EAE
$eaesec1t = trim(substr($ligne, 1008 , 5 )); // EAESEC1T Activité secondaire de l'établissement issue des EAE
$eaesec2t = trim(substr($ligne, 1013 , 5 )); // EAESEC2T Autre activité secondaire de l'établissement issue des EAE
$dcren = substr($ligne, 1018 , 8 ); // DCREN Date de création de l'entreprise
$apen = substr($ligne, 1026 , 5 ); // APE_ENT Code activité dans la NAF rév2 de l'entreprise
$nacen = substr($ligne, 1031 , 5 ); // NACE_ENT Code activité NACE de l'entreprise
$dapen = substr($ligne, 1036 , 4 ); // DAPEN Année de validité de l'activité principale de l'entreprise
$effen = trim(substr($ligne, 1040 , 7 ))*1; // EFF_ENT Effectif de l'entreprise
$teffen = substr($ligne, 1047 , 2 ); // TEFF_ENT Tranche d'effectif de l'entreprise
$defen = substr($ligne, 1049 , 4 ); // DEFEN Année de mise à jour de l'effectif entreprise
$moden = substr($ligne, 1053 , 1 ); // MODEN Modalité de l'activité pricipale de l'entreprise
$explen = substr($ligne, 1054 , 1 ); // EXPLEN Entreprise exploitant tout ou partie des moyens de production
$rpen = substr($ligne, 1055 , 2 ); // RPEN Région de localisation du siège de l'entreprise
$dreacten = substr($ligne, 1057 , 8 ); // DREACTEN Date de réactivation de l'entreprise
$dateferen = substr($ligne, 1065 , 8 ); // DATEFEREN Date de fermeture de l'entreprise
$dateImma = substr($ligne, 1073 , 8 ); // DATEIMMAT Date d'immatriculation de l'entreprise au RCS
$dateRad = substr($ligne, 1081 , 8 ); // DATERAD Date de radiation de l'entreprise du RCS
$capital = trim(substr($ligne, 1089 , 15 ))*1; // CAPITAL Montant du capital de l'entreprise
// $siren = substr($ligne, 1104 , 1 ); // CAPITALTYPE Type de capital
$capitalDev= trim(substr($ligne, 1105 , 3 )); // CAPITALDEV Devise du capital
$cj = substr($ligne, 1108 , 4 ); // CJ Catégorie Juridique de l'entreprise
$civilite= trim(substr($ligne, 1112 , 1 )); // CIVILITE Civilité de l'entreprise si Personne Physique
$nbEtab = trim(substr($ligne, 1113 , 4 ))*1; // NBETAB Nombre d'établissements actifs de l'entreprise
$tca= substr($ligne, 1117 , 1 ); // TCA Tranche de chiffre d'affaire
$tcaExp = substr($ligne, 1118 , 1 ); // TCAEXP Tranche de chiffre d'affaire à l'export
/* $siren = substr($ligne, 1119 , 6 ); // APRM Activité principale au registre des métiers
$siren = substr($ligne, 1125 , 1 ); // MONOREG Mono-régionalité de l'entreprise
$siren = substr($ligne, 1126 , 2 ); // REGIMP Principale région d'implantation de l'entreprise
$siren = substr($ligne, 1128 , 1 ); // MONOACT Mono-activité de l'entreprise
$siren = substr($ligne, 1129 , 5 ); // NICSIEGE Nic de l'établissement siège
$siren = substr($ligne, 1134 , 1 ); // RECME Répertoire des Entreprises Contrôlées Majoritairement par lÉtat
$siren = substr($ligne, 1135 , 14 ); // SIRETLIE Siret lié : prédécesseur, successeur, doublon, autre
$siren = substr($ligne, 1149 , 1 ); // SIRETLIETYPE Type de sitet lié
$siren = substr($ligne, 1150 , 5 ); // NICPREC Nic de l'établissement prédécesseur (dans le cadre d'un transfert)
$siren = substr($ligne, 1155 , 5 ); // NICSUIV Nic de l'établissement successeur (dans le cadre d'un transfert)
$siren = substr($ligne, 1160 , 2 ); // insDESTINAT Destination Insee
$siren = substr($ligne, 1162 , 5 ); // insDEPCOMEN Code commune Insee du siège de l'entreprise
$siren = substr($ligne, 1167 , 1 ); // insMNICSIEGE Indicateur de MAJ du NIC SIEGE
$siren = substr($ligne, 1168 , 1 ); // insMNOMEN Indicateur de MAJ de la Raison Sociale
$siren = substr($ligne, 1169 , 1 ); // insMCJ Indicateur de MAJ de la Forme Juridique
$siren = substr($ligne, 1170 , 1 ); // insMAPEN Indicateur de MAJ du NAF entreprise
$siren = substr($ligne, 1171 , 1 ); // insMENSEIGNE Indicateur de MAJ de l'ENSEIGNE
$siren = substr($ligne, 1172 , 1 ); // insMAPET Indicateur de MAJ du NAF établissement
$siren = substr($ligne, 1173 , 1 ); // insMADRESSE Indicateur de MAJ de l'ADRESSE de l'établissement
$siren = substr($ligne, 1174 , 1 ); // insMAUXILT Indicateur de MAJ de l'AUXILIARITE
$siren = substr($ligne, 1175 , 1 ); // insMSIGLE Indicateur de MAJ du SIGLE
$siren = substr($ligne, 1176 , 1 ); // insMEXPLEN Indicateur de MAJ du caractère EXPLOITANT entrep
$siren = substr($ligne, 1177 , 1 ); // insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab
$siren = substr($ligne, 1178 , 1 ); // ADR_RNVP Type de Prestation RNVP si RNVP
$siren = substr($ligne, 1179 , 38 ); // L1_nomen Ligne 1 : Nom de l'entreprise
$siren = substr($ligne, 1217 , 38 ); // L2_COMP Ligne 2 : Complément de nom
$siren = substr($ligne, 1255 , 38 ); // L3_CADR Ligne 3 : Complément d'adresse
$siren = substr($ligne, 1293 , 38 ); // L4_VOIE Ligne 4 : Adresse
$siren = substr($ligne, 1331 , 38 ); // L5_DISP Ligne 5 : Distribution spéciale
$siren = substr($ligne, 1369 , 38 ); // L6_POST Ligne 6 : Code Postal, commune, etc..
$siren = substr($ligne, 1407 , 38 ); // L7_ETRG Ligne 7 : Pays si étranger
$siren = substr($ligne, 1445 , 4 ); // EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE*
$siren = substr($ligne, 1449 , 5 ); // EAEAPEN Activité principale de l'entreprise issue des EAE
$siren = substr($ligne, 1454 , 5 ); // inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE
$siren = substr($ligne, 1459 , 5 ); // inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE
$siren = substr($ligne, 1464 , 5 ); // inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE
$siren = substr($ligne, 1469 , 5 ); // inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE
$siren = substr($ligne, 1474 , 12 ); // GPSX Latitude en ° et décimales de ° (format WGS1984)
$siren = substr($ligne, 1486 , 12 ); // GPSY Longitude en ° et décimales de ° (format WGS1984)
$siren = substr($ligne, 1498 , 1 ); // GPSP Niveau de précision du géocodage (de 0 à 9)
*/
$zus = trim(substr($ligne, 1499 , 10 )); // ZUS Identifiant de la Zone Urbaine Sensible
$zru = trim(substr($ligne, 1509 , 10 )); // ZRU Identifiant de la Zone de Rénovation Urbaine
$zfu = trim(substr($ligne, 1519 , 10 )); // ZFU Identifiant de la Zone Franche Urbaine
$cucs = trim(substr($ligne, 1529 , 10 )); // CUCS Identifiant de la Zone Contrat Urbain de Cohésion Social
$afr = trim(substr($ligne, 1539 , 10 )); // AFR Identifiant de la Zone AFR
$zrr = trim(substr($ligne, 1549 , 10 )); // ZRR Identifiant de la ZRR
$tva = trim(substr($ligne, 1559 , 15 )); // TVA Numéro de TVA Intracommunataire
$tvaValide = substr($ligne, 1574 , 1 ); // TVAVALIDE Numéro de TVA validé
// $siren = substr($ligne, 1575 , 1 ); // ANCIENSIEGE Ancien siège
$isin= trim(substr($ligne, 1576 , 12 )); // CODEISIN Code ISIN de l'entreprise si cotation en bourse
$dir1nom = trim(substr($ligne, 1588 , 40 )); // PPDIR1NOM Nom du principal dirigeant
$dir1prenom = trim(substr($ligne, 1628 , 30 )); // PPDIR1PRENOM Prénom du principal dirigeant
/* $siren = substr($ligne, 1658 , 40 ); // PPDIR1NNAISS Nom de naissance du ppl dirigeant
$siren = substr($ligne, 1698 , 8 ); // PPDIR1DNAISS Date de naissance
$siren = substr($ligne, 1706 , 35 ); // PPDIR1LNAISS Lieu de Naissance
*/
$dir1cfct= substr($ligne, 1741 , 4 ); // PPDIR1FONC Code Fonction
// $siren = substr($ligne, 1745 , 8 ); // PPDIR1MAJ Date de MAJ du ppl dirigeant
$dir2nom= trim(substr($ligne, 1753 , 40 )); // PPDIR2NOM Nom du seconde principal dirigeant
$dir2prenom = trim(substr($ligne, 1793 , 30 )); // PPDIR2PRENOM Prénom du 2ème principal dirigeant
/* $siren = substr($ligne, 1823 , 40 ); // PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant
$siren = substr($ligne, 1863 , 8 ); // PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant
$siren = substr($ligne, 1871 , 35 ); // PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant
*/
$dir2cfct = substr($ligne, 1906 , 4 ); // PPDIR2FONC Code Fonction du 2ème ppl dirigeant
// $siren = substr($ligne, 1910 , 8 ); // PPDIR2MAJ Date de MAJ du 2ème ppl dirigeant
$bilanClot= trim(substr($ligne, 1918 , 8 ))*1; // BILANCLOT Date de dernière clôture de bilan disponible
$bilanDuree = trim(substr($ligne, 1926 , 2 ))*1; // BILANDUREE Durée du dernier exercice disponible
$bilanCA= trim(substr($ligne, 1928 , 15 ))*1; // BILANCA Chiffre d'affaires au dernier bilan disponible
$bilanRES = trim(substr($ligne, 1943 , 15 ))*1; // BILANRES Résultat au dernier bilan disponible
// $siren = substr($ligne, 1958 , 41 ); // FILLER1 Zone libre
$ecrireLignePre=true;
break;
case 100: // Structure Bodacc
$ligne100++;
$ligne100tot++;
if (!$csvAnn) break;
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn";
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
$nic = trim(substr($ligne, 22, 5 )); // Nic
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ
$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc
$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion
$cor='';
if ($typeAnn<>'I')
$cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate);
switch($typeAnn) {
case 'I': $cor='Insertion'.$cor; break;
case 'A': $cor='Additif'.$cor; break;
case 'R': $cor='Rectificatif'.$cor; break;
case 'S': $cor='Suppression'.$cor; break;
default: break;
}
$codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc
$libTri=$iBodacc->getTribunalNom($codeTri);
$adrEtNum= substr($ligne, 596 , 4 ); // Adresse de l'établissement : Numéro dans la voie
$adrEtVoie= substr($ligne, 606 , 50 ); // Adresse de l'établissement : Libellé de la voie
$adrEtCp= substr($ligne, 746 , 5 ); // Code Postal de l'établissement
$adrEtVille=substr($ligne, 751 , 45 ); // Ville de l'établissement
$adrEnNum= substr($ligne, 796 , 4 ); // Adresse de l'établissement : Numéro dans la voie
$adrEnVoie= substr($ligne, 806 , 50 ); // Adresse de l'établissement : Libellé de la voie
$adrEnCp= substr($ligne, 946 , 5 ); // Code Postal de l'établissement
$adrEnVille=substr($ligne, 951 , 45 ); // Ville de l'établissement
$numRC = trim(substr($ligne, 95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise
$raisonS= trim(substr($ligne, 104 , 150 )); // Raison sociale de l'entreprise
$even=array();
$even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN
$even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN
$even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN
$even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN
$even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN
$even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN
$even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN
$even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN
$txtEven='';
foreach ($even as $codeEven)
if ($codeEven<>0) {
$txtEven.=$iBodacc->getEvenement($codeEven).', ';
$catEven=$iBodacc->getChapitreEvenement($codeEven);
}
else
$txtEven.='';
if ($catEven=='procol') {
switch($codeEven) {
case 1050:
case 1055: $procol['CONC']++; $procoltot['CONC']++; break;
case 1100: $procol['SAUV']++; $procoltot['SAUV']++; break;
case 1200:
case 1201:
case 1211:
case 1212: $procol['RJ']++; $procoltot['RJ']++; break;
case 1300:
case 1301:
case 1302:
case 1303:
case 1304:
case 1305:
case 1306:
case 1307:
case 1311:
case 1312:
case 1313: $procol['LJ']++; $procoltot['LJ']++; break;
default: $procol['SUITE']++; $procoltot['SUITE']++; break;
}
}
@$ligne100chap[$catEven]++;
@$ligne100chaptot[$catEven]++;
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
$txtAnn='';
$ecrireLignePre=true;
break;
case 104: // Annonce
$ligne104++;
$ligne104tot++;
$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce
break;
case 999: // Ligne ignorée
if ($csvId) {
$ligneOut ="$siren;$nic;$codeTri;$libTri;$numRC;$actifEt;$siege;$raisonS;$nomCom;$enseigne;$sigle;";
$ligneOut.="$adrEtNum;$adrEtBtq;$adrEtTypV;$adrEtVoie;$adrEtComp;$adrEtDisp;$adrEtCp;$adrEtVille;$adrEtPays;";
$ligneOut.="$capital $capitalDev;$cj;$civilite;$nbEtab;$dateMaj;$sitJur;$depCom;$rivoli;$iris;$ilot;$indDom;";
$ligneOut.="$tel;$fax;$web;$mail;$auxil;$saisonat;$activnat;$origine;$typexploit;$lieuact;$actisurf;$prodpart;";
$ligneOut.="$arronet;$ctonet;$tcd;$zemet;$du;$tu;$uu;$dcret;$apet;$nacet;$dapet;$effet;$teffet;";
$ligneOut.="$defet;$modet;$explet;$rpet;$dreactet;$dateferet;$eaeant;$eaeapet;$eaesec1t;$eaesec2t;";
$ligneOut.="$dcren;$apen;$nacen;$dapen;$effen;$teffen;$moden;$explen;$rpen;$dreacten;$dateferen;$dateImma;$dateRad;$tca;$tcaExp;";
$ligneOut.="$zus;$zru;$zfu;$cucs;$afr;$zrr;$tva;$isin;$dir1nom;$dir1prenom;$dir1cfct;$dir2nom;$dir2prenom;$dir2cfct;";
$ligneOut.="$bilanClot;$bilanDuree;$bilanCA;$bilanRES";
} elseif ($csvAnn)
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn";
$ligne999++;
$ligne999tot++;
$ecrireLignePre=true;
break;
default: // Ligne non gérée
break;
}
if ($ecrireLignePre)
fwrite($fp, $ligneOut.EOL);
if ($ajoutNic && ($typeLigne==1 || $typeLigne==999 || $catEven=='procol' ||
($catEven<>'comptes' &&
(preg_match('/VITRY.*SEINE/i', $adrEtVille) || preg_match('/VITRY.*SEINE/i', $adrEnVille)))
)) {
// $nic=0;
if ($siren*1>1000) {
$tabEt=$iInsee->getEtablissements($siren, '', 0, 200, 200, 94);
//print_r($tabEt);
//die();
}
if ($tabEt['nbReponsesTotal']==1) {
// 1 seul établissement connu : on le valide en auto @todo : Vérifier adresser
$nic=$tabEt['reponses'][0]['Nic'];
} elseif ($tabEt['nbReponsesTotal']==0) {
continue;
} else {
$nicTrouve=$nbNic=0;
foreach ($tabEt['reponses'] as $iEt=>$tabIdEt) {
$villeRec=$tabIdEt['Ville'];
$numRec=substr($tabIdEt['Adresse'],0,4)*1;
$numDemEt=$adrEtNum*1;
$numDemEn=$adrEnNum*1;
if (($numDemEt==0 && $numDemEn==0) || $numRec==0) continue;
if ($numDemEt==$numRec && preg_match('/VITRY.*SEINE/i', $villeRec)) {
$nicTrouve=$tabIdEt['Nic'];
$nbNic++;
} elseif ($numDemEn==$numRec && preg_match('/VITRY.*SEINE/i', $villeRec)) {
$nicTrouve=$tabIdEt['Nic'];
$nbNic++;
}
}
//if ($nbNic==1) {
$nic=$nicTrouve;
//}
}
echo substr($ligne,0,22).initstr($nic*1,5,'0',ALIGN_RIGHT).substr($ligne,27,2000);
}
}
if ($ajoutNic) echo EOL;
fclose($fp);
if ($verbose) echo date ('Y/m/d - H:i:s')." - Conversion terminée de $fichier ($ligne100 annonces)" . EOL;
elseif ($sortieCSV) {
echo "$fichier;$ligne100;";
foreach ($ligne100chap as $chap=>$nb) echo "$nb;";
foreach ($procol as $chap=>$nb) echo "$nb;";
echo EOL;
}
}
if ($sortieCSV) {
echo "$iFic fichiers;$ligne100tot;";
foreach ($ligne100chaptot as $chap=>$nb) echo "$nb;";
foreach ($procoltot as $chap=>$nb) echo "$nb;";
echo EOL;
} else
echo date ('Y/m/d - H:i:s')." - Conversion terminée : $iFic fichiers, $ligne001tot entêtes, $ligne200tot etab., $ligne100tot annonces, $ligne104tot lignes de texte, $ligne999tot fin de fichier !" . EOL;
die();
?>