bbc355f57b
Modification des chemins complet Attention à tester
1016 lines
45 KiB
PHP
1016 lines
45 KiB
PHP
<?
|
|
// include('http.class.php');
|
|
|
|
class Automate {
|
|
|
|
var $tab_produits=array('baicsv'=>'');
|
|
var $server_url=false;
|
|
var $session_id=false;
|
|
var $session_error=false;
|
|
var $connected=false;
|
|
var $code_abonne=false;
|
|
var $http;
|
|
var $retour='array';
|
|
var $debug=true;
|
|
var $debugPrint=false;
|
|
var $tabDebug=array();
|
|
|
|
function Automate($retour='array', $debug=false) {
|
|
//$this->Http();
|
|
// $this->http=&new Http();
|
|
$this->setRetour($retour);
|
|
$this->setDebug($debug);
|
|
}
|
|
|
|
function setRetour($retour){
|
|
$this->retour=$retour;
|
|
}
|
|
|
|
function setDebug($debug){
|
|
$this->debug=$debug;
|
|
}
|
|
|
|
function trace($str) {
|
|
$message=date('Y/m/d H:i:s') .' - '. $str;
|
|
if ($this->debug==true) {
|
|
array_push($this->tabDebug, $message);
|
|
if ($this->debugPrint==true){
|
|
echo $message . '<br/>';
|
|
flush();}
|
|
}
|
|
}
|
|
|
|
function printTrace() {
|
|
print_r($this->tabDebug);
|
|
}
|
|
|
|
function getLastError() {
|
|
return $this->tabDebug[count($this->tabDebug)-1];
|
|
}
|
|
|
|
function getPage($url) {
|
|
$this->trace('URL demandée : "'. $url .'"');
|
|
return file_get_contents ($url);
|
|
}
|
|
|
|
function getServerUrl() {
|
|
if (!$this->server_url) {
|
|
// On récupère le site automate 1 ou 2
|
|
$str= $this->getPage('http://automate.bil.fr/');
|
|
|
|
//$str=$this->get('http://automate.bil.fr/');
|
|
//echo $str;exit();
|
|
$tab=explode('Accès Hyperbil ',$str);
|
|
$tab=explode('</', $tab[1]);
|
|
$this->server_url=trim($tab[0]).'/';
|
|
//$this->server_url='http://automate1.bil.fr/';
|
|
}
|
|
$this->trace('URL du serveur BIL : '. $this->server_url);
|
|
//exit();
|
|
return $this->server_url;
|
|
}
|
|
|
|
function getSessionId() {
|
|
if (!$this->session_id) {
|
|
$str= $this->getPage($this->server_url .'cgi-bin/h2r?');
|
|
|
|
$tab=explode(';',$str);
|
|
$this->session_id=$tab[1];
|
|
}
|
|
$this->trace('ID de session provisoire : '. $this->session_id);
|
|
$this->trace($str);
|
|
//exit();
|
|
return $this->session_id;
|
|
}
|
|
|
|
function connect($user, $password) {
|
|
if (!$this->connected) {
|
|
if (!$this->session_id) $this->getSessionId($this->getServerUrl());
|
|
$this->code_abonne=$user;
|
|
$str=$this->getPage ( $this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilaboncsv&QPABO='. $user .'&QPPAS='. $password);
|
|
$tab=explode(';',$str);
|
|
if ( $tab[0]!=$user || $tab[1]!=1 ) {
|
|
$this->session_id=trim(strip_tags($tab[2]));
|
|
if (strpos($this->session_id, 'invalide')>0)
|
|
{
|
|
$this->session_error=$tab[3].' '.$tab[2];
|
|
$this->trace('Erreur de connexion : '. $this->session_error);
|
|
return false;
|
|
}else{
|
|
$this->connected=true;
|
|
$this->trace('Connexion OK. ID de session définitif : '. $this->session_id);
|
|
//exit();
|
|
return $this->session_id;
|
|
}
|
|
} else {
|
|
$this->session_error=$tab[3];
|
|
$this->trace('Erreur de connexion : '. $this->session_error);
|
|
return false;
|
|
}
|
|
}
|
|
$this->trace('Connexion déjà existante !');
|
|
return true;
|
|
}
|
|
|
|
function getListeProduits($siren) {
|
|
if ($this->connected) {
|
|
$str=$this->getPage ($this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilbaicsv&QIABO='. $this->code_abonne .'&QISIR='. $siren.'&CT=texte/separateur:point-virgule');
|
|
//$tab=explode(';',$str);
|
|
if ($this->retour=='array')
|
|
return $this->csv2array($str, $siren);
|
|
elseif ($this->retour=='csv')
|
|
return $str;
|
|
}
|
|
}
|
|
|
|
function getFicheIdentite($siren, $nic='', $type='', $numentrep='', $refClient='', $retour='') {
|
|
if ($retour=='') $retour=$this->retour;
|
|
if ($type=='') $typeFiche='';
|
|
else $typeFiche=$type;
|
|
/*
|
|
hbilsoid Requête IDENTITE FORMAT SO2000
|
|
hbilsoids
|
|
hbilsoidci Fiche identité Complete INSEE SO2000
|
|
hbilsoidc Fiche identité Complete SO2000
|
|
*/
|
|
if ($this->connected) {
|
|
$str=strip_tags($this->getPage ($this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilsoid'. $typeFiche .'&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&QINIC='. $nic .'&CT=text/plain'));
|
|
//$tab=explode(';',$str);
|
|
if ($retour=='array')
|
|
return $this->so2array('ID', $str);
|
|
elseif ($retour=='csv')
|
|
return array2csv($this->so2array('ID', $str));
|
|
else
|
|
return $str;
|
|
}
|
|
}
|
|
|
|
function getDatesClotures($siren, $numentrep='', $retour='') {
|
|
if ($retour=='') $retour=$this->retour;
|
|
|
|
if ($this->connected) {
|
|
$str=$this->getPage($this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilbillcsv&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&CT=texte/separateur:point-virgule' );
|
|
$this->trace('Dates clotures CSV Automate = "'.$str.'"');
|
|
$ret=$this->csv2array($str, $siren);
|
|
if ($retour=='array')
|
|
return $ret;
|
|
elseif ($retour=='csv')
|
|
return $ret[0]['RISIR'] .';'.
|
|
$ret[0]['RETOUR'] .';'.
|
|
$ret[0]['RINUME'] .';'.
|
|
$ret[0]['RBDTCN'] .';'.
|
|
$ret[0]['RDDURN'] .';'.
|
|
$ret[1]['RBDTCN'] .';'.
|
|
$ret[1]['RDDURN'] .';'.
|
|
$ret[2]['RBDTCN'] .';'.
|
|
$ret[2]['RDDURN'] .";\n";
|
|
// return strip_tags(sstr_replace("\n", '', $str))."\n";
|
|
}
|
|
}
|
|
|
|
function getBilan($siren, $dateCloture='', $numentrep='', $retour='') {
|
|
if ($retour=='') $retour=$this->retour;
|
|
|
|
if ($this->connected) {
|
|
if ($dateCloture=='') $dateCloture=date('d/m/Y');
|
|
|
|
$str=$this->getPage($this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilsobi&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&QIDLIM='. $dateCloture .'&CT=text/plain' );
|
|
|
|
$this->trace('Bilan Automate = "'.$str.'"');
|
|
|
|
if ($retour=='array')
|
|
return $this->so2array('BI', $str);
|
|
|
|
elseif ($retour=='csv')
|
|
return $str;
|
|
// return strip_tags(sstr_replace("\n", '', $str))."\n";
|
|
}
|
|
}
|
|
|
|
function getSolvaBil($siren, $niveauSolvaBil=3, $encours='', $refClient='', $solvaBilPlus='', $format='csv', $dateCalcul='') {
|
|
if ($this->connected) {
|
|
if ($refClient=='') $refClient='Automate';
|
|
$url=$this->server_url .'cgi-bin/solv_lst?magic='. $this->session_id .'&nb=1&QIABO='. $this->code_abonne .'&QISIR1='. $siren .'&QIREFC1='. $refClient .'&QIENCO1='. $encours .'&niv='. $niveauSolvaBil . '&format='. $format . '&QISSTY='. $solvaBilPlus;
|
|
$str=$this->getPage($url);// .'&QNDOBS='. $dateCalcul);
|
|
echo "Demande=$url\r\n";
|
|
echo "Reponse=$str\r\n";
|
|
$this->trace('SolvaBil CSV Automate = "'.$str.'"');
|
|
if ($this->retour=='array')
|
|
return $this->csv2array($str, $siren);
|
|
elseif ($this->retour=='csv')
|
|
//return strip_tags($str);
|
|
return strip_tags($str);
|
|
}
|
|
}
|
|
|
|
function getActionnaires($siren, $numentrep='') {
|
|
if ($this->connected) {
|
|
$str=$this->getPage($this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilactlcsv&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&QINUME='. $numentrep .'&CT=texte/separateur:point-virgule' );
|
|
$this->trace('Actionnaires CSV Automate = "'.$str.'"');
|
|
if ($this->retour=='array')
|
|
return $this->csv2array($str, $siren);
|
|
elseif ($this->retour=='csv')
|
|
return strip_tags($str);
|
|
}
|
|
}
|
|
|
|
function getRecherche($siren='', $nic='', $raisonSociale='', $prenom='', $numRue='', $nomRue='', $codePostal='', $ville='', $tel='', $ape='') {
|
|
if ($this->connected) {
|
|
$url=$this->server_url .'cgi-bin/h2r?magic='. $this->session_id .'&rq=hbilentlcsv&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&CT=texte/separateur:point-virgule' .
|
|
'&QINIC='. $nic .
|
|
'&QINOM='. $raisonSociale .
|
|
'&QIPRN='. $prenom .
|
|
'&QINRU='. $numRue .
|
|
'&QIRUE='. $nomRue .
|
|
'&QICP=' . $codePostal .
|
|
'&QIVIL='. $ville .
|
|
'&QITEL='. $tel .
|
|
'&QIAPE='. $ape ;
|
|
$str= $this->getPage($url);
|
|
$tab=$this->csv2array($str);
|
|
|
|
return $tab;
|
|
}
|
|
}
|
|
|
|
|
|
function getAnnoncesLegales($siren, $numentrep='', $sansLeTexte='a') {
|
|
if ($this->connected) {
|
|
//http://automate.bil.fr/cgi-bin/h2r?CT=text/plain&magic=XXXXX-XX-XXXXX &rq=hbilsoann& QIABO=999999999&QISIR=999999999&QINUME=999999999&QIREFC=XXXXXXXXXXXX
|
|
$str=$this->getPage($this->server_url .'cgi-bin/h2r?CT=text/plain&magic='. $this->session_id .'&rq=hbilsoan'.$sansLeTexte.'&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&QINUME='. $numentrep .'&QIREFC=XXXXXXXXXXXx');
|
|
$this->trace('Annonces Legales SO2000 Automate = "'.$str.'"');
|
|
//echo $numentrep .' - '. $str;
|
|
if ($this->retour=='array')
|
|
return $this->csv2array($str, $siren);
|
|
elseif ($this->retour=='csv')
|
|
return strip_tags($str);
|
|
}
|
|
}
|
|
|
|
function getDirigeants($siren, $numentrep='') {
|
|
if ($this->connected) {
|
|
//http://automate.bil.fr/cgi-bin/h2r?CT=text/plain&magic=XXXXX-XX-XXXXX &rq=hbilsoann& QIABO=999999999&QISIR=999999999&QINUME=999999999&QIREFC=XXXXXXXXXXXX
|
|
$str=$this->getPage($this->server_url .'cgi-bin/h2r?CT=text/plain&magic='. $this->session_id .'&rq=hbilsodir&QIABO='. $this->code_abonne .'&QISIR='. $siren .'&QINUME='. $numentrep .'&QIREFC=XXXXXXXXXXXx');
|
|
$this->trace('Dirigeants SO2000 Automate = "'.$str.'"');
|
|
//echo $numentrep .' - '. $str;
|
|
if ($this->retour=='array')
|
|
return $this->csv2array($str, $siren);
|
|
elseif ($this->retour=='csv')
|
|
return strip_tags($str);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function so2array($ficheSO2000, $str) {
|
|
switch ($ficheSO2000){
|
|
case 'ID':
|
|
$tab_ret=array(
|
|
'SONABO'=>trim(substr($str, 0, 9)), // N°ABONNE (I) ********************
|
|
'SONUME'=>trim(substr($str, 9, 9)), // N°ENTREPRISE (I) * FICHE COMPLETE *
|
|
'SONUS' =>trim(substr($str, 18, 9)), // N°UFS (I) * +EXTENSION INSEE * SONUS_V
|
|
'SOANN' =>trim(substr($str, 27, 9)), // N° ANNONCE (I) ********************
|
|
'SORCS' =>trim(substr($str, 36, 14)), // N°SIRET (I)
|
|
'SOPRD' =>trim(substr($str, 50, 2)), // CODE PRODUIT (I) SOPRD_N
|
|
'SOSEQ' =>trim(substr($str, 52, 5)), // SEQUENCE DANS GROUPE(I) SOSEQ_N
|
|
'SODTEN'=>trim(substr($str, 57, 8)), // DATE ENVOI (I) AAAAMMJJ SODTEN_D
|
|
'SOTENR'=>trim(substr($str, 65, 1)), // CODE ENREGISTREMENT (I)
|
|
'SOTYP' =>trim(substr($str, 66, 3)), // TYPE STRUCTURE (I) "ID " SOTYP_V
|
|
'SOCONF'=>trim(substr($str, 69, 1)), // Code confirmé (I)
|
|
'SOREFC'=>trim(substr($str, 70, 30)), // REFERENCE CLIENT (I) SOREFC_X
|
|
'SOORIG'=>trim(substr($str, 100, 1)), // Code Origine BIL (S)
|
|
'SOSDTX'=>trim(substr($str, 101, 1)), // INDIC. QUALITE (S)
|
|
'SOMAJ' =>trim(substr($str, 102, 9)), // TEMOIN DE MAJ (S) SOMAJ_N
|
|
'SONOM' =>trim(substr($str, 111, 60)), // RAISON SOCIALE p/1 (I) (INSEE=40) SONOM_X
|
|
'SONOM2'=>trim(substr($str, 171, 30)), // RAISON SOCIALE p/2 (I) (INSEE=BLANC) SONOM_N
|
|
'SOSIG' =>trim(substr($str, 201, 30)), // SIGLE (S) (INSEE=20) SOSIG_N
|
|
'SOENS' =>trim(substr($str, 231, 60)), // ENSEIGNE (S) (INSEE=40) SOENS_X
|
|
'SONRU' =>trim(substr($str, 291, 4)), // N°DS LA RUE (S)
|
|
'SOBTQ' =>trim(substr($str, 295, 1)), // B=BIS T=TER Q=QUAT. (S)
|
|
'SORUE' =>trim(substr($str, 296, 33)), // NOM DE LA RUE (S)
|
|
'SOCOM' =>trim(substr($str, 329, 32)), // LIBELLE COMMUNE (I)
|
|
'SOCP' =>trim(substr($str, 361, 5)), // CODE POSTAL (I) SOCP_N
|
|
'SOCPLA'=>trim(substr($str, 366, 30)), // COMPLEMENT ADRESSE (S) SOCPLA_N
|
|
'SODTCT'=>trim(substr($str, 396, 8)), // DATE CREATION ENTREP (S) AAAAMMJJ DTCREE_D
|
|
'SOSTAE'=>trim(substr($str, 404, 1)), // STATUT ETABLISSEMENT (S) Table INS
|
|
'SOCJEN'=>trim(substr($str, 405, 4)), // CATEG JURIDIQUE (S) Table INC SOCJEN_X
|
|
'SOTSEX'=>trim(substr($str, 409, 1)), // SEXE SI PP (S) Table IMF
|
|
'SONBET'=>trim(substr($str, 410, 4)), // NOMBRE ETAB. (S) NBRETE_C
|
|
'SOAPET'=>trim(substr($str, 414, 4)), // NAF ENTREPRISE (S) Table APE
|
|
'SOAPFT'=>trim(substr($str, 418, 4)), // CODE "FAMILLE" ENTR. (C) Table APY SOAPFT_N
|
|
'SOAPEE'=>trim(substr($str, 422, 4)), // NAF ETABLISSEMT (S) Table APE
|
|
'SOAPFE'=>trim(substr($str, 426, 4)), // CODE "FAMILLE" ETAB. (C) Table APY SOAPFE_N
|
|
'SORLJ' =>trim(substr($str, 430, 1)), // Proc.Collective (C) "O"=RLJ SORLJ_N
|
|
'SOCAPM'=>trim(substr($str, 431, 2)), // MONNAIE (C) Table BDV SOCAPM_N
|
|
'SOCAPI'=>trim(substr($str, 433, 13)), // MONTANT CAPITAL (C) CAPITE_X
|
|
'SOEFF' =>trim(substr($str, 446, 7)), // EFFECTIF (+Ext) blanc=non précisé SOEFF_N
|
|
'SORCE' =>trim(substr($str, 453, 9)), // N°RC (C) RCE_X
|
|
'SOETEL'=>trim(substr($str, 462, 10)), // TELEPHONE SOURCE BIL (S)
|
|
'SOEFAX'=>trim(substr($str, 472, 10)), // FAX SOURCE BIL (S)
|
|
'SOEWEB'=>trim(substr($str, 482, 40)), // SITE WEB SOURCE BIL (S) non encore renseigné SOEWEB_N
|
|
'SOEDRQ'=>trim(substr($str, 522, 3)), // QUALITE DIRIGEANT (C) source BIL
|
|
'SOEDRN'=>trim(substr($str, 525, 60)), // NOM-prénom DIRIGEANT (C) source BIL SOEDRN_X
|
|
'SDEDRD'=>trim(substr($str, 585, 8)), // DATE NAISSANCE DIRIG (C) AAAAMMJJ SOEDRD_D
|
|
'SOEDRL'=>trim(substr($str, 593, 35)), // LIEU NAISSANCE DIRIG (C) source BIL SOEDRL_N
|
|
'SORSNO'=>trim(substr($str, 628, 2)), // NOTE SUR 20 (+sc) BLANC=PAS DE NOTE
|
|
'SORSEC'=>trim(substr($str, 630, 7)), // ENCOURS EN KILO (+sc) BLANC=PAS D ENCOURS
|
|
'SORSCP'=>trim(substr($str, 637, 1)), // CODE PAIEMENT (+sc) Table S53
|
|
'SORSSF'=>trim(substr($str, 638, 1)), // CODE SITU FINANCERE (+sc) Table S53
|
|
'SORSCA'=>trim(substr($str, 639, 1)), // CODE AVIS (+sc) Table S53
|
|
'SORSMO'=>trim(substr($str, 640, 3)), // MONNAIE LIVRAISON ENCOURS (+sc) Table BDV
|
|
'SOSICO'=>trim(substr($str, 643, 6)), // CODE SICOVAM (C) STE COTEE EN BOURSE SOSICO_N
|
|
'SOTYPM'=>trim(substr($str, 649, 2)), // TYPE DE MARCHE (C) STE COTEE EN BOURSE SOTYPM_N
|
|
'SOISIN'=>trim(substr($str, 651, 12)), // CODE ISIN (C) STE COTEE EN BOURSE SOISIN_N
|
|
'SOIDR1'=>trim(substr($str, 663, 41)), // réserve, non encore renseigné
|
|
'SONICC'=>trim(substr($str, 704, 5)), // NIC SOURCE/CIBLE (C)(+Ext) TRANSFERT ADRESSE SONICC_N
|
|
'SODCAP'=>trim(substr($str, 709, 8)), // DATE MAJ CAPITAL (C) AAAAMMJJ SODCAP_D
|
|
'SOCAPO'=>trim(substr($str, 717, 3)), // CAPITAL MONNAIE ORI (C) Table BDV
|
|
'SOCAPL'=>trim(substr($str, 720, 3)), // CAPITAL MONNAIE LIV (C) Table BDV
|
|
'SODTCE'=>trim(substr($str, 723, 8)), // DATE CREAT ETAB (+Ext) AAAAMMJJ SODTCE_D
|
|
'SOORIC'=>trim(substr($str, 731, 1)), // ORI.CREATION ENTREP (+Ext) Table INJ SOORIC_N
|
|
'SOCLAT'=>trim(substr($str, 732, 2)), // TR.EFFECTIF ENTREP(C)(+Ext*)Table INL
|
|
'CLAE'=>trim(substr($str, 734,2)), //TR.EFFECTIF ETAB(+Ext)TableINL
|
|
'SOA40T'=>trim(substr($str, 736,2)), //NAP 40 ENTREP(+Ext)TableA40
|
|
'SOA40E'=>trim(substr($str, 738,2)), //NAP 40 ETAB(+Ext)TableA40
|
|
'SOEACA'=>trim(substr($str, 740,5)), //ACT.ARTISANALE ETAB(+Ext)TableARA
|
|
'SOEMDT'=>trim(substr($str, 745,1)), //MODALITE ACT. ENTREP(+Ext)TableIMO
|
|
'SOEMDE'=>trim(substr($str, 746,1)), //MODALITE ACT. ETAB(+Ext)TableIMO
|
|
'SOERGS'=>trim(substr($str, 747,2)), //CODE REGION ENTREP(C)(+Ext*)TableINGSOERGS_N
|
|
'SOERGE'=>trim(substr($str, 749,2)), //CODE REGION ETAB(C)(+Ext*)TableING
|
|
'SOEDPS'=>trim(substr($str, 751,2)), //DEPARTEMENT SIEGE(S) (+Ext*)DPSIE_C
|
|
'SOELCS'=>trim(substr($str, 753,3)), //CODE LOCALITE SIEGE(S) (+Ext*)
|
|
'SOEDPE'=>trim(substr($str, 756,2)), //DEPARTEMENT ETAB(S) (+Ext*)
|
|
'SOELCE'=>trim(substr($str, 758,3)), //CODE LOCALITE ETAB(S) (+Ext*)SOLIN_C
|
|
'SOARDO'=>trim(substr($str, 761,1)), //DEP.OUTRE MER(+Ext) NRTableIDOSOARDO_N
|
|
'SOARD'=>trim(substr($str, 762,1)), //ARRONDISSEMENT(+Ext)
|
|
'SOCANO'=>trim(substr($str, 763,1)), //DEP.OUTRE MER(+Ext) NRTableIDOSOCANO_N
|
|
'SOCAN'=>trim(substr($str, 764,2)), //CANTON(+Ext)
|
|
'SOILOT'=>trim(substr($str, 766,8)), //CODE ILOT(+Ext) NRSOILOT_N
|
|
'SOTZEM'=>trim(substr($str, 774,2)), //ZONE EMPLOI ETAB(+Ext)TableINZ
|
|
'SOTTCO'=>trim(substr($str, 776,2)), //TRANCHE COMMUNE ETAB(+Ext)TableICD
|
|
'SOTDPU'=>trim(substr($str, 778,2)), //DEP UNITE.URB ETAB(+Ext)SOTDPU_N
|
|
'SOTTLU'=>trim(substr($str, 780,1)), //TAILLE UN.URB ETAB(+Ext)TableICUSOTTLU_N
|
|
'SOTUNU'=>trim(substr($str, 781,2)), //UNITE URBAINE ETAB(+Ext)SOTUNU_X
|
|
'SOTRIV'=>trim(substr($str, 783,5)), //CODE RIVOLI ETAB(+Ext)SOTRIV_X
|
|
'SOTRGP'=>trim(substr($str, 788,2)), //PPALE REGION ENTREP(+Ext)TableING
|
|
'SOTMON'=>trim(substr($str, 790,1)), //MONOREGIONALITE(+Ext)TableIMR
|
|
'SOTMOA'=>trim(substr($str, 791,1)), //MONOACTIVITE(+Ext)TableIMPSOTMOA_N
|
|
'SOECA'=>trim(substr($str, 792,1)), //CODE TRANCHE CA(C)(+Ext*)TableINTSOECA_X
|
|
'SOECAX'=>trim(substr($str, 793,1)), //TRANCHE PART EXPORT(C)(+Ext*)TableINPSOECAX_X
|
|
'SOTRPE'=>trim(substr($str, 794,1)), //REPERTOIRE ENT ETAT(+Ext)TableIEE
|
|
'SOORDI'=>trim(substr($str, 795,1)), //ENTREPRISE ORDINAIRE(+Ext)TableIEOSOORDI_N
|
|
'SOENAT'=>trim(substr($str, 796,2)), //CODE NATURE ETAB(+Ext)TableINN
|
|
'SOSINE'=>trim(substr($str, 798,2)), //Type Exploitation(C)(+Ext*)TableINE
|
|
|
|
|
|
|
|
);
|
|
break;
|
|
|
|
case 'BI':
|
|
$fcontents=explode("\n",$str);
|
|
|
|
$i=1;
|
|
while (substr($fcontents[$i], 65, 1)=='7')
|
|
{
|
|
$tabBilan['SIRET'] =substr($fcontents[$i], 36, 14);
|
|
$tabBilan['DATE_FRAICHE_BILAN'] =substr($fcontents[$i], 57, 8); // SSAAMMJJ
|
|
$tabBilan['DATE_CLOTURE'] =substr($fcontents[$i], 101, 8); // SSAAMMJJ
|
|
$tabBilan['DATE_CLOTURE_PRE'] =substr($fcontents[$i], 109, 8); // SSAAMMJJ
|
|
$tabBilan['DUREE_MOIS'] =substr($fcontents[$i], 117, 2);
|
|
$tabBilan['DUREE_MOIS_PRE'] =substr($fcontents[$i], 119, 2);
|
|
$tabBilan['MONNAIE'] =substr($fcontents[$i], 121, 2);
|
|
$tabBilan['CONSOLIDE'] =substr($fcontents[$i], 123, 1); // C = Bilan consolidé
|
|
$tabBilan['MONNAIE_ORI'] =substr($fcontents[$i], 793, 3);
|
|
$tabBilan['MONNAIE_LIV_UNITE'] =substr($fcontents[$i], 796, 1);
|
|
$tabBilan['MONNAIE_LIV'] =substr($fcontents[$i], 797, 3);
|
|
for ($j=0; $j<30; $j++)
|
|
{
|
|
$code =rtrim(substr($fcontents[$i], 124+$j*20, 4));
|
|
if ($code!='')
|
|
{
|
|
$colonneLiasse=(int)substr($code,2,1);
|
|
//echo "$code => $colonneLiasse<br>";
|
|
$signe =substr($fcontents[$i], 128+$j*20, 1);
|
|
$valeur =(double)substr($fcontents[$i], 129+$j*20, 15);
|
|
if ($signe=='-')
|
|
$valeur*=-1;
|
|
/* if ( $colonneLiasse>0 )
|
|
{
|
|
if (!isset($tabBilan[substr($code,0,2)]))
|
|
$tabBilan[substr($code,0,2)]=$valeur;
|
|
}
|
|
else
|
|
*/
|
|
$tabBilan[$code]=$valeur;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
|
|
$tab_ret=$tabBilan;/*array(
|
|
'SONABO'=>trim(substr($str, 0, 9)), // N°ABONNE (I) ********************
|
|
'SONUME'=>trim(substr($str, 9, 9)), // N°ENTREPRISE (I) * FICHE COMPLETE *
|
|
'SONUS' =>trim(substr($str, 18, 9)), // N°UFS (I) * +EXTENSION INSEE * SONUS_V
|
|
'SOANN' =>trim(substr($str, 27, 9)), // N° ANNONCE (I) ********************
|
|
'SORCS' =>trim(substr($str, 36, 14)), // N°SIRET (I)
|
|
'SOPRD' =>trim(substr($str, 50, 2)), // CODE PRODUIT (I) SOPRD_N
|
|
'SOSEQ' =>trim(substr($str, 52, 5)), // SEQUENCE DANS GROUPE(I) SOSEQ_N
|
|
'SODTEN'=>trim(substr($str, 57, 8)), // DATE ENVOI (I) AAAAMMJJ SODTEN_D
|
|
'SOTENR'=>trim(substr($str, 65, 1)), // CODE ENREGISTREMENT (I)
|
|
'SOTYP' =>trim(substr($str, 66, 3)), // TYPE STRUCTURE (I) "ID " SOTYP_V
|
|
'SOCONF'=>trim(substr($str, 69, 1)), // Code confirmé (I)
|
|
'SOREFC'=>trim(substr($str, 70, 30)), // REFERENCE CLIENT (I) SOREFC_X
|
|
'SOORIG'=>trim(substr($str, 100, 1)), // Code Origine BIL (S)
|
|
'SOBICN'=>trim(substr($str, 101, 8)), // Date de cloture de l'exercice Exercice Année N au format SSAAMMJJ 20051231
|
|
'SOBIC1'=>trim(substr($str, 109, 8)), // Date de cloture de l'exercice précédent Exercice Année N-1 au format SSAAMMJJ 20041231
|
|
'SOBIDN'=>trim(substr($str, 117, 2)), // Durée en mois de l'exercice Durée de l'exercice au format MM 12
|
|
'SOBID1'=>trim(substr($str, 119, 2)), // Durée en mois de l'exercice précédent Durée de l'exercice N-1 au format MM 12
|
|
'SOBIMO'=>trim(substr($str, 121, 2)), // Monnaie du bilan Cf. Table BDV EUR
|
|
'SOBICO'=>trim(substr($str, 123, 1)), // Type du bilan S = Bilan réel Normal / C = Bilan Consolidé S
|
|
//725 69 793 SOBIFF O AN Zone réservé Réservé usage GROUPE BIL
|
|
'SOBIMU'=>trim(substr($str, 793, 3)), // Code devise ISO de déclaration du bilan Cf. Table BDV EUR
|
|
'SOBIUL'=>trim(substr($str, 796, 1)), // Unité de la devise du bilan livré K=KILO
|
|
'SOBIML'=>trim(substr($str, 123, 3)), // Code devise ISO du bilan livré Cf. Table BDV EUR
|
|
|
|
/*
|
|
|
|
125 4 128 SOBL01 N AN Code du poste bilan dans la liasse Cerfa Poste 01 * AX
|
|
129 1 129 SOBS01 N AN Signe du poste bilan, "-" si négatif Poste 01 *
|
|
130 15 144 SOBM01 N Num Montant du poste bilan en unité monétaire Poste 01 * 000000000012345
|
|
145 4 148 SOBL02 N AN Code du poste bilan dans la liasse Cerfa Poste 02 BX
|
|
149 1 149 SOBS02 N AN Signe du poste bilan, "-" si négatif Poste 02 -
|
|
150 15 164 SOBM02 N Num Montant du poste bilan en unité monétaire Poste 02 000000000000045
|
|
165 4 168 SOBL03 N AN Code du poste bilan dans la liasse Cerfa Poste 03 DE
|
|
169 1 169 SOBS03 N AN Signe du poste bilan, "-" si négatif Poste 03 000000000012345
|
|
170 15 184 SOBM03 N Num Montant du poste bilan en unité monétaire Poste 03
|
|
185 4 188 SOBL04 N AN Code du poste bilan dans la liasse Cerfa Poste 04
|
|
189 1 189 SOBS04 N AN Signe du poste bilan, "-" si négatif Poste 04
|
|
190 15 204 SOBM04 N Num Montant du poste bilan en unité monétaire Poste 04
|
|
205 4 208 SOBL05 N AN Code du poste bilan dans la liasse Cerfa Poste 05
|
|
209 1 209 SOBS05 N AN Signe du poste bilan, "-" si négatif Poste 05
|
|
210 15 224 SOBM05 N Num Montant du poste bilan en unité monétaire Poste 05
|
|
225 4 228 SOBL06 N AN Code du poste bilan dans la liasse Cerfa Poste 06
|
|
229 1 229 SOBS06 N AN Signe du poste bilan, "-" si négatif Poste 06
|
|
230 15 244 SOBM06 N Num Montant du poste bilan en unité monétaire Poste 06
|
|
245 4 248 SOBL07 N AN Code du poste bilan dans la liasse Cerfa Poste 07
|
|
249 1 249 SOBS07 N AN Signe du poste bilan, "-" si négatif Poste 07
|
|
250 15 264 SOBM07 N Num Montant du poste bilan en unité monétaire Poste 07
|
|
265 4 268 SOBL08 N AN Code du poste bilan dans la liasse Cerfa Poste 08
|
|
269 1 269 SOBS08 N AN Signe du poste bilan, "-" si négatif Poste 08
|
|
270 15 284 SOBM08 N Num Montant du poste bilan en unité monétaire Poste 08
|
|
285 4 288 SOBL09 N AN Code du poste bilan dans la liasse Cerfa Poste 09
|
|
289 1 289 SOBS09 N AN Signe du poste bilan, "-" si négatif Poste 09
|
|
290 15 304 SOBM09 N Num Montant du poste bilan en unité monétaire Poste 09
|
|
305 4 308 SOBL10 N AN Code du poste bilan dans la liasse Cerfa Poste 10
|
|
309 1 309 SOBS10 N AN Signe du poste bilan, "-" si négatif Poste 10
|
|
310 15 324 SOBM10 N Num Montant du poste bilan en unité monétaire Poste 10
|
|
325 4 328 SOBL11 N AN Code du poste bilan dans la liasse Cerfa Poste 11
|
|
329 1 329 SOBS11 N AN Signe du poste bilan, "-" si négatif Poste 11
|
|
330 15 344 SOBM11 N Num Montant du poste bilan en unité monétaire Poste 11
|
|
345 4 348 SOBL12 N AN Code du poste bilan dans la liasse Cerfa Poste 12
|
|
349 1 349 SOBS12 N AN Signe du poste bilan, "-" si négatif Poste 12
|
|
350 15 364 SOBM12 N Num Montant du poste bilan en unité monétaire Poste 12
|
|
365 4 368 SOBL13 N AN Code du poste bilan dans la liasse Cerfa Poste 13
|
|
369 1 369 SOBS13 N AN Signe du poste bilan, "-" si négatif Poste 13
|
|
370 15 384 SOBM13 N Num Montant du poste bilan en unité monétaire Poste 13
|
|
385 4 388 SOBL14 N AN Code du poste bilan dans la liasse Cerfa Poste 14
|
|
389 1 389 SOBS14 N AN Signe du poste bilan, "-" si négatif Poste 14
|
|
390 15 404 SOBM14 N Num Montant du poste bilan en unité monétaire Poste 14
|
|
405 4 408 SOBL15 N AN Code du poste bilan dans la liasse Cerfa Poste 15
|
|
409 1 409 SOBS15 N AN Signe du poste bilan, "-" si négatif Poste 15
|
|
410 15 424 SOBM15 N Num Montant du poste bilan en unité monétaire Poste 15
|
|
425 4 428 SOBL16 N AN Code du poste bilan dans la liasse Cerfa Poste 16
|
|
429 1 429 SOBS16 N AN Signe du poste bilan, "-" si négatif Poste 16
|
|
430 15 444 SOBM16 N Num Montant du poste bilan en unité monétaire Poste 16
|
|
445 4 448 SOBL17 N AN Code du poste bilan dans la liasse Cerfa Poste 17
|
|
449 1 449 SOBS17 N AN Signe du poste bilan, "-" si négatif Poste 17
|
|
450 15 464 SOBM17 N Num Montant du poste bilan en unité monétaire Poste 17
|
|
465 4 468 SOBL18 N AN Code du poste bilan dans la liasse Cerfa Poste 18
|
|
469 1 469 SOBS18 N AN Signe du poste bilan, "-" si négatif Poste 18
|
|
470 15 484 SOBM18 N Num Montant du poste bilan en unité monétaire Poste 18
|
|
485 4 488 SOBL19 N AN Code du poste bilan dans la liasse Cerfa Poste 19
|
|
489 1 489 SOBS19 N AN Signe du poste bilan, "-" si négatif Poste 19
|
|
490 15 504 SOBM19 N Num Montant du poste bilan en unité monétaire Poste 19
|
|
505 4 508 SOBL20 N AN Code du poste bilan dans la liasse Cerfa Poste 20
|
|
509 1 509 SOBS20 N AN Signe du poste bilan, "-" si négatif Poste 20
|
|
510 15 524 SOBM20 N Num Montant du poste bilan en unité monétaire Poste 20
|
|
525 4 528 SOBL21 N AN Code du poste bilan dans la liasse Cerfa Poste 21
|
|
529 1 529 SOBS21 N AN Signe du poste bilan, "-" si négatif Poste 21
|
|
530 15 544 SOBM21 N Num Montant du poste bilan en unité monétaire Poste 21
|
|
545 4 548 SOBL22 N AN Code du poste bilan dans la liasse Cerfa Poste 22
|
|
549 1 549 SOBS22 N AN Signe du poste bilan, "-" si négatif Poste 22
|
|
550 15 564 SOBM22 N Num Montant du poste bilan en unité monétaire Poste 22
|
|
565 4 568 SOBL23 N AN Code du poste bilan dans la liasse Cerfa Poste 23
|
|
569 1 569 SOBS23 N AN Signe du poste bilan, "-" si négatif Poste 23
|
|
570 15 584 SOBM23 N Num Montant du poste bilan en unité monétaire Poste 23
|
|
585 4 588 SOBL24 N AN Code du poste bilan dans la liasse Cerfa Poste 24
|
|
589 1 589 SOBS24 N AN Signe du poste bilan, "-" si négatif Poste 24
|
|
590 15 604 SOBM24 N Num Montant du poste bilan en unité monétaire Poste 24
|
|
605 4 608 SOBL25 N AN Code du poste bilan dans la liasse Cerfa Poste 25
|
|
609 1 609 SOBS25 N AN Signe du poste bilan, "-" si négatif Poste 25
|
|
610 15 624 SOBM25 N Num Montant du poste bilan en unité monétaire Poste 25
|
|
625 4 628 SOBL26 N AN Code du poste bilan dans la liasse Cerfa Poste 26
|
|
629 1 629 SOBS26 N AN Signe du poste bilan, "-" si négatif Poste 26
|
|
630 15 644 SOBM26 N Num Montant du poste bilan en unité monétaire Poste 26
|
|
645 4 648 SOBL27 N AN Code du poste bilan dans la liasse Cerfa Poste 27
|
|
649 1 649 SOBS27 N AN Signe du poste bilan, "-" si négatif Poste 27
|
|
650 15 664 SOBM27 N Num Montant du poste bilan en unité monétaire Poste 27
|
|
665 4 668 SOBL28 N AN Code du poste bilan dans la liasse Cerfa Poste 28
|
|
669 1 669 SOBS28 N AN Signe du poste bilan, "-" si négatif Poste 28
|
|
670 15 684 SOBM28 N Num Montant du poste bilan en unité monétaire Poste 28
|
|
685 4 688 SOBL29 N AN Code du poste bilan dans la liasse Cerfa Poste 29
|
|
689 1 689 SOBS29 N AN Signe du poste bilan, "-" si négatif Poste 29
|
|
690 15 704 SOBM29 N Num Montant du poste bilan en unité monétaire Poste 29
|
|
705 4 708 SOBL30 N AN Code du poste bilan dans la liasse Cerfa Poste 30
|
|
709 1 709 SOBS30 N AN Signe du poste bilan, "-" si négatif Poste 30
|
|
710 15 724 SOBM30 N Num Montant du poste bilan en unité monétaire Poste 30
|
|
|
|
|
|
|
|
*/
|
|
|
|
// );
|
|
break;
|
|
|
|
}
|
|
return $tab_ret;
|
|
}
|
|
|
|
function csv2array($strCSV, $siren='') {
|
|
$tab=explode("\n", $strCSV);
|
|
foreach ($tab as $ligne=>$data) {
|
|
$data2=explode(';', $data);
|
|
$ficheCSV=trim($data2[1]);
|
|
if (trim($data2[0])=='01') $ficheCSV='SOLV1';
|
|
if (trim($data2[0])=='02') $ficheCSV='SOLV2';
|
|
if (trim($data2[0])=='03') $ficheCSV='SOLV3';
|
|
if((trim($data2[2])=='OUI' || trim($data2[2])=='NON') &&
|
|
(trim($data2[3])=='OUI' || trim($data2[3])=='NON') &&
|
|
(trim($data2[4])=='OUI' || trim($data2[4])=='NON')) $ficheCSV='DISPO';
|
|
|
|
switch ($ficheCSV)
|
|
{
|
|
case 'BILL':
|
|
$tab_ret=array(
|
|
'RETOUR' =>'',
|
|
'PRODUIT' =>'BILANS',
|
|
'RISIR' =>$data2[3],// N° SIREN
|
|
'RINUME' =>$data2[4], // N° ENTREPRISE
|
|
'RBDTCN' =>$data2[5],// N° SIREN
|
|
'RDDURN' =>trim($data2[6]),// N° SIREN
|
|
);
|
|
$tab2[$ligne]=$tab_ret;
|
|
break;
|
|
case 'DISPO':
|
|
$tab_ret=array(
|
|
'RETOUR'=>'',
|
|
'PRODUIT'=>'PRODUITS',
|
|
'RINUME'=>$data2[0],// N° ENTREPRISE
|
|
'RISIR' =>$data2[1],// N° SIREN
|
|
'RIANNL'=>$data2[2],// PRESENCE D'INFORMATION(S) LEGALE(S)
|
|
'RIELML'=>$data2[3],// PRESENCE D'ELEMENTS FINANCIERS
|
|
'RIBILL'=>$data2[4],// PRESENCE DE BILAN(S), ANNEXES OU RATIOS
|
|
'RIINTL'=>$data2[5],// PRESENCE DE REPRESENTANTS LEGAUX
|
|
'RIACTL'=>$data2[6],// PRESENCE D'ACTIONNAIRES
|
|
'RIPARL'=>$data2[7],// PRESENCE DE FILIALES / PARTICIPATIONS
|
|
'RIINFL'=>$data2[8],// PRESENCE D'INFORMATIONS COMMUNIQUES PAR L'ENTREPRISE
|
|
'RICMP' =>$data2[9],// PRESENCE COMPETENCES TERRITORIALES
|
|
'RISURV'=>$data2[10],// MISE EN SURVEILLANCE POSSIBLE
|
|
'RILEV' =>$data2[11],// COMMANDE DE PIECES OFFICIELLES
|
|
'RIRSC' =>$data2[12],// COMMANDE DE RENSEIGNEMENTS COMMERCIAUX
|
|
'RISOLV'=>$data2[13],// SOLVABIL
|
|
);
|
|
$tab2[$ligne]=$tab_ret;
|
|
break;
|
|
case 'ACTL':
|
|
$tab_ret=array('actionnaire'=>array(
|
|
'RETOUR' =>'',
|
|
'PRODUIT' =>'ACTIONNAIRES',
|
|
'XLABO' =>str_replace('<HTML>','',$data2[0]),// N° SIREN
|
|
'RISIR' =>$data2[2],// N° SIREN
|
|
'RINUME' =>$data2[3], // N° ENTREPRISE
|
|
'RLPSIR' =>$data2[4],// N° SIREN
|
|
'RLPNOM' =>$data2[5],// N° SIREN
|
|
'RLPOUR' =>$data2[6],// N° SIREN
|
|
));
|
|
$tab2[$ligne]=$tab_ret;
|
|
|
|
break;
|
|
case 'SOLV3':
|
|
$tab_ret=array(
|
|
'RETOUR' =>'',
|
|
'PRODUIT' =>'SOLVABIL3',
|
|
'RNISIR' =>$data2[3],// N° SIREN
|
|
'RINUME' =>'', // N° ENTREPRISE
|
|
'RNNIV' =>$data2[0],
|
|
'RNDATN' =>$data2[1],
|
|
'RNREFC' =>$data2[2],
|
|
'RISIR' =>$data2[3],
|
|
'RINIC' =>$data2[4],
|
|
'RINRS' =>$data2[5],
|
|
'RNNOTE' =>$data2[6],
|
|
'XNENCO' =>$data2[7],
|
|
'XNMONN' =>$data2[8],
|
|
'RNENCO' =>$data2[9],
|
|
'RNRUNM' =>$data2[10],
|
|
'RNAVIL' =>$data2[11],
|
|
'RNPAIL' =>$data2[12],
|
|
'RNPAII' =>$data2[13],
|
|
'RNSITL' =>$data2[14],
|
|
'RISIGL' =>$data2[15],
|
|
'RIENS' =>$data2[16],
|
|
'RIRCE' =>$data2[17],
|
|
'RINRU' =>$data2[18],
|
|
'RIBIS' =>$data2[19],
|
|
'RIRUE' =>$data2[20],
|
|
'RICP' =>$data2[21],
|
|
'RIVIL' =>$data2[22],
|
|
'RITELT' =>$data2[23],
|
|
'RIFAXT' =>$data2[24],
|
|
'RICATL' =>$data2[25],
|
|
'RICAT' =>$data2[26],
|
|
'RICAPI' =>$data2[27],
|
|
'RILIDV' =>$data2[28],
|
|
'RIDTCR' =>$data2[29],
|
|
'RIAPE' =>$data2[30],
|
|
'RIAPEL' =>$data2[31],
|
|
'RISINL' =>$data2[32],
|
|
'RINBET' =>$data2[33],
|
|
'RIDRN1' =>$data2[34],
|
|
'RIDRR1' =>$data2[35],
|
|
'RIDRF1' =>$data2[36],
|
|
'RIDDN1' =>$data2[37],
|
|
'RIDRV1' =>$data2[38],
|
|
'RIDRN2' =>$data2[39],
|
|
'RIDRR2' =>$data2[40],
|
|
'RIDRF2' =>$data2[41],
|
|
'RIDDN2' =>$data2[42],
|
|
'RIDRV2' =>$data2[43],
|
|
'RICAL' =>$data2[44],
|
|
'RICAUM' =>$data2[45],
|
|
'RICSEL' =>$data2[46],
|
|
'RICOTL' =>$data2[47],
|
|
'RITMAR' =>$data2[48],
|
|
'RISICO' =>$data2[49],
|
|
'RIACNO' =>$data2[50],
|
|
'RIACSI' =>$data2[51],
|
|
'RIACPO' =>$data2[52],
|
|
'RIRLJ' =>$data2[53],
|
|
'RIDATE' =>$data2[54],
|
|
'RIEVTL' =>$data2[55],
|
|
'RIROLL' =>$data2[56],
|
|
'RISTYPL' =>$data2[57],
|
|
'RISNOM' =>$data2[58],
|
|
'RISNRU' =>$data2[59],
|
|
'RISBIS' =>$data2[60],
|
|
'RISRUE' =>$data2[61],
|
|
'RISCP' =>$data2[62],
|
|
'RISVIL' =>$data2[63],
|
|
'RISTEL' =>$data2[64],
|
|
'RFRUNM' =>$data2[65],
|
|
'RFCLO3' =>$data2[66],
|
|
'RFDUR3' =>$data2[67],
|
|
'RFCA3' =>$data2[68],
|
|
'RFCAX3' =>$data2[69],
|
|
'RFRP3' =>$data2[70],
|
|
'RFFF3' =>$data2[71],
|
|
'RFRS3' =>$data2[72],
|
|
'RFRX3' =>$data2[73],
|
|
'RFRN3' =>$data2[74],
|
|
'RFCF3' =>$data2[75],
|
|
'RFFP3' =>$data2[76],
|
|
'RFDC3' =>$data2[77],
|
|
'RFDM3' =>$data2[78],
|
|
'RFTB3' =>$data2[79],
|
|
'RFFR3' =>$data2[80],
|
|
'RFBF3' =>$data2[81],
|
|
'RFTI3' =>$data2[82],
|
|
'RFEF3' =>$data2[83],
|
|
'RFCLO2' =>$data2[84],
|
|
'RFDUR2' =>$data2[85],
|
|
'RFCA2' =>$data2[86],
|
|
'RFCAP2' =>$data2[87],
|
|
'RFCAX2' =>$data2[88],
|
|
'RFCAXP2' =>$data2[89],
|
|
'RFRP2' =>$data2[90],
|
|
'RFRPP2' =>$data2[91],
|
|
'RFFF2' =>$data2[92],
|
|
'RFFFP2' =>$data2[93],
|
|
'RFRS2' =>$data2[94],
|
|
'RFRSP2' =>$data2[95],
|
|
'RFRX2' =>$data2[96],
|
|
'RFRXP2' =>$data2[97],
|
|
'RFRN2' =>$data2[98],
|
|
'RFRNP2' =>$data2[99],
|
|
'RFCF2' =>$data2[100],
|
|
'RFCFP2' =>$data2[101],
|
|
'RFFP2' =>$data2[102],
|
|
'RFFPP2' =>$data2[103],
|
|
'RFDC2' =>$data2[104],
|
|
'RFDCP2' =>$data2[105],
|
|
'RFDM2' =>$data2[106],
|
|
'RFDMP2' =>$data2[107],
|
|
'RFTB2' =>$data2[108],
|
|
'RFTBP2' =>$data2[109],
|
|
'RFFR2' =>$data2[110],
|
|
'RFFRP2' =>$data2[111],
|
|
'RFBF2' =>$data2[112],
|
|
'RFBFP2' =>$data2[113],
|
|
'RFTI2' =>$data2[114],
|
|
'RFTIP2' =>$data2[115],
|
|
'RFEF2' =>$data2[116],
|
|
'RFEFP2' =>$data2[117],
|
|
'RFCLO1' =>$data2[118],
|
|
'RFDUR1' =>$data2[119],
|
|
'RFCA1' =>$data2[120],
|
|
'RFCAP1' =>$data2[121],
|
|
'RFCAX1' =>$data2[122],
|
|
'RFCAXP1' =>$data2[123],
|
|
'RFRP1' =>$data2[124],
|
|
'RFRPP1' =>$data2[125],
|
|
'RFFF1' =>$data2[126],
|
|
'RFFFP1' =>$data2[127],
|
|
'RFRS1' =>$data2[128],
|
|
'RFRSP1' =>$data2[129],
|
|
'RFRX1' =>$data2[130],
|
|
'RFRXP1' =>$data2[131],
|
|
'RFRN1' =>$data2[132],
|
|
'RFRNP1' =>$data2[133],
|
|
'RFCF1' =>$data2[134],
|
|
'RFCFP1' =>$data2[135],
|
|
'RFFP1' =>$data2[136],
|
|
'RFFPP1' =>$data2[137],
|
|
'RFDC1' =>$data2[138],
|
|
'RFDCP1' =>$data2[139],
|
|
'RFDM1' =>$data2[140],
|
|
'RFDMP1' =>$data2[141],
|
|
'RFTB1' =>$data2[142],
|
|
'RFTBP1' =>$data2[143],
|
|
'RFFR1' =>$data2[144],
|
|
'RFFRP1' =>$data2[145],
|
|
'RFBF1' =>$data2[146],
|
|
'RFBFP1' =>$data2[147],
|
|
'RFTI1' =>$data2[148],
|
|
'RFTIP1' =>$data2[149],
|
|
'RFEF1' =>$data2[150],
|
|
'RFEFP1' =>$data2[151],
|
|
'RBRUNM' =>$data2[152],
|
|
'XBDTCN' =>$data2[153],
|
|
'RBDURN' =>$data2[154],
|
|
'RBR11' =>$data2[155],
|
|
'RBR11P' =>$data2[156],
|
|
'RBR12' =>$data2[157],
|
|
'RBR12P' =>$data2[158],
|
|
'RBR13' =>$data2[159],
|
|
'RBR13P' =>$data2[160],
|
|
'RBR14' =>$data2[161],
|
|
'RBR14P' =>$data2[162],
|
|
'RBR15' =>$data2[163],
|
|
'RBR15P' =>$data2[164],
|
|
'RBR16' =>$data2[165],
|
|
'RBR16P' =>$data2[166],
|
|
'RBR17' =>$data2[167],
|
|
'RBR17P' =>$data2[168],
|
|
'RBR18' =>$data2[169],
|
|
'RBR18P' =>$data2[170],
|
|
'RBR1A' =>$data2[171],
|
|
'RBR1AP' =>$data2[172],
|
|
'RBR1T' =>$data2[173],
|
|
'RBR1TP' =>$data2[174],
|
|
'RBR21' =>$data2[175],
|
|
'RBR21P' =>$data2[176],
|
|
'RBR22' =>$data2[177],
|
|
'RBR22P' =>$data2[178],
|
|
'RBR23' =>$data2[179],
|
|
'RBR23P' =>$data2[180],
|
|
'RBR24' =>$data2[181],
|
|
'RBR24P' =>$data2[182],
|
|
'RBR25' =>$data2[183],
|
|
'RBR25P' =>$data2[184],
|
|
'RBR26' =>$data2[185],
|
|
'RBR26P' =>$data2[186],
|
|
'RBR27' =>$data2[187],
|
|
'RBR27P' =>$data2[188],
|
|
'RBR28' =>$data2[189],
|
|
'RBR28P' =>$data2[190],
|
|
'RBR29' =>$data2[191],
|
|
'RBR29P' =>$data2[192],
|
|
'RBR2A' =>$data2[193],
|
|
'RBR2AP' =>$data2[194],
|
|
'RBR2T' =>$data2[195],
|
|
'RBR2TP' =>$data2[196],
|
|
'RBRUNM' =>$data2[197],
|
|
'XBDTCN' =>$data2[198],
|
|
'RBDURN' =>$data2[199],
|
|
'RBS01' =>$data2[200],
|
|
'RBS01P' =>$data2[201],
|
|
'RBS02' =>$data2[202],
|
|
'RBS02P' =>$data2[203],
|
|
'RBS03' =>$data2[204],
|
|
'RBS03P' =>$data2[205],
|
|
'RBS04' =>$data2[206],
|
|
'RBS04P' =>$data2[207],
|
|
'RBS05' =>$data2[208],
|
|
'RBS05P' =>$data2[209],
|
|
'RBS06' =>$data2[210],
|
|
'RBS06P' =>$data2[211],
|
|
'RBS07' =>$data2[212],
|
|
'RBS07P' =>$data2[213],
|
|
'RBS08' =>$data2[214],
|
|
'RBS08P' =>$data2[215],
|
|
'RBS09' =>$data2[216],
|
|
'RBS09P' =>$data2[217],
|
|
'RBS10' =>$data2[218],
|
|
'RBS10P' =>$data2[219],
|
|
'RBS11' =>$data2[220],
|
|
'RBS11P' =>$data2[221],
|
|
'RBS12' =>$data2[222],
|
|
'RBS12P' =>$data2[223],
|
|
'RBS13' =>$data2[224],
|
|
'RBS13P' =>$data2[225],
|
|
'RBS14' =>$data2[226],
|
|
'RBS14P' =>$data2[227],
|
|
'RBS15' =>$data2[228],
|
|
'RBS15P' =>$data2[229],
|
|
'RBS16' =>$data2[230],
|
|
'RBS16P' =>$data2[231],
|
|
'RBS17' =>$data2[232],
|
|
'RBS17P' =>$data2[233],
|
|
'RBS18' =>$data2[234],
|
|
'RBS18P' =>$data2[235],
|
|
'RBS19' =>$data2[236],
|
|
'RBS19P' =>$data2[237],
|
|
'RBS20' =>$data2[238],
|
|
'RBS20P' =>$data2[239],
|
|
'RBS21' =>$data2[240],
|
|
'RBS21P' =>$data2[241],
|
|
'RBS22' =>$data2[242],
|
|
'RBS22P' =>$data2[243],
|
|
'RBS23' =>$data2[244],
|
|
'RBS23P' =>$data2[245],
|
|
'RBS24' =>$data2[246],
|
|
'RBS24P' =>$data2[247],
|
|
'RVDTCN' =>$data2[248],
|
|
'RVDUR' =>$data2[249],
|
|
'RVRAM' =>$data2[250],
|
|
'RVRAMS' =>$data2[251],
|
|
'RVUNI' =>$data2[252],
|
|
'RVPOS' =>$data2[253],
|
|
'RVRAM' =>$data2[254],
|
|
'RVRAMS' =>$data2[255],
|
|
'RVUNI' =>$data2[256],
|
|
'RVPOS' =>$data2[257],
|
|
'RVRAM' =>$data2[258],
|
|
'RVRAMS' =>$data2[259],
|
|
'RVUNI' =>$data2[260],
|
|
'RVPOS' =>$data2[261],
|
|
'RVRAM' =>$data2[262],
|
|
'RVRAMS' =>$data2[263],
|
|
'RVUNI' =>$data2[264],
|
|
'RVPOS' =>$data2[265],
|
|
'RVRAM' =>$data2[266],
|
|
'RVRAMS' =>$data2[267],
|
|
'RVUNI' =>$data2[268],
|
|
'RVPOS' =>$data2[269],
|
|
'RVRAM' =>$data2[270],
|
|
'RVRAMS' =>$data2[271],
|
|
'RVUNI' =>$data2[272],
|
|
'RVPOS' =>$data2[273],
|
|
'RVRAM' =>$data2[274],
|
|
'RVRAMS' =>$data2[275],
|
|
'RVUNI' =>$data2[276],
|
|
'RVPOS' =>$data2[277],
|
|
'RVRAM' =>$data2[278],
|
|
'RVRAMS' =>$data2[279],
|
|
'RVUNI' =>$data2[280],
|
|
'RVPOS' =>$data2[281],
|
|
'RVRAM' =>$data2[282],
|
|
'RVRAMS' =>$data2[283],
|
|
'RVUNI' =>$data2[284],
|
|
'RVPOS' =>$data2[285],
|
|
'RVRAM' =>$data2[286],
|
|
'RVRAMS' =>$data2[287],
|
|
'RVUNI' =>$data2[288],
|
|
'RVPOS' =>$data2[289],
|
|
'RVRAM' =>$data2[290],
|
|
'RVRAMS' =>$data2[291],
|
|
'RVUNI' =>$data2[292],
|
|
'RVPOS' =>$data2[293],
|
|
'RVRAM' =>$data2[294],
|
|
'RVRAMS' =>$data2[295],
|
|
'RVUNI' =>$data2[296],
|
|
'RVPOS' =>$data2[297],
|
|
'RVRAM' =>$data2[298],
|
|
'RVRAMS' =>$data2[299],
|
|
'RVUNI' =>$data2[300],
|
|
'RVPOS' =>$data2[301],
|
|
'RVRAM' =>$data2[302],
|
|
'RVRAMS' =>$data2[303],
|
|
'RVUNI' =>$data2[304],
|
|
'RVPOS' =>$data2[305],
|
|
'RVRAM' =>$data2[306],
|
|
'RVRAMS' =>$data2[307],
|
|
'RVUNI' =>$data2[308],
|
|
'RVPOS' =>$data2[309],
|
|
'RVRAM' =>$data2[310],
|
|
'RVRAMS' =>$data2[311],
|
|
'RVUNI' =>$data2[312],
|
|
'RVPOS' =>$data2[313],
|
|
'RVRAM' =>$data2[314],
|
|
'RVRAMS' =>$data2[315],
|
|
'RVUNI' =>$data2[316],
|
|
'RVPOS' =>$data2[317],
|
|
'RNNBS' =>$data2[318],
|
|
);
|
|
for ($i=0; $i<(int)($data2[318]); $i++){
|
|
$j=$i+319;
|
|
$tabRNTX[$i]=$data2[$j];
|
|
$this->trace ( "Ligne de commentaire n°$i ($j) = ". $data2[$j] );
|
|
}
|
|
$tab_RNTX=array('RNTX'=>$tabRNTX);
|
|
$tab_ret=array_merge($tab_ret, $tab_RNTX);
|
|
|
|
$posNbActionnaires=$j+1;
|
|
$nbActionnaires=$data2[$posNbActionnaires];
|
|
$this->trace ( "Nombre d'actionnaire(s) = $nbActionnaires (position $posNbActionnaires)");
|
|
|
|
for ($i=1, $k=0; $i<=(int)($nbActionnaires)*3; $i=$i+3, $k++){
|
|
$j=$i+$posNbActionnaires;
|
|
$tabACT[$k]=array('NOM'=>$data2[$j],
|
|
'SIREN'=>$data2[$j+1],
|
|
'POURCENTAGE'=>$data2[$j+2],
|
|
);
|
|
|
|
$this->trace ( "Ligne d'actionnaire n°$k ($j) = ". $data2[$j] .' '. $data2[$j+1] .' '. $data2[$j+2]);
|
|
}
|
|
$tab_ACT=array('ACTIONNAIRES'=>$tabACT);
|
|
$tab_ret=array_merge($tab_ret, $tab_ACT);
|
|
|
|
$posNbPart=$j+3;
|
|
$nbPart=$data2[$posNbPart];
|
|
$this->trace ( "Nombre de participation(s) = $nbPart (position $posNbPart)");
|
|
|
|
for ($i=1, $k=0; $i<=(int)($nbPart)*3; $i=$i+3, $k++){
|
|
$j=$i+$posNbPart;
|
|
$tabPART[$k]=array('NOM'=>$data2[$j],
|
|
'SIREN'=>$data2[$j+1],
|
|
'POURCENTAGE'=>$data2[$j+2],
|
|
);
|
|
|
|
$this->trace ( "Ligne de participation n°$k ($j) = ". $data2[$j] .' '. $data2[$j+1] .' '. $data2[$j+2]);
|
|
}
|
|
$tab_PART=array('PARTICIPATIONS'=>$tabPART);
|
|
$tab_ret=array_merge($tab_ret, $tab_PART);
|
|
$tab2[$ligne]=$tab_ret;
|
|
|
|
break;
|
|
|
|
case '':
|
|
|
|
break;
|
|
default:
|
|
$tab2[$ligne]=array(
|
|
'RETOUR' =>trim($ficheCSV.' '.$data2[2]),
|
|
'RISIR' =>trim($siren));
|
|
break;
|
|
}
|
|
}
|
|
// print_r($tab2);exit();
|
|
return $tab2;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function array2csv($array, $level=0, $str_csv='') {
|
|
|
|
if (!is_array($array))
|
|
return 0;
|
|
reset($array);
|
|
while ( list($key, $value) = each($array) ) {
|
|
if (is_array($value))
|
|
array2csv($value, $level+1, $str_csv);
|
|
else
|
|
$str_csv.=$value.';';
|
|
}
|
|
if ($level==0) return $str_csv."\r\n";
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
|