batch/old/convertSdCsv2.php

600 lines
32 KiB
PHP
Raw Normal View History

2013-06-19 10:24:49 +02:00
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('VERSION_FICHIER_BODACC','0106');
/**
* @todo
* 1. Num<EFBFBD>roter toutes les proc<EFBFBD>dures OK
* 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc
* 101 Commentaire
* 102 Activite d<EFBFBD>clar<EFBFBD> au Bodacc
* 103 texte rectificatif
* 104 Annonce compl<EFBFBD>te au format texte
* 105 Structure Dirigeants BODACC
* 106 Libell<EFBFBD> du P<EFBFBD>rim<EFBFBD>tre de la vente
* 3.
* 5. JugesCommissaires <EFBFBD> int<EFBFBD>grer correctement
Noms et pr<EFBFBD>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<EFBFBD> au BODACC est faut mais S&D a affect<EFBFBD> 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<6F>e
// if ($csvAnn && !$csvId)
// Ecriture de l'ent<6E>te
$siren ='Siren';
$nic ='Nic';
$ref ='R<>f<EFBFBD>rence';
$numPar ='Parution';
$bodacc ='Bodacc';
$datePar='Date parution';
$numAnn ='Num<75>ro Annonce';
$cor ='Type Annonce';
$libTri ='Tribunal';
$numRC ='Num<75>ro RCS';
$raisonS='Raison sociale';
$catEven='Chapitre';
$txtEven='Ev<45>nement(s)';
$txtAnn ='Texte Annonce';
$codeTri ='Code Tribunal';
$actifEt ='Etab. Actif';
$siege ='Si<53>ge';
$nomCom ='Nom Commercial';
$enseigne ='Enseigne';
$sigle ='Sigle';
$adrEtNum ='Adresse Num';
$adrEtBtq ='Adresse Btq';
$adrEtTypV ='Adresse Type Voie';
$adrEtVoie ='Adresse Lib Voie';
$adrEtComp ='Compl<70>ment adresse';
$adrEtDisp ='Adresse Distribution Sp<53>ciale';
$adrEtCp ='Adresse CP';
$adrEtVille ='Adresse Ville';
$adrEtPays ='Adresse Pays';
$capital ='Capital';
$capitalDev ='';
$cj ='Forme Juridique';
$civilite ='Civilit<69>';
$nbEtab ='Nb Etab';
$dateMaj ='Date MAJ';
$sitJur ='Situation Juridique';
$depCom ='Code Commune';
$rivoli ='Fantoir';
$iris ='IRIS';
$ilot ='Ilot';
$indDom ='Domiciliation';
$tel ='T<>l<EFBFBD>phone';
$fax ='Fax';
$web ='Web';
$mail ='Mail';
$auxil ='Auxiliarit<69>';
$saisonat ='Saisonnalit<69>';
$activnat ='Nature Activit<69>';
$origine ='Origine cr<63>ation';
$typexploit ='Type Exploitation';
$lieuact ='Lieu Activit<69>';
$actisurf ='Type magasin';
$prodpart ='ProdPart';
$arronet ='Arrondissemeent';
$ctonet ='Canton';
$tcd ='Tranche commune';
$zemet ='Zone Emploi';
$du ='D<>pt Unit<69> Urbaine';
$tu ='Taille Unit<69> Urbaine';
$uu ='Num<75>ro Unit<69> Urbaine';
$dcret ='Date cr<63>ation <20>tab.';
$apet ='NAF <20>tab.';
$nacet ='NACE <20>tab';
$dapet ='Ann<6E>e NAF <20>tab';
$effet ='Effectif <20>tab.';
$teffet ='Tranche Eff. <20>t.';
$defet ='Ann<6E>e effectif <20>tab.';
$modet ='Modalit<69> APE <20>tab.';
$explet ='Etab. exploitant';
$rpet ='R<>gion <20>tab.';
$dreactet ='Date r<>activation <20>tab.';
$dateferet ='Date fermeture <20>tab.';
$eaeant ='Ann<6E>e EAE';
$eaeapet ='APE1 EAE';
$eaesec1t ='APE2 EAE';
$eaesec2t ='APE3 EAE';
$dcren ='Date cr<63>ation ent.';
$apen ='NAF ent.';
$nacen ='NACE ent.';
$dapen ='Ann<6E>e NAF ent.';
$effen ='Effectif ent.';
$teffen ='Tranche Eff. ent';
$defen ='Ann<6E>e effectif ent.';
$moden ='Modalit<69> 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<70>nom';
$dir1cfct ='Dirigeant 1 code Fct';
$dir2nom ='Dirigeant 2 nom';
$dir2prenom ='Dirigeant 2 pr<70>nom';
$dir2cfct ='Dirigeant 2 code Fct';
$bilanClot ='Date dernier bilan';
$bilanDuree ='Dur<75>e bilan';
$bilanCA ='Dernier CA';
$bilanRES ='Dernier R<>sultat';
$ligneOut='';
$ligne001++;
$ligne001tot++;
break;
case 200: // Structure Identit<69>
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'<27>tablissement
/*
$ref = trim(substr($ligne, 71, 18 )); // R<>f<EFBFBD>rence Client
$numPar = substr($ligne, 27 , 3 ); // Num<75>ro de parution du Bodacc dans l'ann<6E>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<75>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 <20> une pr<70>c<EFBFBD>dente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Num<75>ro de l'annonce corrig<69>e Si annonce diff<66>rent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrig<69>e Si annonce diff<66>rent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Premi<6D>re page du Bodacc de l'annonce corrig<69>e Si annonce diff<66>rent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Num<75>ro parution du Bodacc dans l'ann<6E>e de l'annonce corrig<69>e Si annonce diff<66>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<69>e par le Bodacc
$libTri=@$iBodacc->getTribunalNom($codeTri);
$adrEtNum= trim(substr($ligne, 513 , 4)); // Adresse de l'<27>tablissement : Num<75>ro dans la voie
$adrEtBtq= trim(substr($ligne, 517 , 1 )); // ADR_BTQ Indicateur de r<>p<EFBFBD>tition (Bis, Ter, etc...)
$adrEtTypV= trim(substr($ligne, 518 , 4 )); // ADR_TYPVOIE Type de voie
$adrEtVoie= trim(substr($ligne, 522 , 32 )); // Adresse de l'<27>tablissement : Libell<6C> de la voie
$adrEtComp= trim(substr($ligne, 591 , 38 )); // ADR_COMP Compl<70>ment d'adresse
$adrEtDisp = trim(substr($ligne, 629 , 38 )); // ADR_DISTSP Distribution sp<73>ciale
$adrEtCp= trim(substr($ligne, 586 , 5 )); // Code Postal de l'<27>tablissement
$adrEtVille=trim(substr($ligne, 554 , 32 )); // Ville de l'<27>tablissement
$adrEtPays = trim(substr($ligne, 667 , 38 )); // PAYS Pays
$numRC = trim(substr($ligne, 31 , 10 )); // Num<75>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<75>ro unique d'identification interne d'un <20>tablissement S&D
$siren = substr($ligne, 27 , 3 ); // SOURCE Source de la fiche d'identit<69>
$siren = substr($ligne, 30 , 1 ); // SIRETVALIDE Siren/siret valide
*/
$dateMaj= substr($ligne, 47 , 8 ); // DATEMAJ Date de la derni<6E>re mise <20> jour dans la base S&D
$actifEt = substr($ligne, 55 , 1 ); // ACTIF <09>tablissement juridiquement actif
// $siren = substr($ligne, 56 , 1 ); // ACTIFECO <09>tablissement <20>conomiquement actif
$sitJur = trim(substr($ligne, 57 , 2 )); // SITJUR Situation Juridique de l'entreprise
// $siren = substr($ligne, 59 , 3 ); // EVE Dernier <20>v<EFBFBD>nement Insee recens<6E>
$dateEve = substr($ligne, 62 , 8 ); // DATEVE Date du dernier <20>v<EFBFBD>nement Insee recens<6E>
// $siren = substr($ligne, 70 , 2 ); // TYPETAB Type d'<27>tablissement concern<72> par l'<27>v<EFBFBD>nement
$siege = substr($ligne, 72 , 1 ); // SIEGE <09>tablissement si<73>ge, secondaire ou principal
$nomCom = trim(substr($ligne, 233 , 160 )); // NOMCOM Nom commercial
$enseigne = trim(substr($ligne, 393 , 80 )); // ENSEIGNE Enseigne de l'<27>tablissement
$sigle = trim(substr($ligne, 473 , 40 )); // SIGLE sigle de l'entreprise
$depCom = substr($ligne, 707 , 5 ); // ADR_DEP D<>partement de l'<27>tablissement
$rivoli = trim(substr($ligne, 712 , 5 )); // CODEVOIE Code voie de l'<27>tablissement
$iris = trim(substr($ligne, 717 , 4 )); // CODEIRIS Code Iris de l'<27>tablissement
$ilot = trim(substr($ligne, 721 , 5 )); // CODEILOT Code Ilot de l'<27>tablissement
$indDom = trim(substr($ligne, 726 , 1 )); // ADRESSEDOM Indicateur d'adresse de domiciliation
$tel= trim(substr($ligne, 727 , 15 )); // TEL Num<75>ro de t<>l<EFBFBD>phone
$fax = trim(substr($ligne, 742 , 15 )); // FAX Num<75>ro de t<>l<EFBFBD>copie
$web = trim(substr($ligne, 757 , 80 )); // WEB Site Web
$mail = trim(substr($ligne, 837 , 80 )); // MAIL Adresse Email de contact g<>n<EFBFBD>rique
$auxilt = trim(substr($ligne, 917 , 1 )); // AUXILT Auxiliarit<69> de l'activit<69> de l'<27>tablissement
$saisonat= trim(substr($ligne, 918 , 1 )); // SAISONAT Saisonnalit<69> de l'<27>tablissement
$activnat= trim(substr($ligne, 919 , 2 )); // ACTIVNAT Nature de l'activit<69> de l'<27>tablissement
$origine= trim(substr($ligne, 921 , 2 )); // ORIGINE Origine de la cr<63>ation de l'<27>tablissement
$typexploit= trim(substr($ligne, 923 , 2 )); // TYPEXPLOIT Type d'exploitation
$lieuact=trim(substr($ligne, 925 , 2 )); // LIEUACT Lieu de l'activit<69> de l'<27>tablissement
$actisurf=trim(substr($ligne, 927 , 2 )); // ACTISURF Type de magasin
$prodpart=trim(substr($ligne, 929 , 1 )); // PRODPART Participation particuli<6C>re <20> la production de l'<27>tablissement
$arronet=trim(substr($ligne, 930 , 2 )); // ARRONET Arrondissement de l'<27>tablissement
$ctonet = trim(substr($ligne, 932 , 3 )); // CTONET Canton
$tcd=trim(substr($ligne, 935 , 2 )); // TCD Tranche de commune d<>taill<6C>e
$zemet= trim(substr($ligne, 937 , 2 )); // ZEMET Zone d'emploi
$du= trim(substr($ligne, 939 , 2 )); // DU D<>partement de l'unit<69> urbaine de localisation
$tu= trim(substr($ligne, 941 , 1 )); // TU Taille de l'unit<69> urbaine
$uu= trim(substr($ligne, 942 , 2 )); // UU Num<75>ro de l'unti<74> urbaine
$dcret = substr($ligne, 944 , 8 ); // DCRET Date de cr<63>ation de l'<27>tablissement
$apet = substr($ligne, 952 , 5 ); // APE_ETAB Code activit<69> dans la NAF r<>v2 de l'<27>tablissement
$nacet= trim(substr($ligne, 957 , 5 )); // NACE_ETAB Code activit<69> NACE de l'<27>tablissement
$dapet = trim(substr($ligne, 962 , 4 )); // DAPET Ann<6E>e de validit<69> de l'activit<69> principale de l'<27>tablissement
$effet = trim(substr($ligne, 966 , 7 ))*1; // EFF_ET Effectif de l'<27>tablissement
$teffet = substr($ligne, 973 , 2 ); // TEFF_ET Tranche d'effectif de l'<27>tablissement
$defet = trim(substr($ligne, 975 , 4 )); // DEFET Ann<6E>e de mise <20> jour de l'effectif <20>tablissement
$modet = trim(substr($ligne, 979 , 1 )); // MODET Modalit<69> de l'activit<69> pricipale de l'<27>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'<27>tablissement
$dreactet = trim(substr($ligne, 983 , 8 )); // DREACTET Date de r<>activation de l'<27>tablissement
$dateferet = trim(substr($ligne, 991 , 8 )); // DATEFERET Date de fermeture de l'<27>tablissement
$eaeant = trim(substr($ligne, 999 , 4 )); // EAEANT Ann<6E>e de validit<69> des rubriques de niveau Etab provenant des EAE*
$eaeapet = trim(substr($ligne, 1003 , 5 )); // EAEAPET Activit<69> principale de l'<27>tablissement issue des EAE
$eaesec1t = trim(substr($ligne, 1008 , 5 )); // EAESEC1T Activit<69> secondaire de l'<27>tablissement issue des EAE
$eaesec2t = trim(substr($ligne, 1013 , 5 )); // EAESEC2T Autre activit<69> secondaire de l'<27>tablissement issue des EAE
$dcren = substr($ligne, 1018 , 8 ); // DCREN Date de cr<63>ation de l'entreprise
$apen = substr($ligne, 1026 , 5 ); // APE_ENT Code activit<69> dans la NAF r<>v2 de l'entreprise
$nacen = substr($ligne, 1031 , 5 ); // NACE_ENT Code activit<69> NACE de l'entreprise
$dapen = substr($ligne, 1036 , 4 ); // DAPEN Ann<6E>e de validit<69> de l'activit<69> 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<6E>e de mise <20> jour de l'effectif entreprise
$moden = substr($ligne, 1053 , 1 ); // MODEN Modalit<69> de l'activit<69> 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<73>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<61>gorie Juridique de l'entreprise
$civilite= trim(substr($ligne, 1112 , 1 )); // CIVILITE Civilit<69> de l'entreprise si Personne Physique
$nbEtab = trim(substr($ligne, 1113 , 4 ))*1; // NBETAB Nombre d'<27>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 <20> l'export
/* $siren = substr($ligne, 1119 , 6 ); // APRM Activit<69> principale au registre des m<>tiers
$siren = substr($ligne, 1125 , 1 ); // MONOREG Mono-r<>gionalit<69> 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<69> de l'entreprise
$siren = substr($ligne, 1129 , 5 ); // NICSIEGE Nic de l'<27>tablissement si<73>ge
$siren = substr($ligne, 1134 , 1 ); // RECME R<>pertoire des Entreprises Contr<74>l<EFBFBD>es Majoritairement par l<><6C>tat
$siren = substr($ligne, 1135 , 14 ); // SIRETLIE Siret li<6C><69>: pr<70>d<EFBFBD>cesseur, successeur, doublon, autre
$siren = substr($ligne, 1149 , 1 ); // SIRETLIETYPE Type de sitet li<6C>
$siren = substr($ligne, 1150 , 5 ); // NICPREC Nic de l'<27>tablissement pr<70>d<EFBFBD>cesseur (dans le cadre d'un transfert)
$siren = substr($ligne, 1155 , 5 ); // NICSUIV Nic de l'<27>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<73>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 <20>tablissement
$siren = substr($ligne, 1173 , 1 ); // insMADRESSE Indicateur de MAJ de l'ADRESSE de l'<27>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<63>re EXPLOITANT entrep
$siren = substr($ligne, 1177 , 1 ); // insMEXPLET Indicateur de MAJ du caract<63>re EXPLOITANT <20>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<70>ment de nom
$siren = substr($ligne, 1255 , 38 ); // L3_CADR Ligne 3<>: Compl<70>ment d'adresse
$siren = substr($ligne, 1293 , 38 ); // L4_VOIE Ligne 4<>: Adresse
$siren = substr($ligne, 1331 , 38 ); // L5_DISP Ligne 5<>: Distribution sp<73>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 <20>tranger
$siren = substr($ligne, 1445 , 4 ); // EAEANN Ann<6E>e de validit<69> des rubriques de niveau ENTREP provenant des EAE*
$siren = substr($ligne, 1449 , 5 ); // EAEAPEN Activit<69> principale de l'entreprise issue des EAE
$siren = substr($ligne, 1454 , 5 ); // inseaesec1n Activit<69> secondaire n<>1 de l'entreprise issue des EAE
$siren = substr($ligne, 1459 , 5 ); // inseaesec2n Activit<69> secondaire n<>2 de l'entreprise issue des EAE
$siren = substr($ligne, 1464 , 5 ); // inseaesec3n Activit<69> secondaire n<>3 de l'entreprise issue des EAE
$siren = substr($ligne, 1469 , 5 ); // inseaesec4n Activit<69> secondaire n<>4 de l'entreprise issue des EAE
$siren = substr($ligne, 1474 , 12 ); // GPSX Latitude en <20> et d<>cimales de <20> (format WGS1984)
$siren = substr($ligne, 1486 , 12 ); // GPSY Longitude en <20> et d<>cimales de <20> (format WGS1984)
$siren = substr($ligne, 1498 , 1 ); // GPSP Niveau de pr<70>cision du g<>ocodage (de 0 <20> 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<6F>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<75>ro de TVA Intracommunataire
$tvaValide = substr($ligne, 1574 , 1 ); // TVAVALIDE Num<75>ro de TVA valid<69>
// $siren = substr($ligne, 1575 , 1 ); // ANCIENSIEGE Ancien si<73>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<50>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<50>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<6E>re cl<63>ture de bilan disponible
$bilanDuree = trim(substr($ligne, 1926 , 2 ))*1; // BILANDUREE Dur<75>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<72>e par l'annonce
$nic = trim(substr($ligne, 22, 5 )); // Nic
$ref = trim(substr($ligne, 71, 18 )); // R<>f<EFBFBD>rence Client
$numPar = substr($ligne, 27 , 3 ); // Num<75>ro de parution du Bodacc dans l'ann<6E>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<75>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 <20> une pr<70>c<EFBFBD>dente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Num<75>ro de l'annonce corrig<69>e Si annonce diff<66>rent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrig<69>e Si annonce diff<66>rent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Premi<6D>re page du Bodacc de l'annonce corrig<69>e Si annonce diff<66>rent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Num<75>ro parution du Bodacc dans l'ann<6E>e de l'annonce corrig<69>e Si annonce diff<66>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<69>e par le Bodacc
$libTri=$iBodacc->getTribunalNom($codeTri);
$adrEtNum= substr($ligne, 596 , 4 ); // Adresse de l'<27>tablissement : Num<75>ro dans la voie
$adrEtVoie= substr($ligne, 606 , 50 ); // Adresse de l'<27>tablissement : Libell<6C> de la voie
$adrEtCp= substr($ligne, 746 , 5 ); // Code Postal de l'<27>tablissement
$adrEtVille=substr($ligne, 751 , 45 ); // Ville de l'<27>tablissement
$adrEnNum= substr($ligne, 796 , 4 ); // Adresse de l'<27>tablissement : Num<75>ro dans la voie
$adrEnVoie= substr($ligne, 806 , 50 ); // Adresse de l'<27>tablissement : Libell<6C> de la voie
$adrEnCp= substr($ligne, 946 , 5 ); // Code Postal de l'<27>tablissement
$adrEnVille=substr($ligne, 951 , 45 ); // Ville de l'<27>tablissement
$numRC = trim(substr($ligne, 95 , 9 )); // Num<75>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<45>nement Bodacc n<>1 Cf. Table EVEN
$even[6]= substr($ligne, 1000, 4 )*1; // Code Ev<45>nement Bodacc n<>2 Cf. Table EVEN
$even[5]= substr($ligne, 1004, 4 )*1; // Code Ev<45>nement Bodacc n<>3 Cf. Table EVEN
$even[4]= substr($ligne, 1008, 4 )*1; // Code Ev<45>nement Bodacc n<>4 Cf. Table EVEN
$even[3]= substr($ligne, 1012, 4 )*1; // Code Ev<45>nement Bodacc n<>5 Cf. Table EVEN
$even[2]= substr($ligne, 1016, 4 )*1; // Code Ev<45>nement Bodacc n<>6 Cf. Table EVEN
$even[1]= substr($ligne, 1020, 4 )*1; // Code Ev<45>nement Bodacc n<>7 Cf. Table EVEN
$even[0]= substr($ligne, 1024, 4 )*1; // Code Ev<45>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<6F>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<EFBFBD>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 <20>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<69>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<69>e : $iFic fichiers, $ligne001tot ent<6E>tes, $ligne200tot etab., $ligne100tot annonces, $ligne104tot lignes de texte, $ligne999tot fin de fichier !" . EOL;
die();
?>