Update batch from old server
This commit is contained in:
parent
3e768c8a8b
commit
4623f1d3d0
815
batch/base64decode.php
Normal file
815
batch/base64decode.php
Normal file
@ -0,0 +1,815 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
$b64=file_get_contents('/var/www/batch/part1_1.b64');
|
||||
|
||||
echo base64_decode($b64);
|
||||
die();
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Sirenage automatique des annonces Bodacc pas encore sirenées.
|
||||
|
||||
Options :
|
||||
-s Sirenage semi-automatique (Ligne de prompt pour les entreprises non sirenées)
|
||||
-p Sirenage de toutes les annonces sans propositions (en vu du traitement manuel)
|
||||
-a Re-sirenage de toutes les annonces Bodacc non sirenées !
|
||||
-i:XXX Reprise à partir du numéro d'annonce XXX
|
||||
-m Ne pas envoyer l'email d'Information à l'équipe de production
|
||||
-n Ne pas limiter le nombre d'entités à sirener.
|
||||
";
|
||||
$semiManuel=$sansPropo=$toutes=$index=$noLimit=false;
|
||||
$envoyerMail=true;
|
||||
|
||||
$mInsee=new MInsee();
|
||||
$iBodacc=new MBodacc();
|
||||
$iDb2=new WDB('jo');
|
||||
|
||||
$tabCycles=array();
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $semiManuel=false; // Fonctionnement normal du script, càd : on sirene que en auto
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 's':
|
||||
$semiManuel=true;
|
||||
break;
|
||||
case 'm':
|
||||
$envoyerMail=false;
|
||||
break;
|
||||
case 'p':
|
||||
$sansPropo=true;
|
||||
break;
|
||||
case 'a':
|
||||
$toutes=true;
|
||||
break;
|
||||
case 'n':
|
||||
$noLimit=true;
|
||||
break;
|
||||
case 'i':
|
||||
$index=trim(substr($argv[$i],3));
|
||||
break;
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} else $tabCycles[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de SIRENAGE...".EOL;
|
||||
|
||||
$pertinence=false;
|
||||
$nbRep=30;
|
||||
$siege=0;
|
||||
|
||||
$tabTables=array(
|
||||
/* array('db'=>'sugarcrm', 'table2'=>'accounts', 'champRS'=>'name',
|
||||
'champAdresse'=>'billing_address_street',
|
||||
'champCP'=>'billing_address_postalcode',
|
||||
'champVille'=>'billing_address_city',
|
||||
'champSiren'=>'ticker_symbol',
|
||||
'champSirenValide'=>'(ticker_symbol<30000 OR ticker_symbol IS NULL)AND deleted')*/
|
||||
array( // Base 0
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'bodacc_detail',
|
||||
// Jointure
|
||||
'table2'=>"bodacc_detail b LEFT JOIN bodacc_sirenage s ON s.idAnn = b.id AND s.siren = b.siren AND s.idTable='bodacc_detail'",
|
||||
// Champs
|
||||
'champRS'=>'raisonSociale',
|
||||
'champAdresse'=>"CONCAT_WS(' ', adrNum,adrLibVoie)",
|
||||
'champCP'=>'codePostal',
|
||||
'champVille'=>'ville',
|
||||
'champSiren'=>'b.siren',
|
||||
'champNic'=>'nic',
|
||||
'champSirenValide'=>'sirenValide',
|
||||
'champNicValide'=>'nicValide'),
|
||||
array( // Base 1
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'annonces',
|
||||
// Jointure
|
||||
'table2'=>"annonces b LEFT JOIN bodacc_sirenage s ON s.idAnn = b.id AND s.siren = b.siren AND s.idTable='annonces'",
|
||||
// Champs
|
||||
'champRS'=>'raisonSociale',
|
||||
'champAdresse'=>'adresse',
|
||||
'champCP'=>'codePostal',
|
||||
'champVille'=>'ville',
|
||||
'champSiren'=>'b.siren',
|
||||
//'champNic'=>'nic',
|
||||
'champSirenValide'=>'sirenValide'),
|
||||
array( // Base 2
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'sirenage_clients',
|
||||
// Jointure
|
||||
'table2'=>"sirenage_clients b LEFT JOIN bodacc_sirenage s ON s.idAnn = b.id AND s.siren = b.siren AND s.idTable='sirenage_clients'",
|
||||
// Champs
|
||||
'champRS'=>'nom',
|
||||
'champAdresse'=>"TRIM(CONCAT_WS(' ', adresse1,adresse2,adresse3))",
|
||||
'champCP'=>'cp',
|
||||
'champVille'=>'ville',
|
||||
'champSiren'=>'b.siren',
|
||||
'champNic'=>'b.nic',
|
||||
'champSirenValide'=>'sirenValide',
|
||||
'champNicValide'=>'nicValide'),
|
||||
array( // Base 3
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'asso',
|
||||
// Jointure
|
||||
'table2'=>"asso b LEFT JOIN bodacc_sirenage s ON s.idAnn = b.id AND s.siren = b.siren AND s.idTable='asso'",
|
||||
// Champs
|
||||
'champRS'=>'Assoc_Nom',
|
||||
'champAdresse'=>'Assoc_Adresse',
|
||||
'champCP'=>'NULL',
|
||||
'champVille'=>'NULL',
|
||||
'champSiren'=>'b.siren',
|
||||
'champNic'=>'nic',
|
||||
'champSirenValide'=>'sirenValide',
|
||||
'champNicValide'=>'nicValide'),
|
||||
array( // Base 4
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'rncs_dirigeants',
|
||||
// Jointure
|
||||
'table2'=>"rncs_dirigeants b LEFT JOIN bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.dirSiren AND s.idTable='rncs_dirigeants'",
|
||||
// Champs
|
||||
'champRS'=>'dirRS',
|
||||
'champAdresse'=>'NULL',
|
||||
'champCP'=>'NULL',
|
||||
'champVille'=>'NULL',
|
||||
'champSiren'=>'b.dirSiren',
|
||||
//'champNic'=>'nic',
|
||||
'champSirenValide'=>"b.typeDir='PM' AND b.dirSiren",
|
||||
//'champNicValide'=>'nicValide',
|
||||
),
|
||||
array( // Base 5
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'boamp_lots',
|
||||
// Jointure
|
||||
'table2'=>"boamp_lots b LEFT JOIN bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.siren AND s.idTable='boamp_lots'",
|
||||
// Champs
|
||||
'champRS'=>'nom',
|
||||
'champAdresse'=>'adresse',
|
||||
'champCP'=>'cp',
|
||||
'champVille'=>'ville',
|
||||
'champSiren'=>'b.siren',
|
||||
//'champNic'=>'b.nic',
|
||||
'champSirenValide'=>"(Boamp_Code='BOMP C' OR Boamp_Rubrique IN('9','94')) AND sansSuite=0 AND (nom<>'' OR adresse<>'' OR cp<>'' OR ville<>'') AND nom NOT LIKE '%INFRUCTUEU%' AND b.sirenValide",
|
||||
//'champNicValide'=>'nicValide',
|
||||
),
|
||||
array( // Base 6
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'boamp_detail',
|
||||
// Jointure
|
||||
'table2'=>"boamp_detail b LEFT JOIN bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.siren AND s.idTable='boamp_detail'",
|
||||
// Champs
|
||||
'champRS'=>'raisonSociale',
|
||||
'champAdresse'=>'adresse',
|
||||
'champCP'=>'cp',
|
||||
'champVille'=>'ville',
|
||||
'champSiren'=>'b.siren',
|
||||
//'champNic'=>'b.nic',
|
||||
'champSirenValide'=>"(raisonSociale<>'' OR adresse<>'' OR cp<>'' OR ville<>'') AND b.sirenValide",
|
||||
//'champNicValide'=>'nicValide',
|
||||
),
|
||||
array( // Base 7
|
||||
'db'=>'jo',
|
||||
// Table à sirener
|
||||
'table1'=>'tourisme',
|
||||
// Jointure
|
||||
'table2'=>"tourisme b LEFT JOIN bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.siren AND s.idTable='tourisme'",
|
||||
// Champs
|
||||
'champRS'=>'nom',
|
||||
'champAdresse'=>'adresse',
|
||||
'champCP'=>'adrCp',
|
||||
'champVille'=>'adrVille',
|
||||
'champSiren'=>'b.siren',
|
||||
'champNic'=>'b.nic',
|
||||
'champSirenValide'=>"b.sirenValide",
|
||||
'champNicValide'=>'b.nicValide',
|
||||
),
|
||||
array( // Base 8
|
||||
'db'=>'sdv1',
|
||||
// Table à sirener
|
||||
'table1'=>'fedLiens',
|
||||
// Jointure
|
||||
'table2'=>"fedLiens b LEFT JOIN bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.siren2 AND s.idTable='fedLiens'",
|
||||
// Champs
|
||||
'champRS'=>'RS',
|
||||
'champAdresse'=>'adresse_libvoie',
|
||||
'champCP'=>'adresse_cp',
|
||||
'champVille'=>'adresse_ville',
|
||||
'champSiren'=>'b.siren2',
|
||||
//'champNic'=>'nic',
|
||||
'champSirenValide'=>"b.PpPm='PM' AND b.siren2",
|
||||
//'champNicValide'=>'nicValide',
|
||||
),
|
||||
array( // Base 9
|
||||
'db'=>'bopi',
|
||||
// Table à sirener
|
||||
'table1'=>'marques',
|
||||
// Jointure
|
||||
'table2'=>"bopi.marques b LEFT JOIN jo.bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.sirenDeposant AND s.idTable='marques'",
|
||||
// Champs
|
||||
'champRS'=>'deposantMarque',
|
||||
'champAdresse'=>"CONCAT_WS(' ',deposant_AdrNum,deposant_AdrTypVoie,deposant_AdrLibVoie,deposant_AdrComp)",
|
||||
'champCP'=>'deposant_AdrCP',
|
||||
'champVille'=>'deposant_AdrVille',
|
||||
'champSiren'=>'b.sirenDeposant',
|
||||
//'champNic'=>'nic',
|
||||
'champSirenValide'=>"b.sirenValide",
|
||||
//'champNicValide'=>'nicValide',
|
||||
),/*
|
||||
array( // Base 10 - Ce siren tout le temp !!!
|
||||
'db'=>'sdv1',
|
||||
// Table à sirener
|
||||
'table1'=>'tabCNCC',
|
||||
// Jointure
|
||||
'table2'=>"sdv1.tabCNCC b LEFT JOIN jo.bodacc_sirenage s ON s.idAnn=b.id AND s.siren=b.siren AND s.idTable='tabCNCC'",
|
||||
// Champs
|
||||
'champRS'=>'nom',
|
||||
'champAdresse'=>"CONCAT_WS(' ',adresse,adresse2)",
|
||||
'champCP'=>'cp',
|
||||
'champVille'=>'ville',
|
||||
'champSiren'=>'b.siren',
|
||||
'champNic'=>'nic',
|
||||
'champSirenValide'=>"sirenValide",
|
||||
'champNicValide'=>'nicValide',
|
||||
), */
|
||||
);
|
||||
|
||||
//$iDb2=new WDB('modelisation');
|
||||
foreach ($tabTables as $i=>$table) { // On boucle sur chaque table
|
||||
if (count($tabCycles)>0 && !in_array($i, $tabCycles)) continue;
|
||||
|
||||
$iDb=new WDB($table['db']);
|
||||
$tableDB=$table['table2'];
|
||||
if ($iDb === false) die('Could not select database: ' . $iDb->getLastError());
|
||||
if (!$sansPropo) $strOptions=" AND s.idAnn IS NULL AND s.siren IS NULL ";
|
||||
else $strOptions="";
|
||||
//if ($toutes) { $tableDB=$table['table1'].' b'; $strOptions=''; }
|
||||
if ($index) $strOptions.=' AND b.id>='.$index;
|
||||
//if ($index) $strOptions.=' AND id>='.$index;
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, nomCommercial, enseigne, sigle, adrNum, adrSiegeNum, '.$table['champAdresse'].' as Adr, CONCAT_WS(adrNum," ",adrLibVoie) as AdrSiege, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville, codePostalSiege, villeSiege, Rubrique_Bodacc, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Tribunal_Code, dateJugement, DATE_FORMAT(dateJugement, \'%w\') as jourJugement, DATE_FORMAT(dateJugement, \'%d\') as jjJugement';
|
||||
//if ($i==0)
|
||||
// $strOptions.=" OR b.typeEven LIKE '%1515%' ";//OR b.typeEven LIKE '%1517%' OR b.typeEven LIKE '%1520%' OR b.typeEven LIKE '%1999%'
|
||||
// codeEven==1515 || $codeEven==1517 || $codeEven==1520 ||$codeEven==1999))
|
||||
if ($i==1)
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville,
|
||||
"" AS Rubrique_Bodacc, parutionNum AS Bodacc_Num, dateSource AS Bodacc_Date_Parution, idAnnonce AS Num_Annonce, tribunal AS Tribunal_Code,
|
||||
dateJugement, DATE_FORMAT(dateJugement, \'%w\') as jourJugement, DATE_FORMAT(dateJugement, \'%d\') as jjJugement';
|
||||
elseif ($i==2)
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champNic'].' as nic, '.$table['champRS'].' as RS, enseigne, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville,
|
||||
telephone, "" AS Rubrique_Bodacc, "" AS Bodacc_Num, "" AS Bodacc_Date_Parution, "" AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
elseif ($i==3) {
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, "" AS enseigne, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville,
|
||||
Type_Annonce AS Rubrique_Bodacc, Num_Parution AS Bodacc_Num, Date_Parution AS Bodacc_Date_Parution, Num_Annonce, Sous_Prefecture AS Tribunal_Code,
|
||||
Assoc_Date_Declaration2 AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
$strOptions.="";
|
||||
}
|
||||
elseif ($i==4)
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, "" AS enseigne, "" as Adr, "" as CP, "" as ville, "" AS Rubrique_Bodacc, "" AS Bodacc_Num, flux AS Bodacc_Date_Parution, 0 AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
elseif ($i==5)
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville, Boamp_Rubrique AS Rubrique_Bodacc, "" AS Bodacc_Num, Boamp_Date_Parution AS Bodacc_Date_Parution, s.idAnn AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
elseif ($i==6)
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville, Boamp_Rubrique AS Rubrique_Bodacc, "" AS Bodacc_Num, Boamp_Date_Parution AS Bodacc_Date_Parution, s.idAnn AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
elseif ($i==7) {
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville, typeClasse AS Rubrique_Bodacc, "" AS Bodacc_Num, b.dateInsert AS Bodacc_Date_Parution, s.idAnn AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
} elseif ($i==9) {
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville, "" AS Rubrique_Bodacc, "" AS Bodacc_Num, b.dateInsert AS Bodacc_Date_Parution, s.idAnn AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
} elseif ($i==10) {
|
||||
$fields='id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as ville, "" AS Rubrique_Bodacc, "" AS Bodacc_Num, b.dateInsert AS Bodacc_Date_Parution, s.idAnn AS Num_Annonce, "" AS Tribunal_Code,
|
||||
"" AS dateJugement, "" as jourJugement, "" as jjJugement';
|
||||
$strOptions=" AND cp IS NOT NULL ";
|
||||
}
|
||||
|
||||
$where=$table['champSirenValide']."=0 ";
|
||||
if ($i<>2 && $i<>4 && $i<>7 && $i<>9 && $i<>10) {
|
||||
$where.=" AND idSuppr=0";
|
||||
}
|
||||
|
||||
if ($noLimit)
|
||||
$strOptions.=" ORDER BY id DESC";
|
||||
else
|
||||
$strOptions.=" /*AND id>768245*/ ORDER BY id ASC LIMIT 0,5000";
|
||||
|
||||
$where.=" $strOptions ";
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - REQUETE SQL = SELECT $fields FROM $tableDB WHERE $where;".EOL;
|
||||
|
||||
//$listeNonSirene=$iDb->select($tableDB, $fields, $where, true, MYSQL_ASSOC);
|
||||
$nbNonSirene=$iDb->select($tableDB, $fields, $where, true, MYSQL_ASSOC, true);
|
||||
|
||||
//echo date('Y/m/d - H:i:s') ." - Nombre d'entitées non SIRENEES : ". count($listeNonSirene) . EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Nombre d'entitées non SIRENEES : ".$nbNonSirene . EOL;
|
||||
$k=0;
|
||||
|
||||
//foreach ($listeNonSirene as $k=>$entrep) {
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$lastId=$entrep['id'];
|
||||
// $listeNonSirene as $k=>$entrep) {
|
||||
$k++;
|
||||
//if ($k==1000) die();
|
||||
/* Vérifier dans la table failure
|
||||
if (substr($entrep['Rubrique_Bodacc'],0,1)=='A') $codJournal='001';
|
||||
else $codJournal='200';
|
||||
$failures=$iDb2->select('failures', 'SIREN, NIC, libann, codevt, codtri, SONOM, SOCOM', "codjou='$codJournal' AND datpar='".str_replace('-','',$entrep['Bodacc_Date_Parution'])."' AND numbod='".$entrep['Bodacc_Num']."' AND numannjou='0".$entrep['Num_Annonce']."' AND SIREN NOT LIKE '000000000' GROUP BY SIREN", true);
|
||||
if (count($failures)==2) {
|
||||
/** Si plus de 1 siren, il faut vérifier suivant le type de l'annonce à quelle entreprise rattacher le siren manquant
|
||||
$tabSirF=array();
|
||||
foreach ($failures as $sirenf)
|
||||
$tabSirF[]=$sirenf['SIREN'];
|
||||
$strTabSir=implode(',',$tabSir);
|
||||
$tabTmp=$iDb->select('bodacc_detail','id, siren, sirenValide', 'id='. $entrep['id'].' ORDER BY sirenValide ASC', true);// ." AND siren NOT IN ($strTabSir)", true);
|
||||
$tabSir=array();
|
||||
foreach ($tabTmp as $sirenf)
|
||||
$tabSir[]=$sirenf['siren'];
|
||||
/*echo "Failures:\n";
|
||||
print_r($failures);
|
||||
echo "S&D:\n";
|
||||
print_r($tabTmp);
|
||||
echo "Diff:\n";
|
||||
$tabTmp2=array_diff($tabSirF,$tabSir);
|
||||
$siren=$tabTmp2[0]; // Valeur du Siren à prendre pour la mise à jour
|
||||
$sir=$tabTmp[0]['siren']; // Sir à mettre à jour
|
||||
//$nom=$entrep['SONOM'];
|
||||
//$vil=$entrep['SOCOM'];
|
||||
echo "Trouvé = $siren !\n";
|
||||
$iDb->update('bodacc_detail', array('siren'=>$siren, $table['champSirenValide']=>2), 'id='.$entrep['id'].' AND siren='.$sir, true) or die($iDb->getLastError());
|
||||
//die();
|
||||
// On efface l'information de la table A sirener au cas où !
|
||||
$iDb->delete('bodacc_sirenage', 'idAnn='.$entrep['id'].' AND siren='.$sir);
|
||||
} elseif (count($failures)==1) {
|
||||
echo "Une seule correspondance failures:\n";
|
||||
print_r($failures);
|
||||
$siren=$failures[0]['SIREN']; // Valeur du Siren à prendre pour la mise à jour
|
||||
//$sir=$tabTmp[0]['siren']; // Sir à mettre à jour
|
||||
$iDb->update('bodacc_detail', array('siren'=>$siren, $table['champSirenValide']=>2), 'id='.$entrep['id'].' AND siren='.$entrep['sir'], true);// or die($iDb->getLastError());
|
||||
// On efface l'information de la table A sirener au cas où !
|
||||
$iDb->delete('bodacc_sirenage', 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']);
|
||||
//die();
|
||||
/*} elseif (count($failures)>2) {
|
||||
echo "Plus de 2 correspondance failures:\n";
|
||||
print_r($failures);
|
||||
die();
|
||||
} else { // Pas trouvé dans failures
|
||||
**/
|
||||
$raisonSociale=preg_replace("/,(.*)\)/",'',$entrep['RS']);
|
||||
if ($i==5 || $i==6)
|
||||
$raisonSociale=trim(preg_replace("/ +/",' ', strtr(' '.$raisonSociale.' ',array(' VILLE '=>' COMMUNE ',
|
||||
' CONSEIL GENERAL '=>' DEPARTEMENT ',
|
||||
))));
|
||||
/* $raisonSociale=strtoupper(strtr($raisonSociale, '/(),-\\\'":',' '));
|
||||
$raisonSociale=preg_replace('/[^0-9A-Z]/', ' ', strtr($raisonSociale, 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ?', 'aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUYY'));
|
||||
$raisonSociale=preg_replace("/GERANT (.*)/",'', $raisonSociale);
|
||||
$raisonSociale=preg_replace("/^(MLLE |MELLE |MLE |MME |ME |M |MR )/",'', $raisonSociale);
|
||||
$raisonSociale=trim(preg_replace("/ +/",' ', strtr(' '.$raisonSociale.' ',
|
||||
array(' NEE '=>' ', ' DIVORCEE '=>' ', ' DENOMINATION '=>' ',' D NOMINATION '=>' ', ' NOM D USAGE '=>' ', ' ASSOCIATION '=>' ',' CLUB '=>' ', ' SUCCESSION '=>' ', ' CONJOINT '=>' ', ' COLLABORATEUR '=>' ', ' VEUVE '=>' ', // FEU
|
||||
' S E L A R L '=>' ', ' S A R L '=>' ', ' S A S '=>' ', ' S A '=>' ', ' S C I '=>' ', ' S N C '=>' ', ' S C P '=>' ', ' S C E A '=>' ', ' S C A '=>' ', ' E U R L '=>' ', ' E A R L '=>' ', ' E A R '=>' ', ' E A '=>' ', ' S C '=>' ',
|
||||
' SELARL '=>' ', ' SARL '=>' ', ' SAS '=>' ', ' SA '=>' ', ' SCI '=>' ', ' SNC '=>' ', ' SCP '=>' ', ' SCEA '=>' ', ' SCA '=>' ', ' EURL '=>' ',
|
||||
' EARL '=>' ', ' EAR '=>' ', ' EA '=>' ',' SC '=>' ',
|
||||
' DE '=>' ',' ET '=>' ',' LA '=>' ',' DU '=>'', ' DES '=>' ', ' L '=>' ', ' SOCIETE '=>' ', ' MONSIEUR '=>' ', ' MADAME '=>' ', ' STE '=>' ', ' CIVILE '=>' ', ' IMMOBILIERE '=>' ',' LIQUIDATION '=>' ', ' DISSOLUTION '=>' ',
|
||||
))));*/
|
||||
if ($entrep['CP']<>0) {
|
||||
$adresse=preg_replace('/[^0-9A-Z]/', ' ', strtr($entrep['Adr'], 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ?', 'aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUYY'));
|
||||
$adresse=trim(preg_replace("/ +/",' ', strtr(' '.$adresse.' ',
|
||||
array(' DE '=>' ',' LA '=>' ',' L '=>' ',' BIS '=>' ', ' DU '=>'', ' DES '=>' ',' LES '=>' ', ' A '=>' '))));
|
||||
|
||||
$codePostal=$entrep['CP'];
|
||||
$ville=trim(strtr($entrep['ville'], '/(),',' '));
|
||||
} else {
|
||||
$adresse=preg_replace('/[^0-9A-Z]/', ' ', strtr($entrep['AdrSiege'], 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ?', 'aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUYY'));
|
||||
$adresse=trim(preg_replace("/ +/",' ', strtr(' '.$adresse.' ',
|
||||
array(' DE '=>' ',' LA '=>' ',' L '=>' ',' BIS '=>' ', ' DU '=>'', ' DES '=>' ',' LES '=>' ', ' A '=>' '))));
|
||||
|
||||
$codePostal=$entrep['codePostalSiege'];
|
||||
$ville=trim(strtr($entrep['villeSiege'], '/(),',' '));
|
||||
}
|
||||
|
||||
if ($i==3) {
|
||||
$strAdresse=$entrep['Adr'];
|
||||
$tabAdresse=$mInsee->structureVoie($entrep['Adr']);
|
||||
$adresse=trim(preg_replace("/ +/",' ', strtr(' '.$tabAdresse['libVoie'].' '.$tabAdresse['adrComp0'].' ',
|
||||
array(' DE '=>' ',' LA '=>' ',' L '=>' ',' BIS '=>' ', ' DU '=>'', ' DES '=>' ',' LES '=>' ', ' A '=>' '))));
|
||||
|
||||
$codePostal=$tabAdresse['cp'];
|
||||
$ville=$tabAdresse['ville'];
|
||||
// print_r($tabAdresse);
|
||||
// die();
|
||||
}
|
||||
|
||||
if ($i==2 && $entrep['sir']>1000 && $entrep['nic']>9) {
|
||||
$sirC=$entrep['sir'];
|
||||
$nicC=$entrep['nic'];
|
||||
|
||||
$tabTmp=$mInsee->getIdentiteLight($sirC, $nicC);
|
||||
//print_r($tabTmp);
|
||||
// Entreprise recherchée !
|
||||
$raisonSociale=strtoupper($entrep['RS']);
|
||||
$adresse=strtoupper($entrep['Adr']);
|
||||
$codePostal=strtoupper($entrep['CP']);
|
||||
$ville=strtoupper($entrep['ville']);
|
||||
$telephone=strtr(@$entrep['telephone'],array('.'=>'',','=>'',';'=>'','-'=>'','/'=>'','+33'=>'','0033'=>'','('=>'',')'=>'',' '=>''));
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : RECHERCHE cli : $sirC $nicC - $raisonSociale, $adresse, $codePostal $ville ($telephone)".EOL;
|
||||
// Entreprise lue (trouvée)
|
||||
$raisonSocialeLu=strtoupper($tabTmp['Nom']);
|
||||
$adresseLu=strtoupper($tabTmp['Adresse']);
|
||||
$codePostalLu=$tabTmp['CP'];
|
||||
$villeLu=strtoupper($tabTmp['Ville']);
|
||||
$sirL=$tabTmp['Siren'];
|
||||
$nicL=$tabTmp['Nic'];
|
||||
$telephoneLu=$tabTmp['Tel'];
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : TROUVEE cli : $sirL $nicL - $raisonSocialeLu, $adresseLu, $codePostalLu $villeLu ($telephoneLu)".EOL;
|
||||
|
||||
$len=strlen($raisonSociale.$adresse.$codePostal.$ville);
|
||||
$lenLu=strlen($raisonSocialeLu.$adresseLu.$codePostalLu.$villeLu);
|
||||
$levRS=levenshtein($raisonSociale,$raisonSocialeLu);
|
||||
$levAdr=levenshtein($adresse,$adresseLu);
|
||||
$levCP=levenshtein($codePostal,$codePostalLu);
|
||||
$levVille=levenshtein($ville,$villeLu);
|
||||
$levTotal=$levRS+$levAdr+$levCP+$levVille;
|
||||
$len1=($lenLu+$len)/2;
|
||||
$ratio1=$levTotal/$len1*1.0;
|
||||
$ratio2=$len1/$levTotal;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : 1 seule possibilité $levTotal, $len1 => $ratio1, $ratio2 : ";
|
||||
if ($ratio1<0.4 && $table['table1']=='sirenage_clients') {
|
||||
$tabUpdate=array( 'siren'=>$sirL,
|
||||
'nic'=>$nicL);
|
||||
$tabUpdate[$table['champSirenValide']]=1;
|
||||
$tabUpdate[$table['champNicValide']]=1;
|
||||
|
||||
$iDb->update($table['table1'], $tabUpdate,
|
||||
"id='".$entrep['id']."'", false, 0, true) or die('ERREUR 1'.$iDb->getLastError().EOL);
|
||||
echo 'VALIDE'.EOL;
|
||||
continue;
|
||||
}
|
||||
echo 'non validé'.EOL;
|
||||
|
||||
if ($telephone<>'') {
|
||||
$tabTmp=$mInsee->getEtablissementsParId('TEL', $telephone, $deb, $nbRep, $maxRep);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
if ($tabTmp[nbReponses]>0) {
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : 1 seule possibilité TELEPHONE => $ratio1, $ratio2 : ";
|
||||
if ($tabTmp[nbReponses]==1 && $tabTrouve[0]['Siren']==$sirC) {
|
||||
$tabTrouv=$tabTrouve[0];
|
||||
$tabUpdate=array( 'siren'=>$sirC,
|
||||
/*'nic'=>$nicL*/);
|
||||
$tabUpdate[$table['champSirenValide']]=1;
|
||||
$tabUpdate[$table['champNicValide']]=1;
|
||||
|
||||
$iDb->update($table['table1'], $tabUpdate,
|
||||
"id='".$entrep['id']."'", false, 0, true) or die('ERREUR 1'.$iDb->getLastError().EOL);
|
||||
echo 'VALIDE'.EOL;
|
||||
continue;
|
||||
}
|
||||
echo 'non validé'.EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$deb=0;$nbRep=20;$maxRep=20;$actif='';
|
||||
|
||||
$tabTmp=$mInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
/** On recherche au nom Commercial **/
|
||||
/* if (count($tabTrouve)==0 && trim($entrep['nomCommercial'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['nomCommercial'], $adresse, $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
|
||||
/** On recherche à l'enseigne **/
|
||||
/* if (count($tabTrouve)==0 && trim($entrep['enseigne'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['enseigne'], $adresse, $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
|
||||
/** On recherche au sigle **/
|
||||
/* if (count($tabTrouve)==0 && trim($entrep['sigle'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['sigle'], $adresse, $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
|
||||
/** On présume que le code postal n'est pas bon **/
|
||||
/* if (count($tabTrouve)==0) {
|
||||
$tabTmp=$mInsee->rechercheEtab($raisonSociale, $adresse, '', $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
// et nom Commercial
|
||||
if (count($tabTrouve)==0 && trim($entrep['nomCommercial'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['nomCommercial'], $adresse, '', $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
// et à l'enseigne
|
||||
if (count($tabTrouve)==0 && trim($entrep['enseigne'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['enseigne'], $adresse, '', $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
// et au sigle
|
||||
if (count($tabTrouve)==0 && trim($entrep['sigle'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['sigle'], $adresse, '', $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
|
||||
/**
|
||||
** On présume que le numéro dans la rue est faux
|
||||
**/
|
||||
/* if (count($tabTrouve)==0) {
|
||||
$tabTmp=$mInsee->rechercheEtab($raisonSociale, trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))), $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
// et nom Commercial
|
||||
if (count($tabTrouve)==0 && trim($entrep['nomCommercial'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['nomCommercial'], trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))), $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
// et à l'enseigne
|
||||
if (count($tabTrouve)==0 && trim($entrep['enseigne'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['enseigne'], trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))), $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
// et au sigle
|
||||
if (count($tabTrouve)==0 && trim($entrep['sigle'])<>'') {
|
||||
$tabTmp=$mInsee->rechercheEtab($entrep['sigle'], trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))), $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
|
||||
// Recherche par le dernier mot de la RS
|
||||
if (count($tabTrouve)==0) {
|
||||
$tabMot=explode(' ', $raisonSociale);
|
||||
$rsFin=end($tabMot);
|
||||
$rsDeb=end($tabMot);
|
||||
if (strlen($motFin)>3)
|
||||
$tabTmp=$mInsee->rechercheEtab($rsFin, trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))), $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
elseif (strlen($motDeb)>3)
|
||||
$tabTmp=$mInsee->rechercheEtab($rsDeb, trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))), $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
|
||||
if (count($tabTrouve)==0) {
|
||||
$tabMot=explode(' ', trim(strtoupper(preg_replace("/[0-9]{1,4} /i",' ',strtr($adresse, '/(),-',' ')))));
|
||||
$adrFin=end($tabMot);
|
||||
if (strlen($adrFin)>3) {
|
||||
$tabTmp=$mInsee->rechercheEtab($rsFin, $adrFin, $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
}
|
||||
|
||||
if (count($tabTrouve)==0) {
|
||||
$tabMot=explode(' ', $ville);
|
||||
$vilFin=end($tabMot);
|
||||
if (strlen($vilFin)>3) {
|
||||
$tabTmp=$mInsee->rechercheEtab($rsFin, $adrFin, '', $vilFin, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Si l'adresse est "exhaustive", on cherche sans la raison sociale **/
|
||||
/* if (count($tabTrouve)==0 && ($entrep['adrNum']<>0 || $entrep['adrSiegeNum']<>0)) {
|
||||
$tabTmp=$mInsee->rechercheEtab('', $adresse, $codePostal, '', $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
/** Si l'adresse est "exhaustive", on cherche sans la raison sociale **/
|
||||
/* if (count($tabTrouve)==0 && ($entrep['adrNum']<>0 || $entrep['adrSiegeNum']<>0)) {
|
||||
$tabTmp=$mInsee->rechercheEtab('', $adresse, '', $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, true);
|
||||
$tabTrouve=$tabTmp['reponses'];
|
||||
}
|
||||
*/
|
||||
//$adresse=trim(strtoupper(preg_replace("/[0-9]{1,4}( rue | avenue | boulevard )/i",'',strtr($entrep['Adr'], '/(),-',' '))));
|
||||
//$ville=trim(strtr($entrep['Ville'], '/(),',' '));
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : RECHERCHE DE ". $entrep['id'].', '.$entrep['sir'].' : '.$raisonSociale.', '.$adresse.', '.$codePostal.' '.$ville.' ('.count($tabTrouve). " réponses)".EOL;
|
||||
|
||||
$tabAnn=$iDb2->select('bodacc', 'annonce', 'id='.$entrep['id']);
|
||||
$annonce=$tabAnn[0][0];
|
||||
//die($annonce);
|
||||
|
||||
if ($i==3) {
|
||||
$tabTrouve2=array();
|
||||
if (is_array($tabTrouve) && count($tabTrouve)>0)
|
||||
foreach ($tabTrouve as $iT=>$tabTrouveT)
|
||||
if ($tabTrouveT['FJ']>=9100 && $tabTrouveT['FJ']<=9300 &&
|
||||
$tabTrouveT['Siret']>=1000) $tabTrouve2[]=$tabTrouveT;
|
||||
$tabTrouve=$tabTrouve2;
|
||||
}
|
||||
|
||||
if (count($tabTrouve)==1) {
|
||||
$entrepT=$tabTrouve[0];
|
||||
$siren=substr($entrepT['Siret'],0,9);
|
||||
$nic=substr($entrepT['Siret'],9,5);
|
||||
// Entreprise recherchée !
|
||||
$raisonSociale=strtoupper($entrep['RS']);
|
||||
$adresse=strtoupper($entrep['Adr']);
|
||||
$codePostal=strtoupper($entrep['CP']);
|
||||
$ville=strtoupper($entrep['ville']);
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : RECHERCHE : $raisonSociale, $adresse, $codePostal $ville".EOL;
|
||||
// Entreprise lue (trouvée)
|
||||
$raisonSocialeLu=strtoupper($entrepT['Nom']);
|
||||
$adresseLu=strtoupper($entrepT['Adresse']);
|
||||
$codePostalLu=$entrepT['CP'];
|
||||
$villeLu=strtoupper($entrepT['Ville']);
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : TROUVEE : $raisonSocialeLu, $adresseLu, $codePostalLu $villeLu".EOL;
|
||||
//die(print_r($entrep));
|
||||
$len=strlen($raisonSociale.$adresse.$codePostal.$ville);
|
||||
$lenLu=strlen($raisonSocialeLu.$adresseLu.$codePostalLu.$villeLu);
|
||||
$levRS=levenshtein($raisonSociale,$raisonSocialeLu);
|
||||
$levAdr=levenshtein($adresse,$adresseLu);
|
||||
$levCP=levenshtein($codePostal,$codePostalLu);
|
||||
$levVille=levenshtein($ville,$villeLu);
|
||||
$levTotal=$levRS+$levAdr+$levCP+$levVille;
|
||||
$len1=($lenLu+$len)/2;
|
||||
$ratio1=$levTotal/$len1*1.0;
|
||||
$ratio2=$len1/$levTotal;
|
||||
|
||||
echo "$siren $nic\n";
|
||||
//print_r($entrepT);//die();
|
||||
/*if ($table['db']<>'jo')
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$siren), "id='".$entrep['id']."'", true) or die($iDb->getLastError());
|
||||
else*/
|
||||
//print_r($tabTmp);
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : 1 seule possibilité $levTotal, $len1 => $ratio1, $ratio2 : ";
|
||||
if (($ratio1<0.4 && $table['table1']=='sirenage_clients') ||
|
||||
($ratio1<0.3 && $table['table1']=='asso' && $siren>1000) ||
|
||||
($ratio1<0.4 && $table['table1']=='boamp_lots' && $siren>1000 && $raisonSociale<>'' && $adresse<>'' && $codePostal>0 && $ville<>'') ||
|
||||
($ratio1<0.4 && $table['table1']=='boamp_detail' && $siren>1000 && $raisonSociale<>'' && $adresse<>'' && $codePostal>0 && $ville<>'') ||
|
||||
($ratio1<0.4 && $table['table1']=='marques' && $siren>1000 && $raisonSociale<>'' && $adresse<>'' && $codePostal>0 && $ville<>'') ||
|
||||
($ratio1<0.3 && $table['table1']=='tabCNCC' && $siren>1000 && $raisonSociale<>'' && $adresse<>'' && $codePostal>0 && $ville<>'')
|
||||
) {
|
||||
//print_r($entrepT);die();
|
||||
// Si bon rapprochement, on ne demande pas de confirmation !
|
||||
if ($table['table1']=='boamp_lots' || $table['table1']=='boamp_detail') {
|
||||
$tabUpdate=array( 'siren'=>$siren,
|
||||
'nic'=>$nic);
|
||||
$tabUpdate['sirenValide']=1;
|
||||
$tabUpdate['nicValide']=1;
|
||||
} elseif ($table['table1']=='marques') {
|
||||
$tabUpdate=array( 'sirenDeposant'=>$siren,
|
||||
'sirenValide'=>4);
|
||||
} else {
|
||||
$tabUpdate=array( 'siren'=>$siren,
|
||||
'nic'=>$nic);
|
||||
$tabUpdate[$table['champSirenValide']]=1;
|
||||
$tabUpdate[$table['champNicValide']]=1;
|
||||
}
|
||||
$iDb->update($table['table1'], $tabUpdate,
|
||||
"id='".$entrep['id']."'", false, 0, true) or die('ERREUR 1'.$iDb->getLastError().EOL.print_r($tabUpdate,1).EOL.$table['table1']);
|
||||
echo 'VALIDE'.EOL;
|
||||
continue;
|
||||
}
|
||||
echo 'non validé'.EOL;
|
||||
//fgets(STDIN);
|
||||
|
||||
if (trim($siren)<>'') {
|
||||
/* $tabTmp=$iDb->select('bodacc_detail','count(*)', 'id='. $entrep['id'] ." AND siren=$siren", true);
|
||||
if ($tabTmp[0][0]<>0) { // Cette annonce est déjà ratachée au siren, on supprime donc ce lien inutile référençant le même siren
|
||||
//$iDb->delete('bodacc_detail', 'id='. $entrep['id'] .' AND siren='.$entrep['sir'], true);
|
||||
} else
|
||||
$iDb->update('bodacc_detail', array('siren'=>$siren, $table['champNic']=>$nic, $table['champSirenValide']=>3, $table['champNicValide']=>3), 'id='.$entrep['id'].' AND siren='.$entrep['sir'], true) or die('ERREUR : '.$iDb->getLastError());
|
||||
// On efface l'information de la table A sirener au cas où !
|
||||
//$iDb->delete('bodacc_sirenage', 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die('ERREUR : '.$iDb->getLastError());
|
||||
*/
|
||||
$tabInsert=array( 'idAnn'=>$entrep['id'],
|
||||
'idTable'=>$table['table1'],
|
||||
'siren'=>$entrep['sir'],
|
||||
'siretProposes'=>$siren,
|
||||
'droitLocal'=>$iBodacc->isAudienceCivile($entrep['Tribunal_Code'], $entrep['dateJugement'], $entrep['jourJugement'], $entrep['jjJugement'], $annonce),
|
||||
);
|
||||
if ($iDb2->insert('bodacc_sirenage', $tabInsert, false, true))
|
||||
$iDb2->update('bodacc_sirenage', array('siretProposes'=>$siren), 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']." AND idTable='".$table['table1']."'", false, 0, true) or die('ERREUR 2 : '.$iDb->getLastError().EOL.print_r($tabInsert, true).EOL.'idAnn='.$entrep['id']." AND siren=".$entrep['sir']." AND idTable='".$table['table1']."'");
|
||||
}
|
||||
} elseif (count($tabTrouve)==0) {
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : Pas de réponse !".EOL;
|
||||
$tabInsert=array( 'idAnn'=>$entrep['id'],
|
||||
'idTable'=>$table['table1'],
|
||||
'siren'=>$entrep['sir'],
|
||||
'droitLocal'=>$iBodacc->isAudienceCivile($entrep['Tribunal_Code'], $entrep['dateJugement'], $entrep['jourJugement'], $entrep['jjJugement'], $annonce),
|
||||
);
|
||||
if (!$iDb2->insert('bodacc_sirenage', $tabInsert, false, true))
|
||||
$iDb2->update('bodacc_sirenage', array('siretProposes'=>''), 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']." AND idTable='".$table['table1']."'", false, 0, true) or die('ERREUR 3 : '.$iDb->getLastError().EOL);
|
||||
} else { // Plusieurs siren possibles
|
||||
|
||||
// print_r($tabTrouve);
|
||||
// die();
|
||||
|
||||
//echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : Plusieurs siren possibles".EOL;
|
||||
$siren1=substr($tabTrouve[0]['Siret'],0,9);
|
||||
$nic1=substr($tabTrouve[0]['Siret'],9,5);
|
||||
$sirenDiff=$sirenNomIdem=$sirenAdrIdem=false;
|
||||
$tabSiren=array(0=>0);
|
||||
$tabSiret=array();
|
||||
foreach ($tabTrouve as $j=>$entrepT) {
|
||||
if($j==0) echo date('Y/m/d - H:i:s') ." - PROBABLES :".EOL;
|
||||
$siren=substr($entrepT['Siret'],0,9);
|
||||
$nic=substr($entrepT['Siret'],9,5);
|
||||
$tabSiren[]=$siren;
|
||||
$nomT=strtr($entrep['RS'], '/(),-',' ');
|
||||
$adresseT=trim(strtoupper(preg_replace("/[0-9]{1,4}(.*)( R | AV | RUE | AVENUE | BD | BOULEVARD )/i",'',strtr($entrepT['Adresse'], '/(),-',' '))));
|
||||
if (levenshtein($raisonSociale,$nomT)>2) $sirenNomIdem=$siren;
|
||||
if ($siren<>$siren1) $sirenDiff=true;
|
||||
if (levenshtein($adresse,$adresseT)<2) $sirenAdrIdem=$siren;
|
||||
$num=$j+1;
|
||||
echo "$num. $siren $nic, ". $entrepT['Nom'].', '.$entrepT['Nom2'].', '.$entrepT['Enseigne'].', '.$entrepT['Adresse'].', '.$entrepT['CP'].', '.$entrepT['Ville']."\n";
|
||||
$tabSiret[]=$entrepT['Siret'].'-'.$entrepT['Pertinence'];
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - $k/$nbNonSirene : ".count($tabTrouve)." possibilités :\n";
|
||||
|
||||
$tabInsert=array( 'idAnn'=>$entrep['id'],
|
||||
'idTable'=>$table['table1'],
|
||||
'siren'=>$entrep['sir'],
|
||||
'siretProposes'=>implode(';',$tabSiret),
|
||||
'droitLocal'=>$iBodacc->isAudienceCivile($entrep['Tribunal_Code'], $entrep['dateJugement'], $entrep['jourJugement'], $entrep['jjJugement'], $annonce),
|
||||
);
|
||||
|
||||
//fgets(STDIN);
|
||||
|
||||
// if ($sirenDiff==false) {
|
||||
// Tous les SIREN sont identiques, l'entreprise ttouvée est la bonne !
|
||||
// echo "$num. Siren trouvé = $siren (tous les Sirens sont identiques) !\n";
|
||||
// $iDb->update('bodacc_detail', array('siren'=>$siren, $table['champSirenValide']=>4, $table['champNicValide']=>0), 'id='.$entrep['id'].' AND siren='.$entrep['sir'], true) or die('ERREUR : '.$iDb->getLastError());
|
||||
// // On efface l'information de la table A sirener au cas où !
|
||||
// $iDb->delete('bodacc_sirenage', 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die('ERREUR : '.$iDb->getLastError());
|
||||
// } else {
|
||||
// /** On insère en base toutes les multipropositions pour le sirenage manuel */
|
||||
|
||||
if ($iDb2->insert('bodacc_sirenage', $tabInsert, false, true)) {
|
||||
$tabUpdate=array('siretProposes'=>implode(';',$tabSiret));
|
||||
$strUpdate='idAnn='.$entrep['id'].' AND siren='.$entrep['sir']." AND idTable='".$table['table1']."'";
|
||||
// print_r($tabUpdate);
|
||||
// echo $strUpdate.EOL;
|
||||
$iDb2->update('bodacc_sirenage', $tabUpdate, $strUpdate, false, 0, true) or die('ERREUR 4 : '.$iDb->getLastError());
|
||||
}
|
||||
// }
|
||||
//, 'id='.$entrep['id'].' AND '. $table['champSiren'] .'='.$entrep['sir'], true) or die(mysql_error());
|
||||
|
||||
/*elseif ($sirenNomIdem!=false) {
|
||||
echo "$num. Siren trouvé = $sirenNomIdem (raisons sociales identiques) !\n";
|
||||
if ($table['db']<>'jo')
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$sirenNomIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
|
||||
else
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$sirenNomIdem, $table['champSirenValide']=>5), 'id='.$entrep['id'], true) or die(mysql_error());
|
||||
} elseif ($sirenAdrIdem!=false) {
|
||||
echo "$num. Siren trouvé = $sirenNomIdem (adresses identiques) !\n";
|
||||
if ($table['db']<>'jo')
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$sirenAdrIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
|
||||
else
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$sirenAdrIdem, $table['champSirenValide']=>6), 'id='.$entrep['id'], true) or die(mysql_error());
|
||||
} else
|
||||
{ //if ($semiManuel==true);
|
||||
$saisie='';
|
||||
while($semiManuel==true && $saisie=='') {
|
||||
echo "Veuillez saisir le numéro qui identifie la bonne entreprise (0 si pas de réponse) : ";
|
||||
$saisie = trim(fgets(STDIN));
|
||||
if ($saisie==0) break;
|
||||
elseif ($saisie>0 && $saisie<=$j+1) {
|
||||
$sir=$tabSiren[$saisie];
|
||||
if ($table['db']<>'jo')
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$sir), "id='".$entrep['id']."'", true) or die(mysql_error());
|
||||
else
|
||||
$iDb->update($tableDB, array($table['champSiren']=>$sir, $table['champSirenValide']=>2),
|
||||
'id='.$entrep['id'], true) or die(mysql_error());
|
||||
break;
|
||||
}
|
||||
else $saisie='';
|
||||
}
|
||||
}*/
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
// $nbSirenage=count($listeNonSirene);
|
||||
if ($nbNonSirene>9 && $envoyerMail) {
|
||||
// On n'envoie pas de mails pour le sirenage de l'historique boamp
|
||||
if ($table['table1']=='boamp_lots' && $lastId7<768245) continue;
|
||||
/** Envoi d'un email aux Equipes de production pour le sirenage **/
|
||||
$message="Il y a $nbNonSirene nouveaux rapprochements '".$table['table1']."' à faire.";
|
||||
sendMail('production@scores-decisions.com', 'jal42@scores-decisions.com', 'Nouvelles entreprises disponibles pour le sirenage.', $message);
|
||||
}
|
||||
|
||||
//}
|
||||
unset($iDb); // A cause du changement possible de Base de Données
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - FIN du programme de SIRENAGE des annonces mal sirenés du BODACC.".EOL;
|
||||
die();
|
||||
?>
|
488
batch/bodacc/Bodacc_Bilan_Redif_V06.xsd
Normal file
488
batch/bodacc/Bodacc_Bilan_Redif_V06.xsd
Normal file
@ -0,0 +1,488 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2013 rel. 2 sp2 (http://www.altova.com) by Roux (DIR. INFO LEGALE ADMINISTRATIVE) -->
|
||||
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction Journaux Officiels) -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- Version V01 du 10/06/08 -->
|
||||
<!-- Version V02 du 18/07/2008 adresse et depot passé en optionnel pour les annulation. -->
|
||||
<!-- Version V03 du 15/04/2010 prise en compte du nouveau numéro de département de la Mayotte (976) -->
|
||||
<!-- Version V06 du 8/04/2014 prise en compte du nouveau champ descriptif -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:element name="Bilan_XML_Rediff">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Composant Annonce Modifications générales et Radiation pour les Reffuseurs</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="parution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="listeAvis">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="avis" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="typeAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="annonce">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="rectificatif">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="annulation">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nojo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="15"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroDepartement" type="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° de département du Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="tribunal" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Greffe qui a procédé à l'avis -</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="numeroImmatriculation">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentificationRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° d'identification au format NNN NNN NNN </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:length value="11"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:length value="3"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="denomination" type="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Dénomination</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sigle</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="formeJuridique" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="adresse" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="france" type="AdresseFrance_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse en France de la société </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="etranger" type="AdresseEtranger_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="depot" type="Depot_Type" minOccurs="0"/>
|
||||
<xs:element name="parutionAvisPrecedent" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nomPublication" type="Alpha_Type"/>
|
||||
<xs:element name="numeroParution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce" type="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- date -->
|
||||
<xs:simpleType name="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:date">
|
||||
<xs:pattern value="....-..-.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="DateHeure_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime">
|
||||
<xs:pattern value="....-..-..T..:..:.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- string -->
|
||||
<xs:simpleType name="Alpha_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:normalizedString">
|
||||
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:normalizedString">
|
||||
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- number -->
|
||||
<xs:simpleType name="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type N : tous les chiffres</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\d]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- technique -->
|
||||
<xs:simpleType name="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="200"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Sigle_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="5"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code département</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="2"/>
|
||||
<xs:maxLength value="3"/>
|
||||
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NumeroGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="4"/>
|
||||
<xs:maxLength value="6"/>
|
||||
<xs:pattern value="\d{4,5}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Parution_Type">
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="AdresseEtranger_Type">
|
||||
<xs:sequence>
|
||||
<xs:element name="adresse">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pays" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom du pays</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AdresseFrance_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la voie
|
||||
Ex : 4</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="typeVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de la voie
|
||||
Ex : rue</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de la voie
|
||||
Ex : d'Enfer</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="complGeographique" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Complément gépgraphique
|
||||
Ex : Résidence Bel-Air</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="BP" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Boîte postale
|
||||
Ex : BP 14192</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="localite" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Localité
|
||||
Ex : Saint-Chéron</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codePostal" type="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal
|
||||
Ex : 51290</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ville">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ville/Bureau distributeur
|
||||
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="NumeroImmatriculation_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentification">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° d'identification au format NNN NNN NNN</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="11"/>
|
||||
<xs:pattern value="\d{3} \d{3} \d{3}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:length value="3"/>
|
||||
<xs:enumeration value="RCS"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="Depot_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="fr">définition d'un dépôt</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="fr"/>
|
||||
</xs:annotation>
|
||||
<xs:element name="dateCloture" type="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de clôture des comptes</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="typeDepot">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="fr">Enumération : Comptes annuels et rapports
|
||||
Comptes consolidés et rapports
|
||||
Comptes annuels et consolidés et rapports</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:enumeration value="Comptes annuels et rapports"/>
|
||||
<xs:enumeration value="Comptes consolidés et rapports"/>
|
||||
<xs:enumeration value="Comptes annuels, consolidés et rapports"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="descriptif" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="fr">Descriptif à publier
|
||||
Ex : Cette société a également déposé une déclaration de confidentialité des comptes annuels en application du premier alinéa de l'article L.232-25.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
134
batch/bodacc/Bodacc_Divers_Redif_2011_12_07_V01.xsd
Normal file
134
batch/bodacc/Bodacc_Divers_Redif_2011_12_07_V01.xsd
Normal file
@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2007 sp1 (http://www.altova.com) by SSI/CTI (JOURNAUX OFFICIELS) -->
|
||||
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction Journaux Officiels) -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- Version V01 du 29/07/09 -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:element name="Divers_XML_Rediff">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Composant Annonce diverse pour les Reffuseurs</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="parution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="listeAvis">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="avis" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="typeAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="annonce">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nojo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="15"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="titreAnnonce" type="xs:string" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Titre de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="contenuAnnonce" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Contenu de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- date -->
|
||||
<xs:simpleType name="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:date">
|
||||
<xs:pattern value="....-..-.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="DateHeure_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime">
|
||||
<xs:pattern value="....-..-..T..:..:.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- string -->
|
||||
<xs:simpleType name="Alpha_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- number -->
|
||||
<xs:simpleType name="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type N : tous les chiffres</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\d]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- technique -->
|
||||
<xs:simpleType name="Parution_Type">
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
616
batch/bodacc/Bodacc_PCL_Redif_V13.xsd
Normal file
616
batch/bodacc/Bodacc_PCL_Redif_V13.xsd
Normal file
@ -0,0 +1,616 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2013 rel. 2 sp2 (http://www.altova.com) by DIR. INFO LEGALE ADMINISTRATIVE (DIR. INFO LEGALE ADMINISTRATIVE) -->
|
||||
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction de l'Information Légale et Administrative) -->
|
||||
<!-- ****************************************************************************************************************************************************************************************** -->
|
||||
<!-- Modification de la version 3 -->
|
||||
<!-- Adresse/etranger/pays : optionnel -->
|
||||
<!-- Ajout d'une séquence de 1 à + pour (personneMorale,personnePhysique, numeroImmatriculation, nonInscrit, inscriptionRM, enseigne, activite, adresse) -->
|
||||
<!-- Ajout identifiant Reemission -->
|
||||
<!-- Modification de la version 4 -->
|
||||
<!-- Supressiont identifiantReemission -->
|
||||
<!-- Les éléments : numeroAnnonce, numeroIdentificationRCS, codeRCS et nomGreffeImmat ont été typé. -->
|
||||
<!-- Modification de la version 5 . -->
|
||||
<!-- Ajout de 3 natures : Arrêts divers, Autres avis de dépôt et Autres jugements et ordonnances -->
|
||||
<!-- Modification de la version 6 . -->
|
||||
<!-- Ajout de nouvelles natures
|
||||
<!_ 31/07/09 Modification nature "Autres jugements et ordonnances" en "Autre jugement et ordonnance" -> -->
|
||||
<!--
|
||||
V10 11/09/09 Ajouts de 2 natures :
|
||||
- Jugement prononçant la résolution du plan de sauvegarde et le redressement judiciaire
|
||||
- Dépôt de l’état des créances et du projet de répartition
|
||||
-->
|
||||
<!-- Modification de la version 11 -->
|
||||
<!-- Changement du numéro de département de la Mayotte en 976 -->
|
||||
<!-- Modification de la version 12 -->
|
||||
<!-- Ajout de nouvelles natures de jugement liées à la sauvegarde financière accélérée -->
|
||||
<!-- Modification de la version 13 -->
|
||||
<!-- Ajout de l'élément denominationEIRL pour les personnes physiques -->
|
||||
<!-- Ajout de 8 nouvelles natures de jugement -->
|
||||
<!-- Modification valeur <codeRCS> -->
|
||||
<!-- ****************************************************************************************************************************************************************************************** -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:element name="PCL_REDIFF">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Composant Annonce Procédure Collective pour les Reffuseurs</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="parution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="annonces">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="annonce" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="typeAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="creation">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="rectificatif">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="annulation">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nojo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro J.O.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="15"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce" type="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="numeroDepartement" type="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° de département du Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="tribunal" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Greffe qui a procédé à l'avis - A transmettre dans le fichier Retour</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="identifiantClient" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Identifiant unique</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:sequence maxOccurs="unbounded">
|
||||
<xs:choice>
|
||||
<xs:element name="personneMorale">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="denomination" type="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Dénomination</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="formeJuridique" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sigle</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="personnePhysique">
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:sequence>
|
||||
<xs:element name="nom" type="Alpha_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de famille (naissance)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="prenom" type="Alpha_Type" maxOccurs="unbounded">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Prénom</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="nomUsage" type="Alpha_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'usage</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:element name="denominationEIRL" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice>
|
||||
<xs:element name="numeroImmatriculation">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentificationRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° d'identification au format NNN NNN NNN ( A transmettre dans le fichier de retour des parutions)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:length value="11"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>valeurs RCS, RSEIRL, RA, RSAC</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:maxLength value="6"/>
|
||||
<xs:minLength value="2"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
<xs:element name="inscriptionRM" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentificationRM" type="AlphaNum_Type"/>
|
||||
<xs:element name="codeRM" type="Alpha_Type"/>
|
||||
<xs:element name="numeroDepartement" type="Departement_Type"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="enseigne" type="AlphaNum_Type" minOccurs="0"/>
|
||||
<xs:element name="activite" type="AlphaNum_Type" minOccurs="0"/>
|
||||
<xs:element name="adresse" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="france">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse en France de la société </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroVoie" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Greffe qui a procédé à l'avis - A transmettre dans le fichier Retour</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="typeVoie" type="Alpha_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de la voie
|
||||
Ex : rue</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="nomVoie" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de la voie
|
||||
Ex : d'Enfer </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="complGeographique" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Complément gépgraphique
|
||||
Ex : Résidence Bel-Air</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="BP" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Boîte postale
|
||||
Ex : 192</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="localite" type="Alpha_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Localité
|
||||
Ex : Saint-Chéron</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="codePostal" type="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal
|
||||
Ex : 51290</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ville" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ville/Bureau distributeur
|
||||
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="etranger">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="adresse" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="pays" type="Alpha_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom du pays</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:choice>
|
||||
<xs:element name="jugement" type="Jugement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Publicité</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="jugementAnnule" type="Jugement_Type"/>
|
||||
</xs:choice>
|
||||
<xs:element name="parutionAvisPrecedent" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nomPublication" type="Alpha_Type"/>
|
||||
<xs:element name="numeroParution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce" type="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- date -->
|
||||
<xs:simpleType name="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:date">
|
||||
<xs:pattern value="....-..-.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="DateHeure_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime">
|
||||
<xs:pattern value="....-..-..T..:..:.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- string -->
|
||||
<xs:simpleType name="Alpha_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- number -->
|
||||
<xs:simpleType name="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type N : tous les chiffres</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\d]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- technique -->
|
||||
<xs:simpleType name="Version_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>VXX (XX=num de version)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:length value="3"/>
|
||||
<xs:pattern value="V\d{2}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- fonctionnel -->
|
||||
<xs:simpleType name="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomCommercial_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Enseigne_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Sigle_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Activite_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="5"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code département</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="2"/>
|
||||
<xs:maxLength value="3"/>
|
||||
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NumeroGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="4"/>
|
||||
<xs:maxLength value="6"/>
|
||||
<xs:pattern value="\d{4,5}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="StatutRCSPP_Type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="A"/>
|
||||
<xs:enumeration value="F"/>
|
||||
<xs:enumeration value="AC"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="StatutRCSPM_Type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="B"/>
|
||||
<xs:enumeration value="C"/>
|
||||
<xs:enumeration value="D"/>
|
||||
<xs:enumeration value="F"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Parution_Type">
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Devise_Type">
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:enumeration value="EUR"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="Jugement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Annonce de Procédure Collective</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="famille">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Famille de jugement
|
||||
Ex : Jugement d'ouverture, extrait de jugement, ...</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:enumeration value="Jugement d'ouverture"/>
|
||||
<xs:enumeration value="Jugement prononçant"/>
|
||||
<xs:enumeration value="Arrêt de la Cour d'Appel"/>
|
||||
<xs:enumeration value="Extrait de jugement"/>
|
||||
<xs:enumeration value="Avis de dépôt"/>
|
||||
<xs:enumeration value="Jugement de clôture"/>
|
||||
<xs:enumeration value="Loi de 1967"/>
|
||||
<xs:enumeration value="Rétractation sur tierce opposition"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nature">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nature du jugement
|
||||
Ex : Jugement d'ouverture de redressement judiciaire, jugement nommanbt un organe, ...</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:enumeration value="Jugement d'homologation de l'accord"/>
|
||||
<xs:enumeration value="Jugement de résolution de l'accord homologué"/>
|
||||
<xs:enumeration value="Jugement d'ouverture d'une procédure de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement d'extension d'une procédure de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement de conversion en redressement judiciaire de la procédure de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement mettant fin à la procédure de sauvegarde"/>
|
||||
<xs:enumeration value="Liste des créances nées après le jugement d'ouverture d'une procédure de redressement judiciaire"/>
|
||||
<xs:enumeration value="Liste des créances nées après le jugement d'ouverture d'une procédure de liquidation judiciaire"/>
|
||||
<xs:enumeration value="Dépôt de l'état des créances"/>
|
||||
<xs:enumeration value="Jugement de clôture de la procédure de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement arrêtant le plan de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement modifiant le plan de sauvegarde"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde et la liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde et le redressement judiciaire"/>
|
||||
<xs:enumeration value="Jugement d'ouverture d'une procédure de redressement judiciaire"/>
|
||||
<xs:enumeration value="Jugement d'extension d'une procédure de redressement judiciaire"/>
|
||||
<xs:enumeration value="Jugement modifiant la date de cessation des paiements"/>
|
||||
<xs:enumeration value="Jugement de conversion en liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement mettant fin à la procédure de redressement judiciaire"/>
|
||||
<xs:enumeration value="Jugement arrêtant un plan de cession"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de cession et la liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement de plan de redressement"/>
|
||||
<xs:enumeration value="Jugement modifiant le plan de redressement"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de redressement et la liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement d'ouverture de liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement d'extension de liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de cession"/>
|
||||
<xs:enumeration value="Dépôt de l'état de collocation"/>
|
||||
<xs:enumeration value="Jugement de clôture pour extinction du passif"/>
|
||||
<xs:enumeration value="Jugement de clôture pour insuffisance d'actif"/>
|
||||
<xs:enumeration value="Jugement de clôture pour insuffisance d'actif et autorisant la reprise des poursuites individuelles"/>
|
||||
<xs:enumeration value="Jugement autorisant la reprise des poursuites individuelles des créanciers"/>
|
||||
<xs:enumeration value="Jugement de reprise de la procédure de liquidation judiciaire"/>
|
||||
<xs:enumeration value="Dépôt du projet de répartition"/>
|
||||
<xs:enumeration value="Dépôt de l'état des créances et du projet de répartition"/>
|
||||
<xs:enumeration value="Autres avis de dépôt"/>
|
||||
<xs:enumeration value="Ordonnance statuant sur les contestations du projet de répartition"/>
|
||||
<xs:enumeration value="Arrêt de la cour d'appel infirmant une décision soumise à publicité"/>
|
||||
<xs:enumeration value="Arrêts divers"/>
|
||||
<xs:enumeration value="Jugement de désignation des organes de la procédure"/>
|
||||
<xs:enumeration value="Jugement d'interdiction de gérer"/>
|
||||
<xs:enumeration value="Jugement de faillite personnelle"/>
|
||||
<xs:enumeration value="Jugement modifiant le plan de continuation"/>
|
||||
<xs:enumeration value="Jugement modifiant le plan de cession"/>
|
||||
<xs:enumeration value="Autre jugement et ordonnance"/>
|
||||
<xs:enumeration value="Dépôt de l'état des créances Loi de 1985"/>
|
||||
<xs:enumeration value="Jugement accordant un délai pour déposer la liste des créances"/>
|
||||
<xs:enumeration value="Jugement d'interdiction de gérer Loi de 1985"/>
|
||||
<xs:enumeration value="Jugement de faillite personnelle Loi de 1985"/>
|
||||
<xs:enumeration value="Jugement de clôture de la liquidation des biens pour extinction du passif"/>
|
||||
<xs:enumeration value="Jugement de clôture de la liquidation des biens pour insuffisance d'actif"/>
|
||||
<xs:enumeration value="Rétractation de jugement d'ouverture sur tierce opposition"/>
|
||||
<xs:enumeration value="Rétractation de prononcé de redressement judiciaire sur tierce opposition"/>
|
||||
<xs:enumeration value="Rétractation de prononcé de liquidation judiciaire sur tierce opposition"/>
|
||||
<xs:enumeration value="Autre jugement d'ouverture"/>
|
||||
<xs:enumeration value="Autre jugement prononçant"/>
|
||||
<xs:enumeration value="Autre arrêt de la Cour d'Appel"/>
|
||||
<xs:enumeration value="Autre jugement de clôture"/>
|
||||
<xs:enumeration value="Autre jugement de liquidation des biens"/>
|
||||
<xs:enumeration value="Autre rétractation sur tierce opposition"/>
|
||||
<xs:enumeration value="Jugement d'ouverture d'une procédure de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Jugement d'extension d'une procédure de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Jugement de conversion en redressement judiciaire de la procédure de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Clôture de la procédure à défaut d'arrêté du plan dans le délai"/>
|
||||
<xs:enumeration value="Jugement mettant fin à la procédure de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Jugement arrêtant le plan de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Jugement modifiant le plan de sauvegarde financière accélérée"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde financière accélérée et la liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde accélérée et le redressement judiciaire"/>
|
||||
<xs:enumeration value="Jugement d'ouverture d'une procédure de sauvegarde accélérée"/>
|
||||
<xs:enumeration value="Jugement d'extension d'une procédure de sauvegarde accélérée"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde accélérée et la liquidation judiciaire"/>
|
||||
<xs:enumeration value="Jugement prononçant la résolution du plan de sauvegarde accélérée et redressement judiciaire"/>
|
||||
<xs:enumeration value="Jugement prononçant la clôture de la procédure de rétablissement professionnel"/>
|
||||
<xs:enumeration value="Jugement arrêtant le plan de sauvegarde accélérée"/>
|
||||
<xs:enumeration value="Jugement modifiant le plan de sauvegarde accélérée"/>
|
||||
<xs:enumeration value="Jugement mettant fin à la procédure de sauvegarde accélérée"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="date" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date du jugement</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="complementJugement" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Complément du jugement</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
830
batch/bodacc/Bodacc_RCI_Redif_2013_05_27_V10.xsd
Normal file
830
batch/bodacc/Bodacc_RCI_Redif_2013_05_27_V10.xsd
Normal file
@ -0,0 +1,830 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by djo (JOURNAUX OFFICIELS) -->
|
||||
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction de l'Information Légale et Administrative) -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- Version V01 du 14/01/08 -->
|
||||
<!-- V05 du 12/03/08 : ajout norme ISO 4217 pour Devise_Type -->
|
||||
<!-- V06 du 04/04/08 : Dans les éléments precedentProprietairePM, precedentProprietairePP, -->
|
||||
<!-- precedentExploitantPP et precedentExploitantPM, les éléments numeroImmatriculation et nonInscrit sont devenus optionnels -->
|
||||
<!-- V07 du 17/04/08 : ajout champs dateEffet -->
|
||||
<!-- V09 du 07/10/09 : Longueur maximum de 1000 caractère pour l'élément nomVoie dans Adresse au lieu de 50 -->
|
||||
<!-- V10 du 15/04/10 : Changement du numéro de département de la Mayotte qui devient 976 -->
|
||||
<!-- 24/05/13 : Augmentation de la longueur max de NomDenomination_Type à 1000 pour harmoniser avec la schéma d'entrée -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:import namespace="urn:un:unece:uncefact:codelist:standard:5:4217:2001" schemaLocation="ISO_CurrencyCode_2001.xsd"/>
|
||||
<xs:element name="RCS-A_IMMAT">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Composant Annonce Immatriculations, Ventes et Créations pour les Reffuseurs</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="parution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="listeAvis">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="avis" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="typeAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="annonce">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="rectificatif">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="annulation">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nojo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="15"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroDepartement" type="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° de département du Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="tribunal" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Greffe qui a procédé à l'avis -</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:sequence>
|
||||
<xs:element name="personnes">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="personne" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence maxOccurs="unbounded">
|
||||
<xs:choice>
|
||||
<xs:element name="personneMorale">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:choice>
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type"/>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="denomination" type="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Dénomination</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="formeJuridique" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomCommercial" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom commercial</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sigle</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="administration" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>nouvelle situation,ex: Gérants : Dumoulin Bernard</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="personnePhysique">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:choice>
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
<xs:element name="nom">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de famille (naissance)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="prenom" maxOccurs="unbounded">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Prénom</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomUsage" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'usage</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pseudonyme" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomCommercial" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nationnalite" type="Alpha_Type" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="capital" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Capital de la société</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:sequence>
|
||||
<xs:element name="montantCapital">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Montant du capital</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:fractionDigits value="2"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="devise" type="Devise_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Devise (conforme à la norme ISO 4217)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:element name="capitalVariable">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Capital variable</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="adresse" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="france" type="AdresseFrance_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse en France de la société </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="etranger" type="AdresseEtranger_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:element name="etablissement" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="origineFonds" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Origine du fonds
|
||||
Ex : Fonds principal acquis par achat au prix stipulé de 28 940 euros, Cette société se constitue, Moitié indivise dépendante d'un fonds complémentaire acquise par apport au montant évalué à 55 000 euros, Création, Fonds acquis par achat, ...</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="qualiteEtablissement" type="Alpha_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Siège social, Etablissement principal, Etablissemennt complémentaire, ..., Fonds complémentaire, Fonds secondaire</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="activite" type="AlphaNum_Type" minOccurs="0"/>
|
||||
<xs:element name="enseigne" type="AlphaNum_Type" minOccurs="0"/>
|
||||
<xs:element name="adresse" type="AdresseFrance_Type" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="precedentProprietairePM">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="denomination" type="NomDenomination_Type"/>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="precedentProprietairePP">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nature" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Héritier, indivisaire</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nom">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="prenom" maxOccurs="unbounded">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomUsage" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="precedentExploitantPM">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="denomination" type="NomDenomination_Type"/>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="precedentExploitantPP">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nature" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Héritier, indivisaire</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nom">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="prenom" maxOccurs="unbounded">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomUsage" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="parutionAvisPrecedent" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nomPublication" type="Alpha_Type"/>
|
||||
<xs:element name="numeroParution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce" type="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="acte">
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="creation">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:complexType mixed="true">
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:element name="dateImmatriculation" type="Date_Type" minOccurs="0"/>
|
||||
<xs:element name="categorieCreation" type="AlphaNum_Type"/>
|
||||
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de début d'activité</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="descriptif" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Descriptif de la modification</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="immatriculation">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:element name="dateImmatriculation" type="Date_Type" minOccurs="0"/>
|
||||
<xs:element name="categorieImmatriculation" type="AlphaNum_Type"/>
|
||||
<xs:element name="dateEffet" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de début d'activité</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="descriptif" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Descriptif de la modification</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="vente">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:element name="dateImmatriculation" type="Date_Type" minOccurs="0"/>
|
||||
<xs:element name="categorieVente" type="AlphaNum_Type"/>
|
||||
<xs:element name="dateEffet" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de début d'activité</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="journal" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Journal d'annonces légales</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="titre" type="AlphaNum_Type"/>
|
||||
<xs:element name="date" type="Date_Type"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:choice maxOccurs="2">
|
||||
<xs:element name="opposition" type="AlphaNum_Type"/>
|
||||
<xs:element name="declarationCreance" type="AlphaNum_Type"/>
|
||||
</xs:choice>
|
||||
<xs:element name="descriptif" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Descriptif de la modification</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- date -->
|
||||
<xs:simpleType name="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:date">
|
||||
<xs:pattern value="....-..-.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="DateHeure_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime">
|
||||
<xs:pattern value="....-..-..T..:..:.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- string -->
|
||||
<xs:simpleType name="Alpha_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- number -->
|
||||
<xs:simpleType name="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type N : tous les chiffres</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\d]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- technique -->
|
||||
<xs:simpleType name="Version_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>VXX (XX=num de version)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:length value="3"/>
|
||||
<xs:pattern value="V\d{2}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- fonctionnel -->
|
||||
<xs:simpleType name="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomCommercial_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Sigle_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Activite_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="5"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code département</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="2"/>
|
||||
<xs:maxLength value="3"/>
|
||||
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NumeroGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="4"/>
|
||||
<xs:maxLength value="6"/>
|
||||
<xs:pattern value="\d{4,5}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="StatutRCSPP_Type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="A"/>
|
||||
<xs:enumeration value="F"/>
|
||||
<xs:enumeration value="AC"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="StatutRCSPM_Type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="B"/>
|
||||
<xs:enumeration value="C"/>
|
||||
<xs:enumeration value="D"/>
|
||||
<xs:enumeration value="F"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Parution_Type">
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Devise_Type">
|
||||
<xs:restriction base="iso4217:CurrencyCodeContentType"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="AdresseEtranger_Type">
|
||||
<xs:sequence>
|
||||
<xs:element name="adresse">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pays" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom du pays</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AdresseFrance_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la voie
|
||||
Ex : 4</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="10"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="typeVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de la voie
|
||||
Ex : rue</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de la voie
|
||||
Ex : d'Enfer</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000" fixed="false"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="complGeographique" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Complément gépgraphique
|
||||
Ex : Résidence Bel-Air</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="BP" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Boîte postale
|
||||
Ex : BP 14192</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="localite" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Localité
|
||||
Ex : Saint-Chéron</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codePostal" type="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal
|
||||
Ex : 51290</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ville">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ville/Bureau distributeur
|
||||
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="NumeroImmatriculation_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentification">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° d'identification au format NNN NNN NNN</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="11"/>
|
||||
<xs:pattern value="\d{3} \d{3} \d{3}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:length value="3"/>
|
||||
<xs:enumeration value="RCS"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
794
batch/bodacc/Bodacc_RCM_Redif_2013_05_27_V11.xsd
Normal file
794
batch/bodacc/Bodacc_RCM_Redif_2013_05_27_V11.xsd
Normal file
@ -0,0 +1,794 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2007 sp1 (http://www.altova.com) by SSI/CTI (JOURNAUX OFFICIELS) -->
|
||||
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by journal-officiel (Direction de l'Information Légale et Administrative) -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- Version V01 du 14/01/08 -->
|
||||
<!-- V04 du 12/03/08 : ajout norme ISO 4217 pour Devise_Type -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- -->
|
||||
<!-- V05 du 11/04/08 : ajout champs dateEffet -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!-- -->
|
||||
<!-- V08 du 23/01/09 : modification longueur maximum (d 200 à 1000) pour l'élément denomination -->
|
||||
<!-- *********************************************************************************************************************** -->
|
||||
<!--
|
||||
V09 du 30/04/09 : Ajout élément commentaire dans radiationAuRCS -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!--
|
||||
V10 du 11/09/09 : Choix rendu optionnel après les éléments ModificationsGenerales et radiationAuRCS afin de pouvoir trier les radiations et les modifications-->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<!--
|
||||
V11 du 15/04/10 : Prise en compte du nouveau numéro de département de la Mayotte (976) -->
|
||||
<!-- ********************************************************************************************************************************************************************************** -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iso4217="urn:un:unece:uncefact:codelist:standard:5:4217:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:import namespace="urn:un:unece:uncefact:codelist:standard:5:4217:2001" schemaLocation="ISO_CurrencyCode_2001.xsd"/>
|
||||
<xs:element name="RCS-B_REDIFF">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Composant Annonce Modifications générales et Radiation pour les Reffuseurs</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="parution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="listeAvis">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="avis" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="typeAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="annonce">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="rectificatif">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="annulation">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nojo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro d'identification J.O.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:length value="15"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="numeroDepartement" type="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° de département du Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="tribunal" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Greffe qui a procédé à l'avis -</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:sequence>
|
||||
<xs:element name="personnes">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="personne" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:choice>
|
||||
<xs:element name="personneMorale">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="denomination">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Dénomination</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="NomDenomination_Type">
|
||||
<xs:maxLength value="1000" fixed="true"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="formeJuridique" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Forme juridique (Ex : Société Anonyme, SARL, EURL,...)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="capital" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Capital de la société</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:sequence>
|
||||
<xs:element name="montantCapital">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Montant du capital</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:fractionDigits value="2"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="devise" type="Devise_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Devise (conforme à la norme ISO 4217)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:element name="capitalVariable">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Capital variable</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nomCommercial" type="AlphaNum_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom commercial</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="administration" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>nouvelle situation,ex: Gérants : Dumoulin Bernard</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="sigle" type="Sigle_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sigle</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="personnePhysique">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nom">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de famille (naissance)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="prenom" maxOccurs="unbounded">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Prénom</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomUsage" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'usage</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pseudonyme" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomCommercial" type="AlphaNum_Type" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice>
|
||||
<xs:element name="numeroImmatriculation">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentificationRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° d'identification au format NNN NNN NNN </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:length value="11"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:length value="3"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
<xs:element name="activite" type="AlphaNum_Type" minOccurs="0"/>
|
||||
<xs:element name="adresse" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="france" type="AdresseFrance_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse en France de la société </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="etranger" type="AdresseEtranger_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="siegeSocial" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Siège social de la société</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="france" type="AdresseFrance_Type"/>
|
||||
<xs:element name="etranger" type="AdresseEtranger_Type"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="etablissementPrincipal" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Etablissement principal de la société</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="france" type="AdresseFrance_Type"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="modificationsGenerales">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="precedentExploitantPM">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Precedent exploitant pour une personne morale</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="denomination">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="NomDenomination_Type">
|
||||
<xs:maxLength value="200"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:choice>
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="precedentExploitantPP">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Precedent exploitant pour une personne physique</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nature" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nom">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="prenom">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomUsage" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="numeroImmatriculation" type="NumeroImmatriculation_Type"/>
|
||||
<xs:element name="nonInscrit" type="Alpha_Type"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="descriptif">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Descriptif de la modification</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="dateCommencementActivite" type="Date_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de début d'activité</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateEffet" type="Date_Type" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="radiationAuRCS">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="0">
|
||||
<xs:choice>
|
||||
<xs:element name="radiationPP">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Radiation pour les Personnes Physiques</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="dateCessationActivitePP" type="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de cessation d'activité pour les Personnes Physiques</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="radiationPM">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Radiation pour les Personnes Morales</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:length value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="commentaire" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Commentaire pour les radiations</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="parutionAvisPrecedent" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Information sur l'avis à rectifier</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nomPublication" type="Alpha_Type"/>
|
||||
<xs:element name="numeroParution" type="Parution_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateParution" type="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date de la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="numeroAnnonce" type="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de l'avis dans la parution précédente</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- date -->
|
||||
<xs:simpleType name="Date_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:date">
|
||||
<xs:pattern value="....-..-.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="DateHeure_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime">
|
||||
<xs:pattern value="....-..-..T..:..:.."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- string -->
|
||||
<xs:simpleType name="Alpha_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AlphaNum_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- number -->
|
||||
<xs:simpleType name="Num_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type N : tous les chiffres</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\d]*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- technique -->
|
||||
<xs:simpleType name="Version_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>VXX (XX=num de version)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:length value="3"/>
|
||||
<xs:pattern value="V\d{2}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- fonctionnel -->
|
||||
<xs:simpleType name="NomDenomination_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomCommercial_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="70"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Sigle_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>type anySimpleType</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Activite_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de AlphaNum_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="5"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Departement_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code département</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="2"/>
|
||||
<xs:maxLength value="3"/>
|
||||
<xs:pattern value="2A|2B|[0-2]{1}[1-9]{1}|10|[3-8]{1}\d{1}|[9]{1}[0-5]{1}|(97[1-6]{1})|98[4-8]{1}|99"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NumeroGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>code Greffe</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:minLength value="4"/>
|
||||
<xs:maxLength value="6"/>
|
||||
<xs:pattern value="\d{4,5}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>dérivé de Alpha_Type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="60"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="StatutRCSPP_Type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="A"/>
|
||||
<xs:enumeration value="F"/>
|
||||
<xs:enumeration value="AC"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="StatutRCSPM_Type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="B"/>
|
||||
<xs:enumeration value="C"/>
|
||||
<xs:enumeration value="D"/>
|
||||
<xs:enumeration value="F"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Parution_Type">
|
||||
<xs:restriction base="Num_Type">
|
||||
<xs:length value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="Devise_Type">
|
||||
<xs:restriction base="iso4217:CurrencyCodeContentType"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="AdresseEtranger_Type">
|
||||
<xs:sequence>
|
||||
<xs:element name="adresse">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom d'adresse à l'étranger</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="pays" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom du pays</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AdresseFrance_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numéro de la voie
|
||||
Ex : 4</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="typeVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de la voie
|
||||
Ex : rue</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomVoie" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom de la voie
|
||||
Ex : d'Enfer</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="complGeographique" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Complément gépgraphique
|
||||
Ex : Résidence Bel-Air</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="1000"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="BP" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Boîte postale
|
||||
Ex : BP 14192</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="8"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="localite" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Localité
|
||||
Ex : Saint-Chéron</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codePostal" type="CodePostal_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Code Postal
|
||||
Ex : 51290</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ville">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ville/Bureau distributeur
|
||||
Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="AlphaNum_Type">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="50"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="NumeroImmatriculation_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroIdentification">
|
||||
<xs:annotation>
|
||||
<xs:documentation>N° d'identification au format NNN NNN NNN</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="11"/>
|
||||
<xs:pattern value="\d{3} \d{3} \d{3}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeRCS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>valeur fixée à "RCS"</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="Alpha_Type">
|
||||
<xs:length value="3"/>
|
||||
<xs:enumeration value="RCS"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="nomGreffeImmat" type="NomGreffe_Type">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Greffe d'immatriculation du dossier </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
578
batch/bodacc/OCTDE_EXPORT_JAL_V3.8.xsd
Normal file
578
batch/bodacc/OCTDE_EXPORT_JAL_V3.8.xsd
Normal file
@ -0,0 +1,578 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--Created with Liquid XML Studio Developer Edition 9.0.11.3078 (http://www.liquid-technologies.com)-->
|
||||
<!--
|
||||
OCTDE_EXPORT_JAL XSD - Schéma d'export des annonces JAL au format XML.
|
||||
Copyright OCTDE - v3.4 - 11/03/2015
|
||||
|
||||
L'ensemble des tables de codes associées aux balises code* sont disponibles dans le fichier : OCTDE_Tables_Codes.xls
|
||||
Les fichiers JAL en XML livrés sont nommés selon le masque : "Annonces_YYYYMMDD.xml"
|
||||
Les fichiers PDF livrés sont nommés selon le masque : "<journalID>_YYYYMMDD_<numParution>.pdf"
|
||||
Dans le cas où il n’y a pas de numParution, ce numéro devient 00.
|
||||
|
||||
-->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<!-- Définition de types -->
|
||||
<xs:simpleType name="alphaType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Alphabétique : Caractères, ponctuations et symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="alphaNumType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Alphanumérique : Caractères, chiffres, ponctuations et symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]*</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="numType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numérique</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[\d]*" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="boolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Booléen (0 ou 1)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:pattern value="[0-1]{1}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="typeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>M : Personne Morale; P : Personne Physique</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="M" />
|
||||
<xs:enumeration value="P" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="capitalType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type de capital : MINinmum, FIXe, VARiable ou LIBéré (en totalité)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="MIN" />
|
||||
<xs:enumeration value="FIX" />
|
||||
<xs:enumeration value="VAR" />
|
||||
<xs:enumeration value="LIB" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="rubriqueType">
|
||||
<xs:annotation>
|
||||
<xs:documentation> Type de rubrique : CoMPTes, CREAtions, MODIFications, PROCedures COLlectives, RADiations, ventes, DIVers,CESsation </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="CMPT" />
|
||||
<xs:enumeration value="CREA" />
|
||||
<xs:enumeration value="MODIF" />
|
||||
<xs:enumeration value="PROCCOL" />
|
||||
<xs:enumeration value="RAD" />
|
||||
<xs:enumeration value="VENTE" />
|
||||
<xs:enumeration value="DIV" />
|
||||
<xs:enumeration value="CES" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="annonceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation> Type d'annonce : Rectificatif, Additif, Suppression, AnnuleEtRemplace, Insertion, Creation </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="RECTIFICATIF" />
|
||||
<xs:enumeration value="ADDITIF" />
|
||||
<xs:enumeration value="SUPPRESSION" />
|
||||
<xs:enumeration value="ANNULEETREMPLACE" />
|
||||
<xs:enumeration value="INSERTION" />
|
||||
<xs:enumeration value="CREATION" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="sirenType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9]{9}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="adresseLineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ligne d'adresse au format RNVP selon la norme 38 caractères</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="alphaNumType">
|
||||
<xs:maxLength value="38" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="codePostalType">
|
||||
<xs:restriction base="alphaNumType">
|
||||
<xs:maxLength value="10" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="departementType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9]{2,3}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="codePaysIso2Type">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[A-Z]{2}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="formeJuridiqueType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9]{4}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="decimalType">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:minExclusive value="0" />
|
||||
<xs:fractionDigits value="2" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="deviseType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[A-Z]{3}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="adminType">
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:minExclusive value="0" />
|
||||
<xs:maxInclusive value="9999" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="civiliteType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ste : Société; Dr : Docteur; M : Monsieur; Mme : Madame; Mlle : Mademoiselle; Me : Maître</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Ste" />
|
||||
<xs:enumeration value="Dr" />
|
||||
<xs:enumeration value="M" />
|
||||
<xs:enumeration value="Mme" />
|
||||
<xs:enumeration value="Mlle" />
|
||||
<xs:enumeration value="Me" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="typeActeurType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>AB : Societe Absorbante; AC : Acquereur; CD : Cedant; NE : Nouvel Exploitant; PE : Précédent Exploitant</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:length value="2" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="roleIntervenantType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A : Administrateur; C :Commissaire au plan; H : Huissier*; J : Juge commissaire; K : Juge commissaire suppléant; L : Liquidateur; M : Mandataire; N : Notaire*; O : Opposition*; R : Représentant des créanciers ; T : conciliaTeur; V : aVocat*; Les intervenants avec une * sont spécifiques aux annonces de ventes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[A-Z]{1,2}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="adresseType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Adresses structurées. Le tag adresseTexte est utilisé quand l'adresse n'est pas disponible de façon structurée, par exemple pour les adresses à l'étranger.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="numeroVoie" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="indRep" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="typeVoie" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="nomVoie" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="complGeographique" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="boitePostale" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="localite" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="codePostal" type="codePostalType" minOccurs="0" />
|
||||
<xs:element name="ville" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="departement" type="departementType" minOccurs="0" />
|
||||
<xs:element name="codePays" type="codePaysIso2Type" minOccurs="0" default="FR" />
|
||||
<xs:element name="labelPays" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="idVoie" type="numType" minOccurs="0" />
|
||||
<xs:element name="codeInseeCommune" type="numType" minOccurs="0" />
|
||||
<xs:element name="adresseTexte" type="alphaNumType" minOccurs="0" />
|
||||
<!-- <xs:element name="adresseRNVP" type="boolType" minOccurs="0" />-->
|
||||
<xs:element name="diagAdresse" type="numType" minOccurs="0" />
|
||||
<xs:element name="topRejet" type="boolType" minOccurs="0" />
|
||||
<xs:element name="topAmelia" type="boolType" minOccurs="0" />
|
||||
<xs:element name="adresse_L1" type="adresseLineType" minOccurs="0" />
|
||||
<xs:element name="adresse_L2" type="adresseLineType" minOccurs="0" />
|
||||
<xs:element name="adresse_L3" type="adresseLineType" minOccurs="0" />
|
||||
<xs:element name="adresse_L4" type="adresseLineType" minOccurs="0" />
|
||||
<xs:element name="adresse_L5" type="adresseLineType" minOccurs="0" />
|
||||
<xs:element name="adresse_L6" type="adresseLineType" minOccurs="0" />
|
||||
<xs:element name="adresse_L7" type="adresseLineType" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- Définition des éléments -->
|
||||
<xs:element name="livraisonAnnoncesLegales">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Elément racine</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="livraisonInfo" />
|
||||
<xs:element ref="annonces" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="livraisonInfo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Metadonnées de la livraison</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="dateLivraison" type="xs:date" />
|
||||
<xs:element name="nbItems" type="xs:integer" />
|
||||
<xs:element name="codeLivraison" type="alphaNumType" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ce tag peut le cas échéant contenir un code permettant d'identifier la livraison fournie.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="annonces">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les annonces de la livraison</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="annonce" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="annonce">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Description d'une annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="annonceInfo" />
|
||||
<xs:element ref="personnes" />
|
||||
<xs:element ref="evenements" />
|
||||
<xs:element ref="acteursCession" minOccurs="0" />
|
||||
<xs:element ref="etablissementsCession" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="annonceInfo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Metadonnées de l'annonce. Certains de ces tags sont specifiques aux Jal (ex: journalID), d'autres spécifiques au Bodacc (ex: nojo), d'autres étant communs à diverses sources</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="adID" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="origine" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="sourcePdf" type="alphaNumType" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Nom du fichier PDF contenant l'annonce OCRisée avec lien vers la page de l'annonce si multipage (exemple: myfile.pdf#page=4)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="nomPublication" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="journalID" type="numType" minOccurs="0" />
|
||||
<xs:element name="dateParution" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="numParution" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="tribunal" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="texte" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="rubrique" type="rubriqueType" minOccurs="0" />
|
||||
<xs:element name="typeAnnonce" type="annonceType" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="personnes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les personnes d'une annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="personne" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="personne">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Infos associées à la personne concernée</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="identite" minOccurs="0" />
|
||||
<xs:element ref="dirigeants" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="identite">
|
||||
<xs:annotation>
|
||||
<xs:documentation>identité d'une personne Physique ou Morale</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="pseudonyme" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
|
||||
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="nomUsage" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="dateNaissance" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="lieuNaissance" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="sigle" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="type" type="typeType" minOccurs="0" />
|
||||
<xs:element name="siren" type="sirenType" minOccurs="0" />
|
||||
<xs:element name="sirenValide" type="boolType" minOccurs="0" />
|
||||
<xs:element name="codeFormeJuridique" type="formeJuridiqueType" minOccurs="0" />
|
||||
<xs:element name="capital" type="decimalType" minOccurs="0" />
|
||||
<xs:element name="capitalType" type="capitalType" minOccurs="0" />
|
||||
<xs:element name="devise" type="deviseType" minOccurs="0" default="EUR" />
|
||||
<xs:element name="capitalNbParts" type="numType" minOccurs="0" />
|
||||
<xs:element name="duree" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:minInclusive value="0" />
|
||||
<xs:maxInclusive value="99" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="etablissements" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="etablissement" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="etablissement">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Description d'un établissement</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="enseigne" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="activite" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="adresse" type="adresseType" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="dirigeants" nillable="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les dirigeants d'une entreprise</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="dirigeant" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="dirigeant">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Description d'un dirigeant</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
|
||||
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="nomUsage" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="siren" type="sirenType" minOccurs="0" />
|
||||
<xs:element name="sirenValide" type="boolType" minOccurs="0" />
|
||||
<xs:element name="codeFonction" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9]{3}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="codeMouvement" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9]{2}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="dateMissionDebut" type="xs:date" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Date d'effet de début de mission d'un dirigeant (notamment pour les CAC)
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="dateMissionFin" type="xs:date" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Date d'effet passée ou à venir de la fin de
|
||||
mission d'un dirigeant (notamment pour les
|
||||
CAC)
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="adresse" type="adresseType" minOccurs="0" />
|
||||
<xs:element name="dateNaissance" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="lieuNaissance" type="xs:string" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="intervenant">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Zonage des informations liées à chaque mandataire ou autre intervenant de l'annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
|
||||
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="roleIntervenant" type="roleIntervenantType" minOccurs="0" />
|
||||
<xs:element name="adresse" type="adresseType" minOccurs="0" />
|
||||
<xs:element name="finMission" type="boolType" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Pour cet intervenant, il s'agit d'une fin de mission</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="intervenants">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les intervenants d'une procédure collective</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="intervenant" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="evenements">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les évènements d'une annonce</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="evenement" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="evenement">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Description d'un evenement</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="codeEvenement" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9]{4}" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="dateDecision" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="dateEffet" type="xs:date" minOccurs="0" />
|
||||
<xs:element ref="procedureCollective" minOccurs="0" />
|
||||
<xs:element ref="rectificatif" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="procedureCollective" nillable="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Description d'une Procédure Collective</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="dateCessationPaiements" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="dateFinPlanObs" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="dureePlanObs" type="xs:string" minOccurs="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Pour les annonces de plans ou les annonces avec périodes d'observation, selon les annonces, la durée du plan ou de la période d'observation est communiqué (36 mois, 8 ans, etc...) ou alors la dateFinPlanObs</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element ref="intervenants" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="rectificatif">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Description d'un rectificatif ou annulation</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nomPublication" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="dateParution" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="numParution" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="page" type="numType" minOccurs="0" />
|
||||
<xs:element name="texteRectificatif" type="xs:string" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="acteursCession" nillable="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les acteurs d'une cession</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="acteurCession" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="acteurCession" nillable="true">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="typeActeur" type="typeActeurType" />
|
||||
<xs:element name="identiteActeur">
|
||||
<xs:annotation>
|
||||
<xs:documentation>identité d'une personne Physique ou Morale</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="nom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="pseudonyme" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="civilite" type="civiliteType" minOccurs="0" />
|
||||
<xs:element name="prenom" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="nomUsage" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="dateNaissance" type="xs:date" minOccurs="0" />
|
||||
<xs:element name="lieuNaissance" type="xs:string" minOccurs="0" />
|
||||
<xs:element name="sigle" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="type" type="typeType" minOccurs="0" />
|
||||
<xs:element name="siren" type="sirenType" minOccurs="0" />
|
||||
<xs:element name="sirenValide" type="boolType" minOccurs="0" />
|
||||
<xs:element name="codeFormeJuridique" type="formeJuridiqueType" minOccurs="0" />
|
||||
<xs:element name="capital" type="decimalType" minOccurs="0" />
|
||||
<xs:element name="capitalType" type="capitalType" minOccurs="0" />
|
||||
<xs:element name="devise" type="deviseType" minOccurs="0" default="EUR" />
|
||||
<xs:element name="capitalNbParts" type="numType" minOccurs="0" />
|
||||
<xs:element name="duree" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:minInclusive value="0" />
|
||||
<xs:maxInclusive value="99" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="adresse" type="adresseType" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element ref="cessionInfo" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="cessionInfo" nillable="true">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="montantCession" type="decimalType" minOccurs="0" />
|
||||
<xs:element name="deviseMontantCession" type="deviseType" minOccurs="0" />
|
||||
<xs:element name="natureCession" type="alphaNumType" minOccurs="0" />
|
||||
<xs:element name="dureeCession" type="numType" minOccurs="0" />
|
||||
<xs:element name="nbParts" type="numType" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="etablissementsCession" nillable="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Les établissements concernés par une cession</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="etablissement" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
@ -72,8 +72,15 @@ if ($all) {
|
||||
$baseInpi=$baseBodacc=$baseBodaccHisto=true;
|
||||
}
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
$iDbSdv1=new WDB('sdv1');
|
||||
$ret = $iDbSdv1->insert('sphinx_idx', array('nom'=>'jo.dirigeants', 'createBegin'=>date('YmdHis')));
|
||||
$consolidationId = null;
|
||||
if (is_int($ret) ) {
|
||||
$consolidationId = $ret;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Sphinx Idx id=".$consolidationId.EOL;
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table dirigeants.".EOL;
|
||||
if (!$iDb->query("DROP TABLE IF EXISTS jo.dirigeants_tmp;"))
|
||||
die($iDb->getLastError());
|
||||
@ -155,6 +162,13 @@ if ($baseBodaccHisto) {
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants BODACC Histo consolidés.".EOL;
|
||||
}
|
||||
|
||||
$iDb->query("ALTER TABLE jo.dirigeants_tmp PACK_KEYS=1;");
|
||||
echo date ('Y/m/d - H:i:s')." - Commpression des Index de la table OK.".EOL;
|
||||
|
||||
if ( $consolidationId !== null ) {
|
||||
$ret = $iDbSdv1->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$consolidationId");
|
||||
}
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Dirigeants".EOL;
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Dirigeants".EOL;
|
||||
|
||||
|
@ -15,9 +15,9 @@ include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$all=true;
|
||||
$joAsso=$joBodacc=$baseInsee=$baseInpi=$reset=$pageRankOnly=$iGreffe=false;
|
||||
$joAsso=$joBodacc=$baseInsee=$baseInpi=$reset=$pageRankOnly=$iGreffe=$iLiens=false;
|
||||
// Compteurs
|
||||
$nbInsertAsso=$nbInsertRncs1=$nbInsertRncs2=$nbInsertBod=$nbConjoints=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=0;
|
||||
$nbInsertAsso=$nbInsertAssoAdr2=$nbInsertRncs1=$nbInsertRncs2=$nbInsertBod=$nbConjoints=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=$nbInsertLiens=0;
|
||||
|
||||
$table='etablissements_tmp';
|
||||
|
||||
@ -31,6 +31,7 @@ Options :
|
||||
-i Consolider les infos SIRENE (Insee)
|
||||
-n Consolider les infos RNCS (Inpi)
|
||||
-g Consolider les entreprises en provenance des Greffes
|
||||
-l Consolider les entreprises issues de la base Liens
|
||||
-m Mettre à jour les données sur les marques
|
||||
-r Reconstruire complètement la base
|
||||
-p traiter uniquement la construction du 'page rank'
|
||||
@ -43,46 +44,19 @@ if ($_SERVER['argc']>1)
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'a':
|
||||
$all=false;
|
||||
$joAsso=true;
|
||||
break;
|
||||
case 'g':
|
||||
$all=false;
|
||||
$iGreffe=true;
|
||||
break;
|
||||
case 'm':
|
||||
$all=false;
|
||||
$iMarques=true;
|
||||
break;
|
||||
case 'b':
|
||||
$all=false;
|
||||
$joBodacc=true;
|
||||
break;
|
||||
case 'i':
|
||||
$all=false;
|
||||
$baseInsee=true;
|
||||
break;
|
||||
case 'n':
|
||||
$all=false;
|
||||
$baseInpi=true;
|
||||
break;
|
||||
case 'r':
|
||||
$reset=true;
|
||||
break;
|
||||
case 'p':
|
||||
$pageRankOnly=true;
|
||||
break;
|
||||
case 't':
|
||||
$table=strtolower(substr($argv[$i],3));
|
||||
break;
|
||||
case 'a': $all=false; $joAsso=true; break;
|
||||
case 'g': $all=false; $iGreffe=true; break;
|
||||
case 'l': $all=false; $iLiens=true; break;
|
||||
case 'm': $all=false; $iMarques=true; break;
|
||||
case 'b': $all=false; $joBodacc=true; break;
|
||||
case 'i': $all=false; $baseInsee=true; break;
|
||||
case 'n': $all=false; $baseInpi=true; break;
|
||||
case 'r': $reset=true; break;
|
||||
case 'p': $pageRankOnly=true; break;
|
||||
case 't': $table=strtolower(substr($argv[$i],3)); break;
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -96,7 +70,7 @@ if (file_exists(REP_TEMP.'stockInsee.lock')) {
|
||||
|
||||
/** Par défaut, on consolide toutes les sources **/
|
||||
if ($all) {
|
||||
$joAsso=$joBodacc=$baseInsee=$baseInpi=$iGreffe=$iMarques=true;
|
||||
$joAsso=$joBodacc=$baseInsee=$baseInpi=$iGreffe=$iLiens=$iMarques=true;
|
||||
}
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
@ -165,57 +139,68 @@ $iInsee=new MInsee();
|
||||
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table établissements.".EOL;
|
||||
|
||||
$iDbSdv1=new WDB('sdv1');
|
||||
$ret = $iDbSdv1->insert('sphinx_idx', array('nom'=>'jo.etablissements', 'createBegin'=>date('YmdHis')));
|
||||
$consolidationId = null;
|
||||
if (is_int($ret) ) {
|
||||
$consolidationId = $ret;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Sphinx Idx id=".$consolidationId.EOL;
|
||||
|
||||
if (!$iDb->query("DROP TABLE IF EXISTS jo.etablissements_tmp;"))
|
||||
die($iDb->getLastError());
|
||||
|
||||
if (!$iDb->query("CREATE TABLE jo.etablissements_tmp (
|
||||
`id` bigint(20) NOT NULL auto_increment,
|
||||
`source` tinyint(3) unsigned zerofill NOT NULL,
|
||||
`source_id` bigint(20) unsigned NOT NULL,
|
||||
`triCode` varchar(6) NOT NULL,
|
||||
`autre_id` varchar(15) NOT NULL,
|
||||
`siren` int(9) unsigned zerofill NOT NULL,
|
||||
`nic` mediumint(5) unsigned zerofill NOT NULL,
|
||||
`actif` tinyint(1) NOT NULL,
|
||||
`siege` tinyint(1) unsigned NOT NULL,
|
||||
`raisonSociale` varchar(80) NOT NULL,
|
||||
`enseigne` varchar(40) NOT NULL,
|
||||
`sigle` varchar(20) NOT NULL,
|
||||
`identite_pre` varchar(255) NOT NULL,
|
||||
`marques` TEXT NOT NULL,
|
||||
`adr_num` smallint(4) unsigned zerofill NOT NULL,
|
||||
`adr_btq` char(1) NOT NULL,
|
||||
`adr_typeVoie` char(4) NOT NULL,
|
||||
`adr_libVoie` varchar(32) NOT NULL,
|
||||
`adr_comp` varchar(38) NOT NULL,
|
||||
`adr_cp` mediumint(5) unsigned zerofill NOT NULL,
|
||||
`adr_ville` varchar(32) NOT NULL,
|
||||
`adr_dep` char(3) NOT NULL,
|
||||
`adr_com` smallint(3) unsigned zerofill NOT NULL,
|
||||
`tel` bigint(10) unsigned zerofill NOT NULL,
|
||||
`fax` bigint(10) unsigned zerofill NOT NULL,
|
||||
`cj` smallint(4) unsigned zerofill NOT NULL,
|
||||
`capital` bigint(15) unsigned zerofill NOT NULL,
|
||||
`capitalDev` char(3) NOT NULL,
|
||||
`capitalSrc` tinyint(3) unsigned zerofill NOT NULL,
|
||||
`ape_etab` char(5) NOT NULL,
|
||||
`ape_entrep` char(5) NOT NULL,
|
||||
`age_entrep` tinyint(3) unsigned NOT NULL,
|
||||
`age_etab` tinyint(3) unsigned NOT NULL,
|
||||
`tca` tinyint(1) unsigned zerofill NULL,
|
||||
`tcaexp` tinyint(1) unsigned zerofill NOT NULL,
|
||||
`teff_entrep` tinyint(2) unsigned NULL,
|
||||
`teff_etab` tinyint(2) unsigned NULL,
|
||||
`rang` smallint unsigned NOT NULL,
|
||||
`dateInsert` datetime NOT NULL,
|
||||
`dateUpdate` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `source` (`source`,`source_id`),
|
||||
KEY `idxTel` (`tel`),
|
||||
KEY `idxFax` (`fax`),
|
||||
KEY `idxSiret` (`siren`,`nic`,`actif`,`siege`),
|
||||
KEY `idxAutreId` (`autre_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;", true))
|
||||
id bigint(20) NOT NULL auto_increment COMMENT 'Identifiant dans la table (pas unique pour l''établissement)',
|
||||
source tinyint(3) unsigned zerofill NOT NULL COMMENT 'Code source de l''entité/établissement',
|
||||
source_id bigint(20) unsigned NOT NULL COMMENT 'Identifiant de l''établissement/entité dans la source (source+source_id étant invariable=identifiant S&D)',
|
||||
triCode varchar(6) NOT NULL COMMENT 'Code Tribunal de l''entreprise',
|
||||
autre_id varchar(15) NOT NULL COMMENT 'Autre identifiant comme Numéro RCS, Waldec/RNA',
|
||||
siren INT(9) unsigned zerofill NOT NULL COMMENT 'SIREN de l''entreprise',
|
||||
nic mediumint(5) unsigned zerofill NOT NULL COMMENT 'NIC de l''établissement (SIREN+NIC=SIRET)',
|
||||
actif tinyint(1) unsigned NOT NULL COMMENT 'Etablissement actif ou inactif (1=actif, 0=inactif)',
|
||||
siege tinyint(1) unsigned NOT NULL COMMENT 'Type d''établissement (0=Secondaire, 1=Siège, 2=Principal)',
|
||||
raisonSociale varchar(160) NOT NULL COMMENT 'Raison Sociale de l''entreprise',
|
||||
enseigne varchar(200) NOT NULL COMMENT 'Enseigne de l''établissement',
|
||||
sigle varchar(20) NOT NULL COMMENT 'Sigle de l''entreprise',
|
||||
identite_pre TEXT NOT NULL COMMENT 'Liste des Raisons Sociales précédentes de l''entreprise',
|
||||
marques TEXT NOT NULL COMMENT 'Liste des marques déposées sur le SIREN',
|
||||
adr_num SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
|
||||
adr_btq CHAR(1) NOT NULL,
|
||||
adr_typeVoie CHAR(4) NOT NULL,
|
||||
adr_libVoie VARCHAR(32) NOT NULL,
|
||||
adr_comp VARCHAR(38) NOT NULL,
|
||||
adr_cp mediumint(5) UNSIGNED ZEROFILL NOT NULL,
|
||||
adr_ville VARCHAR(32) NOT NULL,
|
||||
adr_dep CHAR(3) NOT NULL,
|
||||
adr_com SMALLINT(3) UNSIGNED ZEROFILL NOT NULL,
|
||||
rivoli CHAR(5) NOT NULL,
|
||||
tel bigint(10) UNSIGNED ZEROFILL NOT NULL,
|
||||
fax bigint(10) UNSIGNED ZEROFILL NOT NULL,
|
||||
cj SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
|
||||
capital bigint(15) UNSIGNED ZEROFILL NOT NULL,
|
||||
capitalDev CHAR(3) NOT NULL,
|
||||
capitalSrc TINYINT(3) UNSIGNED ZEROFILL NOT NULL,
|
||||
ape_etab CHAR(5) NOT NULL,
|
||||
ape_entrep CHAR(5) NOT NULL,
|
||||
age_entrep TINYINT(3) UNSIGNED NOT NULL,
|
||||
age_etab TINYINT(3) UNSIGNED NOT NULL,
|
||||
tca TINYINT(1) UNSIGNED ZEROFILL NULL COMMENT 'Tranche de Chiffre d''Affaires (INSEE)',
|
||||
tcaexp TINYINT(1) UNSIGNED ZEROFILL NOT NULL COMMENT 'Tranche de Chiffre d''Affaires à l''export (INSEE)',
|
||||
teff_entrep TINYINT(2) UNSIGNED NULL,
|
||||
teff_etab TINYINT(2) UNSIGNED NULL,
|
||||
rang SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Nombre de consultation de l''entreprise dans la base S&D',
|
||||
dateInsert DATETIME NOT NULL,
|
||||
dateUpdate timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY idxIdSphinx(id),
|
||||
UNIQUE KEY idxSource (source, source_id),
|
||||
KEY idxTel(tel),
|
||||
KEY idxFax(fax),
|
||||
KEY idxSiret(siren,nic,actif,siege),
|
||||
KEY idxAutreId(autre_id)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT 'Liste des établissements (Pour la recherche)';", true))
|
||||
/** @todo Si la construction de la table est trop longue, faire un ALTER TABLE ... PACK_KEYS=1 à la fin du chargement des données **/
|
||||
die($iDb->getLastError());
|
||||
|
||||
$strMailInfo=date ('Y/m/d - H:i:s')." - Consolidation des établissements.".EOL;
|
||||
@ -251,9 +236,9 @@ if ($baseInsee) {
|
||||
' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ENSEIGNE,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.','')
|
||||
*/
|
||||
$iDb->query("INSERT INTO jo.etablissements_tmp SELECT 0 AS id, '2' AS source, id AS source_id, e.triCode AS triCode, IF(e.numRC2 IS NOT NULL OR e.numRC2<>'', e.numRC2, i.NUMRC) AS autre_id, i.SIREN AS siren, i.NIC AS nic, i.ACTIF%10 as actif,
|
||||
SIEGE as siege, i.NOM as raisonSociale, i.ENSEIGNE AS enseigne, i.SIGLE AS sigle, TRIM(CONCAT_WS(' ',i.IDENTITE_PRE,i.NOM2,e.raisonSociale,e.sigle)) AS identite_pre, '' AS marques, ADR_NUMVOIE as adr_num,
|
||||
SIEGE as siege, IF(LENGTH(i.NOMEN_LONG)>0, i.NOMEN_LONG, i.NOM) AS raisonSociale, i.ENSEIGNE AS enseigne, i.SIGLE AS sigle, TRIM(CONCAT_WS(' ',i.IDENTITE_PRE,i.NOM,i.NOM2,e.raisonSociale,e.sigle,i.NOMEN_LONG,i.NOM_COM)) AS identite_pre, '' AS marques, ADR_NUMVOIE as adr_num,
|
||||
ADR_BTQ as adr_btq, ADR_TYPVOIE as adr_typevoie, ADR_LIBVOIE as adr_libvoie, ADR_COMP as adr_comp,
|
||||
ADR_CP as adr_cp, ADR_LIBCOM as adr_ville, IF(ADR_DEP=97 OR ADR_DEP=98, SUBSTRING(ADR_CP,1,3), ADR_DEP) AS adr_dep, ADR_COM as adr_com,
|
||||
ADR_CP as adr_cp, ADR_LIBCOM as adr_ville, IF(ADR_DEP=97 OR ADR_DEP=98, SUBSTRING(ADR_CP,1,3), ADR_DEP) AS adr_dep, ADR_COM as adr_com, CODEVOIE AS rivoli,
|
||||
TEL as tel, FAX as fax, i.CJ as cj, IF(e.capitalMontant IS NOT NULL OR e.capitalMontant>0, e.capitalMontant, i.CAPITAL) AS capital, IF(e.capitalDevIso IS NOT NULL OR e.capitalDevIso<>'', e.capitalDevIso, i.CAPITAL_DEV) AS capitalDev, IF(e.capitalMontant IS NOT NULL OR e.capitalMontant>0, 5, 2) AS capitalSrc, APE_ETAB as ape_etab, APE_ENT as apen_entrep, YEAR(NOW())-YEAR(DCREN) as age_entrep, YEAR(NOW())-YEAR(DCRET) as age_etab,
|
||||
TCA as tca, TCAEXP as tcaexp, IF(TEFF_ENT='NN', NULL, TEFF_ENT*1) AS teff_entrep, IF(TEFF_ET='NN', NULL, TEFF_ET*1) AS teff_etab,
|
||||
0 as rank, DATE_MAJ as dateInsert,
|
||||
@ -380,6 +365,8 @@ if ($baseInpi) {
|
||||
'adr_cp'=>$tabEt['cp'],
|
||||
'adr_ville'=>$tabEt['commune'],
|
||||
'adr_dep'=>$dep,
|
||||
// 'adr_com'=>
|
||||
// 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']);
|
||||
'tel'=>'',
|
||||
'fax'=>'',
|
||||
'cj'=>$tabEntrep['cj'],
|
||||
@ -443,6 +430,8 @@ if ($baseInpi) {
|
||||
'adr_cp'=>$tabEt['cp'],
|
||||
'adr_ville'=>$tabEt['commune'],
|
||||
'adr_dep'=>$dep,
|
||||
// 'adr_com'=>
|
||||
// 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']);
|
||||
'tel'=>'',
|
||||
'fax'=>'',
|
||||
'cj'=>$tabEntrep['cj'],
|
||||
@ -579,6 +568,8 @@ if ($joBodacc) {
|
||||
'adr_cp'=>$adr_cp,
|
||||
'adr_ville'=>$adr_ville,
|
||||
'adr_dep'=>$dep,
|
||||
// 'adr_com'=>
|
||||
// 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']);
|
||||
'tel'=>'',
|
||||
'fax'=>'',
|
||||
'cj'=>$cj,
|
||||
@ -715,6 +706,8 @@ if ($joBodacc) {
|
||||
'adr_cp'=>$adr_cp,
|
||||
'adr_ville'=>$adr_ville,
|
||||
'adr_dep'=>$dep,
|
||||
// 'adr_com'=>
|
||||
// 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']);
|
||||
'tel'=>'',
|
||||
'fax'=>'',
|
||||
'cj'=>$cj,
|
||||
@ -1013,6 +1006,8 @@ if ($joAsso) {
|
||||
'adr_cp'=>@$adr['cp'],
|
||||
'adr_ville'=>trim(strtoupper(@$adr['ville'])),
|
||||
'adr_dep'=>$dep,
|
||||
// 'adr_com'=>
|
||||
// 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']);
|
||||
'tel'=>'',
|
||||
'fax'=>'',
|
||||
'cj'=>$cj,
|
||||
@ -1023,16 +1018,43 @@ if ($joAsso) {
|
||||
'ape_entrep'=>$naf,
|
||||
'dateInsert'=>$dateInsert,
|
||||
);
|
||||
|
||||
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
|
||||
if (!$ret && mysql_errno()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Associations sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
|
||||
echo date ('Y/m/d - H:i:s'). mysql_error();
|
||||
} else
|
||||
$nbInsertAsso++;
|
||||
|
||||
/** On enregistre l'autre adresse de l'association **/
|
||||
if ($tabAsso['Assoc_NAdresse']<>'' && $tabAsso['Assoc_Adresse']<>'') {
|
||||
$adr=$iInsee->structureVoie($tabAsso['Assoc_Adresse']);
|
||||
$adrComp=strtoupper(@$adr['adrComp0']);
|
||||
if (@$adr['adrComp1']<>'') $adrComp.=' '.strtoupper(@$adr['adrComp1']);
|
||||
$adr['adrComp0']=$adrComp;
|
||||
$dep=floor(@$adr['cp']/1000);
|
||||
if ($dep>96) $dep=floor(@$adr['cp']/100);
|
||||
$tabEtab['source'] = 3;
|
||||
$tabEtab['adr_num'] = @$adr['num'];
|
||||
$tabEtab['adr_btq'] = @$adr['indRep'];
|
||||
$tabEtab['adr_typeVoie']= @$adr['typeVoie'];
|
||||
$tabEtab['adr_libVoie'] = strtoupper(@$adr['libVoie']);
|
||||
$tabEtab['adr_comp'] = @$adr['adrComp0'];
|
||||
$tabEtab['adr_cp'] = @$adr['cp'];
|
||||
$tabEtab['adr_ville'] = trim(strtoupper(@$adr['ville']));
|
||||
$tabEtab['adr_dep'] = $dep;
|
||||
|
||||
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
|
||||
if (!$ret && mysql_errno()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Associations sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
|
||||
echo date ('Y/m/d - H:i:s'). mysql_error();
|
||||
} else {
|
||||
$nbInsertAsso++;
|
||||
$nbInsertAssoAdr2++;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL;
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL;
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés (dont $nbInsertAssoAdr2 suite à déménagement).".EOL;
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés (dont $nbInsertAssoAdr2 suite à déménagement).".EOL;
|
||||
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le JO Association Sirené (Waldec, etc...)".EOL;
|
||||
@ -1046,7 +1068,7 @@ if ($joAsso) {
|
||||
while ($tabAsso=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$tabEtab=array( 'triCode'=>$tabAsso['Sous_Prefecture'], // Gérer la table des préfecture
|
||||
'autre_id'=>$tabAsso['Waldec'],
|
||||
'identite_pre'=>$tabAsso['Assoc_Nom'],
|
||||
// 'identite_pre'=>$tabAsso['Assoc_Nom'],
|
||||
);
|
||||
$ret=$iDb->update('etablissements_tmp',$tabEtab, 'siren='.$tabAsso['siren']);
|
||||
if (!$ret || mysql_errno()<>0) {
|
||||
@ -1101,6 +1123,8 @@ if ($iGreffe) {
|
||||
'adr_cp'=>$adr_cp,
|
||||
'adr_ville'=>strtoupper(@$tabBodacc['ville']),
|
||||
'adr_dep'=>$dep,
|
||||
// 'adr_com'=>
|
||||
// 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']);
|
||||
'tel'=>'',
|
||||
'fax'=>'',
|
||||
'cj'=>$tabBodacc['fj'],
|
||||
@ -1123,6 +1147,78 @@ if ($iGreffe) {
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertGreffes établissements Greffes consolidés.".EOL;
|
||||
}
|
||||
|
||||
if ($iLiens) {
|
||||
$iRncs=new MRncs();
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis les Liens Financiers.".EOL;
|
||||
|
||||
$dateInsert=date('YmdHis');
|
||||
$nbBodS=$iDb->select('liensRef l LEFT JOIN tabPays p ON l.adresse_pays=p.codPays3', 'l.id, l.siren, l.sirenValide, l.source, l.actif, l.PpPm, l.RS, l.sigle, l.civilite, l.nom, l.prenom, l.nom_usage, l.naissance_date, l.naissance_dept_pays, l.naissance_lieu, l.nat, l.adresse_num, l.adresse_btq, l.adresse_codvoie, l.adresse_libvoie, l.adresse_comp, l.adresse_cp, l.adresse_ville, l.adresse_pays, l.tel, l.fax, l.web, l.email, l.dateSaisie, l.cj, l.ape, l.categorie, l.capital, l.deviseCapital, l.dateCapital, l.nbActions, l.dateNbActions, l.idLoc1Type, l.idLoc1Num, l.idLoc2Type, l.idLoc2Num, l.idLoc3Type, l.idLoc3Num, l.bilMillesime, l.bilDev, l.bilFL, l.bilHN, l.bilFPr, l.bilEE, l.grpTop, l.grpNom, l.dateInsert, p.codePaysInsee, p.libPays', "l.siren<1000 AND l.dateSuppr=0", false,MYSQL_ASSOC,true);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS entreprises en provenance de la base Liens absentes de l'insee à consolider depuis $last_id...".EOL;
|
||||
|
||||
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
// l.id, l.siren, l.sirenValide, l.source, l., l.naissance_date, l.naissance_dept_pays,
|
||||
// l.naissance_lieu, l.nat, l., l., l., l., l., l., l., l.adresse_pays,
|
||||
// l.web, l.email, l.dateSaisie, l.categorie, l.dateCapital, l.nbActions, l.dateNbActions, l.idLoc1Type,
|
||||
// l.idLoc2Type, l.idLoc2Num, l.idLoc3Type, l.idLoc3Num, l.bilMillesime, l.bilDev, l.bilFL, l.bilHN, l.bilFPr, l.bilEE, l.grpTop, l.grpNom, l.dateInsert
|
||||
if ($tabBodacc['PpPm']=='PM') {
|
||||
$raisonSociale=$tabBodacc['RS'];
|
||||
} else {
|
||||
$raisonSociale=trim($tabBodacc['civilite'].' '.strtoupper($tabBodacc['nom']).' '.$tabBodacc['prenom']);
|
||||
if ($tabBodacc['cj']*1==0) $cj=1900;
|
||||
else $cj=$tabBodacc['cj'];
|
||||
}
|
||||
if ($tabBodacc['adresse_pays']<>'' && $tabBodacc['adresse_pays']<>'FRA') {
|
||||
$dep=99;
|
||||
$com=$tabBodacc['codePaysInsee'];
|
||||
} else {
|
||||
$dep=floor($tabBodacc['adresse_cp']/1000);
|
||||
if ($dep>96) $dep=floor($tabBodacc['adresse_cp']/100);
|
||||
$com='';
|
||||
}
|
||||
|
||||
$tabEtab=array( 'source'=>7,
|
||||
'source_id'=>$tabBodacc['id'],
|
||||
'siren'=>$tabBodacc['siren'],
|
||||
'nic'=>0,
|
||||
'triCode'=>'',
|
||||
'autre_id'=>$tabBodacc['idLoc1Num'],
|
||||
'siege'=>1,
|
||||
'actif'=>$tabBodacc['actif'],
|
||||
'raisonSociale'=>$raisonSociale,
|
||||
'enseigne'=>'',//
|
||||
'sigle'=>$tabBodacc['sigle'],
|
||||
'identite_pre'=>$tabBodacc['nom_usage'],
|
||||
'adr_num'=>$tabBodacc['adresse_num'],
|
||||
'adr_btq'=>$tabBodacc['adresse_btq'],
|
||||
'adr_typeVoie'=>$tabBodacc['adresse_codvoie'],
|
||||
'adr_libVoie'=>$tabBodacc['adresse_libvoie'],
|
||||
'adr_comp'=>$tabBodacc['adresse_comp'],
|
||||
'adr_cp'=>$tabBodacc['adresse_cp'],
|
||||
'adr_ville'=>strtoupper($tabBodacc['adresse_ville']),
|
||||
'adr_dep'=>$dep,
|
||||
'adr_com'=>$com,
|
||||
'tel'=>$tabBodacc['tel'],
|
||||
'fax'=>$tabBodacc['fax'],
|
||||
'cj'=>$tabBodacc['cj'],
|
||||
'capital'=>$tabBodacc['capital'],
|
||||
'capitalDev'=>$tabBodacc['deviseCapital'],
|
||||
'capitalSrc'=>6,
|
||||
'ape_etab'=>$tabBodacc['ape'],
|
||||
'ape_entrep'=>$tabBodacc['ape'],
|
||||
'dateInsert'=>$dateInsert,
|
||||
);
|
||||
|
||||
$ret=$iDb->insert('etablissements_tmp',$tabEtab);
|
||||
if (!$ret && mysql_errno()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Liens sur le siren ". $tabBodacc['siren'] .' : '. $raisonSociale .' ('. $tabBodacc['id'].') !'.EOL;
|
||||
echo date ('Y/m/d - H:i:s'). mysql_error();
|
||||
} else
|
||||
$nbInsertLiens++;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertLiens établissements Liens consolidés.".EOL;
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertLiens établissements Liens consolidés.".EOL;
|
||||
}
|
||||
|
||||
if ($iMarques) {
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour des marques.".EOL;
|
||||
@ -1134,17 +1230,17 @@ if ($iMarques) {
|
||||
$strMarques='';
|
||||
while ($tabMarques=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$siren =$tabMarques['Siren'];
|
||||
$strMarques.=' '.$tabMarques['Marques'];
|
||||
if ($sirenPre<>$siren && $sirenPre<>false) {
|
||||
/** Il faut mettre à jour l'ensemble des marques pour ce siren **/
|
||||
$tabUpdate=array( 'marques'=>trim($strMarques));
|
||||
$ret=$iDb->update($table,$tabUpdate, "siren=$siren");
|
||||
$ret=$iDb->update($table,$tabUpdate, "siren=$sirenPre");
|
||||
if (!$ret) {
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations MARQUES sur le siren $siren impossible ($strMarques) !".EOL;
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations MARQUES sur le siren $sirenPre impossible ($strMarques) !".EOL;
|
||||
echo date ('Y/m/d - H:i:s'). mysql_error();
|
||||
} else $nbInsertMarques++;
|
||||
$strMarques='';
|
||||
}
|
||||
$strMarques.=' '.$tabMarques['Marques'];
|
||||
$sirenPre=$siren;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertMarques établissements avec Marques consolidés.".EOL;
|
||||
@ -1197,6 +1293,8 @@ while ($tabRank=$iDbRanks->fetch(MYSQL_ASSOC)) {
|
||||
|
||||
if (!$pageRankOnly) {
|
||||
echo date ('Y/m/d - H:i:s')." - Mise en place des tables pour l'indexation.".EOL;
|
||||
// $iDb->query("ALTER TABLE jo.etablissements_tmp PACK_KEYS=1;");
|
||||
// echo date ('Y/m/d - H:i:s')." - Commpression des Index de la table OK.".EOL;
|
||||
$iDb->query("DROP TABLE jo.etablissements_old;");
|
||||
echo date ('Y/m/d - H:i:s')." - Suppression de la table etablissements_old : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
|
||||
//$iDb->query("RENAME TABLE jo.etablissements TO jo.etablissements_old;");
|
||||
@ -1204,6 +1302,11 @@ if (!$pageRankOnly) {
|
||||
//$iDb->query("RENAME TABLE jo.etablissements_tmp TO jo.etablissements;");
|
||||
//echo date ('Y/m/d - H:i:s')." - Passage en production de la table tmp : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
|
||||
}
|
||||
|
||||
if ( $consolidationId !== null ) {
|
||||
$ret = $iDbSdv1->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$consolidationId");
|
||||
}
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL;
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL;
|
||||
|
||||
@ -1212,6 +1315,6 @@ $strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Et
|
||||
if ($nb>0) die(0);
|
||||
else die(1);*/
|
||||
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Consolidation des établissements', $strMailInfo);
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'Consolidation des établissements', $strMailInfo);
|
||||
die();
|
||||
?>
|
138
batch/convertCsv2Txt.php
Normal file
138
batch/convertCsv2Txt.php
Normal file
@ -0,0 +1,138 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$modeDebug=false;
|
||||
$separator='/t';
|
||||
$finLigne=false;
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]... FICHIER
|
||||
Conversion d'un fichier CSV en fichier Plat format Fixe.
|
||||
|
||||
Options :
|
||||
-v Mode bavard
|
||||
-s=CHAR séparateur de champs (virgule, point-virgule*, /t=TAB, /p=|, etc...)
|
||||
-c=CHAR caractère encadrant les zones alphanumériques (inopérationnel)
|
||||
-l=XXXX Taille maximale d'une ligne
|
||||
-f=/n Fin de ligne Linux par défaut (Windows /r/n)
|
||||
|
||||
(*): Valeurs par défaut !
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 's': $separator=substr($argv[$i],3); break;
|
||||
case 'c': $chaine=substr($argv[$i],3); break;
|
||||
case 'l': $lenMaxLine=substr($argv[$i],3); break;
|
||||
case 'f': $finLigne=substr($argv[$i],3); break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !".EOL);
|
||||
}
|
||||
} else
|
||||
$fichier_csv[]=$argv[$i];
|
||||
}
|
||||
|
||||
if ($separator=='/t') {
|
||||
$separator="\t";
|
||||
echo "séparateur = TAB\n";
|
||||
} elseif ($separator=='/p') {
|
||||
$separator='|';
|
||||
echo "séparateur = PIPE\n";
|
||||
} elseif (!isset($separator) || $separator=='') {
|
||||
$separator=';';
|
||||
echo "séparateur = '$separator'\n";
|
||||
} else
|
||||
echo "séparateur = '$separator'\n";
|
||||
|
||||
if ($finLigne=='/r')
|
||||
$finLigne="\r";
|
||||
elseif ($finLigne=='/n')
|
||||
$finLigne="\n";
|
||||
elseif ($finLigne=='/r/n')
|
||||
$finLigne="\r\n";
|
||||
else
|
||||
$finLigne=EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Début de la conversion...".EOL;
|
||||
|
||||
foreach ($fichier_csv as $iFichier=>$nomFichier) {
|
||||
|
||||
$fp=fopen($nomFichier, 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Impossible d'ouvrir le fichier : $nomFichier !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
$nbLignes=$iLigne=0;
|
||||
$tabEntete=$tabTailles=$tabLignes=$tabEntiers=array();
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier $nomFichier...".EOL;
|
||||
|
||||
while (($data = fgetcsv($fp, 10000, $separator)) !== FALSE)
|
||||
{
|
||||
$nbLignes++;
|
||||
|
||||
if ($nbLignes==1)
|
||||
{ // L'entête contient la structure du fichier
|
||||
// On compte le nombre de colonnes du fichier
|
||||
$nbColonnes=count($data);
|
||||
echo date ('Y/m/d - H:i:s')." - Le fichier '$nomFichier' contient $nbColonnes colonnes.".EOL;
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
$tabEntete[$i]=$data[$i];
|
||||
$tabEntiers[$i]=1;
|
||||
}
|
||||
} else {
|
||||
// Lecture des tailles maximales des colonnes
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
if (strlen($data[$i])>@$tabTailles[$i]) {
|
||||
$tabTailles[$i]=strlen($data[$i]);
|
||||
$tabLignes[$i]=$nbLignes;
|
||||
}
|
||||
if ($data[$i]<>'' && strtolower($data[$i])<>strtoupper($data[$i])) $tabEntiers[$i]=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Le fichier '$nomFichier' contient $nbLignes lignes.".EOL;
|
||||
|
||||
foreach ($tabEntete as $i=>$entete) {
|
||||
if ($tabEntiers[$i]==0) $strInt='alphanum. ';
|
||||
else $strInt='num. ';
|
||||
echo "$i - $entete : ". $tabTailles[$i]. " caractères $strInt(ligne ".$tabLignes[$i].')'.EOL;
|
||||
}
|
||||
|
||||
rewind($fp);
|
||||
$fpOut=fopen(str_replace('.csv','.txt',$nomFichier), 'w');
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début de conversion du fichier en texte...".EOL;
|
||||
|
||||
while (($data = fgetcsv($fp, 10000, $separator)) !== FALSE)
|
||||
{
|
||||
$iLigne++;
|
||||
$str='';
|
||||
|
||||
if ($iLigne>1) {
|
||||
// Lecture des tailles maximales des colonnes
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
if ($tabEntiers[$i]==0)
|
||||
$str.=initstr($data[$i], $tabTailles[$i]);
|
||||
else
|
||||
$str.=initstr($data[$i], $tabTailles[$i], '0', ALIGN_RIGHT);
|
||||
}
|
||||
//fwrite($fpOut, $str.EOL);
|
||||
fwrite($fpOut, $str.$finLigne);
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Conversion réussie du fichier '$nomFichier' en fichier plat ($iLigne lignes).".EOL;
|
||||
fclose ($fp);
|
||||
fclose ($fpOut);
|
||||
}
|
||||
?>
|
602
batch/convertSdCsv2.php
Normal file
602
batch/convertSdCsv2.php
Normal file
@ -0,0 +1,602 @@
|
||||
#!/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
|
||||
-i Conversion de la fiche d'identité A6CMO (200)
|
||||
";
|
||||
|
||||
$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
|
||||
$actifEco= substr($ligne, 56 , 1 ); // ACTIFECO Établissement économiquement actif
|
||||
$sitJur = trim(substr($ligne, 57 , 2 )); // SITJUR Situation Juridique de l'entreprise
|
||||
$codeEve = 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
|
||||
$capitalTyp= 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
|
||||
$aprm = substr($ligne, 1119 , 6 ); // APRM Activité principale au registre des métiers
|
||||
$monoreg= substr($ligne, 1125 , 1 ); // MONOREG Mono-régionalité de l'entreprise
|
||||
$regimp = substr($ligne, 1126 , 2 ); // REGIMP Principale région d'implantation de l'entreprise
|
||||
$monoact = substr($ligne, 1128 , 1 ); // MONOACT Mono-activité de l'entreprise
|
||||
$nicsiege = substr($ligne, 1129 , 5 ); // NICSIEGE Nic de l'établissement siège
|
||||
$recme = substr($ligne, 1134 , 1 ); // RECME Répertoire des Entreprises Contrôlées Majoritairement par l’État
|
||||
$siretLie = substr($ligne, 1135 , 14 ); // SIRETLIE Siret lié : prédécesseur, successeur, doublon, autre
|
||||
$siretLieType = substr($ligne, 1149 , 1 ); // SIRETLIETYPE Type de sitet lié
|
||||
$nicPrec = substr($ligne, 1150 , 5 ); // NICPREC Nic de l'établissement prédécesseur (dans le cadre d'un transfert)
|
||||
$nicSuiv = 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
|
||||
*/
|
||||
$adr_rnvp = substr($ligne, 1178 , 1 ); // ADR_RNVP Type de Prestation RNVP si RNVP
|
||||
$adrL1 = substr($ligne, 1179 , 38 ); // L1_nomen Ligne 1 : Nom de l'entreprise
|
||||
$adrL2 = substr($ligne, 1217 , 38 ); // L2_COMP Ligne 2 : Complément de nom
|
||||
$adrL3 = substr($ligne, 1255 , 38 ); // L3_CADR Ligne 3 : Complément d'adresse
|
||||
$adrL4 = substr($ligne, 1293 , 38 ); // L4_VOIE Ligne 4 : Adresse
|
||||
$adrL5 = substr($ligne, 1331 , 38 ); // L5_DISP Ligne 5 : Distribution spéciale
|
||||
$adrL6 = substr($ligne, 1369 , 38 ); // L6_POST Ligne 6 : Code Postal, commune, etc..
|
||||
$adrL7 = 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
|
||||
*/
|
||||
$gpsX = substr($ligne, 1474 , 12 ); // GPSX Latitude en ° et décimales de ° (format WGS1984)
|
||||
$gpsY = substr($ligne, 1486 , 12 ); // GPSY Longitude en ° et décimales de ° (format WGS1984)
|
||||
$gpSP = 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
|
||||
$dir1naissn = substr($ligne, 1658 , 40 ); // PPDIR1NNAISS Nom de naissance du ppl dirigeant
|
||||
$dir1naissd = substr($ligne, 1698 , 8 ); // PPDIR1DNAISS Date de naissance
|
||||
$dir1naissl = 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
|
||||
$dir2naissn = substr($ligne, 1823 , 40 ); // PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant
|
||||
$dir2naissd = substr($ligne, 1863 , 8 ); // PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant
|
||||
$dir2naissl = 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();
|
||||
|
||||
?>
|
606
batch/convertSdFBoissons.php
Normal file
606
batch/convertSdFBoissons.php
Normal file
@ -0,0 +1,606 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
$tabMailDepot=array(
|
||||
// Région NORD EST
|
||||
'ST0B'=>'fb.ne.contentieux@heineken.fr,stephane.bisiaux@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST0C'=>'fb.ne.contentieux@heineken.fr,eric.gerbaud@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST0D'=>'fb.ne.contentieux@heineken.fr,severine.poulain@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST0E'=>'fb.ne.contentieux@heineken.fr,eric.debuyzer@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST0F'=>'fb.ne.contentieux@heineken.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST05'=>'fb.ne.contentieux@heineken.fr,dominique.husson@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST06'=>'fb.ne.contentieux@heineken.fr,nathalie.heyer@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST07'=>'fb.ne.contentieux@heineken.fr,annick.guyot@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST08'=>'fb.ne.contentieux@heineken.fr,annick.guyot@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST00'=>'fb.ne.contentieux@heineken.fr,valerie.baechler@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST0A'=>'fb.ne.contentieux@heineken.fr,valerie.baechler@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
'ST09'=>'fb.ne.contentieux@heineken.fr,laurence.hassler@france-boissons.fr,sylvain.michoux@france-boissons.fr',
|
||||
// Région BRETAGNE NORMANDIE
|
||||
'SJ04'=>'fb.bn.contentieux@heineken.fr,marie-francoise.beneat@france-boissons.fr', //thierry.hacques@france-boissons.fr,linda.bourges fb.bn.contentieux@heineken.fr,thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr
|
||||
'SJ0A'=>'fb.bn.contentieux@heineken.fr,celine.dorion@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges
|
||||
'SJ0C'=>'fb.bn.contentieux@heineken.fr,celine.dorion@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr',
|
||||
'SJ0D'=>'fb.bn.contentieux@heineken.fr,celine.dorion@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr',
|
||||
'SJ06'=>'fb.bn.contentieux@heineken.fr,angelique.thomas@france-boissons.fr', // thierry.hacques,linda.bourges@france-boissons.fr',
|
||||
'SJ07'=>'fb.bn.contentieux@heineken.fr,thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr',
|
||||
'SJ05'=>'fb.bn.contentieux@heineken.fr,genevieve.gales@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr',
|
||||
'SJ00'=>'fb.bn.contentieux@heineken.fr,nadine.dutheil@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr
|
||||
'SJ08'=>'fb.bn.contentieux@heineken.fr,nadine.dutheil@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr',
|
||||
'SJ09'=>'fb.bn.contentieux@heineken.fr,denise.gillard@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@
|
||||
// Région ILE DE FRANCE
|
||||
'NO00'=>'francoise.andre@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'NO02'=>'francoise.andre@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'NO04'=>'amandine.vergnaud@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'NO06'=>'annie.bontemps@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'NO0E'=>'murielle.pinte@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'NO0F'=>'laurence.braquehais@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'NO0G'=>'catherine.simon@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'PB00'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'PB01'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'PB02'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'PB03'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr',
|
||||
'PB0A'=>'fb.idf.contentieux@heineken.fr',
|
||||
'PB0C'=>'fb.idf.contentieux@heineken.fr',
|
||||
'PB0D'=>'fb.idf.contentieux@heineken.fr',
|
||||
'PB0E'=>'fb.idf.contentieux@heineken.fr',
|
||||
'PB0F'=>'fb.idf.contentieux@heineken.fr',
|
||||
'PB0G'=>'fb.idf.contentieux@heineken.fr',
|
||||
|
||||
// LOIRE SUD OUEST
|
||||
'BO00'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO01'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO02'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO03'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO04'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO05'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO06'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO07'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO08'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO09'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0B'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0C'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0D'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0E'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0F'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0G'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0H'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0I'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0J'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
'BO0K'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr',
|
||||
// Région CENTRE RHONE ALPES
|
||||
'LY05'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,sylvie.lambert@france-boissons.fr',
|
||||
'LY06'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,sylvie.lambert@france-boissons.fr',
|
||||
'LY07'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,sylvie.lambert@france-boissons.fr',
|
||||
'LY08'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr',
|
||||
'LY0A'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr',
|
||||
'LY0B'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr',
|
||||
'LY0C'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr',
|
||||
'LY0E'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0H'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0I'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0J'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0L'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0M'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0P'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0Q'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0R'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY0V'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr',
|
||||
'LY00'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr,virginie.charbonnier@france-boissons.fr',
|
||||
// Ajouté le 05/11/2013 pour CRA
|
||||
'LE00'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr',
|
||||
'LE05'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr',
|
||||
'LE06'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr',
|
||||
'LE07'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr',
|
||||
'LE08'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr',
|
||||
'LE09'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr',
|
||||
// Région SUD EST
|
||||
'LY0F'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA00'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA01'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA02'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA03'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA04'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0B'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0C'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0D'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0F'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0H'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0I'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0J'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0L'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0M'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MA0T'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
'MO00'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr',
|
||||
);
|
||||
|
||||
//define('VERSION_FICHIER_BODACC','0106');
|
||||
define('DIR_RECORDATI_IN','/mnt/samba/partage/production/');
|
||||
|
||||
/**
|
||||
* @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(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$iBodacc=new MBodacc();
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Conversion d'un flux surveillance/diffusion Bodacc S&D en fichier spécifique Bouchara-Recordati.
|
||||
|
||||
";/*Options :
|
||||
-d Clients en Diffusion Bodacc (par défaut)
|
||||
-s Clients en Surveillance Bodacc
|
||||
-e Ne pas tenir compte de la date de dernière exécution du script
|
||||
-i Ne pas incrémenter les numéros de tour (pour les tests).
|
||||
";*/
|
||||
|
||||
$tabFichLigneCmd=$tabFichier=array();
|
||||
$sortieCSV=true;
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} else $tabFichLigneCmd[]=$argv[$i];
|
||||
}
|
||||
if (count($tabFichLigneCmd)==0) {
|
||||
$dh = opendir(DIR_RECORDATI_IN);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.txt' &&
|
||||
substr($filename, 0,40)=='surveillanceBodacc_SURBODPRDFTPFBOISSON_')
|
||||
$tabFichier[] = $filename;
|
||||
}
|
||||
sort($tabFichier);
|
||||
} else $tabFichier=$tabFichLigneCmd;
|
||||
|
||||
if (count($tabFichier)==0 && count($tabFichLigneCmd)==0) die(date ('Y/m/d - H:i:s') . " - Aucun fichier France Boisson à traiter !".EOL);
|
||||
//print_r($tabFichier);
|
||||
//die();
|
||||
$ligne001tot=$ligne100tot=$ligne104tot=$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);
|
||||
|
||||
for ($iFic=0; isset($tabFichier[$iFic]); $iFic++)
|
||||
{
|
||||
$nomFichier =$tabFichier[$iFic];
|
||||
|
||||
$ligne001=$ligne100=$ligne104=$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(DIR_RECORDATI_IN.$nomFichier);
|
||||
$message=$tabNbAnn=array();
|
||||
$lignesCsv=array();
|
||||
|
||||
foreach ($tabLignes as $i=>$ligne) {
|
||||
$ecrireLignePre=false;
|
||||
$typeLigne=substr($ligne, 0, 3)*1;
|
||||
switch ($typeLigne) {
|
||||
case 1: // Ligne ignorée
|
||||
// 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';
|
||||
|
||||
$ligneOut='';
|
||||
$ligne001++;
|
||||
$ligne001tot++;
|
||||
break;
|
||||
case 100: // Structure Bodacc
|
||||
$lignesCsv[$ref1][]="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn";
|
||||
|
||||
// Mail de surveillance
|
||||
$sirenAff=implode(' ', str_split($siren,3));
|
||||
$message[$ref1].="Siren : $sirenAff\r\n".'Raison Sociale : '.$raisonS."\r\n";
|
||||
if (trim($ref)<>'')
|
||||
$message[$ref1].="Votre référence : $ref\r\n";
|
||||
$message[$ref1].="Source : BODACC n°$numPar $bodacc du $datePar. ";
|
||||
if (trim($dateInsert)<>'')
|
||||
$message[$ref1].='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n";
|
||||
$message[$ref1].="Tribunal : $libTri"."\r\n";
|
||||
$message[$ref1].="\r\n";
|
||||
$message[$ref1].="$txtEven"."\r\n";
|
||||
$message[$ref1].="\r\n";
|
||||
$message[$ref1].=$txtAnn."\r\n";
|
||||
$message[$ref1].="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
|
||||
|
||||
$ligne100++;
|
||||
$ligne100tot++;
|
||||
|
||||
$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
|
||||
$ref=explode('-',$ref);
|
||||
$ref1=$ref[1];
|
||||
$ref=$ref[0];
|
||||
|
||||
if (!isset($message[$ref1]) || @$message[$ref1]=='') {
|
||||
//$fp[$ref1]=fopen(DIR_RECORDATI_IN.$nomFichier."-$ref1.csv", 'w');
|
||||
//fwrite($fp[$ref1], 'Siren;Nic;Référence;Parution;Bodacc;Date parution;Numéro Annonce;Type Annonce;Tribunal;Numéro RCS;Raison sociale;Chapitre;Evènement(s);Texte Annonce'.EOL);
|
||||
$message[$ref1]='Bonjour,
|
||||
|
||||
Veuillez trouver ci-joint la liste des modifications relatives à votre abonnement Scores & Décisions.
|
||||
|
||||
';
|
||||
}
|
||||
@$tabNbAnn[$ref1]++;
|
||||
|
||||
// die(EOL."$ref1\t$ref2".EOL);
|
||||
|
||||
$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
|
||||
$adresse= trim(preg_replace('/ +/',' ',substr($ligne, 596 , 4 ).' '.
|
||||
substr($ligne, 600 , 1 ).' '.
|
||||
substr($ligne, 601 , 5 ).' '.
|
||||
substr($ligne, 606 , 50 ).' '.
|
||||
substr($ligne, 656 , 50 ).' '.
|
||||
substr($ligne, 706 , 40 ).', '.
|
||||
substr($ligne, 746 , 5 ).' '.
|
||||
substr($ligne, 751 , 45 )));
|
||||
$venteDt= WDate::dateT('Ymd','d/m/Y',substr($ligne,1161,8));
|
||||
$venteMt= substr($ligne, 1169 , 15 );
|
||||
$venteDev=substr($ligne, 1184 , 3 );
|
||||
$dateInsert=substr($ligne, 1910 , 8 );
|
||||
|
||||
$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='';
|
||||
break;
|
||||
case 104: // Annonce
|
||||
$ligne104++;
|
||||
$ligne104tot++;
|
||||
$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce
|
||||
break;
|
||||
case 999: // Ligne ignorée
|
||||
$lignesCsv[$ref1][]="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn";
|
||||
|
||||
// Mail de surveillance
|
||||
$sirenAff=implode(' ', str_split($siren,3));
|
||||
$message[$ref1].="Siren : $sirenAff\r\n".'Raison Sociale : '.$raisonS."\r\n";
|
||||
if (trim($ref)<>'')
|
||||
$message[$ref1].="Votre référence : $ref\r\n";
|
||||
$message[$ref1].="Source : BODACC n°$numPar $bodacc du $datePar. ";
|
||||
if (trim($dateInsert)<>'')
|
||||
$message[$ref1].='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n";
|
||||
$message[$ref1].="Tribunal : $libTri"."\r\n";
|
||||
$message[$ref1].="\r\n";
|
||||
$message[$ref1].="$txtEven"."\r\n";
|
||||
$message[$ref1].="\r\n";
|
||||
$message[$ref1].=$txtAnn."\r\n";
|
||||
$message[$ref1].="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
|
||||
|
||||
$ligne999++;
|
||||
$ligne999tot++;
|
||||
break;
|
||||
default: // Ligne non gérée
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
print_r($message);
|
||||
foreach ($message as $ref=>$msg) {
|
||||
if ($ref<>'') {
|
||||
// Ecriture des CSV
|
||||
$fp=fopen(DIR_RECORDATI_IN.$nomFichier."-$ref.csv", 'w');
|
||||
fwrite($fp, 'Siren;Nic;Référence;Parution;Bodacc;Date parution;Numéro Annonce;Type Annonce;Tribunal;Numéro RCS;Raison sociale;Chapitre;Evènement(s);Texte Annonce'.EOL);
|
||||
foreach ($lignesCsv[$ref] as $iLigne=>$ligneCsv) {
|
||||
fwrite($fp, $ligneCsv.EOL);
|
||||
}
|
||||
fclose($fp);
|
||||
copy(DIR_RECORDATI_IN.$nomFichier."-$ref.csv", '/tmp/Sed_FBoissons_'.date('Ymd')."_$ref.csv");
|
||||
@move(DIR_RECORDATI_IN.$nomFichier."-$ref.csv", '/home/data/clients/france boissons/'.$nomFichier."-$ref.csv");
|
||||
|
||||
$tabAttached=array('/tmp/Sed_FBoissons_'.date('Ymd')."_$ref.csv");
|
||||
// Envoi des mails
|
||||
if (isset($tabMailDepot[$ref]) && $tabMailDepot[$ref]<>'') {
|
||||
@sendMail('infoslegales@scores-decisions.com', $tabMailDepot[$ref].',support@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons $ref)", $msg, '', $tabAttached);
|
||||
$azerty=0;
|
||||
}
|
||||
elseif (!isset($tabMailDepot[$ref]) || $tabMailDepot[$ref]=='') {
|
||||
$msg="ATTENTION, CE DEPOT N'A PAS DE MAIL RENSEIGNE !".EOL.EOL.$msg;
|
||||
@sendMail('infoslegales@scores-decisions.com', 'flora.durandeau@france-boissons.fr,emmanuel.przystaniak@france-boissons.fr,support@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons $ref)", "ATTENTION, CE DEPOT N'A PAS DE MAIL RENSEIGNE !".EOL.EOL.$msg, '', $tabAttached);
|
||||
$azerty=0;
|
||||
}
|
||||
$nbAnnTmp=$tabNbAnn[$ref];
|
||||
@$nbAnnTot+=$nbAnnTmp;
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons $ref)", $msg.EOL.EOL.date('Y/m/d H:i:s').
|
||||
" - Les $nbAnnTmp annonce(s) ont été envoyés à ".$tabMailDepot[$ref]." (Dépôt n°$ref).", '', $tabAttached);
|
||||
@$nbDepots++;
|
||||
|
||||
@unlink('/tmp/Sed_FBoissons_'.date('Ymd')."_$ref.csv");
|
||||
}
|
||||
}
|
||||
|
||||
if ($verbose) echo date ('Y/m/d - H:i:s')." - Conversion terminée de $nomFichier ($ligne100 annonces sur $nbDepots dépôts)" . EOL;
|
||||
elseif ($sortieCSV) {
|
||||
echo "$nomFichier;$ligne100;";
|
||||
foreach ($ligne100chap as $chap=>$nb) echo "$nb;";
|
||||
foreach ($procol as $chap=>$nb) echo "$nb;";
|
||||
echo EOL;
|
||||
}
|
||||
|
||||
@sendMail('infoslegales@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons)", $msgGlobal.EOL.EOL.date('Y/m/d H:i:s').
|
||||
" - Les $nbAnnTot/$ligne100tot annonce(s) ont été envoyés aux $nbDepots dépôts.");
|
||||
|
||||
if (bzip2(DIR_RECORDATI_IN.$nomFichier, DIR_RECORDATI_IN.$nomFichier)) {
|
||||
unlink(DIR_RECORDATI_IN.$nomFichier);
|
||||
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".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, $ligne100tot annonces, $ligne104tot lignes de texte, $ligne999tot fin de fichier !" . EOL;
|
||||
|
||||
die();
|
||||
|
||||
/*
|
||||
|
||||
|
||||
|
||||
$ligneOut="$idannPre;$sirenV;$raisonSV;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$sirenA;$raisonSA;$catEven;$txtEven;$adresseFond;$montantVente;$deviseVente;$dateVente;$opposition;$txtAnn";
|
||||
|
||||
if ($idannPre<>'Identifiant Annonce') {
|
||||
$sirenAffV=implode(' ', str_split($sirenV,3));
|
||||
if ($sirenA*1>0) $sirenAffA='(Siren : '.implode(' ', str_split($sirenA,3)).')';
|
||||
else $sirenAffA='';
|
||||
$message.="Siren : $sirenAffV\r\n".'Raison Sociale : '.$raisonSV."\r\n";
|
||||
$message.="Source : BODACC n°$numPar $bodacc du $datePar. ";
|
||||
if (trim($dateInsert)<>'')
|
||||
$message.='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n";
|
||||
$message.="Tribunal : $libTri"."\r\n";
|
||||
$message.="\r\n";
|
||||
if (trim($raisonSA)<>'') {
|
||||
$message.="Acheteur : $raisonSA $sirenAffA"."\r\n";
|
||||
if ($montantVente*1>0)
|
||||
$message.="Montant de la vente : $montantVente $deviseVente en date du $dateVente."."\r\n";
|
||||
$message.="\r\n";
|
||||
}
|
||||
$message.="$txtEven"."\r\n";
|
||||
$message.="\r\n";
|
||||
$message.=$txtAnn."\r\n";
|
||||
$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
|
||||
}
|
||||
$sirenA=$raisonSA=$sirenV=$raisonSV=$adresseFond=$montantVente=$deviseVente=$dateVente='';
|
||||
}
|
||||
$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
|
||||
$adresse= trim(preg_replace('/ +/',' ',substr($ligne, 596 , 4 ).' '.
|
||||
substr($ligne, 600 , 1 ).' '.
|
||||
substr($ligne, 601 , 5 ).' '.
|
||||
substr($ligne, 606 , 50 ).' '.
|
||||
substr($ligne, 656 , 50 ).' '.
|
||||
substr($ligne, 706 , 40 ).', '.
|
||||
substr($ligne, 746 , 5 ).' '.
|
||||
substr($ligne, 751 , 45 )));
|
||||
$venteDt= WDate::dateT('Ymd','d/m/Y',substr($ligne,1161,8));
|
||||
$venteMt= substr($ligne, 1169 , 15 );
|
||||
$venteDev=substr($ligne, 1184 , 3 );
|
||||
$dateInsert=substr($ligne, 1910 , 8 );
|
||||
|
||||
$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;
|
||||
}
|
||||
|
||||
$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='';
|
||||
$inter='Vendeur'; // Par défaut, nous sommes avec un vendeur
|
||||
foreach ($even as $codeEven)
|
||||
if ($codeEven<>0) {
|
||||
$txtEven.=$iBodacc->getEvenement($codeEven).', ';
|
||||
$catEven=$iBodacc->getChapitreEvenement($codeEven);
|
||||
if ($codeEven==5700) {
|
||||
$inter='Acheteur'; // L'interlocuteur est l'acheteur !
|
||||
$sirenA=$siren;
|
||||
$raisonSA=$raisonS;
|
||||
$adresseFond=$adresse;
|
||||
$montantVente=$venteMt;
|
||||
$deviseVente=$venteDev;
|
||||
$dateVente=$venteDt;
|
||||
}
|
||||
}
|
||||
else
|
||||
$txtEven.='';
|
||||
if ($inter=='Vendeur') {
|
||||
$sirenV=$siren;
|
||||
$raisonSV=$raisonS;
|
||||
}
|
||||
|
||||
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
|
||||
$txtAnn='';
|
||||
if ($idannPre<>$idann) $ecrireLignePre=true;
|
||||
else $ecrireLignePre=false;
|
||||
$idannPre=$idann;
|
||||
break;
|
||||
case 104: // Annonce
|
||||
$ligne104++;
|
||||
$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce
|
||||
break;
|
||||
case 999: // Ligne ignorée
|
||||
//$ligneOut="$idann;$sirenV;$raisonSV;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$sirenA;$raisonSA;$catEven;$txtEven;$adresseFond;$montantVente;$deviseVente;$dateVente;$txtAnn";
|
||||
$opposition=preg_replace('/.*Oppositions \:/i','', $txtAnn);
|
||||
$ligneOut="$idann;$sirenV;$raisonSV;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$sirenA;$raisonSA;$catEven;$txtEven;$adresseFond;$montantVente;$deviseVente;$dateVente;$opposition;$txtAnn";
|
||||
// $ligneOut="$idann;$siren;$nic;$inter;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn";
|
||||
if ($idann<>'Identifiant Annonce') {
|
||||
$sirenAffV=implode(' ', str_split($sirenV,3));
|
||||
if ($sirenA*1>0) $sirenAffA='(Siren : '.implode(' ', str_split($sirenA,3)).')';
|
||||
else $sirenAffA='';
|
||||
$message.="Siren : $sirenAffV\r\n".'Raison Sociale : '.$raisonSV."\r\n";
|
||||
$message.="Source : BODACC n°$numPar $bodacc du $datePar. ";
|
||||
if (trim($dateInsert)<>'')
|
||||
$message.='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n";
|
||||
$message.="Tribunal : $libTri"."\r\n";
|
||||
$message.="\r\n";
|
||||
if (trim($raisonSA)<>'') {
|
||||
$message.="Acheteur : $raisonSA $sirenAffA"."\r\n";
|
||||
if ($montantVente*1>0)
|
||||
$message.="Montant de la vente : $montantVente $deviseVente en date du $dateVente."."\r\n";
|
||||
$message.="\r\n";
|
||||
}
|
||||
$message.="$txtEven"."\r\n";
|
||||
$message.="\r\n";
|
||||
$message.=$txtAnn."\r\n";
|
||||
$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
|
||||
}
|
||||
$ligne999++;
|
||||
$ecrireLignePre=true;
|
||||
break;
|
||||
default: // Ligne non gérée
|
||||
break;
|
||||
}
|
||||
if ($ecrireLignePre)
|
||||
fwrite($fp, $ligneOut.EOL);
|
||||
|
||||
}
|
||||
|
||||
if ($catEven<>'Chapitre') {
|
||||
//sendMail('infoslegales@scores-decisions.com', 'c.ferault@bouchara-recordati.fr,f.hadjadj@bouchara-recordati.fr,a.mandar@bouchara-recordati.fr', "Surveillance Annonces Legales ($catEven)", $message);
|
||||
sendMail('infoslegales@scores-decisions.com', '<Yoann Le Naour>ylenaour@scores-decisions.com,<Fabienne Zicarro>fzicaro@scores-decisions.com', "Surveillance Annonces Legales ($catEven)", $message);
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
|
||||
if (bzip2(DIR_RECORDATI_IN.$nomFichier, DIR_RECORDATI_IN.$nomFichier)) {
|
||||
unlink(DIR_RECORDATI_IN.$nomFichier);
|
||||
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
|
||||
}
|
||||
}*/
|
||||
echo date ('Y/m/d - H:i:s')." - Conversion terminée !" . EOL;
|
||||
die();
|
||||
|
||||
?>
|
@ -306,8 +306,8 @@ foreach ($tabLignes as $i=>$ligne) {
|
||||
}
|
||||
|
||||
if ($catEven<>'Chapitre') {
|
||||
sendMail('infoslegales@scores-decisions.com', 'c.ferault@bouchara-recordati.fr,f.hadjadj@bouchara-recordati.fr,a.mandar@bouchara-recordati.fr', "Surveillance Annonces Legales ($catEven)", $message);
|
||||
sendMail('infoslegales@scores-decisions.com', '<Yoann Le Naour>ylenaour@scores-decisions.com,<Fabienne Zicarro>fzicaro@scores-decisions.com', "Surveillance Annonces Legales ($catEven)", $message);
|
||||
sendMail('infoslegales@scores-decisions.com', 'c.ferault@bouchara-recordati.fr,s.ambroise@bouchara-recordati.fr,c.jourdain@bouchara-recordati.fr,suivi@scores-decisions.com', "Surveillance Annonces Legales ($catEven)", $message);
|
||||
// sendMail('infoslegales@scores-decisions.com', '', "Surveillance Annonces Legales ($catEven)", $message);
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
|
@ -763,7 +763,39 @@ for ($iFic=0; isset($tabFichier[$iFic]); $iFic++)
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
exec('/var/www/batch/convertSdCsv.php "'.DIR_SOFID_IN.$nomFichierIn.'"');
|
||||
$fichierCSV=substr(DIR_SOFID_IN.$nomFichierIn,0,-4).'.csv';
|
||||
move(DIR_SOFID_IN.$nomFichierIn.'.csv',$fichierCSV);
|
||||
$tabAttached=array($fichierCSV);
|
||||
$messageInfo="Bonjour,
|
||||
|
||||
Veuillez trouver le fichier d'annonces relatif à votre abonnement Scores & Décisions.
|
||||
|
||||
Bien Cordialement,
|
||||
Le service Support.
|
||||
|
||||
|
||||
ATTENTION : Cet email est un message automatique. Merci de ne pas y répondre. Pour toute question nous vous invitons à contacter notre support à l'adresse support@scores-decisions.com.
|
||||
|
||||
---
|
||||
|
||||
SCORES & DECISIONS
|
||||
Service support
|
||||
1, rue de Clairefontaine - 78120 RAMBOUILLET
|
||||
tél : 33 (0)1 75 43 80 10
|
||||
fax : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
http://www.scores-decisions.com/
|
||||
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises
|
||||
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
|
||||
|
||||
sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com,suivi@scores-decisions.com,eliane.juhel@kronenbourg.com,anne.obrecht@kronenbourg.com,nathalie.schilling@kronenbourg.com', "Surveillance Annonces Legales SOFID", $messageInfo, '', $tabAttached);
|
||||
|
||||
//die('FIN PROVISOIRE !'.EOL);
|
||||
|
||||
if (bzip2(DIR_SOFID_IN.$nomFichierIn, DIR_SOFID_IN.$nomFichierIn)) {
|
||||
unlink(DIR_SOFID_IN.$nomFichierIn);
|
||||
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic, $nomFichierIn vient d'être historisé.".EOL;
|
||||
@ -778,7 +810,7 @@ for ($iFic=0; isset($tabFichier[$iFic]); $iFic++)
|
||||
}
|
||||
}
|
||||
|
||||
sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID", "Conversion terminée. Penser à déposer le fichier !!!");
|
||||
sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID", "Conversion terminée.");
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Conversion terminée !" . EOL;
|
||||
die();
|
||||
|
@ -454,8 +454,7 @@ if (date('w')==5) {
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
|
||||
//$emailEnvoi='vfahmy@verdoso.com,contact@scores-decisions.com';
|
||||
$emailEnvoi='ylenaour@scores-decisions.com';
|
||||
$emailEnvoi='vfahmy@verdoso.com,suivi@scores-decisions.com,ylenaour@scores-decisions.com';
|
||||
if ($catEven<>'Chapitre') {
|
||||
sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Annonces Legales", $messageInfo, '', $tabAttached);
|
||||
//sendMail('infoslegales@scores-decisions.com', 'jean.frederic.lambert@gmail.com', "Surveillance Annonces Legales", $messageInfo, '', $tabAttached);
|
||||
|
166
batch/creationsComptes.php
Normal file
166
batch/creationsComptes.php
Normal file
@ -0,0 +1,166 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
|
||||
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$iGreffe=new MGreffes();
|
||||
$iInsee=new MInsee();
|
||||
$iTel=new MTel();
|
||||
|
||||
$iDb=new WDB('sdv1');
|
||||
$sendMail=true;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option> loginUserDroits FICHIER.csv
|
||||
Création automatisée de comptes utilisateurs Extranet
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-m Ne pas envoyer le mail à l'utilisateur
|
||||
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
$tabFichiers=array();
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'm': $sendMail=false; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
} else $tabFichiers[]=$argv[$i];
|
||||
}
|
||||
|
||||
$loginUserDroits=@$tabFichiers[0];
|
||||
if (!isset($tabFichiers[0]))
|
||||
die("Compte Extranet/WS non communiqué !".EOL);
|
||||
|
||||
$ret=$iDb->select('utilisateurs', 'login,formatMail,pref,droits,lienExtranetMail,nbReponses', "login='$loginUserDroits'", false);
|
||||
$profil=@$ret[0];
|
||||
if (!isset($profil['login'])) die("Compte Extranet/WS inexistant : $loginUserDroits !".EOL);
|
||||
if (!isset($tabFichiers[1])) die("Aucun fichier CSV communiqué !".EOL);
|
||||
|
||||
$tabLignes=file($tabFichiers[1]);
|
||||
$nbLignes=count($tabLignes);
|
||||
|
||||
foreach($tabLignes as $i=>$ligne) {
|
||||
$tabCells=explode("\t", $ligne);
|
||||
//print_r($tabCells);
|
||||
if ($i==0 && $tabCells[0]<>'idClient') die('idClient non trouvé en 1ère celule de la 1ère ligne !'.EOL);
|
||||
elseif ($i==0) continue;
|
||||
$login=trim(preg_replace('/\s+/','',$tabCells[1]));
|
||||
$password=trim(preg_replace('/\s+/','',$tabCells[2]));
|
||||
$email=trim(preg_replace('/\s+/','',$tabCells[3]));
|
||||
|
||||
|
||||
$tabInsert=array( 'idClient' => $tabCells[0],
|
||||
'login' => $login,
|
||||
'password' => $password,
|
||||
'email' => $email,
|
||||
'referenceParDefaut'=> $tabCells[4],//RéférenceParDéfaut
|
||||
'nom' => $tabCells[5],
|
||||
'prenom' => $tabCells[6],
|
||||
'actif' => 1,
|
||||
'deleted' => 0,
|
||||
'typeCompte' => 'PROD', // 'TEST'
|
||||
'profil' => 'Utilisateur',
|
||||
'filtre_ip' => '',
|
||||
'civilite' => 'M', // 'Mme', 'Mlle'
|
||||
'lang' => 'fr',
|
||||
'formatMail' => $profil['formatMail'], // 'txt1', 'txt2', 'htm', 'csv', 'xls', 'pdf', 'pdf1'
|
||||
'pref' => $profil['pref'], // 'naf4 nace news mappy cartes',
|
||||
'droits' => $profil['droits'], // 'searchent searchdir identite liens etablissements groupe eveninsee avisinsee dirigeants indiscore monprofil',
|
||||
'lienExtranetMail' => $profil['lienExtranetMail'],
|
||||
'nbReponses' => $profil['nbReponses'],
|
||||
'dateDebutCompte' => date('Ymd'),
|
||||
'dateInsert' => date('YmdHis'),
|
||||
);
|
||||
/* raisonSociale
|
||||
siret
|
||||
adrNum
|
||||
adrIndRep
|
||||
adrTypeVoie
|
||||
adrLibVoie
|
||||
adrCp
|
||||
adrVille
|
||||
adrComp
|
||||
tel
|
||||
fax
|
||||
mobile
|
||||
dateInscription
|
||||
dateValidation
|
||||
*/
|
||||
echo date('Y/m/d - H:i:s'). " - Compte n°$i/$nbLignes '".$login."', ";
|
||||
|
||||
if ($iDb->insert('utilisateurs', $tabInsert, false)) {
|
||||
$message="Bonjour,
|
||||
|
||||
Dans le cadre du Contrat établi entre UTC Fire & Security Services et Scores & Décisions, nous avons le plaisir de vous remettre les éléments nécessaires afin que vous puissiez utiliser notre extranet.
|
||||
|
||||
Adresse site :
|
||||
http://extranet.scores-decisions.com
|
||||
|
||||
Codes d'accès et mot de passe :
|
||||
Identifiant : ".$login."
|
||||
Mot de passe : ".$password." (nous vous conseillons de faire un copier/coller de ce mot de passe)
|
||||
|
||||
Lors de vos premières connexions, nous vous invitons à modifier votre mot de passe.
|
||||
=> menu \"OPTIONS\"
|
||||
=> onglet \"Mes options\"
|
||||
=> cliquer sur 'Modifier le mot de passe.'
|
||||
=> saisir votre mot de passe (alphanumérique) et cliquer sur 'modifier'
|
||||
=> pour valider il est impératif de cliquer sur \"Sauver\" tout en bas de page
|
||||
|
||||
Cet accès vous permet :
|
||||
> la consultation de la base de données
|
||||
> la consultation des IndiScore,
|
||||
|
||||
|
||||
Nous vous souhaitons bonne réception de ces informations.
|
||||
|
||||
Votre interlocuteur privilégié, Monsieur Julien Proust et toute l'équipe support de Scores & Décisions (support@scores-decisions.com) restent à votre écoute.
|
||||
|
||||
Bien cordialement
|
||||
|
||||
Amel
|
||||
|
||||
--
|
||||
|
||||
Service Support
|
||||
SCORES ET DECISIONS
|
||||
1, rue Clairefontaine - 78120 RAMBOUILLET
|
||||
tél. support : +33 (0)1 48 00 04 52
|
||||
tél. standard : +33 (0)1 75 43 80 10
|
||||
fax bureau : +33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
http://www.scores-decisions.com
|
||||
Scores & Décisions est l'acteur nouvelle génération de l’information et de l'évaluation des entreprises
|
||||
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
if ($sendMail) {
|
||||
@sendMail('support@scores-decisions.com', $email, "Codes Accès Extranet Scores et Décisions", $message);
|
||||
@sendMail('support@scores-decisions.com', 'ylenaour@scores-decisions.com', "Codes Accès Extranet Scores et Décisions", $message);
|
||||
echo "Créé et e-mail envoyé à ".$tabCells[3].EOL;
|
||||
} else
|
||||
echo "Créé sans envoi d'e-mail à ".$tabCells[3].EOL;
|
||||
|
||||
} elseif (mysql_errno()==1062)
|
||||
echo "Login déjà existant !".EOL;
|
||||
else
|
||||
die('Erreur SQL n° '.mysql_errno().' : '.mysql_error().EOL);
|
||||
|
||||
//die();
|
||||
}
|
||||
|
||||
?>
|
126
batch/crontab.txt
Normal file
126
batch/crontab.txt
Normal file
@ -0,0 +1,126 @@
|
||||
#*/15 * * * * cd /var/www/html/crm; php -f cron.php > /dev/null 2>&1
|
||||
0 10-22/4 * * 1-6 /var/www/batch/getInfosReg.php >> /var/www/log/getInfosReg.log
|
||||
0 7 * * * /var/www/batch/getInpi2009.php >> /var/www/log/getInpi2009.log
|
||||
30 18 * * * /var/www/batch/getInpi2009.php >> /var/www/log/getInpi2009Soir.log
|
||||
###30 8 * * * /var/www/batch/getInpiDecisions.php >> /var/www/log/getInpiDecisions.log
|
||||
###30 19 * * * /var/www/batch/getInpiDecisions.php >> /var/www/log/getInpiDecisionsSoir.log
|
||||
55 4 * * * /var/www/batch/getInseeEven.php >> /var/www/log/getInseeEven.log
|
||||
0 18 * * * /var/www/batch/getInseeEven.php >> /var/www/log/getInseeEvenSoir.log
|
||||
10 5 * * * /var/www/batch/consolideEtab.php >> /var/www/log/consolideEtab.log
|
||||
45 8 * * * /var/www/batch/getDefaillances.php -i >> /var/www/log/getDefaillances.log
|
||||
0 9 * * * /var/www/batch/getAnnoncesTessi.php -i >> /var/www/log/getAnnoncesTessi.log
|
||||
0 9-21/4 * * 1-6 /var/www/batch/getBodacc.php -s -i -n >> /var/www/log/getBodacc.log
|
||||
30 9-21/4 * * * /var/www/batch/sirenage.php >> /var/www/log/sirenage.log
|
||||
30 19 4 * * /home/data/dila/getDilaStock.sh >> /home/data/dila/getDilaStock.log
|
||||
30 23 * * * /home/data/dila/getDilaFlux.sh >> /home/data/dila/getDilaFlux.log
|
||||
30 9 * * * /var/www/batch/getBalo.php >> /var/www/log/getBalo.log
|
||||
#0 9 * * 1-5 /var/www/batch/getAsso.php -c >> /var/www/log/getAsso.log
|
||||
#0 8 * * * /var/www/batch/getTelFaxIdentite.php >> /var/www/log/getTelFaxIdentite.log
|
||||
30 12 * * 1-5 /var/www/batch/getInfosFin.php >> /var/www/log/getInfosFin.log
|
||||
5 0 * * * /var/www/batch/clients/exportPCL.sh >> /var/www/batch/clients/exportPCL.log
|
||||
30 0 * * 1-5 reboot -f
|
||||
0 0 * * * rm -f /var/spool/clientmqueue/*
|
||||
###40 0 * * 1-5 /etc/init.d/mysqld start
|
||||
###0 21 * * 0 /root/scripts/netbackup.sh >> /root/scripts/netbackup.log
|
||||
###30 23 * * 1-5 /home/backup/sql/syncroQuoti.sh >> /home/backup/sql/syncroQuotiSh.log
|
||||
###30 16 * * 0 /home/backup/sql/syncroHebdo.sh >> /home/backup/sql/syncroHebdoSh.log
|
||||
###0 16 * * 0 /home/backup/sql/syncroMensuel.sh >> /home/backup/sql/syncroMensuelSh.log
|
||||
0 21 * * 1-5 /var/www/batch/loadSurveillances.php >> /var/www/log/loadSurveillances.log
|
||||
40 0 * * 1-5 /var/www/batch/diffusionBodacc.php -s >> /var/www/log/surveillanceBodacc.log
|
||||
0 2 * * 1-5 /var/www/batch/surveillanceBodaccSite.php -m >> /var/www/log/surveillanceBodaccSite.log
|
||||
0 5 * * 1-5 /var/www/batch/surveillanceInseeSite.php >> /var/www/log/surveillanceInseeSite.log
|
||||
30 22 * * * /var/www/batch/consolideTelFaxIdentite.php >> /var/www/log/consolideTelFaxIdentite.log
|
||||
0 8-22/2 * * * /var/www/batch/getRSS.php >> /var/www/log/getRSS.log
|
||||
0 2 * * * /var/www/batch/calculRatios.php >> /var/www/log/calculRatios.log
|
||||
30 6 * * * /var/www/batch/calculScores.php >> /var/www/log/calculScores.log
|
||||
###0 20 * * * /var/www/batch/calculScoreSurv.php >> /var/www/log/calculScoreSurv.log
|
||||
0 7 * * 1-5 /var/www/batch/surveillanceScoreSite.php >> /var/www/log/surveillanceScoreSite.log
|
||||
45 9 * * 1-5 /var/www/batch/surveillanceActesSite.php >> /var/www/log/surveillanceActesSite.log
|
||||
15 10 * * 1-5 /var/www/batch/surveillanceDirSite.php >> /var/www/log/surveillanceDirSite.log
|
||||
0 17 * * 1-5 /var/www/batch/surveillanceLiensSite.php >> /var/www/log/surveillanceLiensSite.log
|
||||
0 23 * * 1-5 /var/www/batch/surveillanceBilanSite.php >> /var/www/log/surveillanceBilanSite.log
|
||||
30 9 * * 1-5 /var/www/batch/surveillancePrivSite.php >> /var/www/log/surveillancePrivSite.log
|
||||
###30 19 * * 1-5 /var/www/batch/fedaso.php -d:100 >> /var/www/log/fedasoOut.log
|
||||
15 19 * * 1-5 /var/www/batch/fedasoBilans.php -d >> /var/www/log/fedasoBilans.log
|
||||
30 6 * * 2-6 /var/www/batch/getIsin.php -h >> /var/www/log/getIsinMatin.log
|
||||
0 23 * * 1-5 /var/www/batch/getIsin.php -s >> /var/www/log/getIsinSoir.log
|
||||
30 8 * * * /var/www/batch/getDevises.php >> /var/www/log/getDevises.log
|
||||
0-59/30 9-18 * * 1-5 /var/www/batch/getIsin.php >> /var/www/log/getIsin.log
|
||||
50 23 * * * /var/www/batch/getBilansInpi.php -p >> /var/www/log/getBilansInpi.log
|
||||
10 1 * * 1-4 /var/www/batch/getBilansInpi.php -p >> /var/www/log/getBilansInpi.log
|
||||
15 13 * * * /var/www/batch/getTelSources.php >> /var/www/log/getTelSources.log
|
||||
## Mensuels
|
||||
0 20 1 * * /var/www/batch/facturation.php >> /var/www/log/facturation.log
|
||||
0 1 1 * * /var/www/batch/calculRedevances.php >> /var/www/log/calculRedevances.log
|
||||
0 11 25 * * /var/www/batch/getInflation.php >> /var/www/log/getInflation.log
|
||||
0 10 15 * * /var/www/batch/getImportExport.php >> /var/www/log/getImportExport.log
|
||||
0 9 * * 1 /var/www/batch/getIsin.php -a -n -r >> /var/www/log/getIsinSociete.log
|
||||
#0 12 20 * * /var/www/batch/peps/getPepCia.php >> /var/www/log/getPepCia.log
|
||||
30 12 1 * * /var/www/batch/getLiens.php >> /var/www/log/getLiens.log
|
||||
## Hebdomadaire
|
||||
0 18 * * 1 /var/www/batch/getBoMonaco.php >> /var/www/log/getBoMonaco.log
|
||||
## Provisoire à revoir
|
||||
0 9 * * 1-5 /var/www/batch/getPrivileges.php >> /var/www/log/getPrivilegesMatin.log
|
||||
0 19 * * 1-5 /var/www/batch/getPrivileges.php >> /var/www/log/getPrivilegesSoir.log
|
||||
0 3 * * 1-5 /var/www/batch/diffusionBodacc.php >> /var/www/log/diffusionBodacc.log
|
||||
30 7 * * 1-5 /var/www/batch/convertSdRecordati.php >> /var/www/log/convertSdRecordati.log
|
||||
0 13 * * 1-5 /var/www/batch/convertSdVerdoso.php >> /var/www/log/convertSdVerdoso.log
|
||||
30 8 * * 1-5 /var/www/batch/convertSdSO2000.php >> /var/www/log/convertSdSO2000.log
|
||||
30 18 * * * /var/www/batch/geoCodeAdresses.php >> /var/www/log/geoCodeAdresses.log
|
||||
30 9 * * 5 /var/www/batch/getOrias.php >> /var/www/log/getOrias.log
|
||||
30 8 * * 1-6 /var/www/batch/getQualibat.php >> /var/www/log/getQualibat.log
|
||||
#30 7 * * * /var/www/batch/repriseDirigeants.php >> /var/www/log/repriseDirigeants.log
|
||||
30 8 * * 1-5 /var/www/batch/getTribunaux.php >> /var/www/log/getTribunaux.log
|
||||
#0 9 * * 1-6 /var/www/batch/getAnnoncesJal.php >> /var/www/log/getAnnoncesJal.log
|
||||
45 8 * * 1-5 /root/scripts/miseEnCacheSirenage.sh
|
||||
#0 18 * * 1-5 /var/www/batch/majIMR.php >> /var/www/log/majIMR.log
|
||||
#30 8 * * 1-5 /var/www/batch/getBilansWeb.php >> /var/www/log/getBilansWeb.log
|
||||
0 8 * * * /var/www/batch/repriseSirenBodaccHisto.php -o >> /var/www/log/repriseSirenBodaccHistOcr.log
|
||||
20 8 * * * /var/www/batch/repriseSirenBodaccHisto.php >> /var/www/log/repriseSirenBodaccHistB.log
|
||||
10 8 * * 1-5 /var/www/batch/getMarques.php -b >> /var/www/log/getMarques.log
|
||||
###############0 22 * * * /var/www/batch/rapportsTextes.php -d >> /var/www/log/rapportsTextesWeb.log
|
||||
###############0 23 * * * /var/www/batch/rapportsTextes.php -f >> /var/www/log/rapportsTextesFtp.log
|
||||
15 9 * * * /var/www/batch/majArtisans.php >> /var/www/log/majArtisans.log
|
||||
30 19 * * 5 /var/www/batch/clients/doEtabAct.sh >> /var/www/batch/clients/doEtabAct.log
|
||||
###0 3 * * 0 /var/www/batch/clients/indexFileGiant.sh >> /var/www/batch/clients/indexFileGiant.log
|
||||
###0 7 1-6 1,4,7,10 * /var/www/batch/clients/stockKadeal.sh >> /var/www/batch/clients/stockKadeal.log
|
||||
0 2 * * * /var/www/batch/clients/proceduresQ.sh >> /var/www/batch/clients/proceduresQ.log
|
||||
30 21 * * 1-6 /var/www/batch/majAdressesDom.php >> /var/www/log/majAdressesDom.log
|
||||
*/15 * * * * /var/www/batch/getLogos.php >> /var/www/log/getLogos.log
|
||||
30 8 * * * /var/www/batch/getLogos.php -b >> /var/www/log/getLogosBing.log
|
||||
0 20 * * 1-6 /var/www/batch/consolideDiri.php >> /var/www/log/consolideDiri.log
|
||||
30 9 * * * /var/www/batch/getInfosHotelerie.php >> /var/www/log/getInfosHotelerie.log
|
||||
###0 20 * * 5 /root/geoCodeHisto.sh
|
||||
###0 1 * * * /var/www/batch/genereEpl.php -t >> /var/www/log/genereEpl.log
|
||||
###1 1 * * * /var/www/batch/testWorldCheck.php -o
|
||||
###0 1 * * * /var/www/batch/testWorldCheck.php
|
||||
30 11 * * 3 /var/www/batch/getEcoArtisan.php >> /var/www/log/getEcoArtisan.log
|
||||
35 11 * * 3 /var/www/batch/getQualifelec.php >> /var/www/log/getQualifelec.log
|
||||
40 11 * * 3 /var/www/batch/getQualiPaysage.php >> /var/www/log/getQualiPaysage.log
|
||||
45 0 9 * * /var/www/batch/clients/kompass.sh >> /var/www/batch/clients/kompass.log
|
||||
###46 0 2-8 * * /var/www/batch/exportKompass.php -5 >> /var/www/batch/clients/kompass5.log
|
||||
45 0 1 2,5,8,11 * /var/www/batch/clients/stockCorporama.sh >> /var/www/batch/clients/stockCorporama.log
|
||||
29 0 * * * /root/psxa.sh
|
||||
##############0 7 10 * * /var/www/batch/getInfosGE.php >> /var/www/log/getInfosGE.log
|
||||
0 9 * * * /var/www/batch/getAnnoncesJal.php >> /var/www/log/getAnnoncesJal.log
|
||||
40 6 * * * /var/www/batch/convertSdFBoissons.php >> /var/www/log/convertSdFBoissons.log
|
||||
30 5 * * 1-5 /var/www/batch/diffusionEntrepA6cmo.php -d >> /var/www/log/diffusionEntrepA6cmo.log
|
||||
0 9 * * * cp --force /tmp/diffusionBodacc_DIFBOD*FTSA6CMO* /home/data/clients/a6cmo
|
||||
0 11 * * * /var/www/batch/getInpi2009.php -v -j -m >> /var/www/log/getInpi2009siren.log
|
||||
15 16 * * * /var/www/batch/getMarques.php -s -a
|
||||
30 16 * * * /var/www/batch/getBodacc.php -t:DEFAO2014_009005.taz -s -w -p -v >> /var/www/log/getBodaccSiren.log
|
||||
0 8 * * 2,4 /var/www/batch/getRSS.php -b >> /var/www/log/getRSSisin.log
|
||||
0 9 * * 1-5 /var/www/batch/getRcMonaco.php >> /var/www/log/getRcMonaco.log
|
||||
0 17 * * 1-5 /var/www/batch/getRcMonaco.php -d >> /var/www/log/getRcMonaco.log
|
||||
30 13 * * * /var/www/batch/giantMonitoring.php -v >> /var/www/log/giantMonitoring.log
|
||||
30 8 4-10 * * /var/www/batch/clients/doAdecco.sh
|
||||
0 13 15 * * /var/www/batch/clients/doCoface.sh
|
||||
0 19 * * * /var/www/batch/majLiens.php -i >> /var/www/log/majLiens.log
|
||||
30 5 * * 1 /var/www/batch/surveillanceIsin.php >> /var/www/log/surveillanceIsin.log
|
||||
30 8 * * * /var/www/batch/specifiqueReco.php >> /var/www/log/specifiqueReco.log
|
||||
15 9 * * 1-5 /var/www/batch/getBanques.php >> /var/www/log/getBanques.log
|
||||
30 8 5 * * /var/www/batch/diffusionCegedim.php >> /var/www/log/diffusionCegedim.log
|
||||
0 5 * * 1 /var/www/batch/clients/proceduresH.sh >> /var/www/batch/clients/proceduresH.log
|
||||
30 7 * * 1-5 /var/www/batch/testCptsPub.php >> /var/www/log/testCptsPub.log
|
||||
###45 7 * * * /var/www/batch/testMixData.php >> /var/www/log/testMixData.log
|
||||
###40 0 * * * /var/www/batch/diffusionEntrepA6cmo.php -s -c=21 >> /var/www/log/stockA6CMO.log
|
379
batch/diffusionActes.php
Normal file
379
batch/diffusionActes.php
Normal file
@ -0,0 +1,379 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
define('DATE_HEURE_SCRIPT', date('Ymd_His'));
|
||||
|
||||
/** @todo
|
||||
**/
|
||||
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');
|
||||
|
||||
$repProduction='/mnt/samba/partage/production/';
|
||||
|
||||
$modeTest=$envoiGroupe=$envoiGroupePre=false;
|
||||
$ignoreDateDerExec=$retroActivite=false;
|
||||
$tableSurveillance='surveillances_site';
|
||||
|
||||
//$modeTest=true;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Envoi des messages de surveillance Actes par email (site et WS uniquement).
|
||||
|
||||
Options :
|
||||
-i Ne pas exécuter en réel (pas de MAJ des infos d'exécution et envoi des mails à lenaoury@gmail.com...)
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1)
|
||||
{
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'i':
|
||||
//$envoiGroupe=true;
|
||||
$modeTest=true;
|
||||
//$tableSurveillance='surveillances_site_old';
|
||||
break;
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
$iDb2=new WDB('sdv1');
|
||||
$nbUtilisateurs=$iDb2->select('utilisateurs u, clients c', 'u.id, u.idClient, LOWER(u.login) AS login, u.password, u.email, u.formatMail, u.lienExtranetMail, u.listeEven', "u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'", true, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbUtilisateurs utilisateurs habilités à recevoir des surveillances...".EOL;
|
||||
$tabFormat=$tabLienEx=$tabLstEve=$tabHash=array();
|
||||
while ($uti=$iDb2->fetch(MYSQL_ASSOC)) {
|
||||
switch ($uti['formatMail']) {
|
||||
case 'txt2': // MAIL au format texte, 1 mail par envoi
|
||||
case 'csv': // MAIL au format CSV, 1 mail par envoi
|
||||
case 'txt1': // MAIL au format texte, 1 mail par annonce (format par défaut)
|
||||
case 'pdf1': // MAIL au format PDF, 1 mail par envoi
|
||||
$tabFormat['_'.$uti['login']]=$uti['formatMail'];
|
||||
break;
|
||||
default:
|
||||
$tabFormat['_'.$uti['login']]='txt1';
|
||||
break;
|
||||
}
|
||||
|
||||
$tabLienEx['_'.$uti['login']]=$uti['lienExtranetMail'];
|
||||
$tabLstEve['_'.$uti['login']]=explode(';',trim($uti['listeEven']));
|
||||
sort($tabLstEve['_'.$uti['login']]);
|
||||
if (count($tabLstEve['_'.$uti['login']])==1 && $tabLstEve['_'.$uti['login']][0]=='')
|
||||
$tabLstEve['_'.$uti['login']]=array();
|
||||
$tabHash['_'.$uti['login']]=md5($uti['login'].'|'.$uti['password']);
|
||||
}
|
||||
//sort($tabFormat);
|
||||
//print_r($tabFormat);die();
|
||||
$iBodacc=new MBodacc();
|
||||
$iInsee=new MInsee();
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement d'envoi des surveillances Actes.\n";
|
||||
|
||||
$fields="CONCAT(s.siren,'-',s.login,'-',s.ref) AS id, s.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, a.codeInterne, a.dateDepot, a.flux, a.codeEven, a.dateInsert";
|
||||
|
||||
$where ="1 AND s.source='actes' AND s.siren>1000 AND s.siren=a.siren AND a.dateInsert>=s.dateAjout AND a.dateInsert>=s.dateDerEnvoi AND s.dateSuppr='0000-00-00' AND DATEDIFF(NOW(), a.dateDepot)<=90
|
||||
AND a.dateInsert>'2010-05-24' ";
|
||||
|
||||
$where.=' GROUP BY s.login, s.email, a.siren, a.codeInterne, a.dateDepot
|
||||
ORDER BY s.login ASC, s.email ASC, a.siren, a.codeInterne, a.dateDepot';
|
||||
$tables="$tableSurveillance s, rncs_even a";
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL;
|
||||
$nbAnnonces=$iDb->select($tables, $fields, $where, true, MYSQL_ASSOC, true);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbAnnonces surveillances Actes à traiter...".EOL;
|
||||
$emailPre=$loginPre=false;
|
||||
//die();
|
||||
|
||||
require_once('/var/www/html/tests/pdf/html2pdf.class.php');
|
||||
|
||||
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
|
||||
$tabIdentite=$iInsee->getIdentiteLight($annonce['siren']);
|
||||
//print_r($tabIdentite);
|
||||
//die();
|
||||
/*
|
||||
[id] => 6838322
|
||||
[Siret] => 55214450300018
|
||||
[Siege] => 1
|
||||
[Nom] => AUTOMOBILES PEUGEOT
|
||||
[Sigle] =>
|
||||
[Enseigne] =>
|
||||
[Adresse] => 0075 AV LA GRANDE ARMEE
|
||||
[Adresse2] =>
|
||||
[AdresseNum] => 0075
|
||||
[AdresseBtq] =>
|
||||
[AdresseVoie] => AV
|
||||
[AdresseRue] => LA GRANDE ARMEE
|
||||
[CP] => 75116
|
||||
[Ville] => PARIS 16
|
||||
[Tel] => 141193150
|
||||
[Fax] => 140665414
|
||||
[FJ] => 5599
|
||||
[FJ_lib] => Autre SA à conseil d'administration
|
||||
[Siren] => 552144503
|
||||
[Nic] => 00018
|
||||
[Actif] => 1
|
||||
[NafEtab] => 7010Z
|
||||
[NafEnt] => 2910Z
|
||||
[NafEntLib] => Construction de véhicules automobiles
|
||||
[NafEtabLib] => Activités des sièges sociaux
|
||||
[AutreId] => 55B14450
|
||||
[Source] => 002
|
||||
[SourceId] => 6853244
|
||||
*/
|
||||
$fp2=fopen("/var/www/html/factures/pdf/surv_actes_".date('Y-m-d').'.csv', 'a');
|
||||
fwrite($fp2, implode("\"\t\"", $annonce));
|
||||
fclose($fp2);
|
||||
|
||||
$email=$annonce['email'];
|
||||
$loginLu=$annonce['login'];
|
||||
if (!isset($tabFormat['_'.$loginLu])) {
|
||||
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']." non traitée pour cause de format indéfini pour $loginLu, $email (".$annonce['siren'].' - '.$tabIdentite['Nom'].")\n";
|
||||
/** Avant de faire un continue, on initialise les variables précédentes obligatoires **/
|
||||
/*$emailPre=$email;
|
||||
$loginPre=$loginLu;
|
||||
$envoiGroupePre=$envoiGroupe;
|
||||
$conversionPdfPre=$conversionPdf;
|
||||
$conversionCsvPre=$conversionCsv;*/
|
||||
continue;
|
||||
}
|
||||
$conversionPdf=$conversionCsv=false;
|
||||
if ($tabFormat['_'.$loginLu]=='txt2') $envoiGroupe=true;
|
||||
elseif ($tabFormat['_'.$loginLu]=='csv') { $envoiGroupe=true; $conversionCsv=true; }
|
||||
elseif ($tabFormat['_'.$loginLu]=='txt1') $envoiGroupe=false;
|
||||
elseif ($tabFormat['_'.$loginLu]=='pdf1') { $envoiGroupe=true; $conversionPdf=true; }
|
||||
else die(date('Y/m/d H:i:s')." - Erreur impossible : Format '".$tabFormat['_'.$loginLu]."' non géré pour $loginLu !");
|
||||
|
||||
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']." à traiter pour $loginLu, $email (".$annonce['siren'].' - '.$tabIdentite['Nom'].")\n";
|
||||
|
||||
echo "Test $envoiGroupe vs $envoiGroupePre, Login $loginLu vs $loginPre, Email $email vs $emailPre, Csv/Pdf=$conversionCsv/$conversionPdf\n";
|
||||
//$saisie = trim(strtoupper(fgets(STDIN)));
|
||||
|
||||
if ( ($envoiGroupe||$envoiGroupePre) && // Envoi groupé demandé ET
|
||||
( ($loginPre!=false && $loginLu!=$loginPre) || // Login différent OU
|
||||
($emailPre!=false && $email!=$emailPre) ) // Email différent
|
||||
) { /** Login souhaitant un seul email pour toutes les annonces **/
|
||||
$emailEnvoi=$emailPre;
|
||||
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
|
||||
|
||||
if ($conversionPdfPre) {
|
||||
$html2pdf = new HTML2PDF('P','A4', 'fr');
|
||||
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>'))).'</page>';
|
||||
$html2pdf->WriteHTML($messagePdf);
|
||||
$content=$html2pdf->Output('annonces.pdf', true);
|
||||
$fichierPdf="/var/www/html/factures/pdf/scores_$loginPre".'_'.date('Y-m-d').".pdf";
|
||||
$fp=fopen($fichierPdf, 'w');
|
||||
fwrite($fp, $content);
|
||||
fclose($fp);
|
||||
$tabAttached=array($fichierPdf);
|
||||
} elseif ($conversionCsvPre) {
|
||||
$tabAttached=array($fichierCsvPre);
|
||||
} else
|
||||
$tabAttached=array();
|
||||
|
||||
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance des actes déposés", $message, '', $tabAttached)) {
|
||||
|
||||
|
||||
if ($envoiGroupe) $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
|
||||
else $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
|
||||
echo "UPDATE $tableSurveillance SET dateDerEnvoi=NOW() WHERE $where".EOL;
|
||||
|
||||
if (!$modeTest) {
|
||||
if ($envoiGroupe) $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
|
||||
else $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
|
||||
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
|
||||
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$loginPre, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
|
||||
}
|
||||
$messageInfo=$message."\r\n".date('Y/m/d - H:i:s')." - L'annonce n°$idAnn a été envoyé à $emailPre.";
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés", $messageInfo, '', $tabAttached);
|
||||
echo date('Y/m/d - H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.\n";
|
||||
} else {
|
||||
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $emailPre !!!";
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés - Echec Envoi !", $messageInfo, '', $tabAttached);
|
||||
echo date('Y/m/d - H:i:s')." - Les annonces n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
|
||||
}
|
||||
// Remise à banc du message
|
||||
$message=$strIdAnn='';
|
||||
$tabSiren=array();
|
||||
}
|
||||
|
||||
// GESTION DE L'ANNONCE COURANTE
|
||||
$siren=$annonce['siren'];
|
||||
$sirenAff=implode(' ', str_split($siren,3));
|
||||
//$nicAff=$annonce['nicEven'];
|
||||
$rs=substr($tabIdentite['Nom'],0,30).'...';
|
||||
//$even=$annonce['insEVE'];
|
||||
$login=$annonce['login'];
|
||||
|
||||
$idAnn=$tabIdentite['id'];
|
||||
|
||||
if ($envoiGroupe==false)
|
||||
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
|
||||
else {
|
||||
if ($emailPre==false && $loginPre==false) {
|
||||
// Première annonce du mail
|
||||
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
|
||||
$strIdAnn="$idAnn ";
|
||||
$tabSiren=array($siren);
|
||||
} else {
|
||||
// Nième annonce du mail
|
||||
$message.= "Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
|
||||
$strIdAnn.="$idAnn ";
|
||||
$tabSiren[]=$siren;
|
||||
}
|
||||
}
|
||||
|
||||
if (trim($annonce['ref'])<>'') {
|
||||
$message.='Votre référence : '.trim($annonce['ref'])."\r\n";
|
||||
$message."\r\n";
|
||||
$rs=substr($tabIdentite['Nom'],0,30).'... ('.trim($annonce['ref']).')';
|
||||
}
|
||||
// a.codeInterne, a.dateDepot, a.flux, a.codeEven, t.libEven, t.codEven
|
||||
$message.='Source : Registre du Commerce en date du '.WDate::dateT('Y-m-d','d/m/Y',$annonce['dateDepot']).'. ';
|
||||
$message.='Mise à jour en base S&D : '. WDate::dateT('Y-m-d','d/m/Y',$annonce['dateInsert'])."\r\n";
|
||||
|
||||
$tabEven=$iDb2->select(
|
||||
'jo.rncs_even a, jo.tabEvenRncs t',
|
||||
'a.codeEven, t.libEven, t.codEven',
|
||||
"siren=$siren AND codeInterne='".$annonce['codeInterne']."' AND dateDepot='".$annonce['dateDepot']."' AND a.codeEven=t.codeEven",
|
||||
true, MYSQL_ASSOC);
|
||||
$message.="\r\n";
|
||||
if (count($tabEven)>1) $message.="OBJETS DU DEPOT :\r\n";
|
||||
else $message.="OBJET DU DEPOT :\r\n";
|
||||
foreach ($tabEven as $even) {
|
||||
$message.=' - '.$even['libEven'].' ('.$even['codEven'].$even['codeEven'].')'."\r\n";
|
||||
}
|
||||
|
||||
$message.="\r\n";
|
||||
$message.="Adresse du siège : ". $tabIdentite['Adresse'].', '.$tabIdentite['CP'].' '.$tabIdentite['Ville']."\r\n";
|
||||
$message.="Forme juridique : ". $tabIdentite['FJ_lib'].' ('.$tabIdentite['FJ'].")\r\n";
|
||||
$message.="Activité de l'entreprise : ". $tabIdentite['NafEntLib'].' ('.$tabIdentite['NafEnt'].")\r\n";
|
||||
|
||||
$message.="\r\n";
|
||||
|
||||
if ($tabLienEx["_$login"]==1) {
|
||||
if (WS_VERSION==2)
|
||||
$url="http://extranet.scores-decisions.com/pieces/actes/siret/$siren";
|
||||
else
|
||||
$url="http://extranet.scores-decisions.com/?page=greffes&vue=actes&action=logon&login=$login&siret=$siren&hach=".$tabHash["_$login"];
|
||||
|
||||
$message.="\r\nCliquez sur le lien suivant pour une consultation directe de l'évènement sur le site de Scores & Décisions :\r\n<div style=\"font-size: 6pt\"><a href=\"$url\">$url</a></div>\r\n";//d6c3f28eda29a2072b36872476a1d37a
|
||||
}
|
||||
$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
|
||||
|
||||
if ($conversionCsv) {
|
||||
$mel=substr(md5(preg_replace('/[^a-z0-9]/i','',$annonce['email'])),0,8);
|
||||
$fichierCsv='/var/www/html/factures/pdf/actes_'.$login.'_'.$mel.'_'.DATE_HEURE_SCRIPT.'.csv';
|
||||
if (!file_exists($fichierCsv)) {
|
||||
$fp=fopen($fichierCsv, 'a');
|
||||
fwrite($fp, "Siren;Id Acte;Référence;Date parution;Date Entrée en base;Raison sociale;
|
||||
FJ;NAF;Type Evenement;Libellé Evènement\r\n");
|
||||
fclose($fp);
|
||||
}
|
||||
$fp=fopen($fichierCsv, 'a');
|
||||
// Ecriture d'une ligne CSV par évènement du dépôt
|
||||
foreach ($tabEven as $even) {
|
||||
fwrite($fp, "$siren;$idAnn;".trim($annonce['ref']).';'.
|
||||
WDate::dateT('Y-m-d','d/m/Y',$annonce['dateDepot']).';'.
|
||||
WDate::dateT('Y-m-d','d/m/Y',$annonce['dateInsert']).';'.
|
||||
$tabIdentite['Nom'].';'.$tabIdentite['FJ'].';'.$tabIdentite['NafEnt'].';'.
|
||||
$even['codEven'].$even['codeEven'].';'.$even['libEven']."\r\n");
|
||||
}
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
|
||||
if ($envoiGroupe==false) {
|
||||
/** Profil souhaitant un email par annonce **/
|
||||
$emailEnvoi=$email;
|
||||
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
|
||||
//$emailEnvoi='lenaoury@gmail.com';
|
||||
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance des actes déposés $sirenAff $nicAff : $rs", $message)) {
|
||||
|
||||
if ($envoiGroupe) $where="login='$login' AND email='$emailPre' AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
|
||||
else $where="login='$login' AND email='$email' AND source='actes' AND siren='$siren'";
|
||||
echo "UPDATE $tableSurveillance SET dateDerEnvoi=NOW() WHERE $where; (1 mail/annonce)".EOL;
|
||||
|
||||
if (!$modeTest) {
|
||||
if ($envoiGroupe) $where="login='$login' AND email='$emailPre' AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
|
||||
else $where="login='$login' AND email='$email' AND source='actes' AND siren='$siren'";
|
||||
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
|
||||
echo date('Y/m/d - H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$login, mail=$emailPre/$email, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
|
||||
}
|
||||
$messageInfo=$message."\r\n".date('Y/m/d - H:i:s')." - L'annonce n°$idAnn a été envoyé à $email.";
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés $sirenAff $nicAff : $rs", $messageInfo);
|
||||
echo date('Y/m/d - H:i:s')." - L'annonce n°$idAnn a été envoyé à $email.\n";
|
||||
} else {
|
||||
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $email !!!";
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés $sirenAff $nicAff : $rs - Echec Envoi !", $messageInfo);
|
||||
echo date('Y/m/d - H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $email.\n";
|
||||
}
|
||||
}
|
||||
$emailPre=$email;
|
||||
$loginPre=$login;
|
||||
$envoiGroupePre=$envoiGroupe;
|
||||
$conversionPdfPre=$conversionPdf;
|
||||
$conversionCsvPre=$conversionCsv;
|
||||
$fichierCsvPre=$fichierCsv;
|
||||
}
|
||||
|
||||
|
||||
/** Envoi du dernier email pour les envois groupés **/
|
||||
if (($envoiGroupe||$envoiGroupePre) && $emailPre<>false && $loginPre<>false) {
|
||||
$emailEnvoi=$emailPre;
|
||||
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
|
||||
|
||||
if ($conversionPdf) {
|
||||
$html2pdf = new HTML2PDF('P','A4', 'fr');
|
||||
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>'))).'</page>';
|
||||
$html2pdf->WriteHTML($messagePdf);
|
||||
$content=$html2pdf->Output('annonces.pdf', true);
|
||||
$fichierPdf="/var/www/html/factures/pdf/scores_$login".'_'.date('Y-m-d').".pdf";
|
||||
$fp=fopen($fichierPdf, 'w');
|
||||
fwrite($fp, $content);
|
||||
fclose($fp);
|
||||
$tabAttached=array($fichierPdf);
|
||||
} elseif ($conversionCsv) {
|
||||
$tabAttached=array($fichierCsv);
|
||||
} else $tabAttached=array();
|
||||
|
||||
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance des actes déposés", $message, '', $tabAttached)) {
|
||||
if ($envoiGroupe) $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
|
||||
else $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
|
||||
echo "UPDATE $tableSurveillance SET dateDerEnvoi=NOW() WHERE $where".EOL;
|
||||
|
||||
|
||||
|
||||
if (!$modeTest) {
|
||||
if ($envoiGroupe) $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren IN (".implode(',',$tabSiren).")";
|
||||
else $where="login='$login' /*AND email='$emailPre'*/ AND source='actes' AND siren='$siren'";
|
||||
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
|
||||
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$login, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
|
||||
}
|
||||
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.";
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés", $messageInfo, '', $tabAttached);
|
||||
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.\n";
|
||||
} else {
|
||||
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $emailPre !!!";
|
||||
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance des actes déposés - Echec Envoi !", $messageInfo, '', $tabAttached);
|
||||
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
|
||||
}
|
||||
}
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement d'envoi des surveillances Actes.\n";
|
||||
die();
|
||||
?>
|
@ -14,6 +14,7 @@ include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'conversion/bilAltares.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRnvp.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
|
||||
@ -21,7 +22,7 @@ $repProduction='/mnt/samba/partage/production/';
|
||||
|
||||
$incrementationDesTour=true;
|
||||
$typePrestaton='diffusionBodacc';
|
||||
$ignoreDateDerExec=$retroActivite=false;
|
||||
$ignoreDateDerExec=$forceExec=$retroActivite=false;
|
||||
$codeAdherent='';
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
@ -55,6 +56,9 @@ if ($_SERVER['argc']>1)
|
||||
case 'e':
|
||||
$ignoreDateDerExec=true;
|
||||
break;
|
||||
case 'f':
|
||||
$forceExec=true;
|
||||
break;
|
||||
case 'r':
|
||||
$retroActivite=substr($argv[$i],3,strlen($argv[$i])-3);
|
||||
break;
|
||||
@ -77,7 +81,12 @@ $iDb=new WDB('jo');
|
||||
$iDb2=new WDB('jo');
|
||||
$iInsee=new MInsee();
|
||||
$iBodacc=new MBodacc();
|
||||
global $iInsee, $a;
|
||||
$iRnvp=new MRnvp();
|
||||
|
||||
global $iInsee, $a, $iRnvp;
|
||||
|
||||
//echo genereLigne200('950571802', '00053');
|
||||
//die();
|
||||
|
||||
function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) {
|
||||
$lonLigne=LONGUEUR_LIGNE_SORTIE-90;
|
||||
@ -188,13 +197,13 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
|
||||
|
||||
/** Le client souhaite une compression du fichier ? **/
|
||||
if (strpos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip';
|
||||
elseif (strpos($tabAdherent['optionSupport'], 'zip')) $optionZip='zip';
|
||||
if (stripos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip';
|
||||
elseif (stripos($tabAdherent['optionSupport'], 'zip')) $optionZip='zip';
|
||||
else $optionZip='none';
|
||||
|
||||
/** Le client préfère un paramétrage UNIX ou Window pour ses fins de lignes **/
|
||||
if (strpos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n";
|
||||
elseif (strpos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n";
|
||||
if (stripos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n";
|
||||
elseif (stripos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n";
|
||||
else $optionEOL=EOL;
|
||||
|
||||
$tabOptOutput=array();
|
||||
@ -241,11 +250,13 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}// Bloc a décommenter
|
||||
|
||||
/** Livraison Quotidienne ou autre ? **/
|
||||
if ($tabAdherent['freqEnvois']=='h' && date('w')<>1) {
|
||||
if ($tabAdherent['freqEnvois']=='h' && date('w')<>1 && !$ignoreDateDerExec && !$forceExec) {
|
||||
/** Le client souhaite une livraison hebdo, pour l'instant elle se fera le lundi... **/
|
||||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement hebdomadaire en attente (dernier traitement le $dateDernierTraitement)".EOL;
|
||||
//if ($dateDernierTraitement<>20130610004000)
|
||||
continue;
|
||||
} elseif ($tabAdherent['freqEnvois']=='m' && date('w')<>1 && date('d')*1>7) {
|
||||
} elseif ($tabAdherent['freqEnvois']=='m' && (date('w')<>1 || date('d')*1>7) && !$ignoreDateDerExec) {
|
||||
// } elseif ($codeAdherent=='DIFBODPRDFTSA6CMOADACL40MACS') {
|
||||
/** Le client souhaite une livraison mensuelle, pour l'instant elle se fera le 1er lundi du mois... **/
|
||||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement mensuel en attente (dernier traitement le $dateDernierTraitement)".EOL;
|
||||
continue;
|
||||
@ -277,57 +288,61 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
**/
|
||||
$strRubrique='';
|
||||
$tabRubCollecte=array();
|
||||
if (strpos($tabAdherent['optionPrestation'], 'comptes')) { // Export du Bodacc C - Dépôt des comptes
|
||||
if (stripos($tabAdherent['optionPrestation'], 'Rubrique')!==false) {
|
||||
if (stripos($tabAdherent['optionPrestation'], 'comptes')) { // Export du Bodacc C - Dépôt des comptes
|
||||
$strRubrique.="'comptes',";
|
||||
$tabRubCollecte[]=" typeEven LIKE '3%' ";
|
||||
}
|
||||
if (strpos($tabAdherent['optionPrestation'], 'creations')) { // Export des créations
|
||||
if (stripos($tabAdherent['optionPrestation'], 'creations')) { // Export des créations
|
||||
$strRubrique.="'creations',";
|
||||
$tabRubCollecte[]=" typeEven LIKE '4%' ";
|
||||
}
|
||||
if (strpos($tabAdherent['optionPrestation'], 'mmd')) { // Export des MMD
|
||||
if (stripos($tabAdherent['optionPrestation'], 'mmd')) { // Export des MMD
|
||||
$strRubrique.="'mmd',";
|
||||
$tabRubCollecte[]=" typeEven LIKE '2%' ";
|
||||
}
|
||||
if (strpos($tabAdherent['optionPrestation'], 'procol')) { // Export des ProCol
|
||||
if (stripos($tabAdherent['optionPrestation'], 'procol')) { // Export des ProCol
|
||||
$strRubrique.="'procol',";
|
||||
$tabRubCollecte[]=" typeEven LIKE '1%' ";
|
||||
}
|
||||
if (strpos($tabAdherent['optionPrestation'], 'radiations')) { // Export des radiations
|
||||
if (stripos($tabAdherent['optionPrestation'], 'radiations')) { // Export des radiations
|
||||
$strRubrique.="'radiations',";
|
||||
$tabRubCollecte[]=" typeEven LIKE '6%' ";
|
||||
}
|
||||
if (strpos($tabAdherent['optionPrestation'], 'ventes')) { // Export des ventes cessions
|
||||
if (stripos($tabAdherent['optionPrestation'], 'ventes')) { // Export des ventes cessions
|
||||
$strRubrique.="'ventes',";
|
||||
$tabRubCollecte[]=" typeEven LIKE '5%' ";
|
||||
}
|
||||
}
|
||||
|
||||
if (stripos($tabAdherent['optionPrestation'], 'lignesOutput')!==false) {
|
||||
if (strpos($tabAdherent['optionPrestation'], '101')) // Commentaire inclus dans l'annonce si nécessaire
|
||||
$tabOptOutput[101]=true; else $tabOptOutput[101]=false;
|
||||
if (strpos($tabAdherent['optionPrestation'], '102')) // Activite déclaré au Bodacc
|
||||
$tabOptOutput[102]=true; else $tabOptOutput[102]=false;
|
||||
if (strpos($tabAdherent['optionPrestation'], '104')) // Annonce complète au format texte
|
||||
$tabOptOutput[104]=true; else $tabOptOutput[104]=false;
|
||||
if (strpos($tabAdherent['optionPrestation'], '105')) // Structure Dirigeants BODACC
|
||||
if (preg_match('/lignesOutput.*105/Ui', $tabAdherent['optionPrestation'])) // Structure Dirigeants BODACC
|
||||
$tabOptOutput[105]=true; else $tabOptOutput[105]=false;
|
||||
if (strpos($tabAdherent['optionPrestation'], '200')) // Structure Identité Insee S&D
|
||||
$tabOptOutput[200]=true; else $tabOptOutput[200]=false;
|
||||
if (strpos($tabAdherent['optionPrestation'], '400')) // Structure Bilans
|
||||
if (preg_match('/lignesOutput.*400/Ui', $tabAdherent['optionPrestation'])) // Structure Bilans
|
||||
$tabOptOutput[400]=true; else $tabOptOutput[400]=false;
|
||||
}
|
||||
|
||||
// Naf inclus
|
||||
$tabNaf=array();
|
||||
$posNaf=stripos($tabAdherent['optionPrestation'], 'NAF=');
|
||||
if ($posNaf!==false) {
|
||||
if (preg_match('/NAF=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
|
||||
$tabNaf=preg_split('(;|,)', $matches[1]);
|
||||
$tabNaf=preg_split('(;|,)', trim($matches[1]));
|
||||
}
|
||||
// Naf exclus
|
||||
$posNaf=stripos($tabAdherent['optionPrestation'], 'NAF-=');
|
||||
if ($posNaf!==false) {
|
||||
$tabNafAll=$iInsee->getCodesNaf();
|
||||
if (preg_match('/NAF\-=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) {
|
||||
$tabNafSuppr=preg_split('(;|,)', $matches[1]);
|
||||
$tabNafSuppr=preg_split('(;|,)', trim($matches[1]));
|
||||
$tabNaf=array_diff($tabNafAll, $tabNafSuppr);
|
||||
}
|
||||
}
|
||||
@ -337,14 +352,14 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$posCJ=stripos($tabAdherent['optionPrestation'], 'CJ=');
|
||||
if ($posCJ!==false) {
|
||||
if (preg_match('/CJ=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
|
||||
$tabCJ=preg_split('(;|,)', $matches[1]);
|
||||
$tabCJ=preg_split('(;|,)', trim($matches[1]));
|
||||
}
|
||||
// FJ exclues
|
||||
$posCJ=stripos($tabAdherent['optionPrestation'], 'CJ-=');
|
||||
if ($posCJ!==false) {
|
||||
$tabCJAll=$iInsee->getCodesFJ();
|
||||
if (preg_match('/CJ-=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) {
|
||||
$tabCJSuppr=preg_split('(;|,)', $matches[1]);
|
||||
$tabCJSuppr=preg_split('(;|,)', trim($matches[1]));
|
||||
$tabCJ=array_diff($tabCJAll, $tabCJSuppr);
|
||||
}
|
||||
//die(print_r($tabCJ,1));
|
||||
@ -354,18 +369,35 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$posNaf=stripos($tabAdherent['optionPrestation'], 'CodeCom=');
|
||||
if ($posNaf!==false) {
|
||||
if (preg_match('/CodeCom=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
|
||||
$tabCodeCom=preg_split('(;|,)', $matches[1]);
|
||||
$tabCodeCom=preg_split('(;|,)', trim($matches[1]));
|
||||
/////die(print_r($tabCodeCom));
|
||||
}
|
||||
|
||||
// Codes Evènements S&D inclus
|
||||
$tabEve=array();
|
||||
$posEve=stripos($tabAdherent['optionPrestation'], 'codeEven=');
|
||||
if ($posEve!==false) {
|
||||
if (preg_match('/codeEven=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
|
||||
$tabEve=preg_split('(;|,)', $matches[1]);
|
||||
$tabEve=preg_split('(;|,)', trim($matches[1]));
|
||||
//die(print_r($tabCJ));
|
||||
}
|
||||
|
||||
// Codes Evènements S&D exclus
|
||||
$posEve=stripos($tabAdherent['optionPrestation'], 'codeEven-=');
|
||||
if ($posEve!==false) {
|
||||
$tabEveAll=$iBodacc->getListeCodeEven();
|
||||
if (preg_match('/codeEven-=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) {
|
||||
$tabEveSuppr=preg_split('(;|,)', trim($matches[1]));
|
||||
$tabEve=array_diff($tabEveAll, $tabEveSuppr);
|
||||
}
|
||||
}
|
||||
/* print_r($tabAdherent['optionPrestation']);
|
||||
print_r($tabCodeCom);
|
||||
print_r($tabCJ);
|
||||
print_r($tabEve);
|
||||
print_r($tabOptOutput);
|
||||
die();*/
|
||||
|
||||
$versionEvenClient=0;
|
||||
if (preg_match('/^versionEven=(.*)$/mUi', $tabAdherent['optionPrestation'], $matches))
|
||||
$versionEvenClient=$matches[1]*1;
|
||||
@ -378,15 +410,15 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$posMailSuivi=stripos($tabAdherent['optionPrestation'], 'mailSuivi=');
|
||||
if ($posMailSuivi!==false) {
|
||||
if (preg_match('/mailSuivi=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
|
||||
$mailSuivi=preg_replace('/;|,/', ',', $matches[1]);
|
||||
$mailSuivi=preg_replace('/;|,/', ',', trim($matches[1]));
|
||||
//die(print_r($mailSuivi));
|
||||
}
|
||||
|
||||
$mailTo=false;
|
||||
$posMailTo=stripos($tabAdherent['optionPrestation'], 'mailTo=');
|
||||
$posMailTo=stripos($tabAdherent['optionSupport'], 'mailTo=');
|
||||
if ($posMailTo!==false) {
|
||||
if (preg_match('/mailTo=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
|
||||
$mailTo=preg_replace('/;|,/', ',', $matches[1]);
|
||||
if (preg_match('/mailTo=(.*)(?:$|\n|\r)/i',$tabAdherent['optionSupport'],$matches))
|
||||
$mailTo=preg_replace('/;|,/', ',', trim($matches[1]));
|
||||
//die(print_r($mailSuivi));
|
||||
}
|
||||
|
||||
@ -448,9 +480,16 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}*/
|
||||
|
||||
|
||||
$where.=" AND Bodacc_Date_Parution>'2010-05-11' "; /** @todo A supprimer après le 19 juillet 2010 ... **/
|
||||
$where.=" AND Bodacc_Date_Parution>'2010-05-11' AND d.dateSuppr=0 "; /** @todo A supprimer après le 19 juillet 2010 ... **/
|
||||
$whereCol.=" AND a.dateSource>'2010-05-12 02:00:00' AND a.dateSuppr=0 "; // Idem ... (Prev: après la rétro du 22 mai 2008)
|
||||
|
||||
//echo "'$clientNumTourFichier'".EOL;
|
||||
if ($clientNumTourFichier>1) { // @todo a tester !!!!! && !$retroActivite) { // Ne pas empecher d'envoyer les annonces sirenée ou intégrées avec du retard !
|
||||
$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 ";
|
||||
$whereCol.=" AND DATEDIFF(NOW(), dateJugement)<=60 ";
|
||||
//die('ici');
|
||||
}
|
||||
|
||||
if ($typePrestaton=='diffusionBodacc') {
|
||||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : diffusion...".EOL;
|
||||
$tables='bodacc_detail d';
|
||||
@ -461,13 +500,12 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
|
||||
if (count($tabNaf)>0 || count($tabCJ)>0 || count($tabCodeCom)>0) {
|
||||
$strNaf=$strCJ='';
|
||||
$fields="'BOD' AS src, d.id";
|
||||
$fieldsCol="'COL' AS src, a.id";
|
||||
$fields="'BOD' AS src, d.id, e.siren, e.nic, e.actif, e.ape_etab, e.ape_entrep, e.adr_dep, e.adr_com, e.cj";
|
||||
$fieldsCol="'COL' AS src, a.id, e.siren, e.nic, e.actif, e.ape_etab, e.ape_entrep, e.adr_dep, e.adr_com, e.cj";
|
||||
$tables='bodacc_detail d, etablissements e';
|
||||
$tablesCol='annonces a, etablissements e';
|
||||
$where.=" AND d.siren=e.siren AND d.siren>1000 AND (d.nic=e.nic OR e.siege=1) AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 ";
|
||||
$whereCol.=" AND a.siren=e.siren AND a.siren>1000 AND DATEDIFF(NOW(), dateJugement)<=60 ";
|
||||
|
||||
$where.=" AND d.siren=e.siren AND d.siren>1000 AND (d.nic=e.nic OR e.siege=1) ";
|
||||
$whereCol.=" AND a.siren=e.siren AND a.siren>1000 ";
|
||||
}
|
||||
|
||||
if (count($tabNaf)>0) {
|
||||
@ -477,12 +515,13 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
if (count($tabCodeCom)>0) {
|
||||
$where.=" AND (";
|
||||
$whereCol.=" AND (";
|
||||
foreach($tabCodeCom as $iCom=>$codeCom) {
|
||||
$dep=substr($codeCom,0,2);
|
||||
if ($dep<>'2A' && $dep<>'2B') {
|
||||
$dep=$dep*1;
|
||||
if ($dep<10) $strDep="'$dep','0$dep','00$dep'";
|
||||
elseif ($dep>96)$strDep="'$dep'";
|
||||
elseif ($dep>96)$strDep="'$dep','".substr($codeCom,0,3)."'";
|
||||
else $strDep="'$dep','0$dep'";
|
||||
} else $strDep="'$dep'";
|
||||
$com=substr($codeCom,2,3)*1;
|
||||
@ -530,7 +569,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
}
|
||||
elseif ($typePrestaton=='surveillanceBodacc') {
|
||||
$tabSiren=$iDb->select('surveillances_listes', 'siren, ref', "idClient='$clientIdentifiant' AND dateSuppr='0000-00-00'", true, MYSQL_ASSOC);
|
||||
$tabSiren=$iDb->select('surveillances_listes', 'siren, ref, refInfos', "idClient='$clientIdentifiant' AND dateSuppr='0000-00-00'", true, MYSQL_ASSOC);
|
||||
$nbSirenClient=count($tabSiren);
|
||||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbSirenClient unités en surveillance...".EOL;
|
||||
$fields.=', s.ref';
|
||||
@ -540,10 +579,10 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$where.=" AND d.siren=s.siren AND s.siren>1000 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' ";
|
||||
$whereCol.=" AND a.siren=s.siren AND a.siren>1000 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' ";
|
||||
// if ($clientIdentifiant<>'SURBODPRDFTSMEDERIC') {
|
||||
if (!$retroActivite) {
|
||||
/* if (!$retroActivite) {
|
||||
$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 ";
|
||||
$whereCol.=" AND DATEDIFF(NOW(), dateJugement)<=60 ";
|
||||
}
|
||||
}*/
|
||||
// } else {
|
||||
$where.=" AND d.dateInsert>s.dateDerEnvoi ";
|
||||
$whereCol.=" AND a.dateInsert>s.dateDerEnvoi ";
|
||||
@ -582,6 +621,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
//echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client en version $versionEvenClient...".EOL;
|
||||
|
||||
//if ($collecte) die();
|
||||
//die();
|
||||
|
||||
if (count($tabNaf)>0 || count($tabCJ)>0 || count($tabCodeCom)>0) {
|
||||
$fields="d.id, d.siren, d.sirenValide, CONCAT('BOD-',SUBSTRING(d.Rubrique_Bodacc,1,1)) as source, d.Bodacc_Num, d.Bodacc_Date_Parution, d.Num_Annonce, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.corrNum_Annonce, d.corrBodacc_Date_Parution, d.corrPage, d.corrNumParution, d.corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, d.Tribunal_Code, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, d.ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, administration, activite, typeEven, commentaires, dateEffet, publication, publicationNom, publicationDate, fusion, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, Numero, VenteMt, VenteDev, bienAcqui, 'M' As inter1type, 0 AS inter1id, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, 'R' As inter2type, 0 AS inter2id, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, 'A' As inter3type, 0 AS inter3id, administrateur, admNom, admRepr, admAdresse, admCP, admVille, 'O' AS inter4type, 0 AS inter4id, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert";
|
||||
@ -590,12 +630,29 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$tablesCol='annonces a';
|
||||
$where='d.id IN (0';
|
||||
$whereCol='a.id IN (0';
|
||||
$fpDebug=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debug', 'w');
|
||||
$fpDebug2=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debugExclu', 'w');
|
||||
$tabNic=array();
|
||||
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
if ($annonce['src']=='BOD') $where.=','.$annonce['id'];
|
||||
else $whereCol.=','.$annonce['id'];
|
||||
$codeComCour=substr(trim($annonce['adr_dep']),0,2).$annonce['adr_com'];
|
||||
$txtDebug="Annonce n°".$annonce['id'].", siret=".$annonce['siren'].' '.$annonce['nic'].", Actif=".$annonce['actif'].", APET=".$annonce['ape_etab'].", APEN=".$annonce['ape_entrep'].", Commune=$codeComCour, CJ=".$annonce['cj'];
|
||||
$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]=array('nic'=>$annonce['nic'],
|
||||
'adr_dep'=>$annonce['adr_dep'],
|
||||
'adr_com'=>$annonce['adr_com'],
|
||||
'actif'=>$annonce['actif']);
|
||||
fwrite($fpDebug, $txtDebug.EOL);
|
||||
// Si hors périmètre des communes géographique et A6CMO
|
||||
if ((strpos($clientIdentifiant, 'A6CMO')>0 || strpos($clientIdentifiant, 'ACTDEV')>0) && (!in_array($codeComCour, $tabCodeCom) || $annonce['actif']==0)) {
|
||||
fwrite($fpDebug2, $txtDebug.EOL);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$where.=')';
|
||||
$whereCol.=')';
|
||||
fclose($fpDebug);
|
||||
fclose($fpDebug2);
|
||||
|
||||
if ($collecte) {
|
||||
$query ="SELECT $fields FROM $tables WHERE $where UNION SELECT $fieldsCol FROM $tablesCol WHERE $whereCol";
|
||||
@ -619,6 +676,9 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
//echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL;
|
||||
|
||||
//while(=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$fpDebug=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debugProd', 'w');
|
||||
$fpDebug2=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debugProdExclu', 'w');
|
||||
|
||||
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
|
||||
/** Marquer les liens REF/SIREN envoyées à chaque client
|
||||
@ -698,16 +758,32 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
if ($avecMand) {
|
||||
/** On doit recherche des mandataires absent ou non décodés de l'annonce Bodacc Texte **/
|
||||
$tabTypes=array('A','C','L','M','R','O');
|
||||
for($iInter=1; $iInter<4; $iInter++) {
|
||||
$tabMand=$iDb2->select('annonces', 'inter'.$iInter.'type, inter'.$iInter.'id, inter'.$iInter.'nom, complement', 'siren='.$annonce['siren']." AND inter".$iInter."type IN ('".implode("','", $tabTypes)."') AND (inter".$iInter."id>0 OR inter".$iInter."nom<>'' OR complement LIKE 'Mandataire%') ORDER BY dateInsert DESC", false, MYSQL_ASSOC);
|
||||
//for($iInter=1; $iInter<4; $iInter++) {
|
||||
for($iInter=1; $iInter<3; $iInter++) {
|
||||
$tabMand=$iDb2->select(
|
||||
/*'annonces', 'inter'.$iInter.'type, inter'.$iInter.'id, inter'.$iInter.'nom, complement',
|
||||
'siren='.$annonce['siren']." AND inter".$iInter."type IN ('".implode("','", $tabTypes)."') AND (inter".$iInter."id>0 OR inter".$iInter."nom<>'' OR complement LIKE 'Mandataire%') ORDER BY dateInsert DESC",
|
||||
false, MYSQL_ASSOC);*/
|
||||
'rncs_jugements', 'adm'.$iInter.'type AS inter'.$iInter.'type, adm'.$iInter.'id AS inter'.$iInter.'id, adm'.$iInter.'nom AS inter'.$iInter."nom, '' AS complement".', adm'.$iInter.'adrNum, adm'.$iInter.'adrInd, adm'.$iInter.'adrType, adm'.$iInter.'adrLibVoie, adm'.$iInter.'adrVoie, adm'.$iInter.'adr1, adm'.$iInter.'adr2, adm'.$iInter.'adr3, adm'.$iInter.'adrCP, adm'.$iInter.'adrVille',
|
||||
'siren='.$annonce['siren']." AND adm".$iInter."type IN ('".implode("','", $tabTypes)."') AND (adm".$iInter."id>0 OR adm".$iInter."nom<>'') ORDER BY dateInsert DESC",
|
||||
false, MYSQL_ASSOC);
|
||||
//print_r($tabMand);
|
||||
//die(mysql_error());
|
||||
$interNom=$interTel=$interCp=$interVille='';
|
||||
$interSiren=0;
|
||||
foreach ($tabMand as $mand) {
|
||||
// As t'on déjà traité ce type de mandataire ?
|
||||
if (in_array($mand['inter'.$iInter.'type'],$interType)) continue;
|
||||
|
||||
//print_r($annonce);
|
||||
$mandId=$mand['inter'.$iInter.'id'];
|
||||
$interNom=strtoupper($mand['inter'.$iInter.'nom']);
|
||||
$inter[$numInter]['Repr']='';
|
||||
//, , , , adm'.$iInter.'adrVoie, adm'.$iInter.'adr1, adm'.$iInter.'adr2, adm'.$iInter.'adr3, ',
|
||||
$inter[$numInter]['adrNum']=$mand['adm'.$iInter.'adrNum'];
|
||||
$inter[$numInter]['adrBis']=$mand['adm'.$iInter.'adrInd'];
|
||||
$inter[$numInter]['adrType']=trim(strtoupper($mand['adm'.$iInter.'adrType']));
|
||||
$inter[$numInter]['adrLib']=trim(strtoupper($mand['adm'.$iInter.'adrLibVoie']));
|
||||
$inter[$numInter]['CP']=$mand['adm'.$iInter.'adrCP'];
|
||||
$inter[$numInter]['Ville']=trim(strtoupper($mand['adm'.$iInter.'adrVille']));
|
||||
if ($mandId>0) {
|
||||
// Il y a un mandataire avec un identifiant numérique
|
||||
$tabTmp=$iDb2->select( 'tabMandataires', 'id, sirenGrp, sirenMand, Nom, Prenom, type, adresse, adresseComp, cp, ville, tel, fax, email, web', 'id='.$mandId, true, MYSQL_ASSOC);
|
||||
@ -719,7 +795,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$interCp=$mand2['cp']*1;
|
||||
$interVille=strtoupper($mand2['ville']);
|
||||
$interTel=strtr($mand2['tel'],array(' '=>'',','=>'','.'=>'', '-'=>'/','-'=>''))*1;
|
||||
} else {
|
||||
/* else {
|
||||
// Il y a un mandataire sans identifiant numérique
|
||||
|
||||
if (trim($mand['inter'.$iInter.'nom'])=='' && substr($mand['complement'],0,10)=='Mandataire')
|
||||
@ -740,7 +816,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
// echo $mand['inter'.$iInter.'nom']." : Nom=$interNom, Tél=$interTel, Adresse=";
|
||||
// print_r($adr);
|
||||
}
|
||||
}*/
|
||||
$inter[$numInter]['type']=$mand['inter'.$iInter.'type']; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
||||
$inter[$numInter]['SIRET']=$interSiren.'00000';
|
||||
$inter[$numInter]['Nom']=trim(strtoupper($interNom));
|
||||
@ -759,6 +835,10 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
}
|
||||
|
||||
//print_r($inter);
|
||||
//print_r($interType);
|
||||
//die();
|
||||
|
||||
$tribunalCode=$annonce['Tribunal_Code'];
|
||||
$refLigneClient=@$annonce['ref'];
|
||||
|
||||
@ -805,6 +885,24 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
}
|
||||
|
||||
// Récupération des informations de l'établissement
|
||||
$annonce['nic']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['nic'];
|
||||
$annonce['adr_dep']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['adr_dep'];
|
||||
$annonce['adr_com']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['adr_com'];
|
||||
$annonce['actif']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['actif'];
|
||||
|
||||
$codeComCour=substr(trim($annonce['adr_dep']),0,2).$annonce['adr_com'];
|
||||
|
||||
$txtDebug="Annonce n°".$annonce['id'].", siret=".$annonce['siren'].' '.$annonce['nic'].", Actif=".$annonce['actif'].", APET=".$annonce['ape_etab'].", APEN=".$annonce['ape_entrep'].", Commune=$codeComCour, CJ=".$annonce['cj'];
|
||||
fwrite($fpDebug, $txtDebug.EOL);
|
||||
|
||||
// Si l'annonce A6CMO est hors périmètre notamment des communes géographique, ne pas produire $str
|
||||
if ((strpos($clientIdentifiant, 'A6CMO')>0 || strpos($clientIdentifiant, 'ACTDEV')>0) && (!in_array($codeComCour, $tabCodeCom) || $annonce['actif']==0)) {
|
||||
fwrite($fpDebug2, $txtDebug.EOL);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if ($tabOptOutput[200]==true) {
|
||||
$str=genereLigne200($annonce['siren'], $annonce['nic']);
|
||||
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
|
||||
@ -814,6 +912,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
$str=genereLignes400($annonce['siren'], $nbLignes, $optionEOL);
|
||||
fwrite($fp, $str);
|
||||
}
|
||||
//$annonce['nic'].", APET=".$annonce['ape_etab'].", APEN=".$annonce['ape_entrep'].", Commune=".$annonce['adr_dep'].$annonce['adr_com'].", CJ=".$annonce['cj'].EOL;
|
||||
|
||||
$str= initstr('100', 3, '0', ALIGN_RIGHT) . // Type de ligne
|
||||
initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
|
||||
@ -967,6 +1066,9 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n";
|
||||
}
|
||||
|
||||
fclose($fpDebug);
|
||||
fclose($fpDebug2);
|
||||
|
||||
/**
|
||||
** On génère la ligne de fin de fichier
|
||||
**/
|
||||
@ -982,15 +1084,40 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE)); // Pas de fin de ligne sur la dernière ligne
|
||||
fclose($fp);
|
||||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient :Fichier client terminé.".EOL;
|
||||
//die();
|
||||
|
||||
/** Mise à jour des numéros de tour et des date de dernières exécutions
|
||||
**/
|
||||
if ($incrementationDesTour) {
|
||||
$iDbCrm=new WDB('sugarcrm');
|
||||
$rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>date('YmdHis'), 'trtnumerotour_c'=> $clientNumTourFichier),
|
||||
$rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>$dateFinFichier, 'trtnumerotour_c'=> $clientNumTourFichier),
|
||||
"id_c='".$tabAdherent['idPrestationBdd']."'");
|
||||
}
|
||||
|
||||
if ($clientIdentifiant=='SURBODPRDSFTPSFRBT') {
|
||||
// Copie du fichier pour SFR
|
||||
$fichierIn=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt';
|
||||
if (!copy(REP_TEMP.$fichierIn, '/mnt/data/clients/sfrbtr/recv/'.$fichierIn))
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fichierIn impossible pour le spécifique SFR !".EOL;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - Le fichier $fichierIn a été créé pour SFR...".EOL;
|
||||
|
||||
// Remplissage de la table sdv1.flux_fileout avec les informations de traitement SFR
|
||||
$tabSFR=array( 'client' => 'sfrbtr',
|
||||
'name' => 'FICH_RCE',
|
||||
'nbLines' => $nbLignes, // Nombre de ligne du fichier
|
||||
'dateBegin' => $dateDebFichier, // Date de début du traitement Y-m-d H:i:s
|
||||
'dateEnd' => $dateFinFichier, // Date de fin du traitement Y-m-d H:i:s
|
||||
'fileOut' => basename($fichierIn), //Nom du fichier uniquement
|
||||
'depotType' => 'SFTP',
|
||||
'depotDir' => 'recvsurv',
|
||||
'depotDate' => '0000-00-00 00:00:00',
|
||||
);
|
||||
$iDb3=new WDB('sdv1');
|
||||
$iDb3->insert('flux_fileout', $tabSFR, false);
|
||||
}
|
||||
|
||||
|
||||
/** Conversion du fichier si nécessaire en CSV
|
||||
**/
|
||||
if ($tabAdherent['formatEnvois']=='csv') {
|
||||
@ -1223,6 +1350,39 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
}
|
||||
|
||||
/** Envoi du fichier produit par mail
|
||||
**/
|
||||
if ($mailTo) {
|
||||
switch($tabAdherent['formatEnvois']) {
|
||||
case 'csv': $tabAttached=array($repBakClient.'/'.$ficProduction_csv); break;
|
||||
case 'specifique': $tabAttached=array($repBakClient.'/'.$ficProduction_bil); break;
|
||||
default: $tabAttached=array($repBakClient.'/'.$ficProduction); break;
|
||||
}
|
||||
|
||||
$messageInfo="Bonjour,
|
||||
|
||||
Veuillez trouver le fichier d'annonces Scores & Décisions relatives à votre abonnement.
|
||||
|
||||
Bien Cordialement,
|
||||
Le service Support.
|
||||
|
||||
--
|
||||
|
||||
SCORES & DECISIONS
|
||||
Service support
|
||||
1, rue de Clairefontaine - 78120 RAMBOUILLET
|
||||
tél : 33 (0)1 75 43 80 10
|
||||
fax : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
http://www.scores-decisions.com/
|
||||
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises
|
||||
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
|
||||
@sendMail('production@scores-decisions.com', $mailTo.',support@scores-decisions.com', "$txtPrestaton Annonces S&D", $messageInfo, '', $tabAttached);
|
||||
}
|
||||
|
||||
/** Si FTP, déplacement dans les dossiers adéquats **/
|
||||
if ($tabAdherent['supportPrestation']=='ftp' || $tabAdherent['supportPrestation']=='web') {//$repProduction.$ficProduction
|
||||
$repFtpClient='/home/data/ftp/'.strtolower($tabAdherent['nomClient']);
|
||||
@ -1253,32 +1413,6 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
||||
}
|
||||
}
|
||||
|
||||
if ($mailTo) {
|
||||
$tabAttached=array($repBakClient.'/'.$ficProduction);
|
||||
$messageInfo="Bonjour,
|
||||
|
||||
Veuillez trouver le fichier d'annonces Scores & Décisions relatives à votre abonnement.
|
||||
|
||||
Bien Cordialement,
|
||||
Le service Support.
|
||||
|
||||
--
|
||||
|
||||
SCORES & DECISIONS
|
||||
Service support
|
||||
1, rue de Clairefontaine - 78120 RAMBOUILLET
|
||||
tél : 33 (0)1 75 43 80 10
|
||||
fax : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
http://www.scores-decisions.com/
|
||||
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises
|
||||
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
|
||||
sendMail('production@scores-decisions.com', $mailTo.',contact@scores-decisions.com', "$txtPrestaton Annonces S&D", $messageInfo, '', $tabAttached);
|
||||
}
|
||||
|
||||
if ($mailSuivi) {
|
||||
$strAnnRubs='';
|
||||
foreach ($tabRubFic as $libRub=>$nbAnnRub)
|
||||
@ -1302,7 +1436,7 @@ Informations compl
|
||||
|
||||
(*) : une même annonce pouvant être ventillée dans plusieurs chapitres, il est possible que la somme des rubriques dépasse le nombre d'annonces du fichier
|
||||
";/*@todo Nombre d'annonces et ventilation par chapitre !*/
|
||||
sendMail('production@scores-decisions.com', $mailSuivi, "$txtPrestaton Annonces S&D en télétransmission", $txtMsgPresta);
|
||||
@sendMail('production@scores-decisions.com', $mailSuivi.',support@scores-decisions.com', "$txtPrestaton Annonces S&D en télétransmission", $txtMsgPresta);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1314,11 +1448,49 @@ echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
|
||||
die();
|
||||
|
||||
function genereLigne200($siren, $nic) {
|
||||
global $iInsee, $a;
|
||||
global $iInsee, $a, $iDb2, $iRnvp;
|
||||
$a=$iInsee->getIdentiteEntreprise($siren,$nic);
|
||||
$b=$iInsee->getInfosNotice($siren,$nic);
|
||||
$c=$iInsee->getAdresse($siren,$nic);
|
||||
|
||||
$tmp=$iDb2->select('jo.etablissements_act', 'bilType, bilAnnee, bilTca, bilFL', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC, false);
|
||||
if (count($tmp)>0) {
|
||||
$tcaSED=$tmp[0]['bilTca'];
|
||||
$tcaSEDtype=$tmp[0]['bilType'];
|
||||
$tcaSEDannee=$tmp[0]['bilAnnee'];
|
||||
$tcaSEDmt=$tmp[0]['bilFL'];
|
||||
} else {
|
||||
$tcaSED=' ';
|
||||
$tcaSEDtype='I';
|
||||
$tcaSEDannee='0000';
|
||||
$tcaSEDmt=0;
|
||||
}
|
||||
|
||||
// Forcage pour idclient=3 nimes metropole !!!
|
||||
// if ($idClient==3 && $tcaSED<>' ') $a['TrancheCA']=$tcaSED;
|
||||
|
||||
$tabRnvp=$iRnvp->getAdresseRnvpSource(2, $a['SourceId']);
|
||||
$codeRnvp=$tabRnvp['CQAdrRnvp']*1;
|
||||
if ($codeRnvp>0) {
|
||||
$L1rnvp=strtr($tabRnvp['L1rnvp'],'/*',' ');
|
||||
$L2rnvp=$tabRnvp['L2rnvp'];
|
||||
$L3rnvp=$tabRnvp['L3rnvp'];
|
||||
$L4rnvp=$tabRnvp['L4rnvp'];
|
||||
$L5rnvp=$tabRnvp['L5rnvp'];
|
||||
$L6rnvp=$tabRnvp['L6rnvp'];
|
||||
$L7rnvp=$tabRnvp['L7rnvp'];
|
||||
} else {
|
||||
$L1rnvp=strtr($c['L1_NOM'],'/*',' ');
|
||||
$L2rnvp=$c['L2_NOM2'];
|
||||
$L3rnvp=$c['L3_ADRCOMP'];
|
||||
$L4rnvp=$c['L4_VOIE'];
|
||||
$L5rnvp=$c['L5_DISTSP'];
|
||||
$L6rnvp=$c['L6_POST'];
|
||||
$L7rnvp=$c['L7_PAYS'];
|
||||
}
|
||||
|
||||
// Forcage pour idclient=3 nimes metropole !!!
|
||||
//if ($idClient==3 && $tcaSED<>' ') $a['TrancheCA']=$tcaSED;
|
||||
$str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
|
||||
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
|
||||
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
|
||||
@ -1448,22 +1620,22 @@ function genereLigne200($siren, $nic) {
|
||||
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab
|
||||
*/
|
||||
'00000000000'.
|
||||
initstr(1, 1 ) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP
|
||||
initstr($c['L1_NOM'], 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise
|
||||
initstr($c['L2_NOM2'], 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom
|
||||
initstr($c['L3_ADRCOMP'], 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse
|
||||
initstr($c['L4_VOIE'], 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse
|
||||
initstr($c['L5_DISTSP'], 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale
|
||||
initstr($c['L6_POST'], 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc..
|
||||
initstr($c['L7_PAYS'], 38 ) . // Facultatif L7_ETRG Ligne 7 : Pays si étranger
|
||||
initstr($codeRnvp, 1 , '0', ALIGN_RIGHT) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP
|
||||
initstr($L1rnvp, 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise
|
||||
initstr($L2rnvp, 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom
|
||||
initstr($L3rnvp, 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse
|
||||
initstr($L4rnvp, 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse
|
||||
initstr($L5rnvp, 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale
|
||||
initstr($L6rnvp, 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc..
|
||||
initstr($L7rnvp, 38 ) .
|
||||
initstr($b['insEAEANN'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE*
|
||||
initstr($b['insEAEAPEN'], 5 ) . // Facultatif EAEAPEN Activité principale de l'entreprise issue des EAE
|
||||
initstr($b['insEAESEC1N'], 5 ) . // Facultatif inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE
|
||||
initstr($b['insEAESEC2N'], 5 ) . // Facultatif inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE
|
||||
initstr($b['insEAESEC3N'], 5 ) . // Facultatif inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE
|
||||
initstr($b['insEAESEC4N'], 5 ) . // Facultatif inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE
|
||||
initstr($a['GeoLat'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984)
|
||||
initstr($a['GeoLon'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984)
|
||||
initstr($a['GeoLat'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984)
|
||||
initstr($a['GeoLon'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984)
|
||||
initstr($a['GeoPrecis'], 1 , '0', ALIGN_RIGHT) . // Facultatif GPSP Niveau de précision du géocodage
|
||||
initstr($a['GeoInfos']['NZUS'], 10 ) . // Facultatif ZUS Identifiant de la Zone Urbaine Sensible
|
||||
initstr($a['GeoInfos']['NZRU'], 10 ) . // Facultatif ZRU Identifiant de la Zone de Rénovation Urbaine
|
||||
@ -1475,18 +1647,16 @@ function genereLigne200($siren, $nic) {
|
||||
initstr($a['TvaAttribue'], 1 , '0', ALIGN_RIGHT) . // Facultatif TVAVALIDE Numéro de TVA validé
|
||||
initstr($a['AncienSiege'], 1 , '0', ALIGN_RIGHT) . // Facultatif ANCIENSIEGE Ancien siège
|
||||
initstr($a['Isin'], 12 ) . // Facultatif CODEISIN Code ISIN de l'entreprise si cotation en bourse
|
||||
// A voir
|
||||
initstr($a['dir1NomPrenom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant
|
||||
initstr('', 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant
|
||||
initstr('', 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant
|
||||
initstr($a['dir1Nom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant
|
||||
initstr($a['dir1Prenom'], 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant
|
||||
initstr($a['dir1NomUsage'], 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant
|
||||
initstr(str_replace('-','',$a['dir1DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR1DNAISS Date de naissance
|
||||
initstr($a['dir1LieuNaiss'], 35 ) . // Facultatif PPDIR1LNAISS Lieu de Naissance
|
||||
initstr($a['dir1Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1FONC Code Fonction
|
||||
initstr(str_replace('-','',$a['dir1DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant
|
||||
// A voir
|
||||
initstr($a['dir2NomPrenom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant
|
||||
initstr('', 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant
|
||||
initstr('', 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant
|
||||
initstr($a['dir2Nom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant
|
||||
initstr($a['dir2Prenom'], 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant
|
||||
initstr($a['dir2NomUsage'], 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant
|
||||
initstr(str_replace('-','',$a['dir2DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant
|
||||
initstr($a['dir2LieuNaiss'], 35 ) . // Facultatif PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant
|
||||
initstr($a['dir2Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2FONC Code Fonction du 2ème ppl dirigeant
|
||||
@ -1495,7 +1665,12 @@ function genereLigne200($siren, $nic) {
|
||||
initstr($a['bilanMois'], 2 , '0', ALIGN_RIGHT) . // Facultatif BILANDUREE Durée du dernier exercice disponible
|
||||
initstr($a['bilanFL'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANCA Chiffre d'affaires au dernier bilan disponible
|
||||
initstr($a['bilanHN'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANRES Résultat au dernier bilan disponible
|
||||
initstr('', 41 ) ; // Facultatif FILLER1 Zone libre
|
||||
initstr($tcaSED, 1 ) . // Tranche de CA SED
|
||||
initstr($tcaSEDtype, 1 ) . // Type de tranche de CA : (R)éel, (I)nconnu ou (E)stimé
|
||||
initstr($tcaSEDannee, 4 ) . // Année du CA
|
||||
initstr($a['dir1Genre'], 1 ) . // PPDIR1 Genre
|
||||
initstr($a['dir2Genre'], 1 ) . // PPDIR2 Genre
|
||||
initstr(' ', 33 ) ; // Facultatif FILLER1 Zone libre
|
||||
|
||||
return $str;
|
||||
}
|
||||
|
99
batch/diffusionCegedim.php
Normal file
99
batch/diffusionCegedim.php
Normal file
@ -0,0 +1,99 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMScores.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
|
||||
global $iDb2,$iDb3,$iLiens,$iBilan,$iInsee,$date;
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
|
||||
$dateDebut=date('Y-m-d', mktime(0, 0, 0, date('m')-1, 1, date('Y')));
|
||||
$dateFin =date('Y-m-d', mktime(0, 0, 0, date('m'), 0, date('Y')));
|
||||
$modeDebug=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Traitement du fichier spécifique des radiations pour Cegedim.
|
||||
|
||||
Options :
|
||||
-v Verbosité maximum
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1)
|
||||
{
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (strtolower(substr($argv[$i],1,1))) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
|
||||
}
|
||||
} else $tabFichier[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
|
||||
// Si pas de date de début alors on prend le 1er jour du mois précédent
|
||||
$mailTo='yves.lauliac@cegedim.fr,didier.pelet@cegedim.fr,chantal.labbe@cegedim.fr,isabelle.huge@cegedim.fr,ylenaour@scores-decisions.com';
|
||||
//$mailTo='ylenaour@scores-decisions.com';
|
||||
$nomFichier='/tmp/radiationCegedimSetD_'.substr($dateDebut,0,7).'.csv';
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Début de la production du fichier Cegedim pour la période $dateDebut à $dateFin.".EOL;
|
||||
|
||||
$nbRows=$iDb->select('bodacc_detail',
|
||||
"siren, nic, LPAD(IF(codePostal=0, codePostalSiege,codePostal),5,'0') as codePostal",
|
||||
"id>=18000000 AND Bodacc_Date_Parution BETWEEN '$dateDebut' AND '$dateFin' AND Rubrique='radiations'", false, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows radiations Cegedim...".EOL;
|
||||
$nbLignes=0;
|
||||
$fp=fopen($nomFichier,'w');
|
||||
fwrite($fp, "siren;nic;cp".EOL);
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$siren=$tabTmp['siren'];
|
||||
$nic=$tabTmp['nic'];
|
||||
$cp=$tabTmp['codePostal'];
|
||||
fwrite($fp, "$siren;$nic;$cp".EOL);
|
||||
$nbLignes++;
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de la production du fichier Cegedim ($nbLignes lignes/$nbRows).".EOL;
|
||||
|
||||
$tabAttached=array($nomFichier);
|
||||
$nomFichierBase=basename($nomFichier);
|
||||
|
||||
$messageInfo="Bonjour,
|
||||
|
||||
Veuillez trouver ci-joint le fichier Scores & Décisions relatif à votre prestation contractuelle.
|
||||
Le fichier se nomme $nomFichierBase et contient $nbLignes lignes.
|
||||
|
||||
Bien Cordialement,
|
||||
Le service Support.
|
||||
|
||||
--
|
||||
|
||||
SCORES & DECISIONS
|
||||
Service support
|
||||
1, rue de Clairefontaine - 78120 RAMBOUILLET
|
||||
tél : 33 (0)1 75 43 80 10
|
||||
fax : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
http://www.scores-decisions.com/
|
||||
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises
|
||||
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
|
||||
@sendMail('production@scores-decisions.com', $mailTo, "Prestation Cegedim Radiation", $messageInfo, '', $tabAttached);
|
||||
|
||||
die();
|
||||
|
||||
?>
|
@ -1,13 +1,5 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
/*
|
||||
$tabSiret=array(19330142100015,
|
||||
19331460600016,
|
||||
39186692800016,
|
||||
15400073100013,
|
||||
39909992800018,
|
||||
18330008600067
|
||||
);*/
|
||||
|
||||
function exporte($txt, $lon, $sep="\t") {
|
||||
$txt=strtr(trim($txt),array('''=>"'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
|
||||
@ -82,123 +74,29 @@ echo date ('Y/m/d - H:i:s')." - Il y a $nbRows communes avec des adresses de dom
|
||||
while($tabCom=$iDb->fetch(MYSQL_ASSOC))
|
||||
$tabComDom['_'.$tabCom['depComEt']]=1;
|
||||
|
||||
|
||||
/*
|
||||
$nbRows=$iDb->select('etablissements_act', 'DISTINCT sirenGrp', 'sirenGrp>1000', false, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbRows groupes à mettre à jour...".EOL;
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$siren=$entrep['sirenGrp'];
|
||||
$iDb2->update('etablissements_act', array('sirenGrp'=>$siren), "siren=$siren") or die('Err4:'.mysql_error());
|
||||
}
|
||||
|
||||
die();
|
||||
*
|
||||
$fields='id, siren, nic, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com';
|
||||
|
||||
$nbRows=$iDb->select('etablissements_act', 'COUNT(*) AS nb', '1', true, MYSQL_ASSOC);
|
||||
$nbRowsTot=$nbRows[0]['nb'];
|
||||
echo date('Y/m/d - H:i:s') ." - Début de l'export des $nbRowsTot établissements actifs...".EOL;
|
||||
$iLimitNb=100000;
|
||||
|
||||
for ($iLimit=8100000; $iLimit<$nbRowsTot; $iLimit+=$iLimitNb) {
|
||||
$nbRows=$iDb->select('etablissements_act', $fields, "1 LIMIT $iLimit, $iLimitNb", true, MYSQL_ASSOC, true);
|
||||
if (mysql_errno()>0) die(date('Y/m/d - H:i:s') ." - Erreur SQL : ".mysql_error().EOL);
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises à diffuser ($iLimit, $iLimitNb)...".EOL;
|
||||
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$numRow++;
|
||||
$siren=$entrep['siren'];
|
||||
$nic=$entrep['nic'];
|
||||
$siret=$siren.$nic;
|
||||
$dep=$entrep['adr_dep'];
|
||||
$com=$entrep['adr_com'];
|
||||
if ($dep*1>0 && $dep*1<10) { $dep=$dep*1; $depCom='0'.$dep.$com; }
|
||||
else $depCom=substr(''.$dep,0,2).$com;
|
||||
if (@$tabComDom['_'.$depCom]==1) {
|
||||
//echo date('Y/m/d - H:i:s') ." - $depCom dans \$tabCom...".EOL;
|
||||
|
||||
$tabDom=@$iInsee->infoAdresseDom( $entrep['adr_num'],
|
||||
$entrep['adr_btq'],
|
||||
$entrep['adr_typeVoie'],
|
||||
$entrep['adr_libVoie'],
|
||||
$entrep['adr_comp'],
|
||||
$entrep['adr_cp'],
|
||||
$entrep['adr_ville']);
|
||||
if (is_array($tabDom) && count($tabDom)>0) {
|
||||
$nbDom++;
|
||||
$tabUpdate=array('adrDom'=>1);
|
||||
if (preg_match('/^CHEZ (.*)$/i',$entrep['adr_comp'], $matches) &&
|
||||
!preg_match('/ M | M. | MR | MME | MLLE /i',$entrep['adr_comp']))
|
||||
$tabUpdate=array('adrDom'=>2);
|
||||
|
||||
$iDb->update('etablissements_act', $tabUpdate, "siren=$siren AND nic=$nic");
|
||||
}
|
||||
}// else echo date('Y/m/d - H:i:s') ." - $depCom hors \$tabCom...".EOL;
|
||||
}
|
||||
}
|
||||
|
||||
die();
|
||||
*/
|
||||
|
||||
$iBilan=new MBilans(0);
|
||||
$iCotation=new ICotation(array());
|
||||
$iLiens=new MLiens(0);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion des Etablissements.\n";
|
||||
/*
|
||||
// DEBUT TEST maisonMere
|
||||
//$nbRows=$iDb->select('etablissements_act', 'DISTINCT siren', 'nbActio>0 AND siren>10000 AND sirenGrp IS NULL', true, MYSQL_ASSOC, true);
|
||||
$nbRows=$iDb->select('etablissements_act', 'DISTINCT siren', 'nbActio>0 AND siren>439752767 AND sirenGrp IS NULL', true, MYSQL_ASSOC, true);
|
||||
$j=0;
|
||||
$tabSirenVisites=array();
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$j++;
|
||||
$siren=$entrep['siren'];
|
||||
echo date ('Y/m/d - H:i:s')." - $j/$nbRows - Siren $siren : ";
|
||||
if (isset($tabSirenVisites[$siren*1])) {
|
||||
$sirenMere=$tabSirenVisites[$siren];
|
||||
if ($siren<>$sirenMere)
|
||||
echo "maison mère $sirenMere (EN CACHE)";
|
||||
} else {
|
||||
$sirenMere=@$iLiens->getMaisonMereFr($siren);
|
||||
if ($siren<>$sirenMere) {
|
||||
echo "maison mère $sirenMere";
|
||||
foreach ($iLiens->tabSirenVisites as $siren1) {
|
||||
$tabSirenVisites[$siren1*1]=$sirenMere;
|
||||
}
|
||||
}
|
||||
}
|
||||
echo EOL;
|
||||
if ($siren<>$sirenMere)
|
||||
$iDb2->update('etablissements_act', array('sirenGrp'=>$sirenMere), "siren=$siren") or die('Err3:'.mysql_error());
|
||||
}
|
||||
die("$nbRows traitées".EOL);
|
||||
// FIN TEST maisonMere
|
||||
*/
|
||||
/*
|
||||
$tabBilans=array();
|
||||
$nbRows=$iDb->select('bilans', 'DISTINCT siren', "dateExercice>=20080101 AND typeBilan IN('N','S')", true, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises avec Bilans...".EOL;
|
||||
while($tabBilan=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$tabBilans[]=$tabBilan['siren'];
|
||||
}*/
|
||||
|
||||
$fields='id, source, source_id, triCode, autre_id, siren, nic, siege, raisonSociale, enseigne, sigle,
|
||||
adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com, tel, fax,
|
||||
cj, capital, capitalDev, capitalSrc, ape_etab, ape_entrep, age_entrep, age_etab, tca, tcaexp,
|
||||
ape4_etab, ape4_entrep, dateCrea_etab, teff_entrep, teff_etab, eff_entrep, eff_etab, distSP, achPost,
|
||||
dirCiv, dirNom, dirPrenom, dirFct, nbEtab, nbActio, bilType, bilEE, bilFL, bilFK, bilFR, bilGF, bilGP, bilGU, bilGW, bilHD, bilHH, bilHL, bilHM, bilHN, bilYP, tvaIntraValide, tvaIntraCle';
|
||||
ape4_etab, ape4_entrep, dateCrea_etab, dateCrea_ent, dateImmat, teff_entrep, teff_etab, eff_entrep, eff_etab, distSP, achPost,
|
||||
dirCiv, dirNom, dirPrenom, dirFct, nbEtab, nbActio, bilType, bilAnnee, bilCloture, bilDuree, bilTca,
|
||||
bilEE, bilFL, bilFK, bilFR, bilGF, bilGP, bilGU, bilGW, bilHD, bilHH, bilHL, bilHM, bilHN, bilYP,
|
||||
tvaIntraValide, tvaIntraCle';
|
||||
|
||||
//if (0) {
|
||||
$nbRows=$iDb->select('etablissements_actmp', 'COUNT(*) AS nb', '1', false, MYSQL_ASSOC);
|
||||
$nbRows=$iDb->select('etablissements_act_tmp', 'COUNT(*) AS nb', '1', false, MYSQL_ASSOC);
|
||||
$nbRowsTot=$nbRows[0]['nb'];
|
||||
echo date('Y/m/d - H:i:s') ." - Début de l'export des $nbRowsTot établissements actifs...".EOL;
|
||||
$iLimitNb=100000;
|
||||
$fp=fopen('./veolia_'.date('Ymd').'.txt','w');
|
||||
|
||||
for ($iLimit=0; $iLimit<$nbRowsTot; $iLimit+=$iLimitNb) {
|
||||
$nbRows=$iDb->select('etablissements_actmp', $fields, "1 LIMIT $iLimit, $iLimitNb", false, MYSQL_ASSOC, true);
|
||||
$nbRows=$iDb->select('etablissements_act_tmp', $fields, "1 LIMIT $iLimit, $iLimitNb", false, MYSQL_ASSOC, true);
|
||||
if (mysql_errno()>0) die(date('Y/m/d - H:i:s') ." - Erreur SQL : ".mysql_error().EOL);
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises à diffuser ($iLimit, $iLimitNb)...".EOL;
|
||||
@ -206,6 +104,9 @@ echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises
|
||||
$numRow=$sirenPre=0;
|
||||
$tabTva=array();
|
||||
$anneeEstime=date('Y')-2;
|
||||
$clotureEstime=$anneeEstime.'-12-31';
|
||||
$clotureEstimeYmd=$anneeEstime.'1231';
|
||||
|
||||
$tabSirenVisites=array();
|
||||
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
@ -264,25 +165,43 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$strOutput.=exporte(sprintf("%10s",preg_replace('/( |\-|\.)/', '', $entrep['tel'])), 10);
|
||||
$strOutput.=exporte(sprintf("%10s",preg_replace('/( |\-|\.)/', '', $entrep['fax'])), 10);
|
||||
$strOutput.=exporte($entrep['dateCrea_etab'], 8);
|
||||
|
||||
$dateCreationEnt=$entrep['dateCrea_ent'];
|
||||
/*if $dateCreationEnt=$entrep['dateCrea_ent'];
|
||||
dateCrea_etab, dateCrea_ent, dateImmat
|
||||
dateCrea_*/
|
||||
|
||||
if (($entrep['siege']*1)==1) $strOutput.=exporte('01', 2);
|
||||
else $strOutput.=exporte('02', 2);
|
||||
$strOutput.=exporte($entrep['nbEtab'], 5);
|
||||
$strOutput.=exporte($entrep['cj'], 4);
|
||||
$fJur=$entrep['cj'];
|
||||
$strOutput.=exporte($entrep['capital'], 13);
|
||||
if ($entrep['capitalDev']=='EUR' || $entrep['capitalDev']=='')
|
||||
$strOutput.=exporte('Euro', 10);
|
||||
else
|
||||
$strOutput.=exporte($entrep['capitalDev'], 10);
|
||||
|
||||
$naf4=$entrep['ape4_etab'];
|
||||
$naf5=$entrep['ape_etab'];
|
||||
if ($naf4=='') $naf4=@$iCotation->tabNaf21[$naf5];
|
||||
$naf4lib=@$iInsee->getLibelleNaf($naf4);
|
||||
if ($naf4lib=='') $tabNaf4inconnu[]=$naf4;
|
||||
$strOutput.=exporte($naf4, 4); // NAF4
|
||||
$strOutput.=exporte($naf4lib, 90);
|
||||
$tabNace=array( 'NaceEtab'=>@$iInsee->getCodeNace($entrep['ape_etab']),
|
||||
'NaceEntrep'=>@$iInsee->getCodeNace($entrep['ape_entrep']));
|
||||
$tabNace=array();
|
||||
$naf5et=$entrep['ape_etab'];
|
||||
$naf5en=$entrep['ape_entrep'];
|
||||
$naf4et=$entrep['ape4_etab'];
|
||||
$naf4en=$entrep['ape4_entrep'];
|
||||
if ($naf4et=='' || $naf4et=='000Z') $tabNace['ape4_etab']=$naf4et=@$iCotation->tabNaf21[$naf5et];
|
||||
if ($naf4en=='' || $naf4en=='000Z') $tabNace['ape4_entrep']=$naf4en=@$iCotation->tabNaf21[$naf5en];
|
||||
$naf4etlib=@$iInsee->getLibelleNaf($naf4et);
|
||||
if ($naf4etlib=='') $tabNaf4inconnu[]=$naf4et;
|
||||
$strOutput.=exporte($naf4et, 4); // NAF4
|
||||
$strOutput.=exporte($naf4etlib, 90);
|
||||
|
||||
$naf5etlib=@$iInsee->getLibelleNaf($naf5);
|
||||
if ($naf5etlib=='') $tabNaf5inconnu[]=$naf5et;
|
||||
$strOutput.=exporte($naf5et, 5);
|
||||
$strOutput.=exporte($naf5etlib, 90);
|
||||
|
||||
$tabNace['NaceEtab']=@$iInsee->getCodeNace($entrep['ape_etab']);
|
||||
$tabNace['NaceEntrep']=@$iInsee->getCodeNace($entrep['ape_entrep']);
|
||||
|
||||
if (@$tabComDom['_'.$depCom]==1) {
|
||||
$tabDom=@$iInsee->infoAdresseDom( $entrep['adr_num'],
|
||||
$entrep['adr_btq'],
|
||||
@ -326,7 +245,7 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
}
|
||||
|
||||
// Lecture du dernier bilan
|
||||
$uniteMultiple=1;
|
||||
/*$uniteMultiple=1;
|
||||
$tabPostes=array();
|
||||
//if (in_array($siren, $tabBilans)) {
|
||||
$tabBilan=$iDb2->select('bilans', 'siren, dateExercice, dureeExercice, unite, typeBilan, postes', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 1", false, MYSQL_ASSOC);
|
||||
@ -344,72 +263,59 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
}
|
||||
if ($tabBilan['typeBilan']=='S')
|
||||
$tabPostes=@$iBilan->bilanSimplifie2Normal($tabPostes);
|
||||
*/
|
||||
}
|
||||
|
||||
$effectifFr=@$tabPostes['YP']*1;
|
||||
$effectifFr=@$entrep['bilYP']*1;
|
||||
if ($effectifFr==0)
|
||||
$effectifFr=$entrep['eff_entrep'];
|
||||
|
||||
$strOutput.=exporte($effectifFr, 6);
|
||||
$strOutput.=exporte($entrep['eff_etab'], 6);
|
||||
|
||||
if (@count($tabPostes)>10) {
|
||||
$montantCA=@$tabPostes['FL']*$uniteMultiple;
|
||||
$strOutput.=exporte('R', 1); // Réel , Inconnu, Estimé
|
||||
$strOutput.=exporte(str_replace('NS','', @$tabPostes['FL']*$uniteMultiple), 13);
|
||||
$strOutput.=exporte(str_replace('NS','', @$tabPostes['FK']*$uniteMultiple), 13);
|
||||
$strOutput.=exporte(str_replace('NS','', @$tabPostes['HN']*$uniteMultiple), 13);
|
||||
if ($entrep['bilAnnee']>1900) {
|
||||
$montantCA=@$entrep['bilFL'];
|
||||
|
||||
$iDb2->update('etablissements_actmp',
|
||||
array_merge($tabTva, $tabNace,
|
||||
array( 'bilType' =>'R',
|
||||
'bilAnnee' =>@substr($tabBilan['dateExercice'],0,4),
|
||||
'bilCloture'=>@$tabBilan['dateExercice'],
|
||||
'bilDuree' =>@$tabBilan['dureeExercice'],
|
||||
'bilTca' =>$iInsee->getTca($montantCA),
|
||||
'bilEE' =>@$tabPostes['EE']*$uniteMultiple,
|
||||
'bilFL' =>$montantCA,
|
||||
'bilFK' =>@$tabPostes['FK']*$uniteMultiple,
|
||||
'bilFR' =>@$tabPostes['FR']*$uniteMultiple,
|
||||
'bilGF' =>@$tabPostes['GF']*$uniteMultiple,
|
||||
'bilGP' =>@$tabPostes['GP']*$uniteMultiple,
|
||||
'bilGU' =>@$tabPostes['GU']*$uniteMultiple,
|
||||
'bilGW' =>@$tabPostes['GW']*$uniteMultiple,
|
||||
'bilHD' =>@$tabPostes['HD']*$uniteMultiple,
|
||||
'bilHH' =>@$tabPostes['HH']*$uniteMultiple,
|
||||
'bilHL' =>@$tabPostes['HL']*$uniteMultiple,
|
||||
'bilHM' =>@$tabPostes['HM']*$uniteMultiple,
|
||||
'bilHN' =>@$tabPostes['HN']*$uniteMultiple,
|
||||
'bilYP' =>@$tabPostes['YP'])),
|
||||
"siren=$siren AND nic=$nic") or die('Err1:'.mysql_error());
|
||||
$strOutput.=$entrep['bilType']; // Réel , Inconnu, Estimé
|
||||
$strOutput.=exporte(str_replace('NS','', @$entrep['bilFL']), 13);
|
||||
$strOutput.=exporte(str_replace('NS','', @$entrep['bilFK']), 13);
|
||||
$strOutput.=exporte(str_replace('NS','', @$entrep['bilHN']), 13);
|
||||
|
||||
} elseif ($naf5<>'' && $naf5<>'0000Z' && $effectifFr>0) {
|
||||
$caEstime=$iInsee->getCAnafEffectif($naf5, $effectifFr);
|
||||
$montantEBE=@$entrep['bilEBE'];
|
||||
|
||||
$tabUpdate=array_merge($tabTva, $tabNace);//, array('bilTca'=>$iInsee->getTca($montantCA)));
|
||||
|
||||
} elseif ($naf5en<>'' && $naf5en<>'0000Z' && ($effectifFr>0 || ($fJur<2000 && $effectifFr==0)) && $dateCreationEnt<$clotureEstimeYmd) {
|
||||
/** On estime le CA si :
|
||||
* - NAF valide,
|
||||
* - effectif>0 ou CJ=1xxx
|
||||
* - date de création >= date de cloture estimée
|
||||
**/
|
||||
if ($fJur<2000 && $effectifFr==0)
|
||||
$caEstime=$iInsee->getCAnafEffectif($naf5en, 1);
|
||||
else
|
||||
$caEstime=$iInsee->getCAnafEffectif($naf5en, $effectifFr);
|
||||
$strOutput.=exporte('E', 1); // Réel , Inconnu, Estimé
|
||||
$strOutput.=exporte($caEstime, 13); // CA France
|
||||
$strOutput.=exporte('', 13); // CA Export
|
||||
$strOutput.=exporte('', 13); // Résultat Net
|
||||
$iDb2->update('etablissements_actmp',
|
||||
array_merge($tabTva, $tabNace,
|
||||
|
||||
$tabUpdate=array_merge($tabTva, $tabNace,
|
||||
array( 'bilType' =>'E',
|
||||
'bilAnnee' =>$anneeEstime,
|
||||
'bilCloture'=>$anneeEstime.'-12-31',
|
||||
'bilCloture'=>$clotureEstime,
|
||||
'bilDuree' =>12,
|
||||
'bilTca' =>$iInsee->getTca($caEstime),
|
||||
'bilFL' =>$caEstime)),
|
||||
"siren=$siren AND nic=$nic") or die('Err2');
|
||||
'bilFL' =>$caEstime));
|
||||
} else {
|
||||
$strOutput.=exporte('I', 1); // Réel , Inconnu, Estimé
|
||||
$strOutput.=exporte('', 13);
|
||||
$strOutput.=exporte('', 13);
|
||||
$strOutput.=exporte('', 13);
|
||||
$iDb2->update('etablissements_actmp', array_merge($tabTva, $tabNace), "siren=$siren AND nic=$nic") or die('Err3:'.mysql_error());
|
||||
$tabUpdate=array_merge($tabTva, $tabNace);
|
||||
}
|
||||
|
||||
$strOutput.=exporte($naf5, 5);
|
||||
$naf5lib=@$iInsee->getLibelleNaf($naf5);
|
||||
if ($naf5lib=='') $tabNaf5inconnu[]=$naf5;
|
||||
$strOutput.=exporte($naf5lib, 90);
|
||||
$iDb2->update('etablissements_act_tmp', $tabUpdate, "siren=$siren AND nic=$nic") or die('Err3:'.mysql_error());
|
||||
|
||||
fwrite($fp, $strOutput.EOL);
|
||||
$sirenPre=$siren;
|
||||
@ -418,11 +324,11 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
}
|
||||
}
|
||||
|
||||
$nbRows=$iDb->select('etablissements_actmp', 'DISTINCT sirenGrp', 'sirenGrp>1000', false, MYSQL_ASSOC, true);
|
||||
$nbRows=$iDb->select('etablissements_act_tmp', 'DISTINCT sirenGrp', 'sirenGrp>1000', false, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbRows groupes à mettre à jour...".EOL;
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$siren=$entrep['sirenGrp'];
|
||||
$iDb2->update('etablissements_actmp', array('sirenGrp'=>$siren), "siren=$siren") or die('Err4:'.mysql_error());
|
||||
$iDb2->update('etablissements_act_tmp', array('sirenGrp'=>$siren), "siren=$siren") or die('Err4:'.mysql_error());
|
||||
}
|
||||
|
||||
$tabNaf5inconnu=array_unique($tabNaf5inconnu);
|
||||
@ -430,28 +336,26 @@ $tabNaf4inconnu=array_unique($tabNaf4inconnu);
|
||||
//}
|
||||
|
||||
/** Mise à jour de la date de fin de création de la table **/
|
||||
unset($iDb);
|
||||
|
||||
$iDb=new WDB('sdv1');
|
||||
$ret=$iDb->select('sphinx_idx', 'id', "nom='jo.etablissements_act' AND createBegin IS NOT NULL AND createBegin<NOW() AND createEnd IS NULL AND indexingBegin IS NULL AND indexingEnd IS NULL", false);
|
||||
$ret=$iDb->select('sphinx_idx', 'id', "nom='jo.etablissements_act' AND createBegin IS NOT NULL AND createBegin<NOW() AND createEnd IS NULL AND indexingBegin IS NULL AND indexingEnd IS NULL ORDER BY createBegin DESC", false);
|
||||
$id=@$ret[0][0];
|
||||
$iDb->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$id") or die('Err5:'.mysql_error());
|
||||
$iDb->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$id");
|
||||
echo mysql_error().EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Historisation des anciens établissements...".EOL;
|
||||
if (!$iDb->query("INSERT IGNORE INTO jo.etablissements_act_histo SELECT * FROM jo.etablissements_act;"))
|
||||
die($iDb->getLastError());
|
||||
if (!$iDb->query("INSERT IGNORE INTO jo.etablissements_act_histo SELECT * FROM jo.etablissements_act;")) die($iDb->getLastError());
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Rotation des tables 'etablissements_act'...".EOL;
|
||||
if (!$iDb->query("DROP TABLE jo.etablissements_act_old;"))
|
||||
die($iDb->getLastError());
|
||||
if (!$iDb->query("RENAME TABLE jo.etablissements_act TO jo.etablissements_act_old;"))
|
||||
die($iDb->getLastError());
|
||||
if (!$iDb->query("RENAME TABLE jo.etablissements_actmp TO jo.etablissements_act;"))
|
||||
die($iDb->getLastError());
|
||||
if (!$iDb->query("DROP TABLE jo.etablissements_act_old;")) die($iDb->getLastError());
|
||||
if (!$iDb->query("RENAME TABLE jo.etablissements_act TO jo.etablissements_act_old;")) die($iDb->getLastError());
|
||||
if (!$iDb->query("RENAME TABLE jo.etablissements_act_tmp TO jo.etablissements_act;")) die($iDb->getLastError());
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion des Entreprises.\n";
|
||||
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Diffusion Entreprise", "$numRow établissements actifs diffusés".EOL.print_r($tabNaf5inconnu, true) .EOL. print_r($tabNaf4inconnu,true) );
|
||||
|
||||
// etablissements_act_old
|
||||
die();
|
||||
|
||||
?>
|
File diff suppressed because it is too large
Load Diff
@ -52,10 +52,10 @@ $nbSirValides=$nbSirInvalides=0;
|
||||
$nbNicValides=$nbNicInvalides=0;
|
||||
$nbInsert=0;
|
||||
|
||||
$eff69=$dateDebut=false;
|
||||
$eff69=$dateDebut=$nafAMS=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [Stock Adecco à charger]
|
||||
Traitement spécifique Adecco Diffusion des Mise à jour des champs complexes de la table 'etablissement_act' et génération du fichier spécifique Véolia.
|
||||
Traitement des fichiers spécifiques Adecco.
|
||||
|
||||
Options :
|
||||
-1 Prestation 1 Mise à jour du stock Adecco
|
||||
@ -65,9 +65,13 @@ Options :
|
||||
-c Prestation 3C Stock des liens groupes des établissements de + de 10 salariés
|
||||
-p Purger la table addeco_out
|
||||
-r=SIRET Reprendre au siret supérieur
|
||||
-f Forcer le traitement même si on n'est pas vendredi (le traitement se lance entre le 4 et le 10 du mois)
|
||||
-v Verbosité maximum
|
||||
-m Traitement AMS
|
||||
-6 Traitement des 6 à 9 salariés
|
||||
";
|
||||
$presta2='';
|
||||
$dayOfTheWeek=date('w');
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1)
|
||||
@ -77,21 +81,29 @@ if ($_SERVER['argc']>1)
|
||||
switch (strtolower(substr($argv[$i],1,1))) {
|
||||
case '1': $presta=1; break;
|
||||
case '2': $presta=2; break;
|
||||
case '6': $eff69=true; break;
|
||||
case '6': $eff69=true; $presta2='_69'; break;
|
||||
case 'm': $nafAMS=true; $presta2='ams'; break;
|
||||
case 'a': $presta=3.1; $dateDebut=substr($argv[$i],3); break;
|
||||
case 'b': $presta=3.2; $dateDebut=substr($argv[$i],3); break;
|
||||
case 'c': $presta=3.3; break;
|
||||
case 'p': $purge=true; break;
|
||||
case 'r': $siretReprise=substr($argv[$i],3); break;
|
||||
case 'f': $dayOfTheWeek=5; $mailTo='ylenaour@scores-decisions.com'; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
|
||||
}
|
||||
} else $tabFichier[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
|
||||
// Si pas de date de début alors on prend le 1er jour du mois précédent
|
||||
if (!$dateDebut) $dateDebut=date('Ymd', mktime(0, 0, 0, date('m')-1, 1, date('Y')));
|
||||
$dateDebIniYmd=20111201; // Date de début de sdémarrage de la prestation Adecco
|
||||
$dateDebYmd=substr($dateDebut,0,6).'01';
|
||||
$dateFinYmd=date('Ymt', mktime(0, 0, 0, substr($dateDebut,4,2), 1, substr($dateDebut,0,4)));
|
||||
$mailTo='jproust@scores-decisions.com,ylenaour@scores-decisions.com,support@scores-decisions.com';//,fabienne.sourbier@adecco-groupe.fr,frederic.montagne@adecco-groupe.fr';
|
||||
|
||||
if (count($tabFichier)==1) {
|
||||
/* Chargement du fichier Entrant adecco */
|
||||
$nomFichier=$tabFichier[0];
|
||||
@ -165,15 +177,22 @@ if (count($tabFichier)==1) {
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement du fichier '$nomFichier' ($nbLignes/$nbLignesLues lignes traitées dont $nbInsert insérées).".EOL;
|
||||
}
|
||||
|
||||
if ($dayOfTheWeek<>5) {
|
||||
echo date('Y/m/d - H:i:s') ." - Nous ne sommes pas Vendredi !".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
if ($presta<>1 && $presta<>2 && $presta<>3.1 && $presta<>3.2 && $presta<>3.3) {
|
||||
if (count($tabFichier)<>1)
|
||||
echo date('Y/m/d - H:i:s') ." - Prestation '$presta' inconnue !".EOL;
|
||||
die();
|
||||
}
|
||||
///home/data/clients/adecco/
|
||||
$fp=fopen('./adecco'.$presta."_$date.txt",'w');
|
||||
|
||||
$nomFichier='/home/data/clients/adecco/adecco'.$presta.$presta2."_$date.txt";
|
||||
$fp=fopen($nomFichier,'w');
|
||||
// Ligne d'entête
|
||||
fwrite($fp, "adSIREN|adNIC|adREF|adRAISON_SOCIALE|adADRESSE|adFILLER|adCP|adVILLE|adSE|SIREN|NIC|L1_NOMEN|L2_COMP|L3_CADR|L4_VOIE|L5_DISP|L6_POST|L7_ETRG|ZR1|RPET|DEPET|ARRONET|CTONET|COMET|LIBCOM|DU|TU|UU|CODPOS|ZR2|TCD|ZEMET|CODEVOIE|NUMVOIE|INDREP|TYPVOIE|LIBVOIE|ENSEIGNE|APET700|ZR3|SIEGE|TEFET|EFETCENT|ORIGINE|DCRET|MMINTRET|ACTIVNAT|LIEUACT|ACTISURF|SAISONAT|MODET|DAPET|DEFET|EXPLET|PRODPART|AUXILT|EAEANT|EAEAPET|EAESEC1T|EAESEC2T|NOMEN|SIGLE|CIVILITE|CJ|TEFEN|EFENCENT|APEN700|ZR4|APRM|TCA|RECME|DAPEN|DEFEN|DCREN|MMINTREN|MONOACT|MODEN|EXPLEN|EAEANN|EAEAPEN|EAESEC1N|EAESEC2N|EAESEC3N|EAESEC4N|NBETEXPL|TCAEXP|REGIMP|MONOREG|RPEN|DEPCOMEN|sdActif|sdEvenDate|sdEven|sdNomPrenomDir|sdYP|sdPctAct|sdSirenAct|sdNomAct".EOL);
|
||||
if ($presta<>3.2 && $presta<>3.3)
|
||||
fwrite($fp, "adSIREN|adNIC|adREF|adRAISON_SOCIALE|adADRESSE|adFILLER|adCP|adVILLE|adSE|SIREN|NIC|L1_NOMEN|L2_COMP|L3_CADR|L4_VOIE|L5_DISP|L6_POST|L7_ETRG|ZR1|RPET|DEPET|ARRONET|CTONET|COMET|LIBCOM|DU|TU|UU|CODPOS|ZR2|TCD|ZEMET|CODEVOIE|NUMVOIE|INDREP|TYPVOIE|LIBVOIE|ENSEIGNE|APET700|ZR3|SIEGE|TEFET|EFETCENT|ORIGINE|DCRET|MMINTRET|ACTIVNAT|LIEUACT|ACTISURF|SAISONAT|MODET|DAPET|DEFET|EXPLET|PRODPART|AUXILT|EAEANT|EAEAPET|EAESEC1T|EAESEC2T|NOMEN|SIGLE|CIVILITE|CJ|TEFEN|EFENCENT|APEN700|ZR4|APRM|TCA|RECME|DAPEN|DEFEN|DCREN|MMINTREN|MONOACT|MODEN|EXPLEN|EAEANN|EAEAPEN|EAESEC1N|EAESEC2N|EAESEC3N|EAESEC4N|NBETEXPL|TCAEXP|REGIMP|MONOREG|RPEN|DEPCOMEN|sdActif|sdEvenDate|sdEven|sdNomPrenomDir|sdYP|sdPctAct|sdSirenAct|sdNomAct|sdTel|LATITUDE|LONGITUDE|PRECIS".EOL);
|
||||
|
||||
//exporteAdecco('32392385400059','ref',$fp, $presta,'','','','','');
|
||||
//die();
|
||||
@ -189,7 +208,7 @@ if ($presta==1) {
|
||||
"$where $strReprise ORDER BY adSIREN ASC, adNIC ASC", true, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $tabTmp['RAISON_SOCIALE'], $tabTmp['ADRESSE'], $tabTmp['FILLER'], $tabTmp['CP'], $tabTmp['VILLE'], $tabTmp['ADSE']);
|
||||
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $nafAMS, $tabTmp['RAISON_SOCIALE'], $tabTmp['ADRESSE'], $tabTmp['FILLER'], $tabTmp['CP'], $tabTmp['VILLE'], $tabTmp['ADSE']);
|
||||
}
|
||||
/** @toto Presta 1 :
|
||||
- enregistrer chaque ligne fourni en bdd
|
||||
@ -207,62 +226,119 @@ if ($presta==1) {
|
||||
$nbRows=count($tabSiret);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siret Adecco uniques à exclure en Presta $presta...".EOL;
|
||||
/** Les Créations d'étab>10 **/
|
||||
if ($eff69) $where10='AND (insEFENCENT>5 || insTEFET>2)';
|
||||
else $where10='AND (insEFENCENT>9 || insTEFET>10)';
|
||||
/*if ($eff69) $where10='AND (insEFENCENT>5 || insTEFET>2)';
|
||||
elseif($nafAMS) $where10="AND (insTEFET IN ('00','01','02') OR insEFENCENT BETWEEN 1 AND 5) AND insCJ BETWEEN 4000 AND 6999
|
||||
AND insAPET700 IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')";
|
||||
else $where10='AND (insEFENCENT>9 || insTEFET>10)';*/
|
||||
$where10="AND (insEFENCENT>5 OR insTEFET>2 OR ((insTEFET IN ('00','01','02') OR insEFENCENT BETWEEN 1 AND 5) AND insCJ BETWEEN 4000 AND 6999
|
||||
AND insAPET700 IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')))";
|
||||
|
||||
if ($siretReprise) $strReprise=" AND CONCAT(insSIREN, insNIC)>$siretReprise ";
|
||||
if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND insDATEVE>=$dateDebut ";
|
||||
if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND (insDCRET BETWEEN $dateDebIniYmd AND $dateFinYmd OR insDCREN BETWEEN $dateDebYmd AND $dateFinYmd)";
|
||||
$nbRows=$iDb->select('insee.insee_even', "'' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret",
|
||||
"insCJ NOT BETWEEN 3000 AND 3999 AND insAPET700 NOT IN ('6820B','7020Z') AND
|
||||
(insEVE IN ('110','120','125','130','145','M0C','M0R') OR
|
||||
insEVE IN ('510','520') AND insTYPETAB IN(9,11,21,31)) $strDateDeb /*AND
|
||||
(insDATEVE>=20111201 OR insDCRET>=20111200)*/ $where10 /*AND idFlux>='2011-12-01' AND idFlux<='2012-05-01'*/ $strReprise GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true);
|
||||
(insEVE IN ('110','120','125','130','145','M0C','M0R','CE','CS','CTE','CTS','RE','RS','CC','I') OR
|
||||
insEVE IN ('510','520') AND insTYPETAB IN(9,11,21,31)) $strDateDeb $where10 $strReprise
|
||||
GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
||||
echo mysql_error().EOL;
|
||||
if (mysql_errno()>0) die();
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
if (!in_array($tabTmp['siret'], $tabSiret))
|
||||
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69);
|
||||
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $nafAMS);
|
||||
}
|
||||
} elseif ($presta==3.2) {
|
||||
/** Toutes les Fermetures **/
|
||||
if ($siretReprise) $strReprise=" AND CONCAT(insSIREN, insNIC)>$siretReprise ";
|
||||
if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND insDATEVE>=$dateDebut ";
|
||||
else die('Préciser une date de début valide !'.EOL);
|
||||
$nbRows=$iDb->select('insee.insee_even', "'' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret, insDATEVE, insEVE",
|
||||
"(insEVE IN ('400','410','430','435','795','810','M0F') OR
|
||||
insEVE IN ('510','530') AND insTYPETAB IN(8,10,20,30)) $strDateDeb $strReprise GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
||||
$iDb->query('SELECT CONCAT(siren,nic) AS siret FROM tmp.adecco_fermetures;');
|
||||
echo mysql_error().EOL;
|
||||
if (mysql_errno()>0) die();
|
||||
$tabSiret=array();
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$tabSiret[]=$tabTmp['siret'];
|
||||
}
|
||||
$tabSiret=array_unique($tabSiret);
|
||||
$nbRows=count($tabSiret);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siret Adecco uniques à exclure en Presta $presta (fermetures déjà communiquées)...".EOL;
|
||||
|
||||
//$dateDebYmd=20120701;
|
||||
if ($siretReprise) $strReprise=" AND CONCAT(insSIREN, insNIC)>$siretReprise ";
|
||||
if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND insDATEVE<=$dateFinYmd AND dateInsert>=$dateDebYmd ";
|
||||
|
||||
/* 'iCE' =>'Création établissement',
|
||||
'iCS' =>'Création siège',
|
||||
'iCTE' =>'Création établissement (transfert)',
|
||||
'iCTS' =>'Création siège (transfert)',
|
||||
'iRE' =>'Réactivation établissement',
|
||||
'iRS' =>'Réactivation siège',
|
||||
'iCC' =>'Création par le calage',
|
||||
'iI' =>'Entrée dans le champ de la diffusion commerciale',
|
||||
*/
|
||||
else die('Préciser une date de début valide !'.EOL);
|
||||
$nbRows=$iDb->select('insee.insee_even', "'' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret, insDATEVE, insEVE",
|
||||
"(insEVE IN ('400','410','430','435','795','810','M0F','SU','SE','SS','STE','STS','RI','SC','O') OR
|
||||
insEVE IN ('510','530') AND insTYPETAB IN(8,10,20,30)) $strDateDeb $strReprise GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true);
|
||||
echo "SELECT '' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret, insDATEVE, insEVE
|
||||
FROM insee.insee_even
|
||||
WHERE (insEVE IN ('400','410','430','435','795','810','M0F','SU','SE','SS','STE','STS','RI','SC','O') OR
|
||||
insEVE IN ('510','530') AND insTYPETAB IN(8,10,20,30)) $strDateDeb $strReprise GROUP BY siret ORDER BY siret ASC".EOL;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta (fermetures à transmettre)...".EOL;
|
||||
echo mysql_error().EOL;
|
||||
if (mysql_errno()>0) die();
|
||||
//die();
|
||||
|
||||
fwrite($fp, "adSIREN|adNIC|sdActif|sdEvenDate|sdEven".EOL);
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$even='';
|
||||
switch ($tabTmp['insEVE']) {
|
||||
/*'i*/
|
||||
case '400': $even.='suppression du doublon '; break;
|
||||
case 'SU':
|
||||
case '410': $even.='cessation juridique de l\'entreprise '; break;
|
||||
case '420':
|
||||
case '425': $even.='cessation économique de l\'entreprise '; break;
|
||||
case 'M0F':
|
||||
case '430':
|
||||
case 'SE':
|
||||
case 'SC':
|
||||
case '435': $even.='fermeture de l\'etablissement '; break;
|
||||
case '510':
|
||||
case 'STE':
|
||||
case 'STS':
|
||||
case '530': $even.='fermeture de l\'etablissement dans le cadre d\'un transfert '; break;
|
||||
case '620':
|
||||
case '621':
|
||||
case '650': $even.='cessation economique de l\'etablissement '; break;
|
||||
case '795': $even.='personne radiee a sa demande de SIRENE diffusion '; break;
|
||||
case '810': $even.='suppression du siren suite à refus RCS'; break;
|
||||
case 'SS': $even.='Fermeture ou désactivation du siège'; break;
|
||||
case 'RI': $even.='Refus d\'immatriculation au RCS'; break;
|
||||
case 'O': $even.='Sortie du champ de la diffusion commerciale'; break;
|
||||
default: $even.=' '; break;
|
||||
}
|
||||
$strOut=$tabTmp['SIREN'].'|'.$tabTmp['NIC'].'|0|'.$tabTmp['insDATEVE'].'|'.trim($even).EOL;
|
||||
if ($fp) fwrite($fp, str_replace(';',' ',$strOut));
|
||||
if ($fp) {
|
||||
if (!in_array($tabTmp['SIREN'].$tabTmp['NIC'], $tabSiret)) {
|
||||
fwrite($fp, str_replace(';',' ',$strOut));
|
||||
$iDb3->insert('adecco_fermetures', array( 'siren'=>$tabTmp['SIREN'],
|
||||
'nic'=>$tabTmp['NIC'],
|
||||
'evenDate'=>$tabTmp['insDATEVE'],
|
||||
'even'=>trim($even),
|
||||
'presta'=>$presta,
|
||||
'prestaDate'=>$date));
|
||||
}
|
||||
}
|
||||
echo $strOut;
|
||||
}
|
||||
} elseif ($presta==3.3) {
|
||||
if ($siretReprise) $strReprise=" AND concat(siren,nic)>$siretReprise ";
|
||||
/** Toutes les Liens Groupe des étabs > 9 salariés **/
|
||||
if ($eff69) $where10='AND eff_etab>5';
|
||||
else $where10='AND eff_etab>9';
|
||||
/* if ($eff69) $where10='AND eff_etab>5';
|
||||
elseif($nafAMS) $where10="AND (eff_etab>5 OR (teff_etab IS NOT NULL AND eff_etab IN (0,1,2) AND presentRcs=1
|
||||
AND ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')))";
|
||||
else $where10='AND eff_etab>9';*/
|
||||
$where10="AND (eff_etab>5 OR (teff_etab IS NOT NULL AND eff_etab IN (0,1,2) AND presentRcs=1
|
||||
AND ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')))";
|
||||
$nbRows=$iDb->select('jo.etablissements_act', "'' AS REF, siren AS SIREN, nic AS NIC, concat(siren,nic) AS siret, sirenGrp",
|
||||
"cj NOT BETWEEN 3000 AND 3999 AND ape_etab NOT IN ('6820B','7020Z') $where10 AND sirenGrp>1000 $strReprise ORDER BY siren, nic", true, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
||||
@ -322,31 +398,68 @@ if ($presta==1) {
|
||||
$nbRows=count($tabSiret);*/
|
||||
//echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siret Adecco uniques à exclure en Presta $presta...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Préparation des siret Adecco uniques à exclure en Presta $presta...".EOL;
|
||||
if ($eff69) $where10='AND (eff_etab>5 OR teff_etab>2) AND (eff_etab<10 OR teff_etab<11)';
|
||||
/*if ($eff69) $where10='AND (eff_etab>5 OR teff_etab>2) AND (eff_etab<10 OR teff_etab<11)';
|
||||
elseif($nafAMS) $where10="AND eff_etab>=0 AND eff_etab<3 AND teff_etab IS NOT NULL AND presentRcs=1
|
||||
AND ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')";
|
||||
else $where10='AND (eff_etab>9 OR teff_etab>10)';
|
||||
*/
|
||||
$where10="AND (eff_etab>5 OR ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B'))";
|
||||
|
||||
|
||||
if ($siretReprise) $strReprise=" AND concat(siren,nic)>$siretReprise ";
|
||||
$nbRows=$iDb->select('jo.etablissements_act', "'' AS REF, siren AS SIREN, nic AS NIC, concat(siren, nic) AS siret",
|
||||
"cj NOT BETWEEN 3000 AND 3999 AND ape_etab NOT IN ('6820B','7020Z') $where10 AND dateCrea_etab<=20120801
|
||||
"cj NOT BETWEEN 3000 AND 3999 AND ape_etab NOT IN ('6820B','7020Z') $where10 /*AND dateCrea_etab<=20120801*/
|
||||
AND concat(siren, nic) NOT IN(SELECT siret FROM tmp.adecco_siret) $strReprise ORDER BY siret", true, MYSQL_ASSOC, true);
|
||||
// $strReprise ORDER BY siret", true, MYSQL_ASSOC, true);
|
||||
// "siret NOT IN(SELECT CONCAT(SIREN,NIC) AS siret FROM tmp.adecco_echantillon)", true, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
||||
echo mysql_error().EOL;
|
||||
if (mysql_errno()>0) die();
|
||||
|
||||
//die();
|
||||
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
if (!in_array($tabTmp['siret'], $tabSiret)) {
|
||||
//echo 'siret='.$tabTmp['siret'].EOL;
|
||||
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69);
|
||||
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $nafAMS);
|
||||
}
|
||||
}
|
||||
$iDb->query('DROP table adecco_siret;');
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de la prestation Adecco en Presta $presta.".EOL;
|
||||
fclose($fp);
|
||||
|
||||
if (($presta==3.1 || $presta==3.2 || $presta==3.3) && $mailTo) {
|
||||
$tabAttached=array($nomFichier);
|
||||
$messageInfo="Bonjour,
|
||||
|
||||
Veuillez trouver ci-joint le fichier Scores & Décisions relatifs à votre prestation contractuelle n°$presta.
|
||||
|
||||
Bien Cordialement,
|
||||
Le service Support.
|
||||
|
||||
--
|
||||
|
||||
SCORES & DECISIONS
|
||||
Service support
|
||||
1, rue de Clairefontaine - 78120 RAMBOUILLET
|
||||
tél : 33 (0)1 75 43 80 10
|
||||
fax : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
http://www.scores-decisions.com/
|
||||
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises
|
||||
|
||||
Pensez à l'environnement avant d'imprimer ce message !
|
||||
Save paper - think before you print";
|
||||
|
||||
@sendMail('production@scores-decisions.com', $mailTo, "Prestation Adecco S&D $presta", $messageInfo, '', $tabAttached);
|
||||
}
|
||||
|
||||
|
||||
die();
|
||||
|
||||
|
||||
function exporteAdecco($siret,$ref,$fp=false, $presta, $eff69=false, $RAISON_SOCIALE='', $ADRESSE='', $FILLER='', $CP='', $VILLE='', $ADSE='') {
|
||||
function exporteAdecco($siret,$ref,$fp=false, $presta, $eff69=false, $nafAMS=false, $RAISON_SOCIALE='', $ADRESSE='', $FILLER='', $CP='', $VILLE='', $ADSE='') {
|
||||
global $iDb2,$iDb3,$iLiens,$iBilan,$iInsee,$date;
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
@ -363,6 +476,7 @@ NULL AS RECME, DAPEN, DEFEN, DCREN,NULL AS MMINTREN, MONOACT, MODEN, EXPLEN, NUL
|
||||
NULL AS EAESEC1N, NULL AS EAESEC2N, NULL AS EAESEC3N, NULL AS EAESEC4N, NBETAB AS nbETEXPL, TCAEXP, REGIMP,
|
||||
MONOREG, NULL AS RPEN,NULL AS DEPCOMEN, ACTIF AS sdActif";/*EFF_ET mediumint(7) UNSIGNED ZEROFILL Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
TEFF_ET*/
|
||||
//$tel
|
||||
$strNotice="
|
||||
insSIREN AS SIREN, insNIC AS NIC, insL4_VOIE AS L4_VOIE, insL6_POST AS L6_POST,
|
||||
insRPET AS RPET, insDEPCOMEN AS DEPCOMEN, insRPEN AS RPEN, insARRONET AS ARRONET, insCTONET AS CTONET, insTCD AS TCD,
|
||||
@ -427,6 +541,18 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES
|
||||
} else {
|
||||
$tmp=$ret[0];
|
||||
$actif=$tmp['sdActif']*1;
|
||||
/** Geocodage si NAF = 7820Z, 7830Z et 7810Z **/
|
||||
$lat=$lon=$precis='';
|
||||
if ($tmp['apet700']=='7810Z' ||
|
||||
$tmp['apet700']=='7820Z' ||
|
||||
$tmp['apet700']=='7830Z') {
|
||||
$mMap=new MMap(true);
|
||||
$mMap->geoCodeAdresse($tmp['NUMVOIE'], $tmp['INDREP'], $tmp['TYPVOIE'], $tmp['TYPVOIE'], $tmp['LIBVOIE'], $tmp['codpos'], $tmp['libcom'], 'France', trim($tmp['insdepet'].$tmp['comet'].$tmp['CODEVOIE']));
|
||||
$lat=$mMap->latitudeDec;
|
||||
$lon=$mMap->longitudeDec;
|
||||
$precis=$mMap->precision;
|
||||
}
|
||||
|
||||
$nouveauSiret='';
|
||||
$tabAncienSiret=array();
|
||||
$nbDem=0;
|
||||
@ -539,8 +665,10 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES
|
||||
}
|
||||
|
||||
if ($presta==2) {
|
||||
if ($eff69 && (($effet<6 && $effetTR<3) || $actif==0)) return;
|
||||
elseif (!$eff69 && ($effet<10 || $actif==0)) return;
|
||||
/* if ($eff69 && (($effet<6 && $effetTR<3) || $actif==0)) return;
|
||||
elseif ($nafAMS && ($effet>5 || $actif==0)) return;
|
||||
elseif (!$eff69 && !$nafAMS && ($effet<10 || $actif==0)) return;*/
|
||||
if (($effet<6 && $effetTR<3) || $actif==0) return;
|
||||
}
|
||||
|
||||
// Dirigeant
|
||||
@ -566,7 +694,14 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES
|
||||
if ($sirenAct<=1000) $sirenAct='';
|
||||
}
|
||||
}
|
||||
$strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP|$pctAct|$sirenAct|".str_replace('|',' ',$nomAct).EOL;
|
||||
|
||||
$ret2=$iDb2->select('jo.telephonie', 'telephone', "siren=$siren AND nic=$nic AND typeTel='tel' AND actif=1 AND dateSuppr=0 ORDER BY dateInsert DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
$tel=@$ret2[0]['telephone'];
|
||||
|
||||
//$strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP|$pctAct|$sirenAct|".str_replace('|',' ',$nomAct)."|$tel".EOL;
|
||||
// Suppression de la livraison des liens a Adecco le 5/03/2015
|
||||
$strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP||||$tel|$lat|$lon|$precis".EOL;
|
||||
|
||||
//if ($presta==1) {
|
||||
$iDb3->insert('adecco_out', array( 'ref'=>$ref,
|
||||
'siren'=>$siren,
|
||||
|
503
batch/diffusionRRG.php
Normal file
503
batch/diffusionRRG.php
Normal file
@ -0,0 +1,503 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMAmabis.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRnvp.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$mailSuivi=true;
|
||||
$dateJourCmd=false;
|
||||
$fileInput=$siretInput=false;
|
||||
$doLockSql=false;
|
||||
$tailleRNVP=38;
|
||||
$tabSiret=array();
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Génère le fichier quotidien de diffusion RRG.
|
||||
|
||||
Options :
|
||||
-i Ne pas exécuter en réel (pas de mail ni production de fichiers...)
|
||||
-l Poser le verrou afin d'indiquer que le traitement SQL tourne
|
||||
-d:SSAA-MM-JJ Produire le fichier du SSAA-MM-JJ
|
||||
-s SIREN ou SIRET Ajouter les SIREN ou SIRET donnés en ligne de commande
|
||||
-f:filename.csv Ajouter les SIREN ou SIRET donnés dans le fichier filename.csv
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1)
|
||||
{
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'i':
|
||||
$mailSuivi=false;
|
||||
break;
|
||||
case 'd':
|
||||
$dateJourCmd=substr($argv[$i],3,strlen($argv[$i])-3);
|
||||
break;
|
||||
case 'l':
|
||||
$doLockSql=true;
|
||||
break;
|
||||
case 'f':
|
||||
$fileInput=substr($argv[$i],3,strlen($argv[$i])-3);
|
||||
break;
|
||||
case 's':
|
||||
$siretInput=true;
|
||||
break;
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} elseif ($argv[$i]>10000 && $siretInput) $tabSiret[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
|
||||
//$iAmabis=new MAmabis();
|
||||
$iRnvp=new MRnvp();
|
||||
$iInsee=new MInsee();
|
||||
$iRncs=new MRncs();
|
||||
$iDb=new WDb('tmp');
|
||||
$iDb2=new WDb('tmp');
|
||||
|
||||
$scriptName=basename($argv[0]);
|
||||
|
||||
if (count($tabSiret)>0 || $fileInput) {
|
||||
if ($fileInput) $tabSiret=file($fileInput);
|
||||
|
||||
// Ajout de la demande de MAJ du siret
|
||||
/** @todo
|
||||
* - MEttre un verrou afin de pouvoir vérifier si le traitement du jour n'est pas en cours (attention à l'étape SQL)
|
||||
* - Lancer les commandes SQL insert into ...
|
||||
* - Créer une source MANUEL
|
||||
*/
|
||||
if (file_exists(REP_TEMP.basename($scriptName).'.lock')) {
|
||||
//date('Ymd-His')."$fichier;Traitement PHP du $dateJourSql;$fileName;Export de $nbEtab établissements".EOL);
|
||||
// $tab2Tmp=explode(';',file_get_contents(REP_TEMP.basename($fichier).'.lock'));
|
||||
//$date2Tmp=WDate::DateT('YmdHis', 'd/m/Y H:i:s',$tab2Tmp[1]);
|
||||
// $nbL2Tmp=$tab2Tmp[2];
|
||||
// $message="Le fichier $fichier est en cours de chargement depuis le $date2Tmp ($nbL2Tmp lignes)...";
|
||||
echo date('Y/m/d - H:i:s')." - Le traitement RRG est en cours, patienter et recommencer plus tard !!!".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
foreach ($tabSiret as $iSiret=>$siret) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
if ($nic>9) $strNic=" AND NIC=$nic ";
|
||||
$strPre='';
|
||||
$ret=$iDb->select('tmp.diffusionRRG','dateSurrfa,dateSurrfa*1 AS dateSurrfaYmd, dateFlux,srcFlux,dateInsert,dateUpdate', "SIREN=$siren $strNic ORDER BY dateSurrfa DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
if (@$ret[0]['dateSurrfaYmd']*1>0) $strPre=' (dernier envoi le '.$ret[0]['dateSurrfa'].')';
|
||||
$iDb->query("INSERT INTO tmp.diffusionRRG SELECT NULL as idLine, id, SIREN, NIC, 'SED' AS source, TRIM(REPLACE(REPLACE(IF(NOMEN_LONG='',NOM,NOMEN_LONG),'/',' '),'*',' ')) AS rs, insL1_NOMEN AS adrL1, 'N' AS adrL1t, SIGLE, ENSEIGNE AS ens, insL2_COMP AS adrL2, '' AS adrL2t, IF (SIEGE=0,'SEC','PRIN') AS statut, IF (ACTIF=1,'','CESSE') AS situ, '' AS maj, 0 AS dateHexavia, '' AS codVoieHexavia, CONCAT (ADR_DEP, ADR_COM) AS codeInseeCom, '' AS libInseeCom, '' AS cpCom, insL3_CADR AS adrL3, ADR_NUMVOIE AS adrNum, ADR_BTQ AS adrBtq, '' AS adrNum2, '' AS adrBtq2, insL4_VOIE AS adrLibVoie, insL5_DISP AS adrDisp, insL5_DISP AS adrComp, insL6_POST AS adrL6, DCRET AS dateCrea, 'J' AS dateCreaPre, CJ AS fj, '' AS fjLib, APE_ENT AS nafEn, '' AS nafEnLib, APE_ETAB AS nafEt, '' AS nafEtLib, TEL, IF(CIVILITE=1,'M',IF(CIVILITE=2,'MME',CIVILITE)) AS dirCiv, DIR_IDEN AS dirNom, '' AS dirPrenom, '' AS dirFctCode, '' AS dirFctLib, '' AS bilanMil, '' AS bilanFL, EFF_ENT AS effEn, EFF_ET AS effEt, 0 AS nicSiege, '' AS even, '' AS evenLib, '' AS tva, '' AS email, 0 AS siretPre, 0 AS siretSuc, ADDDATE(NOW(), INTERVAL 1 DAY) AS dateSurrfa, 0 AS dateFlux, 'MANUEL' AS srcFlux, dateUpdate AS dateInsert, 0 as dateUpdate FROM insee.identite WHERE SIREN=$siren $strNic");
|
||||
if (!mysql_errno())
|
||||
echo date('Y/m/d - H:i:s')." - Siret $siren $nic ajouté avec succès au flux de demain".$strPre.EOL;
|
||||
else
|
||||
echo date('Y/m/d - H:i:s')." - Siret $siren $nic non ajouté car erreur SQL N°".mysql_errno().' : '.mysql_error().' !'.EOL;
|
||||
}
|
||||
|
||||
die();
|
||||
}
|
||||
|
||||
if (!$doLockSql) {
|
||||
$message=date('Y/m/d - H:i:s') ." - Début du traitement RRG...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Début du traitement RRG...".EOL;
|
||||
}
|
||||
|
||||
/*$iDb=new WDb('sdv1');
|
||||
$tabRRG=array( 'client' => 'rrg',
|
||||
'name' => 'HEXAVIA',
|
||||
'nbLines' => 11948, // Nombre de ligne
|
||||
'dateBegin' => 20150105200503, // Date de début de traitement au format YmdHis
|
||||
'dateEnd' => 20150105203052, // Date de fin de traitement au format YmdHis
|
||||
'fileOut' => 'surrfa_20150105.csv', // Nom du fichier sans le chemin
|
||||
'depotType' => 'FTP',
|
||||
'depotDate' => '0000-00-00 00:00:00');
|
||||
$iDb->insert('flux_fileout', $tabRRG, false);
|
||||
*/
|
||||
|
||||
/*
|
||||
$nbEtab=$iDb->query("# On efface tout depuis l'init de la presta RRG
|
||||
DELETE FROM tmp.diffusionRRG WHERE id>0;
|
||||
|
||||
# On stock la dernière date de MAJ
|
||||
SET @lastDateMaj := (SELECT MAX(dateUpdate) FROM tmp.diffusionRRG);
|
||||
|
||||
# Ajout des établissements modifiés
|
||||
INSERT INTO tmp.diffusionRRG SELECT id, SIREN, NIC, 'INS' AS source, TRIM(REPLACE(REPLACE(NOMEN_LONG,'/',' '),'*',' ')) AS rs, insL1_NOMEN AS adrL1, 'N' AS adrL1t, SIGLE, ENSEIGNE AS ens, insL2_COMP AS adrL2, '' AS adrL2t, IF (SIEGE=0,'SEC','PRIN') AS statut, IF (ACTIF=1,'','CESSE') AS situ, '' AS maj, 0 AS dateHexavia, '' AS codVoieHexavia, CONCAT (ADR_DEP, ADR_COM) AS codeInseeCom, '' AS libInseeCom, '' AS cpCom, insL3_CADR AS adrL3, ADR_NUMVOIE AS adrNum, ADR_BTQ AS adrBtq, '' AS adrNum2, '' AS adrBtq2, insL4_VOIE AS adrLibVoie, insL5_DISP AS adrDisp, insL5_DISP AS adrComp, insL6_POST AS adrL6, DCRET AS dateCrea, 'J' AS dateCreaPre, CJ AS fj, '' AS fjLib, APE_ENT AS nafEn, '' AS nafEnLib, APE_ETAB AS nafEt, '' AS nafEtLib, TEL, IF(CIVILITE=0,'',IF(CIVILITE=1,'M','MME')) AS dirCiv, DIR_IDEN AS dirNom, '' AS dirPrenom, '' AS dirFctCode, '' AS dirFctLib, '' AS bilanMil, '' AS bilanFL, EFF_ENT AS effEn, EFF_ET AS effEt, 0 AS nicSiege, '' AS even, '' AS evenLib, '' AS tva, '' AS email, 0 AS siretPre, 0 AS siretSuc, 0 AS idFlux, dateUpdate FROM insee.identite WHERE dateUpdate>=@lastDateMaj ;
|
||||
# Ajout du code mouvement
|
||||
UPDATE tmp.diffusionRRG, insee.insee_even
|
||||
SET diffusionRRG.maj='C'
|
||||
WHERE diffusionRRG.maj='' AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj AND insee_even.insVMAJ='C';
|
||||
UPDATE tmp.diffusionRRG, insee.insee_even
|
||||
SET diffusionRRG.maj='S'
|
||||
WHERE diffusionRRG.maj='' AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj AND insee_even.insVMAJ='E';
|
||||
UPDATE tmp.diffusionRRG
|
||||
SET maj='M'
|
||||
WHERE maj='';
|
||||
# Ajout du NIC siège
|
||||
UPDATE tmp.diffusionRRG, insee.insee_even
|
||||
SET diffusionRRG.nicSiege=insee_even.insNICSIEGE
|
||||
WHERE diffusionRRG.nicSiege=0 AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj;
|
||||
# Ajout des radiations
|
||||
UPDATE tmp.diffusionRRG, jo.rncs_entrep
|
||||
SET diffusionRRG.situ='RADIE'
|
||||
WHERE diffusionRRG.situ='CESSE' AND diffusionRRG.siren=rncs_entrep.siren AND rncs_entrep.actif=0 AND diffusionRRG.dateUpdate>=@lastDateMaj;
|
||||
|
||||
# Ajout des libellés FJ et NAF
|
||||
UPDATE tmp.diffusionRRG, jo.tabFJur
|
||||
SET diffusionRRG.fjLib=tabFJur.libelle
|
||||
WHERE diffusionRRG.fj=tabFJur.code AND diffusionRRG.fjLib='';
|
||||
UPDATE tmp.diffusionRRG, jo.tabNaf5
|
||||
SET diffusionRRG.nafEnLib=tabNaf5.libNaf5
|
||||
WHERE diffusionRRG.nafEn=tabNaf5.codNaf5 AND diffusionRRG.nafEnLib='';
|
||||
UPDATE tmp.diffusionRRG, jo.tabNaf5
|
||||
SET diffusionRRG.nafEtLib=tabNaf5.libNaf5
|
||||
WHERE diffusionRRG.nafEt=tabNaf5.codNaf5 AND diffusionRRG.nafEtLib='';
|
||||
|
||||
# Ajout des zones Hexavia
|
||||
SET @lastDateHexa := (SELECT MAX(dateMaj38) FROM villes.hexaviaVilles);
|
||||
UPDATE tmp.diffusionRRG
|
||||
SET diffusionRRG.dateHexavia=@lastDateHexa
|
||||
WHERE diffusionRRG.dateHexavia=0;
|
||||
UPDATE tmp.diffusionRRG, villes.rnvpSources
|
||||
SET diffusionRRG.codVoieHexavia=rnvpSources.IdHexavia,
|
||||
diffusionRRG.libInseeCom=rnvpSources.Ville,
|
||||
diffusionRRG.cpCom=rnvpSources.Cp
|
||||
WHERE diffusionRRG.codVoieHexavia='' AND diffusionRRG.id=rnvpSources.source_id AND rnvpSources.source=2;
|
||||
|
||||
# Ajout du CA
|
||||
UPDATE tmp.diffusionRRG, jo.etablissements_act
|
||||
SET diffusionRRG.bilanMil=etablissements_act.bilAnnee,
|
||||
diffusionRRG.bilanFL=etablissements_act.bilFL
|
||||
WHERE diffusionRRG.bilanMil='' AND diffusionRRG.siren=etablissements_act.siren;
|
||||
*/
|
||||
|
||||
|
||||
$dateDeb=date('Y-m-d H:i:s');
|
||||
|
||||
if ($dateJourCmd) {
|
||||
$dateJourPhp=str_replace('-','',$dateJourCmd);
|
||||
$dateJourSql=WDate::dateT('Ymd','Y-m-d',$dateJourPhp);
|
||||
if (!$doLockSql) echo date('Y/m/d - H:i:s') ." - Recherche des établissements a exporter pour le : $dateJourSql...".EOL;
|
||||
} else {
|
||||
$dateJourSql=substr($dateDeb,0,10);
|
||||
$dateJourPhp=str_replace('-','',$dateJourSql);
|
||||
if (!$doLockSql) {
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Recherche des établissements a exporter du jour : $dateJourSql...".EOL;
|
||||
}
|
||||
}
|
||||
|
||||
$fileName="surrfa_$dateJourPhp.csv";
|
||||
$anneeBilanVieux=substr($dateJourPhp,0,4)-3;
|
||||
|
||||
$fpT=fopen(REP_TEMP.basename($scriptName).'.lock', 'w');
|
||||
if ($doLockSql) {
|
||||
fwrite($fpT, date('Ymd-His').";$scriptName;Traitement RRG SQL du $dateJourSql;$fileName".EOL);
|
||||
fclose($fpT);
|
||||
die();
|
||||
}
|
||||
|
||||
//$fileName="surrfa_20141231a.csv"; // Créations fait le 11/02/2015
|
||||
//$fileName="surrfa_20141230b.csv"; // Radiations fait le ???
|
||||
|
||||
$fpOut=fopen(REP_TEMP.$fileName,'w');
|
||||
|
||||
//Il faudra insérer dans la base de données (sdv1.flux_fileout) lorsque le fichier est généré, les informations suivantes
|
||||
|
||||
$nbEtab=$iDb->select('tmp.diffusionRRG','idLine, id, siren, nic, CONCAT(siren, nic) AS siret, source, rs, adrL1, adrL1t, sigle, ens, adrL2, adrL2t, statut, situ, maj, dateHexavia, codVoieHexavia, codeInseeCom, libInseeCom, cpCom, adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, dateCrea, dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, dateFlux, srcFlux, dateInsert, dateUpdate',"siren>0 AND dateSurrfa='$dateJourSql'", false, MYSQL_ASSOC, true);
|
||||
//$nbEtab=$iDb->select('tmp.diffusionRRG','idLine, id, siren, nic, CONCAT(siren, nic) AS siret, source, rs, adrL1, adrL1t, sigle, ens, adrL2, adrL2t, statut, situ, maj, dateHexavia, codVoieHexavia, codeInseeCom, libInseeCom, cpCom, adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, dateCrea, dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, dateFlux, srcFlux, dateInsert, dateUpdate', "siren>0 AND dateSurrfa='2014-12-30'", false, MYSQL_ASSOC, true);
|
||||
echo mysql_error().EOL;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL;
|
||||
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL;
|
||||
|
||||
fwrite($fpT, date('Ymd-His').";$scriptName;Traitement RRG PHP du $dateJourSql;$fileName;Export de $nbEtab établissements".EOL);
|
||||
fclose($fpT);
|
||||
|
||||
$iL=0;
|
||||
$accesDist=false;
|
||||
|
||||
$nbCpVide76310=$nbCpVide=0;
|
||||
|
||||
while($tabId=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$iL++;
|
||||
$idLine=$tabId['idLine'];
|
||||
|
||||
$siren=$tabId['siren'];
|
||||
$nic=$tabId['nic'];
|
||||
$iTva=@new MTva($siren, $accesDist);
|
||||
$vatNumber=$iTva->vatNumber;
|
||||
$nomLong=$tabId['rs'];
|
||||
$iTel=new MTel($accesDist);
|
||||
$tmp=$iTel->getTel($siren, $nic, true);
|
||||
//print_r($tmp);
|
||||
$tel=$mail='';
|
||||
foreach ($tmp as $tTel) {
|
||||
if ($tTel['typeTel']=='tel' && $tTel['actif']==1 && $tel=='') $tel=$tTel['telephone'];
|
||||
if ($tTel['typeTel']=='mail' && $tTel['actif']==1 && $mail=='') $mail=$tTel['infoTel'];
|
||||
}
|
||||
|
||||
// , , , , , adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, , dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, idFlux, dateUpdate
|
||||
|
||||
$hexaviaMat=$tabId['codVoieHexavia'];
|
||||
if ($hexaviaMat<0) $hexaviaMat='';
|
||||
$tabRnvp=@$iRnvp->normaliseAdresse($nomLong, $tabId['adrL2'], $tabId['adrL3'], $tabId['adrLibVoie'], $tabId['adrDisp'], $tabId['adrL6'], '', $tailleRNVP);
|
||||
if ($hexaviaMat*1==0)
|
||||
$hexaviaMat=@$tabRnvp['HexaViaMat'];
|
||||
$L1tr=$L2tr='N';
|
||||
if ($hexaviaMat*1>0 && @$tabRnvp['HexaViaMat']*1>0) {
|
||||
$hexaviaVoie=@$tabRnvp['HexaViaVoie'];
|
||||
$cp=@substr($tabRnvp['L6'],0,5);
|
||||
$achPost=@trim(preg_replace('/^\d+/','', $tabRnvp['L6']));
|
||||
$L1=@$tabRnvp['L1'];
|
||||
if (@$tabRnvp['L1_tr']==1) $L1tr='O';
|
||||
//$L1=$iRnvp->normaliseRS($nomLong, $tailleRNVP);
|
||||
//if ($iRnvp->nomTronque==1) $L1tr='O';
|
||||
$L2=@$tabRnvp['L2'];
|
||||
if (@$tabRnvp['L2_tr']==1) $L2tr='O';
|
||||
$L3=@trim($tabRnvp['L3']);
|
||||
$L5=@trim($tabRnvp['L5']);
|
||||
$codCommune=@$tabRnvp['HexaviaComCod'];
|
||||
$libCommune=@$tabRnvp['HexaviaComLib'];
|
||||
} else {
|
||||
$hexaviaVoie=@trim(preg_replace('/^\d+/','', $tabId['adrLibVoie']));
|
||||
$cp=@substr($tabId['adrL6'],0,5);
|
||||
$achPost=trim(preg_replace('/^\d+/','', $tabId['adrL6']));
|
||||
if ($cp<1000) {
|
||||
$cp=$iRnvp->getCPCommune($tabId['codeInseeCom']);
|
||||
$achPost=trim(preg_replace('/^\d+/','', $tabId['adrL6']));
|
||||
$nbCpVide++;
|
||||
if ($cp<1000) {
|
||||
$tabRnvp=$iRnvp->normaliseAdresse76310($nomLong, $tabId['adrL2'], $tabId['adrL3'], $tabId['adrLibVoie'], $tabId['adrDisp'], $tabId['adrL6']);
|
||||
// print_r($tabRnvp);
|
||||
$cp=substr($tabRnvp['L6'],0,5);
|
||||
$achPost=trim(preg_replace('/^\d+/','', $tabRnvp['L6']));
|
||||
$nbCpVide76310++;
|
||||
//die();
|
||||
}
|
||||
echo "$iL/$nbEtab: $vatNumber $nic $L1\t$cp $achPost\t $nbCpVide76310 appels/$nbCpVide CP vides".EOL;
|
||||
}
|
||||
$L1=$iRnvp->normaliseRS($nomLong, $tailleRNVP);
|
||||
if ($iRnvp->nomTronque==1) $L1tr='O';
|
||||
$L2=$iRnvp->normaliseRS($tabId['adrL2'], $tailleRNVP);
|
||||
if ($iRnvp->nomTronque==1) $L2tr='O';
|
||||
$L3=trim($tabId['adrL3']);
|
||||
$L5=trim($tabId['adrDisp']);
|
||||
$codCommune=$tabId['codeInseeCom'];// Tester 97x
|
||||
$libCommune=$iRnvp->getLibCommune($codCommune, $tailleRNVP);
|
||||
}
|
||||
//adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp
|
||||
$adrNum1=preg_replace('/^0+/','',$tabId['adrNum']);
|
||||
$adrBtq1=$tabId['adrBtq'];
|
||||
$adrNum2=$adrBtq2='';
|
||||
if ($adrNum1*1>0) {
|
||||
$adrNum=$adrNum1*1;
|
||||
if (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrL3']), $matches)) {
|
||||
$adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',));
|
||||
$adrBtq2='';
|
||||
} elseif (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrDisp']), $matches)) {
|
||||
$adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',));
|
||||
$adrBtq2='';
|
||||
} elseif (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrL2']), $matches)) {
|
||||
$adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',));
|
||||
$adrBtq2='';
|
||||
}
|
||||
}
|
||||
|
||||
$tabAssoc=$iInsee->getSiretAssoc($siren, $nic);
|
||||
//print_r($tabAssoc);
|
||||
|
||||
$tabDirs=$iRncs->getDirigeantsPrin($siren, 1);
|
||||
if (count($tabDirs)>0) {
|
||||
$civ=$tabDirs[0]['Civilite'];
|
||||
$dir1Nom=$tabDirs[0]['Nom'];
|
||||
$dir1Prenom=$tabDirs[0]['Prenom'];
|
||||
$dir1Code=$tabDirs[0]['Fonction'];
|
||||
$dir1Titre=$tabDirs[0]['Titre'];
|
||||
} elseif ($tabId['fj']<2000) {
|
||||
$civ=$tabId['dirCiv'];
|
||||
$dir1Nom=$tabId['dirNom'];
|
||||
$dir1Prenom=$tabId['dirPrenom'];
|
||||
$dir1Code=1050;
|
||||
$dir1Titre='Personne Physique';
|
||||
}
|
||||
|
||||
$dateHexavia=initstr(preg_replace('/^00/','01',WDate::dateT('Y-m-d','dmY',$tabId['dateHexavia'])), 8, '0', ALIGN_RIGHT);
|
||||
|
||||
$dateCreation=initstr(WDate::dateT('Y-m-d','dmY',preg_replace('/00$/','01',$tabId['dateCrea'])), 8, '0', ALIGN_RIGHT);
|
||||
|
||||
if (!$dateJourCmd) {
|
||||
if ($tabId['bilanMil']<=$anneeBilanVieux) {
|
||||
// Aller vérifier s'il n'y a pas un bilan plus récent en base
|
||||
$tmpBilan=$iDb2->select('jo.bilans_postes','FL, YEAR(dateExercice) AS annee', "siren=$siren AND consolide=0 ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
$tabTmpBil=$tmpBilan[0];
|
||||
$bilAnnee=$tabTmpBil['annee'];
|
||||
$bilFL=$tabTmpBil['FL'];
|
||||
} else {
|
||||
$bilAnnee=$tabId['bilanMil'];
|
||||
$bilFL=$tabId['bilanFL'];
|
||||
}
|
||||
/*
|
||||
Rajouter l'estimation de CA dans les cas suivants :
|
||||
1a. Quand il n'y a pas de bilan
|
||||
OU 1b. Quand le bilan est trop vieux pour RRG soit (plus de 36 mois)
|
||||
|
||||
De plus, on ne donne de CA Estimé que :
|
||||
2a. Si le NAF est valide (5 positions, différent de vide et de 0000Z)
|
||||
2b. Si l'effectif est > à 0 OU (effectif<1 ET CJ=1xxx)
|
||||
2c. Si la date de création >= date de clôture estimée (dernière jour de l'année courante - 2 ans)
|
||||
|
||||
Attention, pour les créations récentes (nouvelle demande de RRG) :
|
||||
3a. Si le NAF est valide (5 positions, différent de vide et de 0000Z)
|
||||
3b. Si l'effectif est > à 0 OU (effectif<1 ET CJ=1xxx)
|
||||
3c. Si la date de création EST dans l'année en cours ou dans l'année précédente et pas de bilans REEL
|
||||
==> Alors donner le CA Estimé qui est donc "prévisionnel" au 31/12 de l'année en cours
|
||||
*/
|
||||
} else {
|
||||
$bilAnnee=$tabId['bilanMil'];
|
||||
$bilFL=$tabId['bilanFL'];
|
||||
}
|
||||
$strOut=initstr($tabId['id']*1, 10 , '0', ALIGN_RIGHT) .'$'. // Identification ORT de l'établissement !
|
||||
$tabId['siret'].'$'. // Numéro de SIRET
|
||||
$tabId['source'].'$'. // Source de l'information (INS ou S&D)
|
||||
trim(str_replace('$',' ',$tabId['rs'])).'$'. // Raison sociale Officielle de l'entreprise
|
||||
$L1.'$'. // Raison sociale Postale de l'entreprise !
|
||||
$L1tr.'$'. // Indicateur si la RS postale a été tronquée !
|
||||
trim(str_replace('$',' ',$tabId['sigle'])).'$'. // Sigle de l'entreprise
|
||||
trim(str_replace('$',' ',$tabId['ens'])).'$'. // Enseigne officielle de l'établissement
|
||||
$L2.'$'. // Enseigne postale de l'établissement !
|
||||
$L2tr.'$'. // Indicateur si l'enseigne postale a été tronquée !
|
||||
$tabId['statut'].'$'. // Statut de l'établissement
|
||||
$tabId['situ'].'$'. // Code situation de l'entreprise
|
||||
$tabId['maj'].'$'. // Flag de Mise à jour de l'établissement ???
|
||||
$dateHexavia.'$'. // Date d'actualisation du fichier HEXAVIA
|
||||
$hexaviaMat.'$'. // code voie HEXAVIA
|
||||
$codCommune.'$'. // Code commune INSEE
|
||||
$libCommune.'$'. // Libellé de la commune INSEE
|
||||
$cp.'$'. // Code postal
|
||||
$L3.'$'. // Complément d'adresse
|
||||
$adrNum1.'$'. // Numéro dans la voie
|
||||
$adrBtq1.'$'. // Lettre dans la voie
|
||||
$adrNum2.'$'. // Numéro dans la voie 2
|
||||
$adrBtq2.'$'. // Lettre dans la voie 2
|
||||
$hexaviaVoie.'$'. // Libellé dans la voie
|
||||
$L5.'$'. // Distribution postale
|
||||
$L5.'$'. // Complément postal
|
||||
$achPost.'$'. // Acheminement postal (spécificité RRG : Pas de CP)
|
||||
$dateCreation.'$'. // Date de création de l'entreprise
|
||||
'J'.'$'. // Précision de la date de création
|
||||
$tabId['fj'].'$'. // Code forme juridique
|
||||
$tabId['fjLib'].'$'. // Libellé forme juridique
|
||||
$tabId['nafEn'].'$'. // Code NAF Entreprise
|
||||
$tabId['nafEnLib'].'$'. // Libellé du NAF Entreprise
|
||||
$tabId['nafEt'].'$'. // Code NAF Etablissement
|
||||
$tabId['nafEtLib'].'$'. // Libellé du NAF Etablissement
|
||||
$tel.'$'. // Numéro de téléphone
|
||||
$civ.'$'. // Civilité du principal dirigeant
|
||||
$dir1Nom.'$'. // Nom du principal dirigeant
|
||||
$dir1Prenom.'$'. // Prénom du principal dirigeant
|
||||
$dir1Code.'$'. // Code Fonction du principal dirigeant ???
|
||||
$dir1Titre.'$'. // Libellé de la fonction ???
|
||||
initstr($bilAnnee, 4, '0',ALIGN_RIGHT).'$'. // Année du dernier exercice
|
||||
$bilFL.'$'. // CA du dernier exercice
|
||||
$tabId['effEn'].'$'. // Effectif de l'entreprise
|
||||
$tabId['effEt'].'$'. // Effectif de l'établissement
|
||||
initstr($tabId['nicSiege']*1, 5, '0', ALIGN_RIGHT).'$'. // Numéro NIC de l'établissement principal
|
||||
$tabId['even'].'$'. // Code jugement ???
|
||||
$tabId['evenLib'].'$'. // Libellé code Jugement ???
|
||||
$vatNumber.'$'. // N° TVA intracommunautaire
|
||||
$mail.'$'. // Adresse mail de l'entreprise
|
||||
str_replace('00000000000000','',
|
||||
initstr(@$tabAssoc['pre']['siren']*1, 9 , '0', ALIGN_RIGHT) .
|
||||
initstr(@$tabAssoc['pre']['nic']*1, 5 , '0', ALIGN_RIGHT)) .'$'.
|
||||
str_replace('00000000000000','',
|
||||
initstr(@$tabAssoc['suc']['siren']*1, 9 , '0', ALIGN_RIGHT) .
|
||||
initstr(@$tabAssoc['suc']['nic']*1, 5 , '0', ALIGN_RIGHT)) ;
|
||||
//echo $strOut.EOL;
|
||||
fwrite($fpOut, $strOut.EOL);
|
||||
|
||||
echo "$iL/$nbEtab: $vatNumber $nic (".$tabId['source'].",".$tabId['maj'].") $L1\t$cp $achPost\t$hexaviaMat".EOL;
|
||||
|
||||
if (!$dateJourCmd) {
|
||||
$tabUpdate=array( 'rs' =>trim(str_replace('$',' ',$tabId['rs'])),
|
||||
'adrL1' =>$L1,
|
||||
'adrL1t'=>$L1tr,
|
||||
'sigle' =>trim(str_replace('$',' ',$tabId['sigle'])),
|
||||
'ens' =>trim(str_replace('$',' ',$tabId['ens'])),
|
||||
'adrL2' =>$L2,
|
||||
'adrL2t'=>$L2tr,
|
||||
'dateHexavia'=>$dateHexavia,
|
||||
'codVoieHexavia'=>$hexaviaMat,
|
||||
'codeInseeCom'=>$codCommune,
|
||||
'libInseeCom'=>$libCommune,
|
||||
'cpCom'=>$cp,
|
||||
'adrL3'=>$L3,
|
||||
'adrNum'=>$adrNum1,
|
||||
'adrBtq'=>$adrBtq1,
|
||||
'adrNum2'=>$adrNum2,
|
||||
'adrBtq2'=>$adrBtq2,
|
||||
'adrLibVoie'=>$hexaviaVoie,
|
||||
'adrDisp'=>$L5,
|
||||
'adrComp'=>$L5,
|
||||
//'adrL6'=>$achPost,
|
||||
'tel'=>$tel,
|
||||
'dirCiv'=>$civ,
|
||||
'dirNom'=>$dir1Nom,
|
||||
'dirPrenom'=>$dir1Prenom,
|
||||
'dirFctCode'=>$dir1Code,
|
||||
'dirFctLib'=>$dir1Titre,
|
||||
'bilanMil'=>$bilAnnee,
|
||||
'bilanFL'=>$bilFL,
|
||||
//'effEn'=>,
|
||||
//'even'=>,
|
||||
//'evenLib'=>,
|
||||
'tva'=>$vatNumber,
|
||||
'email'=>$mail,
|
||||
'siretPre'=>initstr(@$tabAssoc['pre']['siren']*1, 9 , '0', ALIGN_RIGHT).
|
||||
initstr(@$tabAssoc['pre']['nic']*1, 5 , '0', ALIGN_RIGHT),
|
||||
'siretSuc'=>initstr(@$tabAssoc['suc']['siren']*1, 9 , '0', ALIGN_RIGHT).
|
||||
initstr(@$tabAssoc['suc']['nic']*1, 5 , '0', ALIGN_RIGHT),
|
||||
'dateUpdate'=>$dateDeb,
|
||||
);
|
||||
$iDb2->update('diffusionRRG', $tabUpdate, "idLine=$idLine", false);
|
||||
}
|
||||
//print_r($tabId);
|
||||
//die();
|
||||
}
|
||||
fclose($fpOut);
|
||||
$message.=date('Y/m/d - H:i:s') ." - Fin du traitement RRG : export de $iL/$nbEtab établissements.".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Fin du traitement RRG : export de $iL/$nbEtab établissements.".EOL;
|
||||
|
||||
if ($mailSuivi) {
|
||||
if (!copy(REP_TEMP.$fileName, '/mnt/data/clients/rrg/recv/'.$fileName))
|
||||
$msgLine=date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fileName impossible pour le spécifique RRG !".EOL;
|
||||
else
|
||||
$msgLine=date ('Y/m/d - H:i:s')." - Le fichier $fileName a été créé pour RRG...".EOL;
|
||||
echo $msgLine;
|
||||
$message.=$msgLine;
|
||||
unset($iDb);
|
||||
$iDb=new WDb('sdv1');
|
||||
$tabRRG=array( 'client' => 'rrg',
|
||||
'name' => 'HEXAVIA',
|
||||
'nbLines' => $iL, // Nombre de ligne
|
||||
'dateBegin' => $dateDeb, // Date de début de traitement au format YmdHis
|
||||
'dateEnd' => date('YmdHis'), // Date de fin de traitement au format YmdHis
|
||||
'fileOut' => $fileName, // Nom du fichier sans le chemin
|
||||
'depotType' => 'FTP',
|
||||
'depotDate' => '0000-00-00 00:00:00');
|
||||
$iDb->insert('flux_fileout', $tabRRG, false);
|
||||
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,suivi@scores-decisions.com', "Prestation RRG", $message);
|
||||
}
|
||||
|
||||
unlink(REP_TEMP.basename($scriptName).'.lock');
|
||||
|
||||
die();
|
||||
?>
|
2612
batch/doProBtp.php
Normal file
2612
batch/doProBtp.php
Normal file
File diff suppressed because it is too large
Load Diff
2640
batch/doProBtp2013.php
Normal file
2640
batch/doProBtp2013.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -56,16 +56,18 @@ $tabFichier=array();
|
||||
$nbSirValides=$nbSirInvalides=0;
|
||||
$nbNicValides=$nbNicInvalides=0;
|
||||
$nbInsert=0;
|
||||
$modeDebug=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [Stock Adecco à charger]
|
||||
Traitement spécifique Kompass.
|
||||
|
||||
Options :
|
||||
-s @todo Prévoir le chargement du stock
|
||||
-1 Prestation 1 Mise à disposition du stock des Entrep Risques Fort
|
||||
-1 Prestation 1 Mise à disposition du stock des Classes de risque
|
||||
-3 Prestation 3 Transformation de la surveillance Bodacc en spécifique Kompass
|
||||
-4 Prestation 4 Mise à disposition de la base Liens
|
||||
-5 Prestation 5 Mise à disposition de la base Ratios
|
||||
-6 Prestation 6 Mise à disposition des URL pour les rapports Kompass
|
||||
-v Verbosité maximum
|
||||
";
|
||||
|
||||
@ -75,11 +77,12 @@ if ($_SERVER['argc']>1)
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (strtolower(substr($argv[$i],1,1))) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case '1': $presta=1; break;
|
||||
case '3': $presta=3; break;
|
||||
case '4': $presta=4; break;
|
||||
case '5': $presta=5; if (date('N')<>5) echo 'La génération du stock des bilans ne peut se faire que le vendredi !'.EOL;
|
||||
break;
|
||||
case '5': $presta=5; break;
|
||||
case '6': $presta=6; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
@ -89,21 +92,26 @@ if ($_SERVER['argc']>1)
|
||||
}
|
||||
}
|
||||
|
||||
if ($presta<>1 && $presta<>3 && $presta<>4 && $presta<>5) {
|
||||
if ($presta<>1 && $presta<>3 && $presta<>4 && $presta<>5 && $presta<>6) {
|
||||
if (count($tabFichier)<>1)
|
||||
echo date('Y/m/d - H:i:s') ." - Prestation '$presta' inconnue !".EOL;
|
||||
die();
|
||||
}
|
||||
}/* elseif ($presta==5 && date('N')<>5) {
|
||||
if (!$modeDebug) die('La génération du stock des bilans ne peut se faire que le vendredi !'.EOL);
|
||||
}*/
|
||||
|
||||
$fp=fopen('/home/data/clients/kompass/kompass_p'.$presta."_$date.txt",'w');
|
||||
|
||||
// Base des Siren avec Risque Financier
|
||||
if ($presta==1) {
|
||||
$nbRows=$iDb->query("SELECT CONCAT(siren, REPLACE(REPLACE(risque,1,'C'),0,' ')) AS LigneRisque
|
||||
FROM etablissements_act
|
||||
WHERE cj NOT IN (1900, 6540, 9110, 9150) AND siege=1 AND risque=1
|
||||
ORDER BY siren ASC;");
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siren Kompass en Presta $presta...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Recherche des siren en Presta $presta...".EOL;
|
||||
|
||||
$nbRows=$iDb->query("SELECT CONCAT(e.siren, risque) AS LigneRisque
|
||||
FROM etablissements_act e, surveillances_listes s
|
||||
WHERE e.siren=s.siren AND cj NOT IN (1900, 6540, 9110, 9150) AND siege=1 AND risque IN ('A','B','C') AND s.idClient='SURBODPRDFTSKOMPASS' AND s.dateSuppr=0
|
||||
ORDER BY e.siren ASC;");
|
||||
$nbLignes=$iDb->getNumRows();
|
||||
echo date('Y/m/d - H:i:s') ." - Export des $nbLignes siren Kompass en Presta $presta...".EOL;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
fwrite($fp, $tabTmp['LigneRisque'].EOL);
|
||||
}
|
||||
@ -119,7 +127,8 @@ if ($presta==3) {
|
||||
$dh = opendir(DIR_KOMPASS_IN);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.txt' &&
|
||||
substr($filename, 0,39)=='surveillanceBodacc_SURBODPRDFTSKOMPASS_'/*.date('Ym')*/) {
|
||||
// substr($filename, 0,39)=='surveillanceBodacc_SURBODPRDFTSKOMPASS_'/*.date('Ym')*/) {
|
||||
substr($filename, 0,36)=='diffusionBodacc_DIFBODPRDFTSKOMPASS_'/*.date('Ym')*/) {
|
||||
$fichierIn = $filename;
|
||||
$tabLignes=file(DIR_KOMPASS_IN.$fichierIn);
|
||||
$ligne100=0;
|
||||
@ -132,11 +141,20 @@ if ($presta==3) {
|
||||
/*Identité du vendeur Rubrique Siren acheteur Raison Sociale Adresse du fonds */
|
||||
$ligne100++;
|
||||
$siren = substr($ligne, 13, 9 ); // Siren de l'entreprise concernée par l'annonce
|
||||
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
|
||||
$ref = '';
|
||||
if ($siren>1000) {
|
||||
/** @todo Vérifier que le siren est présent chez kompass avec une référence **/
|
||||
$tabTmp=$iDb->select('surveillances_listes','siren, ref',"idClient='SURBODPRDFTSKOMPASS' AND dateSuppr=0 AND siren='$siren'", false, MYSQL_ASSOC);
|
||||
if (@trim($tabTmp[0]['ref'])<>'') $ref=$tabTmp[0]['ref'];
|
||||
else continue;
|
||||
} else continue;
|
||||
//$ref = trim(substr($ligne, 71, 18 )); // Référence Client
|
||||
$datePar= substr($ligne, 31, 8 ); // Date de parution du Bodacc Format AAAAMMJJ
|
||||
$dateJuge=substr($ligne, 1144, 8 ); // Date du jugement
|
||||
if ($dateJuge<=19900101)
|
||||
$dateJuge=substr($ligne, 1161, 8 ); // Date d'effet (Ventes/MMD/Créations)
|
||||
if ($dateJuge==0)
|
||||
$dateJuge=$datePar;
|
||||
$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
|
||||
@ -163,6 +181,21 @@ if ($presta==3) {
|
||||
elseif ($codeEven==1542) $typeJuge='RS'; // Rétractation Sauvegarde
|
||||
elseif (($codeEven>1399 && $codeEven<1416) ||
|
||||
($codeEven>1419 && $codeEven<1500)) $typeJuge='SJ'; // Suite de jugement
|
||||
|
||||
elseif ($codeEven>1099 && $codeEven<2000) $typeJuge='AJ'; // Autre jugement ou suite de jugement
|
||||
elseif ($codeEven==2000 || $codeEven==2200 ||
|
||||
$codeEven==2202 || $codeEven==2203 ||
|
||||
$codeEven==2204 || $codeEven==2210) $typeJuge='DI'; // Dissolution
|
||||
elseif ($codeEven==2211 || $codeEven==2212) $typeJuge='LA'; // Liquidation amiable
|
||||
elseif ($codeEven==2620) $typeJuge='TU'; // Transmission universelle du patrimoine
|
||||
elseif ($codeEven==2720 || $codeEven==2721) $typeJuge='FU'; // Fusion/Absorption
|
||||
elseif ($codeEven>=5500 && $codeEven<=5503) $typeJuge='VT'; // Vente
|
||||
elseif ($codeEven>=6000 && $codeEven<=6700) { $typeJuge='RA'; // Radiation
|
||||
if ($siren>1000) {
|
||||
$tabId=@$iInsee->getIdentiteLight($siren);
|
||||
if (@$tabId['actif']==0) $typeJuge='';
|
||||
} else $typeJuge='';
|
||||
}
|
||||
}
|
||||
if ($typeJuge<>'') {
|
||||
//echo "$siren\t$ref\t$dateJuge\t$typeJuge\t".$even[0].EOL;
|
||||
@ -172,6 +205,7 @@ if ($presta==3) {
|
||||
initstr($dateJuge, 8, '0', ALIGN_RIGHT);
|
||||
fwrite($fp, $ligne.EOL);
|
||||
$ligneOut++;
|
||||
if ($ligneOut%10000==0) echo date('Y/m/d - H:i:s') ." - Traitement du fichier $fichierIn : $ligneOut annonces traitées...".EOL;
|
||||
}
|
||||
break;
|
||||
default: // Ligne non gérée
|
||||
@ -179,7 +213,7 @@ if ($presta==3) {
|
||||
}
|
||||
} // Fin du fichier
|
||||
$ligne100tot+=$ligne100;
|
||||
echo date('Y/m/d - H:i:s') ." - Traitement du fichier $fichierIn : $ligne100 annonces...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Traitement du fichier $fichierIn : $ligne100 annonces livrées !".EOL;
|
||||
move(DIR_KOMPASS_IN.$fichierIn,DIR_KOMPASS_IN.$fichierIn.'.done');
|
||||
}
|
||||
}
|
||||
@ -188,6 +222,92 @@ if ($presta==3) {
|
||||
|
||||
// Surveillance Liens Capitalistiques
|
||||
if ($presta==4) {
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Création de la table de liens temportaires pour la Presta $presta...".EOL;
|
||||
$nbRows=$iDb->query("DROP TABLE IF EXISTS tmp_LiensKompass;");
|
||||
$nbRows=$iDb->query("CREATE TABLE tmp_LiensKompass
|
||||
SELECT l.id, l.idAct, a.siren AS sirenA, a.RS AS rsA, CONCAT(a.nom,' ', a.prenom) AS nomA, a.adresse_pays AS paysA, l.actif, PDetention, Pvote, MajMin, l.idPar, p.siren AS sirenP, p.RS AS rsP, CONCAT(p.nom,' ', p.prenom) AS nomP, p.adresse_pays AS paysP, l.dateEffetLien, l.dateInsert, l.dateUpdate, s.siren AS sirenK, 0 AS nic, s.ref, 3 AS tp_df
|
||||
FROM liens2 l, liensRef a, liensRef p, surveillances_listes s
|
||||
WHERE l.dateSuppr=0 AND l.actif=1 AND l.idAct=a.id AND l.idPar=p.id AND a.siren=s.siren AND s.idClient='SURBODPRDFTSKOMPASS' AND s.dateSuppr=0 AND a.dateSuppr=0 AND p.dateSuppr=0 AND PDetention>=30
|
||||
UNION
|
||||
SELECT l.id, l.idAct, a.siren AS sirenA, a.RS AS rsA, CONCAT(a.nom,' ', a.prenom) AS nomA, a.adresse_pays AS paysA, l.actif, PDetention, Pvote, MajMin, l.idPar, p.siren AS sirenP, p.RS AS rsP, CONCAT(p.nom,' ', p.prenom) AS nomP, p.adresse_pays AS paysP, l.dateEffetLien, l.dateInsert, l.dateUpdate, s.siren AS sirenK, 0 AS nic, s.ref, 2 AS tp_df
|
||||
FROM liens2 l, liensRef a, liensRef p, surveillances_listes s
|
||||
WHERE l.dateSuppr=0 AND l.actif=1 AND l.idAct=a.id AND l.idPar=p.id AND p.siren=s.siren AND s.idClient='SURBODPRDFTSKOMPASS' AND s.dateSuppr=0 AND a.dateSuppr=0 AND p.dateSuppr=0 AND PDetention>=30");
|
||||
echo date('Y/m/d - H:i:s') ." - Ajout des index...".EOL;
|
||||
$nbRows=$iDb->query("ALTER TABLE tmp_LiensKompass ADD INDEX(sirenK);");
|
||||
echo date('Y/m/d - H:i:s') ." - Ajout des NIC...".EOL;
|
||||
$nbRows=$iDb->query("UPDATE tmp_LiensKompass k, etablissements_act a SET k.nic=a.nic WHERE k.sirenK=a.siren AND a.siege=1 AND k.sirenA>1000;");
|
||||
$tabTmp=$iDb->select('tabPays','codPays3, libPays', '1', false, MYSQL_ASSOC);
|
||||
foreach($tabTmp as $i=>$tabTmp2) {
|
||||
$tabPays[$tabTmp2['codPays3']]=$tabTmp2['libPays'];
|
||||
}
|
||||
$nbRows=count($tabTmp);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows pays en Presta $presta...".EOL;
|
||||
|
||||
$nbRows=$iDb->query("SELECT id, idAct, sirenA, rsA, nomA, paysA, actif, PDetention, Pvote, MajMin, idPar, sirenP, rsP, nomP, paysP, dateEffetLien*1 AS dateEffet, dateInsert*1 AS dateInsert, dateUpdate*1 AS dateUpdate, sirenK, nic, ref, tp_df FROM tmp_LiensKompass GROUP BY id, tp_df ORDER BY sirenK ASC, tp_df ASC, PDetention DESC, dateEffet DESC;");
|
||||
$nbLignes=$iDb->getNumRows();
|
||||
echo date('Y/m/d - H:i:s') ." - Export des $nbLignes liens Kompass en Presta $presta...".EOL;
|
||||
$nbLignes4=$nbLiensP100=0;
|
||||
$strLiensP100='Listes des siren avec des actionnaires > à 100 % :'.EOL.EOL;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$siren=$tabTmp['sirenK']*1;
|
||||
$nic=$tabTmp['nic']*1;
|
||||
$pctT=$tabTmp['PDetention'];
|
||||
if ($nic<10) {
|
||||
$tabId=@$iInsee->getIdentiteLight($siren);
|
||||
$nic=$tabId['Nic'];
|
||||
}
|
||||
if ($tabTmp['tp_df']==3) {
|
||||
// $siren a $sirentT pour PARTICIPATION
|
||||
$sirenT=$tabTmp['sirenP'];
|
||||
$nomT=substr(trim($tabTmp['rsP'].' '.$tabTmp['nomP']),0,64);
|
||||
$pays=$tabPays[$tabTmp['paysP']];
|
||||
} elseif ($tabTmp['tp_df']==2) {
|
||||
// $siren a $sirentT pour ACTIONNAIRE
|
||||
$sirenT=$tabTmp['sirenA'];
|
||||
$nomT=substr(trim($tabTmp['rsA'].' '.$tabTmp['nomA']),0,64);
|
||||
$pays=$tabPays[$tabTmp['paysA']];
|
||||
if ($sirenPre==$siren) $pctCumul+=$pctT;
|
||||
else $pctCumul=$pctT;
|
||||
if ($pctCumul>100) {
|
||||
$nbLiensP100++;
|
||||
echo "$siren\t$sirenT\t$pctCumul".EOL;
|
||||
$strLiensP100.="$siren\t$sirenT\t$pctCumul".EOL;
|
||||
$sirenPre=$siren;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$dateMAJ=substr($tabTmp['dateEffet'],0,8)*1;
|
||||
$dateInsert=substr($tabTmp['dateInsert'],0,8)*1;
|
||||
$dateUpdate=substr($tabTmp['dateUpdate'],0,8)*1;
|
||||
if ($dateInsert>$dateMAJ) $dateMAJ=$dateInsert;
|
||||
if ($dateUpdate>$dateMAJ) $dateMAJ=$dateUpdate;
|
||||
|
||||
$ligne= initstr($siren, 9, '0', ALIGN_RIGHT) .
|
||||
initstr($nic, 5, '0', ALIGN_RIGHT) .
|
||||
initstr($tabTmp['ref'], 7, '0', ALIGN_RIGHT) .
|
||||
initstr($tabTmp['tp_df'],1, '0', ALIGN_RIGHT) .
|
||||
initstr($sirenT, 9, '0', ALIGN_RIGHT) .
|
||||
initstr($nomT, 64) .
|
||||
' '.
|
||||
sprintf("%06.2f", $pctT) .
|
||||
initstr($pays, 30) .
|
||||
initstr($dateMAJ, 8, '0', ALIGN_RIGHT);
|
||||
|
||||
fwrite($fp, $ligne.EOL);
|
||||
$nbLignes4++;
|
||||
$sirenPre=$siren;
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de l'export en Presta $presta ($nbLignes4 liens retenus/$nbLignes liens)...".EOL;
|
||||
sendMail('prod@scores-decisions.com', 'ylenaour@scores-decisions.com,mpurcarin@scores-decisions.com,abalayan@snd-a.com',
|
||||
"Liste des $nbLiensP100 Entités avec + de 100% d'actionnariat pour le mois ".date('m/Y'), $strLiensP100);
|
||||
|
||||
//die();
|
||||
|
||||
$nbRows=$iDb->query("DROP TABLE tmp_LiensKompass;");
|
||||
//die();
|
||||
|
||||
/*
|
||||
$nbRows=$iDb->select('surveillances_listes','siren, ref',"idClient='SURBODPRDFTSKOMPASS' AND dateSuppr=0 ORDER BY siren ASC", false, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siren Kompass en Presta $presta...".EOL;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
@ -202,7 +322,7 @@ if ($presta==4) {
|
||||
foreach ($tabAct as $i=>$lien) {
|
||||
$sirenT=$lien['Siren']*1;
|
||||
$pctT=$lien['PminNum'];
|
||||
if ($pctT==0) continue;
|
||||
if ($pctT<30) continue;
|
||||
$pctTtot+=$pctT;
|
||||
$nomT=strtr(trim(substr($lien['RaisonSociale'],0,64)),array('*'=>' ','/'=>' '));
|
||||
$paysT=$lien['CodePays'];
|
||||
@ -237,7 +357,7 @@ if ($presta==4) {
|
||||
foreach ($tabAct as $i=>$lien) {
|
||||
$sirenT=$lien['Siren']*1;
|
||||
$pctT=$lien['PminNum'];
|
||||
if ($pctT==0) continue;
|
||||
if ($pctT<30) continue;
|
||||
$pctTtot+=$pctT;
|
||||
$nomT=strtr(trim(substr($lien['RaisonSociale'],0,64)),array('*'=>' ','/'=>' '));
|
||||
$paysT=$lien['CodePays'];
|
||||
@ -265,49 +385,158 @@ if ($presta==4) {
|
||||
initstr($dateT, 8, '0', ALIGN_RIGHT);
|
||||
fwrite($fp, $ligne.EOL);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
// partner.scores-decisions.com/id/144/siren/
|
||||
if ($presta==6) {
|
||||
$urlKompass='http://partner.scores-decisions.com/id/144/siren/';
|
||||
echo date('Y/m/d - H:i:s') ." - Recherche des siren en Presta $presta...".EOL;
|
||||
|
||||
$nbRows=$iDb->query( "SELECT e.siren, s.ref
|
||||
FROM etablissements_act e, surveillances_listes s
|
||||
WHERE e.siren=s.siren AND e.cj>1999 AND siege=1 AND s.idClient='SURBODPRDFTSKOMPASS' AND s.dateSuppr=0
|
||||
ORDER BY e.siren ASC");
|
||||
$nbLignes=$iDb->getNumRows();
|
||||
echo date('Y/m/d - H:i:s') ." - Export des $nbLignes siren Kompass en Presta $presta...".EOL;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$ligne= initstr($tabTmp['siren'], 9, '0', ALIGN_RIGHT) .
|
||||
initstr($tabTmp['ref'], 7, '0', ALIGN_RIGHT) .
|
||||
initstr($urlKompass.$tabTmp['siren'],120);
|
||||
fwrite($fp, $ligne.EOL);
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de l'export en Presta $presta...".EOL;
|
||||
|
||||
sendMail('support@scores-decisions.com', 'ylenaour@scores-decisions.com',
|
||||
'Fichiers hors Elements Financiers Scores & Décisions du mois '.date('m/Y'), 'Bonjour,
|
||||
|
||||
Pour votre information, nous avons déposé ce jour sur notre serveur FTP, les différents fichiers hors prestation "éléments financiers" relatif au contrat.
|
||||
|
||||
Cordialement,
|
||||
Service Support S&D.
|
||||
|
||||
--
|
||||
|
||||
SCORES & DECISIONS
|
||||
1, rue de Clairefontaine – 78120 Rambouillet
|
||||
tél. direct : 33 (0)1 34 57 39 58
|
||||
tél. standard : 33 (0)1 75 43 80 10
|
||||
fax bureau : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
www.scores-decisions.com
|
||||
|
||||
Scores & Décisions est l\'acteur nouvelle génération de l\'information et de l\'évaluation des entreprises');
|
||||
|
||||
}
|
||||
|
||||
if ($presta==5) {
|
||||
$uniteLiv=1000; // En K€
|
||||
$nbRows=$iDb->select('surveillances_listes','siren, ref',"idClient='SURBODPRDFTSKOMPASS' AND dateSuppr=0 /*AND siren>422372466*/ ORDER BY siren ASC", false, MYSQL_ASSOC, true);
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Création de la table de bilans temportaires pour la Presta $presta...".EOL;
|
||||
$nbRows=$iDb->query("DROP TABLE IF EXISTS tmp_BilansKompass;");
|
||||
$nbRows=$iDb->query("CREATE TABLE tmp_BilansKompass
|
||||
SELECT siren, 0 AS nic, '' AS ref, 0 AS eff_entrep, dateExercice, consolide, dureeExercice, monnaie, teffen, dateInsert, FL, HN, GG, IF(ISNULL(FL),0,FL) + IF(ISNULL(FM),0,FM) + IF(ISNULL(FN),0,FN) -( IF(ISNULL(FS),0,FS) + IF(ISNULL(FU),0,FU) )-( IF(ISNULL(FT),0,FT) + IF(ISNULL(FV),0,FV) )-( IF(ISNULL(FW),0,FW) - IF(ISNULL(HP),0,HP) - IF(ISNULL(HQ),0,HQ) )-( IF(ISNULL(FY),0,FY) + IF(ISNULL(FZ),0,FZ) )- IF(ISNULL(FX),0,FX) + IF(ISNULL(FO),0,FO) AS EBE, YP
|
||||
FROM bilans_postes
|
||||
WHERE consolide IN('N','S') AND dateExercice>date(NOW())*1-50000
|
||||
");
|
||||
echo date('Y/m/d - H:i:s') ." - Ajout des index...".EOL;
|
||||
$nbRows=$iDb->query("ALTER TABLE tmp_BilansKompass ADD INDEX(siren, dateExercice);");
|
||||
echo date('Y/m/d - H:i:s') ." - Ajout des NIC...".EOL;
|
||||
$nbRows=$iDb->query("UPDATE tmp_BilansKompass k, etablissements_act a SET k.nic=a.nic, k.eff_entrep=a.eff_entrep WHERE k.siren=a.siren AND a.siege=1 AND k.siren>1000;");
|
||||
echo date('Y/m/d - H:i:s') ." - Ajout de la référence Kompas...".EOL;
|
||||
$nbRows=$iDb->query("ALTER TABLE tmp_BilansKompass CHANGE ref ref CHAR(7);");
|
||||
$nbRows=$iDb->query("UPDATE tmp_BilansKompass k, surveillances_listes s SET k.ref=s.ref WHERE k.siren=s.siren AND k.siren>1000 AND s.idClient='SURBODPRDFTSKOMPASS' AND s.dateSuppr=0;");
|
||||
|
||||
$nbRows=$iDb->query("SELECT siren, nic, ref, eff_entrep, dateExercice, consolide, dureeExercice, monnaie, teffen, DATE(dateInsert)*1 AS dateMAJ, FL, HN, GG, EBE, YP FROM tmp_BilansKompass WHERE ref<>'' ORDER BY siren ASC, dateExercice DESC;");
|
||||
|
||||
$nbLignes=$iDb->getNumRows();
|
||||
echo date('Y/m/d - H:i:s') ." - Traitement des $nbLignes bilans Kompass maximum en Presta $presta...".EOL;
|
||||
$sirenPre=$nbBilans=$nbSiren=$nbLignes=0;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$siren=$tabTmp['siren']*1;
|
||||
if ($siren<>$sirenPre) { $nbBilans=0; $nbSiren++; }
|
||||
else $nbBilans++;
|
||||
if ($nbBilans<5) {
|
||||
$nic=$tabTmp['nic']*1;
|
||||
if ($nic<10) {
|
||||
$tabId=@$iInsee->getIdentiteLight($siren);
|
||||
$nic=$tabId['Nic'];
|
||||
}
|
||||
$effectif=$tabTmp['YP'];
|
||||
if ($effectif<1) $effectif=$tabTmp['eff_entrep'];
|
||||
$millesime=substr($tabTmp['dateExercice'], 4,2).substr($tabTmp['dateExercice'], 0,4);
|
||||
$dateMAJ=$tabTmp['dateMAJ'];
|
||||
|
||||
$ligne= initstr($siren, 9, '0', ALIGN_RIGHT) .
|
||||
initstr($nic, 5, '0', ALIGN_RIGHT) .
|
||||
initstr($tabTmp['ref'], 7, '0', ALIGN_RIGHT) .
|
||||
initstr($effectif, 7, '0', ALIGN_RIGHT) .
|
||||
initstr($millesime, 6, '0', ALIGN_RIGHT) .
|
||||
initstr($tabTmp['dureeExercice'], 2, '0', ALIGN_RIGHT) .
|
||||
initstr($tabTmp['monnaie'], 3) .
|
||||
initstr(@round($tabTmp['FL']/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // CA
|
||||
initstr(@round($tabTmp['EBE']/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // EBE
|
||||
initstr(@round($tabTmp['HN']/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // HN
|
||||
initstr(@round($tabTmp['GG']/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Res Exploit.
|
||||
initstr($dateMAJ, 8, '0', ALIGN_RIGHT);
|
||||
|
||||
fwrite($fp, $ligne.EOL);
|
||||
$nbLignes++;
|
||||
if ($nbLignes%100000==0) echo date('Y/m/d - H:i:s') ." - Presta $presta : $nbLignes lignes, $nbSiren siren traités...".EOL;
|
||||
}
|
||||
$sirenPre=$siren;
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de l'export en Presta $presta ($nbLignes lignes/$nbSiren siren)...".EOL;
|
||||
$nbRows=$iDb->query("DROP TABLE tmp_BilansKompass;");
|
||||
|
||||
//die();
|
||||
|
||||
/*
|
||||
$nbRows=$iDb->select('surveillances_listes','siren, ref',"idClient='SURBODPRDFTSKOMPASS' AND dateSuppr=0 ORDER BY siren ASC", false, MYSQL_ASSOC, true);
|
||||
//$nbRows=$iDb->select('surveillances_listes','siren, ref',"idClient='SURBODPRDFTSKOMPASS' AND dateSuppr=0 AND siren IN (451321335,954509741,780130175) ORDER BY siren ASC", false, MYSQL_ASSOC, true);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siren Kompass en Presta $presta...".EOL;
|
||||
$nbSir=0;
|
||||
$millesimeMini=date('Y')-5;
|
||||
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$nbSir++;
|
||||
$siren=$tabTmp['siren'];
|
||||
$ref=trim($tabTmp['ref']);
|
||||
$tabId=@$iInsee->getIdentiteLight($siren);
|
||||
$nic=$tabId['Nic'];
|
||||
$nom=strtr(trim(substr($tabId['Nom'],0,60)),array('*'=>' ','/'=>' '));
|
||||
//$nom=strtr(trim(substr($tabId['Nom'],0,60)),array('*'=>' ','/'=>' '));
|
||||
$mBil=new MBilans($siren);
|
||||
$tabBilans=@$mBil->listeBilans();
|
||||
$iBil=0;
|
||||
foreach ($tabBilans as $idxBilan=>$derBilan) {
|
||||
$iBil++;
|
||||
// Nouveau contrat Kompass, on ne livre plus les bilans plus vieux de 5 ans ni les bilans consolidés
|
||||
if ($derBilan['millesime']<$millesimeMini || ($derBilan['typeBilan']<>'N' && $derBilan['typeBilan']<>'S')) continue;
|
||||
$p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']);
|
||||
//print_r($p);
|
||||
$conso=' ';
|
||||
// $conso=' ';
|
||||
$dateClot=str_replace('-','',$p['DATE_CLOTURE']);
|
||||
$duree=$p['DUREE_MOIS']; // Durée de l'exercice en mois
|
||||
$devise=strtoupper($p['MONNAIE']); // Monnaie
|
||||
$dateFraicheur=$p['DATE_FRAICHE_BILAN'];
|
||||
$unite=@strtoupper($p['MONNAIE_LIV_UNITE']);
|
||||
if ($unite=='') $unite='U';
|
||||
$conso='N';
|
||||
if ($p['CONSOLIDE']=='C') $conso='C';
|
||||
elseif ($p['CONSOLIDE']=='S') $p=@$mBil->bilanSimplifie2Normal($p);
|
||||
// $conso='N';
|
||||
// if ($p['CONSOLIDE']=='C') $conso='C';
|
||||
// else
|
||||
if ($p['CONSOLIDE']=='S') $p=@$mBil->bilanSimplifie2Normal($p);
|
||||
$uniteMultiple=1;/*
|
||||
switch (strtoupper($unite)) {
|
||||
case 'K': $uniteMultiple=1000; break;
|
||||
case 'M': $uniteMultiple=1000000; break;
|
||||
}*/
|
||||
}
|
||||
|
||||
$effectif=@$p['YP']*1;
|
||||
|
||||
// Modifier la table établissements_act
|
||||
$va=@$p['FL']+@$p['FM']+@$p['FN']-(@$p['FS']+@$p['FU'])-(@$p['FV']+@$p['FT']) - (@$p['FW']-@$p['HP']-@$p['HQ']);
|
||||
$ebe=$va-(@$p['FY']+@$p['FZ'])-@$p['FX']+@$p['FO'];
|
||||
$caf=@$p['HN']+ @$p['HF']+ @$p['HG']- @$p['HB']- @$p['HC']+ @$p['GQ']- @$p['GM']+ @$p['GA']+ @$p['GB']+ @$p['GC']+ @$p['GD']- @$p['FP'];
|
||||
|
||||
/* $caf=@$p['HN']+ @$p['HF']+ @$p['HG']- @$p['HB']- @$p['HC']+ @$p['GQ']- @$p['GM']+ @$p['GA']+ @$p['GB']+ @$p['GC']+ @$p['GD']- @$p['FP'];
|
||||
$inv=@$p['KC']+@$p['KF']+@$p['LP']+@$p['MY']-@$p['NC'];
|
||||
$liq=@$p['CJ']-@$p['CK']-@$p['CH']+@$p['CI']-@$p['DW']-@$p['DX']-@$p['DY']-@$p['DZ']-@$p['EA']-@$p['EH'];
|
||||
$cap=@$p['DL']+@$p['DO']-@$p['AA']-(@$p['CL']+@$p['CM']+@$p['CN'])+ @$p['ED'];
|
||||
@ -350,13 +579,13 @@ if ($presta==5) {
|
||||
|
||||
/*$calc=($p['FL']*$uniteMultiple)/$uniteLiv;
|
||||
echo "$siren le $dateClot en $unite $devise ($uniteMultiple, $uniteLiv): CA=$calc\t".$p['FL'].EOL;
|
||||
*/
|
||||
|
||||
|
||||
$ligne= initstr($siren, 9, '0', ALIGN_RIGHT) .
|
||||
initstr($nic, 5, '0', ALIGN_RIGHT) .
|
||||
initstr($ref, 7, '0', ALIGN_RIGHT) .
|
||||
initstr($nom, 60) .
|
||||
initstr($conso, 1) .
|
||||
// initstr($nom, 60) .
|
||||
// initstr($conso, 1) .
|
||||
initstr($effectif, 7, ' ', ALIGN_RIGHT) .
|
||||
initstr(substr($dateClot, 4,2).substr($dateClot, 0,4), 6, '0', ALIGN_RIGHT) . // BILAN_DATE Date de clôture du bilan Format AAAAMMJJ
|
||||
initstr($duree, 2, '0', ALIGN_RIGHT) . // BILAN_DUREE Durée de l'exercice en mois
|
||||
@ -364,7 +593,7 @@ if ($presta==5) {
|
||||
initstr(@round(($p['FL']*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // CA
|
||||
initstr(@round(($ebe*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // EBE
|
||||
initstr(@round(($p['HN']*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // HN
|
||||
initstr(@round(($caf*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // CAF
|
||||
/* initstr(@round(($caf*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // CAF
|
||||
initstr(@round(($inv*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Investissements
|
||||
initstr(@round(($liq*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Liquidités
|
||||
initstr(sprintf("%+07.2f", $ren), 7) . // Rentabilite
|
||||
@ -374,8 +603,9 @@ if ($presta==5) {
|
||||
initstr(@round(($va*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // VA
|
||||
initstr(@sprintf("%+07.2f", round($va*100/@$p['FL']),2), 7) . // Tx VA
|
||||
initstr(' ', 3) .
|
||||
|
||||
initstr(@round($p['GG']*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Res Exploit.
|
||||
initstr(@round($p['GV']*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Res. Fi
|
||||
/* initstr(@round($p['GV']*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Res. Fi
|
||||
initstr(@round($p['HI']*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Res Excep.
|
||||
initstr(@round($actImmo*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Actif ImmoNet
|
||||
initstr(@round($actCirc*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Actif CirculantNet
|
||||
@ -390,13 +620,34 @@ if ($presta==5) {
|
||||
initstr(@round($treso*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Trésorerie
|
||||
initstr(sprintf("%+07.2f", $end), 7) . // Tx endettement
|
||||
initstr(' ', 3) .
|
||||
|
||||
initstr(str_replace('/','',WDate::dateT('Ymd','d/m/Y',$dateFraicheur)), 8);
|
||||
//echo $ligne.EOL;
|
||||
fwrite($fp, $ligne.EOL);
|
||||
if ($iBil==3) break;
|
||||
if ($iBil==4) break;
|
||||
}
|
||||
if ($nbSir%1000==0) echo date('Y/m/d - H:i:s') ." - $nbSir/$nbRows siren traites...".EOL;
|
||||
}
|
||||
}*/
|
||||
|
||||
sendMail('support@scores-decisions.com', 'ylenaour@scores-decisions.com',
|
||||
'Fichier Elements Financiers Scores & Décisions du mois '.date('m/Y'), "Bonjour,
|
||||
|
||||
Pour votre information, nous avons déposé ce jour sur notre serveur FTP, le fichier des \"éléments financiers\" contenant $nbLignes lignes relatif au contrat.
|
||||
|
||||
Cordialement,
|
||||
Service Support S&D.
|
||||
|
||||
--
|
||||
|
||||
SCORES & DECISIONS
|
||||
1, rue de Clairefontaine – 78120 Rambouillet
|
||||
tél. direct : 33 (0)1 34 57 39 58
|
||||
tél. standard : 33 (0)1 75 43 80 10
|
||||
fax bureau : 33 (0)1 75 43 85 74
|
||||
support@scores-decisions.com
|
||||
www.scores-decisions.com
|
||||
|
||||
Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises");
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
|
@ -77,7 +77,7 @@ foreach ($tabLignes as $i=>$ligne) {
|
||||
$siren=trim($tmp1[0]);
|
||||
$nic=trim($tmp1[1]);
|
||||
//$tmp1=$iTel->getTel($siren);
|
||||
$tmp=$iTel->getTel($siren, $nic);
|
||||
$tmp=$iTel->getTel($siren, $nic,1);
|
||||
//echo "$siren $nic".EOL;
|
||||
if (count($tmp)==0) echo "$siren,$nic".EOL;
|
||||
else {
|
||||
|
21747
batch/export_classement.csv
Normal file
21747
batch/export_classement.csv
Normal file
File diff suppressed because it is too large
Load Diff
149
batch/exporteLiens.php
Normal file
149
batch/exporteLiens.php
Normal file
@ -0,0 +1,149 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
function exporte($txt, $lon=false, $sep="\t") {
|
||||
if ($lon===false) $lon=strlen($txt);
|
||||
$txt=strtr(trim($txt),array('''=>"'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
|
||||
|
||||
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
|
||||
|
||||
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
|
||||
}
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMScores.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$iInsee=new MInsee();
|
||||
$iDb=new WDb('jo');
|
||||
|
||||
$codPays3='BEL';
|
||||
$fpL=fopen('/root/sedLiens.csv','w');
|
||||
$fpE=fopen('/root/sedEntites.csv','w');
|
||||
$fpI=fopen('/root/sedIdLocaux.csv','w');
|
||||
|
||||
$ret=$iDb->select('jo.liens2', 'idAct, PDetention, Pvote, MajMin, idPar', "actif=1 AND dateSuppr=0 AND (idAct IN (SELECT id FROM liensRef WHERE adresse_pays='$codPays3' AND actif=1 AND dateSuppr=0) OR idPar IN (SELECT id FROM liensRef WHERE adresse_pays='$codPays3' AND actif=1 AND dateSuppr=0) )", false, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $ret liens '$codPays3' à exporter ...".EOL;
|
||||
$tDeb=microtime(1);
|
||||
$tabT=array();
|
||||
fwrite($fpL, "idActionnaire\tpctDetention\tpctVote\ttype\tidParticipation".EOL);
|
||||
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$idAct= $ligne['idAct'];
|
||||
$tabT[]=$idAct;
|
||||
$pDet= $ligne['PDetention'];
|
||||
$pVot= $ligne['Pvote'];
|
||||
$majMin=$ligne['MajMin'];
|
||||
$idPar= $ligne['idPar'];
|
||||
$tabT[]=$idPar;
|
||||
if ($majMin=='+' && $pDet<=50 && $pVot<=50) $majMin='-';
|
||||
if ($majMin=='-' && ($pDet>50 || $pVot>50)) $majMin='+';
|
||||
|
||||
fwrite($fpL, "$idAct\t$pDet\t$pVot\t$majMin\t$idPar".EOL);
|
||||
}
|
||||
fclose($fpL);
|
||||
$tFin=microtime(1);
|
||||
echo EOL."Durée Fichier Liens .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
|
||||
|
||||
$tabT=array_unique($tabT);
|
||||
$strIDs=implode(',', $tabT);
|
||||
$ret=$iDb->select('jo.liensRef', 'id, siren, sirenValide, actif, PpPm, RS, sigle, civilite, nom, prenom, nom_usage, naissance_date, naissance_dept_pays, naissance_lieu, nat, adresse_num, adresse_btq, adresse_codvoie, adresse_libvoie, adresse_comp, adresse_cp, adresse_ville, adresse_pays, tel, fax, web, email, cj, ape, capital, deviseCapital, isin, idLoc1Type, idLoc1Num, idLoc2Type, idLoc2Num, idLoc3Type, idLoc3Num', "id IN ($strIDs) ORDER BY id ASC", false, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $ret entités relatives à '$codPays3' à exporter ...".EOL;
|
||||
$tDeb=microtime(1);
|
||||
$tabIdL=array(1);
|
||||
fwrite($fpE, "id\tsiren\tPpPm\tRS\tsigle\tcivilite\tnom\tprenom\tnom_usage\tnaissance_date\tnaissance_dept_pays\tnaissance_lieu\tnat\tadresse_num\tadresse_btq\tadresse_codvoie\tadresse_libvoie\tadresse_comp\tadresse_cp\tadresse_ville\tadresse_pays\ttel\tfax\tweb\temail\tcj\tape\tcapital\tdeviseCapital\tisin\tidLoc1Type\tidLoc1Num\tidLoc2Type\tidLoc2Num\tidLoc3Type\tidLoc3Num".EOL);
|
||||
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$id= $ligne['id'];
|
||||
$siren= $ligne['siren'];
|
||||
$isin= $ligne['isin'];
|
||||
$ppPm= $ligne['PpPm'];
|
||||
$rs= $ligne['RS'];
|
||||
$sigle= $ligne['sigle'];
|
||||
$civ= $ligne['civilite'];
|
||||
$nom= $ligne['nom'];
|
||||
$prenom=$ligne['prenom'];
|
||||
$nomUsa=$ligne['nom_usage'];
|
||||
$nDate= $ligne['naissance_date'];
|
||||
$nLieu= $ligne['naissance_lieu'];
|
||||
$nPaysD=$ligne['naissance_dept_pays'];
|
||||
$nat= $ligne['nat'];
|
||||
$adrNum=$ligne['adresse_num'];
|
||||
$adrBtq=$ligne['adresse_btq'];
|
||||
$adrVoi=$ligne['adresse_codvoie'];
|
||||
$adrLib=$ligne['adresse_libvoie'];
|
||||
$adrCom=$ligne['adresse_comp'];
|
||||
$adrCP= $ligne['adresse_cp'];
|
||||
$adrVil=$ligne['adresse_ville'];
|
||||
$adrPay=$ligne['adresse_pays'];
|
||||
$tel= $ligne['tel'];
|
||||
$fax= $ligne['fax'];
|
||||
$web= $ligne['web'];
|
||||
$email= $ligne['email'];
|
||||
$cj= $ligne['cj'];
|
||||
$ape= $ligne['ape'];
|
||||
$cap= $ligne['capital'];
|
||||
$capDev=$ligne['deviseCapital'];
|
||||
|
||||
$id1T=$id1N=$id2T=$id2N=$id3T=$id3N='';
|
||||
if ($ligne['idLoc1Type']>0 && trim($ligne['idLoc1Num'])<>'') {
|
||||
$id1T=$ligne['idLoc1Type'];
|
||||
$id1N=$ligne['idLoc1Num'];
|
||||
$tabIdL[]=$id1T*1;
|
||||
}
|
||||
if ($ligne['idLoc2Type']>0 && trim($ligne['idLoc2Num'])<>'') {
|
||||
$id2T=$ligne['idLoc2Type'];
|
||||
$id2N=$ligne['idLoc2Num'];
|
||||
$tabIdL[]=$id2T*1;
|
||||
}
|
||||
if ($ligne['idLoc2Type']>0 && trim($ligne['idLoc2Num'])<>'') {
|
||||
$id3T=$ligne['idLoc3Type'];
|
||||
$id3N=$ligne['idLoc3Num'];
|
||||
$tabIdL[]=$id3T*1;
|
||||
}
|
||||
|
||||
if ($siren>1000) {
|
||||
if ($id1T=='' && $id1N=='') { $id1T=1; $id1N=$siren; }
|
||||
elseif ($id2T=='' && $id2N=='') { $id2T=1; $id2N=$siren; }
|
||||
elseif ($id3T=='' && $id3N=='') { $id3T=1; $id3N=$siren; }
|
||||
}
|
||||
fwrite($fpE, "$id\t$isin\t$ppPm\t$rs\t$sigle\t$civ\t$nom\t$prenom\t$nomUsa\t$nDate\t$nLieu\t$nPaysD\t$nat\t$adrNum\t$adrBtq\t$adrVoi\t$adrLib\t$adrCom\t$adrCP\t$adrVil\t$adrPay\t$tel\t$fax\t$web\t$email\t$cj\t$ape\t$cap\t$capDev".EOL);
|
||||
}
|
||||
fclose($fpE);
|
||||
$tFin=microtime(1);
|
||||
echo EOL."Durée Fichier Entites .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
|
||||
|
||||
$tabIdL=array_unique($tabIdL);
|
||||
$strIdsLoc=implode(',', $tabIdL);
|
||||
print_r($tabIdL);
|
||||
$ret=$iDb->select('sdv1.tabIdLocal', 'id, idLocal, idLocalLong', "id IN ($strIdsLoc) ORDER BY id ASC", false, MYSQL_ASSOC, true);
|
||||
echo mysql_error();
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $ret IdLocaux relatifs à '$codPays3' à exporter ...".EOL;
|
||||
$tDeb=microtime(1);
|
||||
fwrite ($fpI, "id\tidLocal\tidLocalLong".EOL);
|
||||
while($ligne=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$id= $ligne['id'];
|
||||
$idLoc= $ligne['idLocal'];
|
||||
$idLong=$ligne['idLocalLong'];
|
||||
fwrite($fpI, "$id\t$idLoc\t$idLong".EOL);
|
||||
}
|
||||
fclose($fpI);
|
||||
$tFin=microtime(1);
|
||||
echo EOL."Durée Fichier IdLocaux .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
|
||||
|
||||
die();
|
||||
|
||||
?>
|
508
batch/extractVWBank.php
Normal file
508
batch/extractVWBank.php
Normal file
@ -0,0 +1,508 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'conversion/bilAltares.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBanques.php');
|
||||
|
||||
$iInsee=new MInsee();
|
||||
$iDb=new WDB();
|
||||
$iDb2=new WDB('sdv1');
|
||||
|
||||
/*
|
||||
$rep=$iDb->select( 'bodacc_detail',
|
||||
'id, siren, VenteMt, Bodacc_Date_Parution, publication, publicationNom, publicationDate, SUBSTRING(codePostal,1,3) AS dep3',
|
||||
"id>15000000 AND Rubrique='ventes' GROUP BY id", false, MYSQL_ASSOC);
|
||||
$nb=count($rep);
|
||||
echo "num\tidAnn\tsiren\tmontantVte\tdateJal\tdateBod\tnomJalBod\tdept\tJal\tidJal".EOL;
|
||||
foreach($rep as $i=>$vte) {
|
||||
$id=$vte['id'];
|
||||
$nom=$vte['publication'];
|
||||
$datePub=$vte['publicationDate'];
|
||||
$dateBod=$vte['Bodacc_Date_Parution'];
|
||||
$siren=$vte['siren'];
|
||||
$mt=$vte['VenteMt'];
|
||||
|
||||
if (strlen($nom)<10) continue;
|
||||
$dep=$vte['dep3']*1;
|
||||
if ($dep<970) $dep=substr($vte['dep3'],0,2);
|
||||
echo "$i/$nb\t$id\t$siren\t$mt\t$datePub\t$dateBod\t$nom\t$dep\t";
|
||||
$nom2=trim(addslashes($vte['publicationNom']));
|
||||
|
||||
$rep=$iDb->select('tabJAL', "id, nomJal", "dep=$dep AND nomJal='$nom2'", false, MYSQL_ASSOC);
|
||||
$idJal=@$rep[0]['id']*1;
|
||||
if ($idJal==0) {
|
||||
$rep=$iDb->select('tabJAL', "id, nomJal, MATCH(nomJal) AGAINST('$nom2') AS pertinence", "dep=$dep HAVING pertinence>1 ORDER BY pertinence DESC LIMIT 0,3", false, MYSQL_ASSOC);
|
||||
$idJal=@$rep[0]['id'];
|
||||
}
|
||||
$nomJal=@$rep[0]['nomJal'];
|
||||
|
||||
echo "$nomJal\t$idJal".EOL;
|
||||
|
||||
//die();
|
||||
//$nomTrouve".EOL;
|
||||
}
|
||||
die();
|
||||
*/
|
||||
|
||||
/*
|
||||
$tabSiren=array(318919065,
|
||||
328412440,
|
||||
347902587,
|
||||
349339341,
|
||||
379699770,
|
||||
379776057,
|
||||
379848146,
|
||||
398984062,
|
||||
414789016,
|
||||
414813246,
|
||||
572140788,
|
||||
674800859);
|
||||
|
||||
foreach($tabSiren as $siren) {
|
||||
$tabIndiscore=@calculIndiScore($siren, 0, false, 3, false);
|
||||
print_r($tabIndiscore);
|
||||
}
|
||||
die();
|
||||
*/
|
||||
|
||||
$ape77=$ca5=$ratios=$ptf=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des liens actionnaires et participations.
|
||||
|
||||
Options :
|
||||
-a APE77
|
||||
-c CA5ME
|
||||
-p Portefeuille
|
||||
-r Ratios
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'a': $ape77=true; break;
|
||||
case 'c': $ca5=true; break;
|
||||
case 'p': $ptf=true; break;
|
||||
case 'r': $ratios=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
/** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
|
||||
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
|
||||
**
|
||||
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
|
||||
**/
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
$iInsee=new MInsee();
|
||||
|
||||
//$fileIn='/root/sql/sirenManquantsVWB.csv';
|
||||
if ($ape77) $fileIn='/root/sql/sirenAPE77.csv';
|
||||
elseif ($ca5) $fileIn='/root/sql/sirenCA5ME.csv';
|
||||
elseif ($ptf) $fileIn='/root/sql/Portefeuille_Base_Global_Liste_SIREN.csv';
|
||||
|
||||
$fileOut=$fileIn.'.out';
|
||||
if ($ratios) $fileOut=$fileIn.'_ratios.out';
|
||||
|
||||
$tabSiren=file($fileIn);
|
||||
$fp=fopen($fileOut,'w');
|
||||
|
||||
$nb=count($tabSiren);
|
||||
echo date ('Y/m/d - H:i:s')." - Début de l'export des $nb siren pour VWBank...".EOL;
|
||||
foreach ($tabSiren as $i=>$tmp) {
|
||||
$siren=trim($tmp)*1;
|
||||
if ($siren<1000) continue;
|
||||
//if ($i<21370) continue;
|
||||
$tabId=@$iInsee->getIdentiteEntreprise($siren,0,0,false,true);
|
||||
// getIdentiteEntreprise($siren, $nic=0, $id=0, $forceVerif=false, $accesDist=true) {
|
||||
//print_r($tabId);
|
||||
if ($ratios) {
|
||||
$mBil=new MBilans($siren);
|
||||
$tabBilans=$mBil->listeBilans(0);
|
||||
//print_r($tabBilans);
|
||||
$NBBILAN=count($tabBilans);
|
||||
$tabBilan=$tabBil=$tabRatios=array();
|
||||
$strOut='';
|
||||
if ($NBBILAN>0) {
|
||||
$tabRatios=@calculRatios($tabBilans, $tabId, 0);
|
||||
$j=0;
|
||||
foreach($tabBilans as $cleMille=>$tabInfosBilan) {
|
||||
$strOut.=$siren."\t".$tabInfosBilan['dateExercice']."\t".$tabInfosBilan['dureeExercice']."\t".$tabInfosBilan['typeBilan']."\t";
|
||||
|
||||
$strOut.=$tabRatios[$j][5]."\t"; // CA
|
||||
$strOut.=$tabRatios[$j][7]."\t"; // RCAI
|
||||
$strOut.=$tabRatios[$j][10]."\t"; // RN
|
||||
$strOut.=$tabRatios[$j][18]."\t"; // FP
|
||||
$strOut.=$tabRatios[$j][23]."\t"; // TOTAL BILAN
|
||||
$strOut.=$tabRatios[$j][235]."\t"; // FR
|
||||
$strOut.=$tabRatios[$j][236]."\t"; // BFR
|
||||
$strOut.=$tabRatios[$j][254]."\t"; // TRESORERIE
|
||||
$strOut.=$tabRatios[$j][24]."\t"; // Effectif
|
||||
$strOut.=$tabRatios[$j][140]."\t"; // EBE
|
||||
|
||||
$strOut.=$tabRatios[$j][233]."\t";
|
||||
$strOut.=$tabRatios[$j][234]."\t";
|
||||
$strOut.=$tabRatios[$j][237]."\t";
|
||||
$strOut.=$tabRatios[$j][238]."\t";
|
||||
$strOut.=$tabRatios[$j][239]."\t";
|
||||
$strOut.=$tabRatios[$j][240]."\t";
|
||||
|
||||
$strOut.=$tabRatios[$j][262]."\t";
|
||||
$strOut.=$tabRatios[$j][263]."\t";
|
||||
$strOut.=$tabRatios[$j][264]."\t";
|
||||
$strOut.=$tabRatios[$j][265]."\t";
|
||||
$strOut.=$tabRatios[$j][266]."\t";
|
||||
|
||||
$strOut.=$tabRatios[$j][250]."\t";
|
||||
$strOut.=$tabRatios[$j][251]."\t";
|
||||
$strOut.=$tabRatios[$j][252]."\t";
|
||||
|
||||
$strOut.=$tabRatios[$j][244]."\t";
|
||||
$strOut.=$tabRatios[$j][247]."\t";
|
||||
$strOut.=$tabRatios[$j][248]."\t";
|
||||
|
||||
$strOut.=$tabRatios[$j][271]."\t";
|
||||
$strOut.=$tabRatios[$j][278]."\t";
|
||||
$strOut.=$tabRatios[$j][279]."\t";
|
||||
$strOut.=$tabRatios[$j][281]."\t";
|
||||
$strOut.=$tabRatios[$j][261]."\t";
|
||||
$strOut.=$tabRatios[$j][267].EOL;
|
||||
|
||||
$j++;
|
||||
if ($j>2) break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$strOut =@$tabId['Siret']."\t";
|
||||
$strOut.=@$tabId['Actif']."\t"; // => 1
|
||||
$strOut.=@$tabId['ActifEco']."\t"; // => 1
|
||||
$strOut.=@$tabId['ActifEcoDate']."\t"; // =>
|
||||
$strOut.=@$tabId['ActifEcoType']."\t"; // =>
|
||||
$strOut.=@$tabId['EntActiveRCS']."\t"; // => 1
|
||||
$strOut.=@$tabId['EtabActifRCS']."\t"; // => 1
|
||||
$strOut.=@$tabId['Tribunal']."\t";
|
||||
$strOut.=@$tabId['Nom']."\t"; // => GABET ALAIN GEORGES
|
||||
$strOut.=@$tabId['Nom2']."\t"; // =>
|
||||
$strOut.=@$tabId['nomLong']."\t"; // => SERCY
|
||||
$strOut.=@$tabId['Sigle']."\t"; // =>
|
||||
$strOut.=@$tabId['NomCommercial']."\t"; // => SERGY TP
|
||||
$strOut.=@$tabId['Enseigne']."\t"; // =>
|
||||
$strOut.=@$tabId['enseigneLong']."\t"; // =>
|
||||
$strOut.=@$tabId['AdresseNum']."\t"; // => 0049
|
||||
$strOut.=@$tabId['AdresseBtq']."\t"; // =>
|
||||
$strOut.=@$tabId['AdresseVoie']."\t"; // => AV
|
||||
$strOut.=@$tabId['AdresseRue']."\t"; // => DE MACON
|
||||
$strOut.=@$tabId['Adresse2']."\t"; // => LE FAUBOURG
|
||||
$strOut.=@$tabId['CP']."\t"; // => 01000
|
||||
$strOut.=@$tabId['Ville']."\t"; // => BOURG EN BRESSE
|
||||
$strOut.=@$tabId['PaysIso2']."\t"; // => FR
|
||||
$strOut.=@$tabId['Civilite']."\t"; // => 1
|
||||
$strOut.=@$tabId['NbEtab']."\t"; // => 1
|
||||
$strOut.=@$tabId['Tel']."\t"; // =>
|
||||
$strOut.=@$tabId['Fax']."\t"; // =>
|
||||
$strOut.=@$tabId['Web']."\t"; // =>
|
||||
$strOut.=@$tabId['Mail']."\t"; // =>
|
||||
$strOut.=@$tabId['GeoLat']."\t"; // => 46.2108498
|
||||
$strOut.=@$tabId['GeoLon']."\t"; // => 5.2186203
|
||||
$strOut.=@$tabId['GeoAlt']."\t"; // => 236
|
||||
$strOut.=@$tabId['GeoPrecis']."\t"; // => 8
|
||||
$strOut.=@$tabId['TvaNumero']."\t"; // => FR74412724577
|
||||
$strOut.=@$tabId['TvaAttribue']."\t"; // =>
|
||||
$strOut.=@$tabId['FJ']."\t"; // => 1900
|
||||
$strOut.=@$tabId['RECME']."\t"; // => 0
|
||||
$strOut.=@$tabId['NafEtab']."\t"; // => 7712Z
|
||||
$strOut.=@$tabId['NafEnt']."\t"; // => 7712Z
|
||||
$strOut.=@$tabId['NaceEtab']."\t"; // => N7712
|
||||
$strOut.=@$tabId['NaceEnt']."\t"; // => N7712
|
||||
$strOut.=@$tabId['Isin']."\t"; // =>
|
||||
$strOut.=@$tabId['Capital']."\t"; // => 000000000000000
|
||||
$strOut.=@$tabId['CapitalDev']."\t"; // =>
|
||||
$strOut.=@$tabId['CapitalType']."\t"; // =>
|
||||
$strOut.=@$tabId['DateCreaEt']."\t"; // => 19950500
|
||||
$strOut.=@$tabId['DateCreaEn']."\t"; // => 19950500
|
||||
$strOut.=@$tabId['SituationJuridique']."\t"; // =>
|
||||
$strOut.=@$tabId['EffEnTr']."\t"; // => 00
|
||||
$strOut.=@$tabId['EffEnTrLib']."\t"; // => N/C
|
||||
$strOut.=@$tabId['EffEtTr']."\t"; // => 00
|
||||
$strOut.=@$tabId['EffEtTrLib']."\t"; // =>
|
||||
$strOut.=@$tabId['EffectifEtab']."\t"; // => 0000000
|
||||
$strOut.=@$tabId['Effectif']."\t"; // => 0000000
|
||||
$strOut.=@$tabId['Dept']."\t"; // => 01
|
||||
$strOut.=@$tabId['codeCommune']."\t"; // => 053
|
||||
$strOut.=@$tabId['TrancheCA']."\t"; // => 0
|
||||
$strOut.=@$tabId['TrancheCALib']."\t"; // => N/C
|
||||
$strOut.=@$tabId['TrancheCAexp']."\t"; // => 0
|
||||
$strOut.=@$tabId['TrancheCAexpLib']."\t"; // => 0%
|
||||
$strOut.=@$tabId['TrancheCAType']."\t"; // => I
|
||||
$strOut.=@$tabId['AnneeEffEn']."\t"; // => 2004
|
||||
$strOut.=@$tabId['AnneeEffEt']."\t"; // => 2004
|
||||
$strOut.=@$tabId['AnneeTCA']."\t"; // => 0000
|
||||
$strOut.=@$tabId['Rivoli']."\t"; // => 2400 0
|
||||
$strOut.=@$tabId['InfosIris']['codIris']."\t"; // => 0201
|
||||
$strOut.=@$tabId['InfosIris']['codComIris']."\t"; // => 010530201
|
||||
$strOut.=@$tabId['InfosIris']['libIris']."\t"; // => Citadelle
|
||||
$strOut.=@$tabId['InfosIris']['typIris']."\t"; // => IRIS d'habitat
|
||||
$strOut.=@$tabId['InfosIris']['evoIris']."\t"; // => 0
|
||||
$strOut.=@$tabId['InfosIris']['trIris']."\t"; // => 010021
|
||||
$strOut.=@$tabId['InfosIris']['grdQuartier']."\t"; // => 0105302
|
||||
$strOut.=@$tabId['NatureActivite']."\t"; // => 0
|
||||
$strOut.=@$tabId['OrigineCreation']."\t"; // => 1
|
||||
$strOut.=@$tabId['Auxiliaire']."\t"; // => 0
|
||||
$strOut.=@$tabId['Saisonnalite']."\t"; // => 0
|
||||
$strOut.=@$tabId['ACTISURF']."\t"; // => 0
|
||||
$strOut.=@$tabId['EXPLEN']."\t"; // => X
|
||||
$strOut.=@$tabId['EXPLET']."\t"; // => X
|
||||
$strOut.=@$tabId['LIEUACT']."\t"; // => 99
|
||||
$strOut.=@$tabId['MODEN']."\t"; // => S
|
||||
$strOut.=@$tabId['MONOACT']."\t"; // => 1
|
||||
$strOut.=@$tabId['MONOREG']."\t"; // => 1
|
||||
$strOut.=@$tabId['REGIMP']."\t"; // => 82
|
||||
$strOut.=@$tabId['PRODPART']."\t"; // => 0
|
||||
$strOut.=@$tabId['GeoInfos']['CUCS']."\t"; // => NON
|
||||
$strOut.=@$tabId['GeoInfos']['ZRU']."\t"; // => NON
|
||||
$strOut.=@$tabId['GeoInfos']['ZFU']."\t"; // => NON
|
||||
$strOut.=@$tabId['GeoInfos']['ZUS']."\t"; // => NON
|
||||
$strOut.=@$tabId['GeoInfos']['AFR']."\t"; // => NON
|
||||
$strOut.=@$tabId['GeoInfos']['ZRR']."\t"; // => NON
|
||||
$strOut.=@$tabId['GeoInfos']['NZRR']."\t"; // => 10194
|
||||
$strOut.=@$tabId['NonDiffusible']."\t"; // =>
|
||||
$strOut.=@$tabId['TypeExploitation']."\t"; // => 0
|
||||
$strOut.=@$tabId['APRM']."\t"; // => 4399CZ
|
||||
$strOut.=@$tabId['AdresseDom']."\t"; // => 2
|
||||
$strOut.=@$tabId['AdresseDomNb']."\t"; // => 688
|
||||
$strOut.=@$tabId['Activite']."\t"; // => Terrassement, travaux publics, (VRD), maçonnerie , Béton armé, location d'engins Tp, négoce de granulats et terre, Recyclage de matériaux
|
||||
$strOut.=@$tabId['numGreffe']."\t"; // => 0101
|
||||
$strOut.=@$tabId['numRC']."\t"; // => 2012A00006
|
||||
$strOut.=@$tabId['NumRM']."\t"; // => 327155404 RM 01
|
||||
$strOut.=@$tabId['dateImmat']."\t"; // => 2012-01-11
|
||||
$strOut.=@$tabId['dateRad']."\t"; // => 0000-00-00
|
||||
$strOut.=@$tabId['TribunalLib']."\t"; // => TC BOURG EN BRESSE
|
||||
$strOut.=@$tabId['bilanAnnee']."\t"; // => 2010
|
||||
$strOut.=@$tabId['bilanFLestime']."\t"; // => 250531
|
||||
$strOut.=@$tabId['dateMajIdentite']."\t"; // => 2012-09-30
|
||||
$strOut.=@$tabId['DateMajINSEE']."\t"; // => 2012-09-30
|
||||
$strOut.=@$tabId['dateMajANN']."\t"; // => 2012-01-24
|
||||
$strOut.=@$tabId['DateMajRCS']."\t";
|
||||
|
||||
$ANNONCESVDATE=$ANNONCERJDATE=$ANNONCELJDATE=$ANNONCEPLANDATE='';
|
||||
|
||||
if (@$tabId['SituationJuridique']=='P') {
|
||||
$tabProCol=@$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
|
||||
foreach ($tabProCol as $iProcol=>$procol) {
|
||||
foreach ($procol['evenements'] as $even) {
|
||||
if ($iProcol==0) $ANNONCEPC=$even['LibEven'];
|
||||
switch ($even['CodeEven']*1) {
|
||||
case 1300: // Conversion Redressement Judiciaire en Liquidation Judiciaire
|
||||
case 1301: // Ouverture Liquidation Judiciaire
|
||||
case 1302: // Ouverture Liquidation Judiciaire Simplifiée
|
||||
case 1305: // Liquidation Judiciaire
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1303: // Ouverture Liquidation Judiciaire sur résolution du plan
|
||||
case 1304: // Réouverture Liquidation Judiciaire
|
||||
case 1306: // Liquidation Judiciaire simplifiée
|
||||
case 1307: // Conversion sauvegarde en Liquidation Judiciaire
|
||||
case 1311: // Liquidation Judiciaire par extension au(x) gérant(s)
|
||||
case 1312: // Liquidation Judiciaire avec continuation d'exploitation
|
||||
case 1313: // Liquidation Judiciaire sans remise des accessoires
|
||||
case 1417: // Jugement d'extension de liquidation judiciaire
|
||||
|
||||
// Annonce de liquidation judiciaire
|
||||
$ANNONCELJ=true;
|
||||
|
||||
// Date de l'annonce LJ
|
||||
$ANNONCELJDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1200: // Redressement Judiciaire
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1201: // Conversion sauvegarde en Redressement Judiciaire
|
||||
case 1211: // Redressement Judiciaire par extension au(x) gérant(s)
|
||||
case 1212: // Réforme de Liquidation Judiciaire en Redressement Judiciaire
|
||||
case 1418: // Jugement d'extension d'une procédure de redressement judiciaire
|
||||
// Annonce de redressement judiciaire
|
||||
$ANNONCERJ=true;
|
||||
// Date de l'annonce RJ
|
||||
$ANNONCERJDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1100: // Ouverture sauvegarde
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1419: // Jugement d'extension d'une procédure de sauvegarde
|
||||
// Annonce de sauvegarde
|
||||
$ANNONCESV=true;
|
||||
// Date de l'annonce Sauv
|
||||
$ANNONCESVDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1407: // Modification de plan
|
||||
case 1408: // Modification du plan de cession
|
||||
case 1409: // Modification du plan de continuation
|
||||
case 1415: // Prolongement du plan cession
|
||||
// Modif de plan d'apurement
|
||||
$PLANMODIF=true;
|
||||
$ANNONCEPLANMODIFDATE=$ANNONCEDATE=$procol['dateJugement'];
|
||||
break;
|
||||
|
||||
case 1411: // Arrêt du plan de cession
|
||||
case 1414: // Arrêt du plan de redressement
|
||||
$ANNONCEPLANFINDATE=$procol['dateFinObservation'];
|
||||
if (substr($ANNONCEPLANFINDATE,0,4)*1==0) $ANNONCEPLANFINDATE='';
|
||||
/** @todo $ANNONCEPLANDUREE='';
|
||||
**/
|
||||
case 1412: // Arrêt du plan de cession partielle
|
||||
case 1413: // Arrêt du plan de continuation
|
||||
case 1101: // Jugement arrêtant plan de sauvegarde
|
||||
$PLAN=true; // Présence d'une annonce de plan d'apurement
|
||||
if ($even['CodeEven']*1==1411) $ANNONCEPLAN='cession';
|
||||
elseif ($even['CodeEven']*1==1412) $ANNONCEPLAN='cession partielle';
|
||||
elseif ($even['CodeEven']*1==1413) $ANNONCEPLAN='continuation';
|
||||
elseif ($even['CodeEven']*1==1414) $ANNONCEPLAN='redressement';
|
||||
elseif ($even['CodeEven']*1==1101) $ANNONCEPLAN='sauvegarde';
|
||||
|
||||
// Date de l'annonce de plan
|
||||
$ANNONCEPLANDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
break;
|
||||
case 1600: // Interdictions et Faillites
|
||||
case 1601:
|
||||
case 1610:
|
||||
case 1611:
|
||||
$ANNONCEINTERDITDATE=$procol['dateJugement'];
|
||||
break;
|
||||
case 1202: // Renouvellement de la période d'observation
|
||||
$ANNONCEPC_OBS=true;
|
||||
//1430, Jugement autorisant la poursuite d'activité
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif ($tabIdentite['SituationJuridique']=='PL') {
|
||||
$ANNONCEPCHISTO=true;
|
||||
$ELIMINE=false;
|
||||
$ANNONCEPC='Plan de continuation/redressement';
|
||||
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
|
||||
foreach ($tabProCol as $iProcol=>$procol) {
|
||||
foreach ($procol['evenements'] as $even) {
|
||||
if ($iProcol==0) $ANNONCEPC=$even['LibEven'];
|
||||
switch ($even['CodeEven']*1) {
|
||||
case 1300: // Conversion Redressement Judiciaire en Liquidation Judiciaire
|
||||
case 1301: // Ouverture Liquidation Judiciaire
|
||||
case 1302: // Ouverture Liquidation Judiciaire Simplifiée
|
||||
case 1305: // Liquidation Judiciaire
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1303: // Ouverture Liquidation Judiciaire sur résolution du plan
|
||||
case 1304: // Réouverture Liquidation Judiciaire
|
||||
case 1306: // Liquidation Judiciaire simplifiée
|
||||
case 1307: // Conversion sauvegarde en Liquidation Judiciaire
|
||||
case 1311: // Liquidation Judiciaire par extension au(x) gérant(s)
|
||||
case 1312: // Liquidation Judiciaire avec continuation d'exploitation
|
||||
case 1313: // Liquidation Judiciaire sans remise des accessoires
|
||||
case 1417: // Jugement d'extension de liquidation judiciaire
|
||||
|
||||
// Annonce de liquidation judiciaire
|
||||
$ANNONCELJ=true;
|
||||
|
||||
// Date de l'annonce LJ
|
||||
$ANNONCELJDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1200: // Redressement Judiciaire
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1201: // Conversion sauvegarde en Redressement Judiciaire
|
||||
case 1211: // Redressement Judiciaire par extension au(x) gérant(s)
|
||||
case 1212: // Réforme de Liquidation Judiciaire en Redressement Judiciaire
|
||||
case 1418: // Jugement d'extension d'une procédure de redressement judiciaire
|
||||
// Annonce de redressement judiciaire
|
||||
$ANNONCERJ=true;
|
||||
// Date de l'annonce RJ
|
||||
$ANNONCERJDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1100: // Ouverture sauvegarde
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1419: // Jugement d'extension d'une procédure de sauvegarde
|
||||
// Annonce de sauvegarde
|
||||
$ANNONCESV=true;
|
||||
// Date de l'annonce Sauv
|
||||
$ANNONCESVDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1407: // Modification de plan
|
||||
case 1408: // Modification du plan de cession
|
||||
case 1409: // Modification du plan de continuation
|
||||
case 1415: // Prolongement du plan cession
|
||||
// Modif de plan d'apurement
|
||||
$PLANMODIF=true;
|
||||
$ANNONCEPLANMODIFDATE=$ANNONCEDATE=$procol['dateJugement'];
|
||||
break;
|
||||
|
||||
case 1411: // Arrêt du plan de cession
|
||||
case 1414: // Arrêt du plan de redressement
|
||||
$ANNONCEPLANFINDATE=$procol['dateFinObservation'];
|
||||
if (substr($ANNONCEPLANFINDATE,0,4)*1==0) $ANNONCEPLANFINDATE='';
|
||||
/** @todo $ANNONCEPLANDUREE='';
|
||||
**/
|
||||
case 1412: // Arrêt du plan de cession partielle
|
||||
case 1413: // Arrêt du plan de continuation
|
||||
case 1101: // Jugement arrêtant plan de sauvegarde
|
||||
$PLAN=true; // Présence d'une annonce de plan d'apurement
|
||||
if ($even['CodeEven']*1==1411) $ANNONCEPLAN='cession';
|
||||
elseif ($even['CodeEven']*1==1412) $ANNONCEPLAN='cession partielle';
|
||||
elseif ($even['CodeEven']*1==1413) $ANNONCEPLAN='continuation';
|
||||
elseif ($even['CodeEven']*1==1414) $ANNONCEPLAN='redressement';
|
||||
elseif ($even['CodeEven']*1==1101) $ANNONCEPLAN='sauvegarde';
|
||||
|
||||
// Date de l'annonce de plan
|
||||
$ANNONCEPLANDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
break;
|
||||
case 1600: // Interdictions et Faillites
|
||||
case 1601:
|
||||
case 1610:
|
||||
case 1611:
|
||||
$ANNONCEINTERDITDATE=$procol['dateJugement'];
|
||||
break;
|
||||
case 1202: // Renouvellement de la période d'observation
|
||||
$ANNONCEPC_OBS=true;
|
||||
//1430, Jugement autorisant la poursuite d'activité
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'PH', false);
|
||||
if (count($tabProCol)>0) $ANNONCEPCHISTO=1;
|
||||
else $ANNONCEPCHISTO=0;
|
||||
}
|
||||
|
||||
$strOut.="$ANNONCESVDATE\t$ANNONCERJDATE\t$ANNONCELJDATE\t$ANNONCEPLANDATE".EOL; // => 2012-03-21
|
||||
}
|
||||
|
||||
fwrite($fp, $strOut);
|
||||
|
||||
echo date('Y-m-d H:i:s')." - $i/$nb : $siren".EOL;
|
||||
}
|
||||
|
||||
?>
|
@ -118,265 +118,6 @@ if (count($tabFichLigneCmd)==0) {
|
||||
sort($tabFichierIn);
|
||||
} else $tabFichierIn=$tabFichLigneCmd;
|
||||
|
||||
/*
|
||||
$nbLignes=$iDb->exportCSV(file_get_contents($sql), $csv.'.tmp');
|
||||
$fp = fopen("./csv2sql.log", 'a');
|
||||
fwrite($fp, date('Y-m-d H:i:s')." - $base $sql $csv : $nbLignes lignes extraites".EOL);
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
|
||||
$tabTmp=$iDb2->select('fedaso', 'count(*) AS nb', "DATE(dateEnvoi)=DATE(NOW())", false, MYSQL_ASSOC);
|
||||
$nbEncours=$tabTmp[0]['nb'];
|
||||
$tabTmp=$iDb2->select('fedaso', 'DATE(MAX(dateEnvoi)) AS lastEnvoi', "1", false, MYSQL_ASSOC);
|
||||
$maxEnvoi=$tabTmp[0]['lastEnvoi'];
|
||||
$message='';
|
||||
|
||||
if ($lastDepot || ($genereDepot && $nbEncours==0)) {
|
||||
$nbEncours=0;
|
||||
$strFichierOut='';
|
||||
$tabActesASaisir=$tabFichierOut=array();
|
||||
$tabTmp=$iDb->select('jo.tabActes', 'codActe', 'prioriteSaisie BETWEEN 1 AND 10', false, MYSQL_ASSOC);
|
||||
foreach ($tabTmp as $actes)
|
||||
$tabActesASaisir[]=$actes['codActe'];
|
||||
$nbTypesSaisie=count($tabActesASaisir);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbTypesSaisie types d'actes en saisie.". EOL;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Recherche des $nbEnvois documents à envoyer en saisie.". EOL;
|
||||
|
||||
while($nbEncours<=$nbEnvois) {
|
||||
if ($lastDepot)
|
||||
$tabTmp=$iDb->select('sdv1.fedaso', 'siren, page, params, dateEnvoi AS dateHeure', "dateEnvoi BETWEEN '$maxEnvoi 00:00:00' AND '$maxEnvoi 23:59:59'", false, MYSQL_ASSOC);
|
||||
else
|
||||
$tabTmp=$iDb->select('sdv1.logs', 'siren, page, params, dateHeure', "page LIKE 'greffe_%' AND params<>'' AND params NOT LIKE 'Erreur%' GROUP BY siren, page, params ORDER BY dateHeure DESC", false, MYSQL_ASSOC);
|
||||
foreach ($tabTmp as $actes) {
|
||||
$siren =$actes['siren'];
|
||||
$params=$actes['params'];
|
||||
$pageAc=$actes['page'];
|
||||
$dateCmd=$actes['dateHeure'];
|
||||
if ($pageAc=='greffe_bilans') {
|
||||
$multiDepot=false;
|
||||
// L'acte a traiter est un bilan
|
||||
$url="http://extranet.scores-decisions.com/pdf/bilan-$siren-$params.pdf";
|
||||
//$url="http://extranet.scores-decisions.com/datafile.php?q=bilan-$siren-$params.pdf";
|
||||
} elseif ($pageAc=='greffe_actes') {
|
||||
// L'acte est un acte/document divers
|
||||
if (preg_match('/\|/', $params)) {
|
||||
$multiDepot=true;
|
||||
// L'acte contient plusieurs dépôts
|
||||
$tabParams=explode('-', $params);
|
||||
$dateActe=$tabParams[1];
|
||||
// On liste les actes du dépôt
|
||||
$tabTmp2=$iDb->select('jo.greffes_actes', 'siren, type_acte, (date_acte*1) AS dateActe, numGreffe, numRC, num_depot, num_acte', "siren=$siren AND dateActe=$dateActe", false, MYSQL_ASSOC);
|
||||
$tabDepots=array();
|
||||
if (count($tabTmp2)>0) {
|
||||
foreach ($tabTmp2 as $actes2) {
|
||||
$numRC1=substr($actes2['numRC'],0,2);
|
||||
$numRC2=substr($actes2['numRC'],2,1);
|
||||
$numRC3=substr($actes2['numRC'],3);
|
||||
$params=$actes2['type_acte'].'-'.$actes2['dateActe'].'-'.$actes2['numGreffe'].
|
||||
"-$numRC1-$numRC2-$numRC3-".$actes2['num_depot'].'-'.$actes2['num_acte'];
|
||||
$url="http://extranet.scores-decisions.com/pdf/acte-$siren-$params.pdf";
|
||||
if (!in_array(''.$actes2['type_acte'], $tabActesASaisir)) {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (exclu)".EOL;
|
||||
continue;
|
||||
} else {
|
||||
$tabDepots[]=$params;
|
||||
// On vérifie si cette acte n'est pas déjà saisie ou en saisie !
|
||||
if (!$lastDepot) {
|
||||
$tabTmp2=$iDb2->select('fedaso', 'count(*) AS nb', "siren=$siren AND page='$pageAc' AND params='$params'", false, MYSQL_ASSOC);
|
||||
if ($tabTmp2[0]['nb']>0) {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (en cours)".EOL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$tabPdf=getPdfInfo($repPdfInfogreffe.'/'.basename($url));
|
||||
if (!$tabPdf) {
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
if ($page['code']<>200 || !isset($page['header']['Content-Disposition']) || $page['header']['Content-Disposition']=='') {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (inexistant)".EOL;
|
||||
$tabDepots=@$iGreffes->getListeActes($siren);
|
||||
$nbDepots=count($tabDepots);
|
||||
print_r($tabDepots);
|
||||
die();
|
||||
continue;
|
||||
}
|
||||
@mkdir($repPdfInfogreffe);
|
||||
$fp=@fopen($repPdfInfogreffe.'/'.basename($url), 'w');
|
||||
if (!$fp || !fwrite($fp, $page['body']))
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (erreur fichier local)".EOL;
|
||||
@fclose($fp);
|
||||
$tabPdf=getPdfInfo($repPdfInfogreffe.'/'.basename($url));
|
||||
// randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
|
||||
}
|
||||
if (!$tabPdf) {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (vide)".EOL;
|
||||
unlink($repPdfInfogreffe.'/'.basename($url));
|
||||
continue;
|
||||
}
|
||||
|
||||
$pdfSize= $tabPdf['pdfSize'];
|
||||
$pdfVer = $tabPdf['version'];
|
||||
$pdfPage= $tabPdf['nbPages'];
|
||||
|
||||
$nbEncours++;
|
||||
$tabFichierOut[]=basename($url);
|
||||
$strFichierOut.="$nbEncours\t$dateCmd\t$pdfSize ko\t$pdfPage\t".basename($url).EOL;
|
||||
|
||||
if(!$iDb2->insert('fedaso', array( 'siren' => $siren,
|
||||
'params' => $params,
|
||||
'page' => $pageAc,
|
||||
'dateEnvoi' => date('YmdHis'),
|
||||
'dateCmd' => $dateCmd,
|
||||
'pdfNum' => $nbEncours,
|
||||
'pdfSize' => $pdfSize,
|
||||
'pdfPage' => $pdfPage,
|
||||
))) {
|
||||
if (!$lastDepot)
|
||||
echo date('Y/m/d - H:i:s') ." - ERREUR lors de l'insertion de $nbEncours\t$url ($pdfSize ko, $pdfPage pages)".EOL;
|
||||
} else
|
||||
echo date('Y/m/d - H:i:s') ." - $nbEncours\t$url ($pdfSize ko, $pdfPage pages)".EOL;
|
||||
if ($nbEncours>=$nbEnvois) {
|
||||
// On efface le dernier fichier car il est de trop !
|
||||
//unlink($repPdfInfogreffe.'/'.basename($url));
|
||||
break(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// La liste des actes n'est pas disponible sur notre Système !
|
||||
}
|
||||
} else {
|
||||
$multiDepot=false;
|
||||
$url="http://extranet.scores-decisions.com/pdf/acte-$siren-$params.pdf";
|
||||
//$url="http://extranet.scores-decisions.com/datafile.php?q=acte-$siren-$params.pdf";
|
||||
$tmp=explode('-', $params);
|
||||
if (!in_array(''.$tmp[0], $tabActesASaisir)) {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (exclu)".EOL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$multiDepot) {
|
||||
// On vérifie si cette acte n'est pas déjà saisie ou en saisie !
|
||||
if (!$lastDepot) {
|
||||
$tabTmp2=$iDb2->select('fedaso', 'count(*) AS nb', "siren=$siren AND page='$pageAc' AND params='$params'", false, MYSQL_ASSOC);
|
||||
if ($tabTmp2[0]['nb']>0) {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (en cours)".EOL;
|
||||
$nbPdfEncours++;
|
||||
if (($nbPdfEncours+$nbPdfInexist)>1500)
|
||||
break 2; // Arret de l'export de la liste
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$tabPdf=getPdfInfo($repPdfInfogreffe.'/'.basename($url));
|
||||
if (!$tabPdf) {
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
if ($page['code']<>200 || !isset($page['header']['Content-Disposition']) || $page['header']['Content-Disposition']=='') {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (inexistant)".EOL;
|
||||
$nbPdfInexist++;
|
||||
if (strlen($params)==35) {
|
||||
//echo 'ici';
|
||||
if ($pageAc=='greffe_actes') $tabDepots=@$iGreffes->getListeActes($siren);
|
||||
elseif ($pageAc=='greffe_bilans') $tabDepots=@$iGreffes->getBilansImages($siren);
|
||||
$nbDepots=count($tabDepots);
|
||||
print_r($tabDepots);
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (RECHERCHE dans $nbDepots $pageAc)".EOL;
|
||||
foreach ($tabDepots as $depot) {
|
||||
if ($pageAc=='greffe_actes')
|
||||
$params2=$depot['acte_type'].'-'.WDate::dateT('Y-m-d','Ymd',$depot['acte_date']).'-'.$depot['numGreffe'].
|
||||
'-'.$depot['numRC'].'-'.$depot['depot_num'].'-'.$depot['acte_num'];
|
||||
else {
|
||||
$params2=$depot['annee'].'_'.$depot['type'].'-'.WDate::dateT('Y-m-d','Ymd',$depot['dateCloture']).'-'.
|
||||
$depot['numGreffe'].'-'.$depot['numRC'].'-'.$depot['depot_num'];
|
||||
/// echo("$url\t$params\t$params2".EOL);
|
||||
// die();
|
||||
}
|
||||
if (strpos($params2, $params)===false)
|
||||
echo("$params2\tDIFFERENT DE\t$params".EOL);
|
||||
else {
|
||||
echo("$params2\tIDENTIQUE\t$params".EOL);
|
||||
$url="http://extranet.scores-decisions.com/pdf/acte-$siren-$params2.pdf";
|
||||
$params=$params2;
|
||||
//die($url);
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
if ($page['code']<>200 || !isset($page['header']['Content-Disposition']) || $page['header']['Content-Disposition']=='') {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (inexistant)".EOL;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else
|
||||
//print_r($page);die();
|
||||
continue;
|
||||
}
|
||||
@mkdir($repPdfInfogreffe);
|
||||
$fp=@fopen($repPdfInfogreffe.'/'.basename($url), 'w');
|
||||
if (!$fp || !fwrite($fp, $page['body']))
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (erreur fichier local)".EOL;
|
||||
@fclose($fp);
|
||||
$tabPdf=getPdfInfo($repPdfInfogreffe.'/'.basename($url));
|
||||
// randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
|
||||
}
|
||||
if (!$tabPdf) {
|
||||
echo date('Y/m/d - H:i:s') ." - ___\t$url (vide)".EOL;
|
||||
unlink($repPdfInfogreffe.'/'.basename($url));
|
||||
continue;
|
||||
}
|
||||
|
||||
$pdfSize= $tabPdf['pdfSize'];
|
||||
$pdfVer = $tabPdf['version'];
|
||||
$pdfPage= $tabPdf['nbPages'];
|
||||
|
||||
$nbEncours++;
|
||||
//$tabFichierOut[]=basename($url);
|
||||
$tabFichierOut[]=basename($url);
|
||||
$strFichierOut.="$nbEncours\t$dateCmd\t$pdfSize ko\t$pdfPage\t".basename($url).EOL;
|
||||
|
||||
if(!$iDb2->insert('fedaso', array( 'siren' => $siren,
|
||||
'params' => $params,
|
||||
'page' => $pageAc,
|
||||
'dateEnvoi' => date('YmdHis'),
|
||||
'dateCmd' => $dateCmd,
|
||||
'pdfNum' => $nbEncours,
|
||||
'pdfSize' => $pdfSize,
|
||||
'pdfPage' => $pdfPage,
|
||||
))) {
|
||||
if ($lastDepot)
|
||||
echo date('Y/m/d - H:i:s') ." - Reprise $nbEncours\t$url ($pdfSize ko, $pdfPage pages)".EOL;
|
||||
else
|
||||
echo date('Y/m/d - H:i:s') ." - ERREUR lors de l'insertion de $nbEncours\t$url ($pdfSize ko, $pdfPage pages)".EOL;
|
||||
} else
|
||||
echo date('Y/m/d - H:i:s') ." - $nbEncours\t$url ($pdfSize ko, $pdfPage pages)".EOL;
|
||||
if ($nbEncours>=$nbEnvois) {
|
||||
// On efface le dernier fichier car il est de trop !
|
||||
//unlink($repPdfInfogreffe.'/'.basename($url));
|
||||
break(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$fichierIndex='lotliensn-'.date('Y-m-d-Hi').'.txt';
|
||||
$nbActes=count($tabFichierOut);
|
||||
|
||||
if (file_put_contents($repPdfInfogreffe.'/'.$fichierIndex, $verFedasoFic.EOL.implode(EOL, $tabFichierOut).EOL.$nbActes))
|
||||
$message=date('Y/m/d - H:i:s') ." - Le fichier index $fichierIndex a été crée pour les $nbActes.". EOL;
|
||||
else
|
||||
$message=date('Y/m/d - H:i:s') ." - Erreur : Création impossible du fichier index $fichierIndex pour les $nbActes !". EOL;
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Génération du dépôt pour le Maroc", $message.EOL.$strFichierOut);
|
||||
} elseif ($genereDepot && $nbEncours==$nbEnvois) {
|
||||
$message=date('Y/m/d - H:i:s') ." - Les $nbEncours actes quotidiens ont déjà été déposés.". EOL;
|
||||
} elseif ($genereDepot && $nbEncours<$nbEnvois) {
|
||||
$message=date('Y/m/d - H:i:s') ." - Erreur : Il n'y a que $nbEncours actes / $nbActes déposés pour Fedaso !". EOL;
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Génération du dépôt pour le Maroc", $message.EOL.$strFichierOut);
|
||||
}
|
||||
echo $message;
|
||||
*/
|
||||
|
||||
// Lecture du dossier des dépots de bilans à demander en saisie
|
||||
if ($genereDepot) {
|
||||
$nbEncours=0;
|
||||
@ -402,6 +143,8 @@ if ($genereDepot) {
|
||||
$sizeKo=round($pdfSize/1024,1);
|
||||
echo "$filename\t$sizeKo Ko\t$pdfPage page(s)\t";
|
||||
|
||||
if (!$iInsee->valideSiren($siren)) echo 'KO siren invalide'.EOL;
|
||||
|
||||
if(!$iDb2->insert('fedaso_bilans',array('siren' => $siren,
|
||||
'dateCloture' => $dateClot,
|
||||
'duree' => $dureeClot,
|
||||
@ -420,8 +163,41 @@ if ($genereDepot) {
|
||||
} else {
|
||||
$nbEncours++;
|
||||
bzip2(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BACKUP_DIR.$filename);
|
||||
move(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BILANS_TODO_DIR.'/'.$filename);
|
||||
//move(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BILANS_TODO_DIR.'/'.$filename);
|
||||
echo 'Ok'.EOL;
|
||||
|
||||
$tabIdentite=@$iInsee->getIdentiteLight($siren);
|
||||
$sirenAff=implode(' ', str_split($siren,3));
|
||||
$rs=substr($tabIdentite['Nom'],0,30).'...';
|
||||
|
||||
$message="Merci de procéder dès que possible à la saisie du bilan PDF de $pdfPage pages pour la société suivante :\r\n";
|
||||
$message.="\r\n";
|
||||
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
|
||||
// Durée de l'exercice
|
||||
if ($dureeClot*1>0) $strDuree=" (durée : $dureeClot mois)";
|
||||
else $strDuree='';
|
||||
|
||||
$message.='Date de clôture : '. WDate::dateT('Ymd','d/m/Y',$dateClot)."$strDuree\r\n";
|
||||
//if ($typeBilan<>'') $message.="Format de liasse : $liasse\r\n";
|
||||
$message.="\r\n";
|
||||
$message.="Adresse du siège : ". $tabIdentite['Adresse'].', '.$tabIdentite['CP'].' '.$tabIdentite['Ville']."\r\n";
|
||||
$message.="Forme juridique : ". $tabIdentite['FJ_lib'].' ('.$tabIdentite['FJ'].")\r\n";
|
||||
$message.="Activité de l'entreprise : ". $tabIdentite['NafEntLib'].' ('.$tabIdentite['NafEnt'].")\r\n";
|
||||
$message.="\r\n";
|
||||
$message.="Document "; if ($conf<>1) $message.="non "; $message.="confidentiel\r\n";
|
||||
$message.="Fichier $filename du ". WDate::dateT('Ymd','d/m/Y',$dateFic)."\r\n";
|
||||
$message.="Nombre de pages : $pdfPage pages (".round($pdfSize/1000,1)." Ko)\r\n";
|
||||
$message.="Utilisateur n°$idUti\r\n";
|
||||
$message.="Extranet n°$idBddExt\r\n";
|
||||
$message.="\r\n";
|
||||
if ($pdfPage*1>10) $message.="Le document étant volumineux, pensez à saisir les actionnaires et participations (généralement mentionnés dans les annexes 17 et 18) !\r\n";
|
||||
// if ($env==1) $message.="CECI EST UN TEST, MERCI DE NE PAS SAISIR LE DOCUMENT\r\n";
|
||||
$message.="\r\n";
|
||||
$message.="https://tville.scores-decisions.com/boffice/sirenbod/bilans.php?type=SAIS&ctrl=0\r\n";
|
||||
|
||||
sendMail('production@scores-decisions.com', 'jal42@scores-decisions.com',
|
||||
"Demande de saisie du bilan $siren du ".WDate::dateT('Ymd','d/m/Y',$dateClot)." ($dureeClot mois)",
|
||||
$message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -578,7 +354,7 @@ if (count($tabFichierIn)>0 || count($tabFichLigneCmd)>0) {
|
||||
echo $messageLigne;
|
||||
$messageErrCtrl.=$messageLigne;
|
||||
$msgBilan.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents";
|
||||
if ($codeSai=='00') $anoBilan=2;
|
||||
if ($codeSai=='00') $anoBilan=5;
|
||||
}
|
||||
// else echo "ok\t(".@$tabPostes[$strCtrl].'='.$total.')'.EOL;
|
||||
}
|
||||
|
@ -8,6 +8,81 @@ include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
//METRO 1 Gare de Lyon 2.374476319481324 48.84582416476877
|
||||
|
||||
$tabLignes=file('/root/sql/Metro.csv');
|
||||
$tabMetroGPS=$tabMetroL93=array();
|
||||
foreach ($tabLignes as $i=>$ligne) {
|
||||
$tabTmp=explode("\t", $ligne);
|
||||
$latitude=$tabTmp[3];
|
||||
$longitude=$tabTmp[2];
|
||||
$tabMetroGPS[$tabTmp[0].'-'.$tabTmp[1]]=array('x'=>$latitude,'y'=>$longitude);
|
||||
$lambert=geos2lambert93($latitude,$longitude);
|
||||
$x93=round($lambert['x_93']);
|
||||
$y93=round($lambert['y_93']);
|
||||
$tabMetroL93[$tabTmp[0].'-'.$tabTmp[1]]=array('x'=>$x93,'y'=>$y93);
|
||||
|
||||
}
|
||||
//print_r($tabMetroGPS);
|
||||
//print_r($tabMetroL93);
|
||||
$iDb=new WDB('insee');
|
||||
$imap=new MMap();
|
||||
|
||||
$nbLoaded=$iDb->select('jo.etablissements_act', "siren, nic, siege, raisonSociale, enseigne, sigle, eff_entrep, eff_etab, bilYP, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, l93_x, l93_y", "(
|
||||
adr_dep
|
||||
IN (
|
||||
'75', '075', 75
|
||||
)
|
||||
OR (
|
||||
adr_dep =93
|
||||
AND adr_com =048
|
||||
)
|
||||
OR (
|
||||
adr_dep =94
|
||||
AND adr_com =018
|
||||
)
|
||||
OR (
|
||||
adr_dep =94
|
||||
AND adr_com =067
|
||||
)
|
||||
OR (
|
||||
adr_dep =94
|
||||
AND adr_com =080
|
||||
)
|
||||
)
|
||||
AND (
|
||||
eff_entrep >=100
|
||||
OR eff_etab >=100
|
||||
OR bilYP >=100
|
||||
)
|
||||
AND precis IS NOT NULL", false, MYSQL_ASSOC, true);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbLoaded adresses à mettre à jour...".EOL;
|
||||
$nbLignes=0;
|
||||
while($adr=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$nbLignes++;
|
||||
/* if (trim($adr['insL7_ETRG'])=='') $pays='France';
|
||||
else $pays=trim($adr['insL7_ETRG']);
|
||||
$codeRivoli=$adr['insDEPCOM'].$adr['insCODEVOIE'];
|
||||
$geo=$imap->geoCodeAdresse($adr['insNUMVOIE'], $adr['insINDREP'], $adr['insTYPVOIE'], $adr['insTYPVOIE'], $adr['insLIBVOIE'], $adr['insCODPOS'], $adr['insLIBCOM'], $pays, $codeRivoli);
|
||||
*/
|
||||
foreach ($tabMetroL93 as $lib=>$tabXY) {
|
||||
$dist=round($imap->distanceLambert($tabXY['x'],$tabXY['y'],$adr['l93_x'],$adr['l93_y']));
|
||||
if ($dist<=100) {
|
||||
echo "$nbLignes/$nbLoaded\t".$adr['siren'].' '.$adr['nic']."\t$dist mètres\t$lib\t".
|
||||
implode("\t", $adr).EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
die();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$points=array('48.5161400 -4.0806451',
|
||||
'47.9696045 -4.0953622',
|
||||
|
@ -87,6 +87,9 @@ if ($doQuotidien) {
|
||||
echo "$nbLignes/$nbLoaded:".$adr['idFlux'].','.$imap->enCache.':'.$imap->latitudeDec.','.$imap->longitudeDec.' ('.$imap->altitude.' m., p='.$imap->precision.")\t";
|
||||
echo $adr['insL4_VOIE'].', '.$adr['insCODPOS'].' '.$adr['insLIBCOM'].', '.$pays. ' => ';
|
||||
echo $imap->adresseValidee.' ('.$imap->geocodeur.')'.EOL;
|
||||
if ($modeDebug && $imap->enCache==0)
|
||||
echo "Code Retour Google = '".$imap->codeRetourG."', Yahoo='".$imap->codeRetourY."', Mappy='".$imap->codeRetourM."'".EOL;
|
||||
|
||||
@$tabGeocodeur[$imap->geocodeur][$imap->enCache]++;
|
||||
if ($imap->enCache==true) $nbEnCache++;
|
||||
if ($imap->altitude<>NULL) $nbAlt++;
|
||||
@ -146,7 +149,7 @@ if ($doAltitudes) {
|
||||
**/
|
||||
$nbLignes=$nbEnCache=$nbDistant=$nbAlt=0;
|
||||
$nbLoaded=$iDb->select('jo.zonageXY', "address AS insL4_VOIE, adrNum AS insNUMVOIE, adrIndRep AS insINDREP, adrTypeVoie AS insTYPVOIE, adrLibVoie AS insLIBVOIE, adr_cp AS insCODPOS, adr_ville AS insLIBCOM,
|
||||
SUBSTRING(rivoli,1,5) AS insDEPCOM, SUBSTRING(rivoli,6,5) AS insCODEVOIE, '' AS insL7_ETRG, 0 AS idFlux", "alt IS NULL LIMIT 0,40000", false, MYSQL_ASSOC, true);
|
||||
SUBSTRING(rivoli,1,5) AS insDEPCOM, SUBSTRING(rivoli,6,5) AS insCODEVOIE, '' AS insL7_ETRG, 0 AS idFlux", "alt IS NULL AND precis>4 LIMIT 80000,40000", false, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbLoaded adresses sans altitude à mettre à jour...".EOL;
|
||||
$message='Le '.date('d/m/Y H:i:s')." : $nbLoaded adresses sans altitude".EOL;
|
||||
$tabGeocodeur=array();
|
||||
@ -156,7 +159,7 @@ if ($doAltitudes) {
|
||||
else $pays=trim($adr['insL7_ETRG']);
|
||||
$codeRivoli=$adr['insDEPCOM'].$adr['insCODEVOIE'];
|
||||
$geo=$imap->geoCodeAdresse($adr['insNUMVOIE'], $adr['insINDREP'], $adr['insTYPVOIE'], $adr['insTYPVOIE'], $adr['insLIBVOIE'], $adr['insCODPOS'], $adr['insLIBCOM'], $pays, $codeRivoli);
|
||||
echo $adr['idFlux'].','.$imap->enCache.':'.$imap->latitudeDec.','.$imap->longitudeDec.' ('.$imap->precision.")\t";
|
||||
echo $adr['idFlux'].','.$imap->enCache.':'.$imap->latitudeDec.','.$imap->longitudeDec.' ('.$imap->precision.") ".$imap->altitude." m.\t";
|
||||
echo $adr['insL4_VOIE'].', '.$adr['insCODPOS'].' '.$adr['insLIBCOM'].', '.$pays. ' => ';
|
||||
echo $imap->adresseValidee.' ('.$imap->geocodeur.')'.EOL;
|
||||
@$tabGeocodeur[$imap->geocodeur][$imap->enCache]++;
|
||||
|
845
batch/getAdressesSources.php
Normal file
845
batch/getAdressesSources.php
Normal file
@ -0,0 +1,845 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$nbAdrRnvp=1000000;
|
||||
$nbAdrRnvp=500000;
|
||||
|
||||
define('RNVP_FTP_HOST', 'gobie-d2-75.altima-hosting.fr');
|
||||
define('RNVP_FTP_LOGIN', 'ScoresEtDecisions');
|
||||
define('RNVP_FTP_PASS', '7631014530');
|
||||
define('RNVP_FTP_DIR_GET', '/sortie/');
|
||||
define('RNVP_FTP_DIR_PUT', '/entree/');
|
||||
|
||||
define('RNVP_FTP_LOCALDIR', '/home/data/rnvp/');
|
||||
define('RNVP_BACKUP_DIR', '/home/data/rnvp/histo/');
|
||||
|
||||
$sep="\t";
|
||||
$eol=EOL;
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Gestion de la normalisation des adresses en fonction des sources.
|
||||
Sans paramètre : réception des adresses normalisées, collecte des nouvelles et envoi pour normalisation.
|
||||
|
||||
Options :
|
||||
-c[:OOO] Collecte des adresses à normaliser dans les differentes sources (OOO source optionnelle)
|
||||
-e Envoi des adresses à normaliser
|
||||
-r Reception des adresses normalisée
|
||||
-m Ne pas envoyer de mail
|
||||
-v Mode verbose/debug
|
||||
-l Liste des sources
|
||||
-s:XXX Renvoyer la source XXX en RNVP (non opérationnel)
|
||||
-n Renvoyer toutes les adresses non traitées en RNVP
|
||||
";
|
||||
|
||||
$tabSrc=array( 'leiReg'=>array('lib'=>'LEI Registered',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'bourse_lei',
|
||||
'zones'=>"100 AS source, id AS source_id, 0 AS num,
|
||||
RegisteredName AS L1in, MappedRegisteredName AS L2in, RegisteredAddress2 AS L3in, RegisteredAddress1 AS L4in,
|
||||
CONCAT(RegisteredAddress3,' ', RegisteredAddress4) AS L5in, CONCAT(RegisteredPostalCode,' ',RegisteredCity) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"RegisteredName<>'' AND RegisteredAddress1<>'' AND RegisteredCity<>'' AND RegisteredCountryCode='FR'
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=100 AND num=0),0)",
|
||||
'go'=>0,
|
||||
'idSrc'=>100),
|
||||
'leiHead'=>array('lib'=>'LEI Headquarters',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'bourse_lei',
|
||||
'zones'=>"100 AS source, id AS source_id, 1 AS num,
|
||||
RegisteredName AS L1in, HeadquarterAddress2 AS L2in, HeadquarterAddress3 AS L3in, HeadquarterAddress1 AS L4in,
|
||||
HeadquarterAddress4 AS L5in, CONCAT(HeadquarterPostalCode,' ',HeadquarterCity) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"RegisteredName<>'' AND HeadquarterAddress1<>'' AND HeadquarterCity<>'' AND HeadquarterCountryCode='FR'
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=100 AND num=1),0)",
|
||||
'go'=>0,
|
||||
'idSrc'=>100),
|
||||
'bompadm'=>array('lib'=>'Administrations du BOAMP',
|
||||
'db'=>'jo',
|
||||
'table'=>'boamp_detail',
|
||||
'zones'=>"140 AS source, id AS source_id, 0 AS num,
|
||||
raisonSociale AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
|
||||
'' AS L5in, CONCAT(cp,' ',ville) AS L6in, pays AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"raisonSociale<>'' AND adresse<>'' AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=140 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>140),
|
||||
'bompent'=>array('lib'=>'Entreprises du BOAMP',
|
||||
'db'=>'jo',
|
||||
'table'=>'boamp_lots',
|
||||
'zones'=>"140 AS source, id AS source_id, 1 AS num,
|
||||
nom AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
|
||||
'' AS L5in, CONCAT(cp,' ',ville) AS L6in, pays AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"nom<>'' AND adresse<>'' AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=140 AND num=1),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>140,
|
||||
'idNum'=>1),
|
||||
'greffes'=>array('lib'=>'Entreprises Infogreffe',
|
||||
'db'=>'jo',
|
||||
'table'=>'greffes_identite',
|
||||
'zones'=>"4 AS source, id AS source_id, 0 AS num,
|
||||
nom AS L1in, nomCommercial AS L2in, '' AS L3in, adresse AS L4in,
|
||||
adresse2 AS L5in, CONCAT(cp,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"nom<>'' AND adresse<>'' AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=4 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>4),
|
||||
'liens'=>array('lib'=>'Entreprises LiensRef',
|
||||
'db'=>'jo',
|
||||
'table'=>'liensRef',
|
||||
'zones'=>"7 AS source, id AS source_id, 0 AS num,
|
||||
RS AS L1in, '' AS L2in, '' AS L3in, CONCAT(adresse_num,' ',adresse_btq,' ',adresse_codvoie,' ',adresse_libvoie) AS L4in,
|
||||
adresse_comp AS L5in, CONCAT(adresse_cp,' ',adresse_ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"id>999 AND sirenValide=0 AND RS<>'' AND adresse_libvoie<>'' AND adresse_ville<>'' AND adresse_pays='FRA'
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=7 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>7),
|
||||
'rncsjug1'=>array('lib'=>'Jugements RNCS - Mandataire 1',
|
||||
'db'=>'jo',
|
||||
'table'=>'rncs_jugements',
|
||||
'zones'=>"24 AS source, id AS source_id, 0 AS num,
|
||||
adm1nom AS L1in, '' AS L2in, adm1adr2 AS L3in, adm1adr1 AS L4in,
|
||||
adm1adr3 AS L5in, CONCAT(adm1adrCP,' ',adm1adrVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"adm1nom<>'' AND adm1adr1<>'' AND adm1adrVille<>'' AND adm1type<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=24 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>24),
|
||||
'rncsjug2'=>array('lib'=>'Jugements RNCS - Mandataire 2',
|
||||
'db'=>'jo',
|
||||
'table'=>'rncs_jugements',
|
||||
'zones'=>"24 AS source, id AS source_id, 1 AS num,
|
||||
adm2nom AS L1in, '' AS L2in, adm2adr2 AS L3in, adm2adr1 AS L4in,
|
||||
adm2adr3 AS L5in, CONCAT(adm2adrCP,' ',adm2adrVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"adm2nom<>'' AND adm2adr1<>'' AND adm2adrVille<>'' AND adm2type<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=24 AND num=1),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>24,
|
||||
'idNum'=>1),
|
||||
'rncsetab'=>array('lib'=>'Etablissements RNCS actifs',
|
||||
'db'=>'jo',
|
||||
'table'=>'rncs_etab e, rncs_entrep p',
|
||||
'zones'=>"5 AS source, id AS source_id, 0 AS num,
|
||||
p.raisonSociale AS L1in, IF(e.nomCommercial<>'',e.nomCommercial,e.enseigne) AS L2in, '' AS L3in, CONCAT(e.adrNumVoie,' ',e.adrIndRep,' ',e.adrTypeVoie,' ',e.adrVoie) AS L4in,
|
||||
e.adrComp AS L5in, CONCAT(e.cp,' ',e.commune) AS L6in, '' AS L7in, e.dateInsert*1 AS dateInsert",
|
||||
'where'=>"p.raisonSociale <>'' AND e.adrVoie<>'' AND e.commune<>'' AND e.siren=p.siren AND e.siege>=0 AND p.actif=1 AND e.actif=1
|
||||
AND e.dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=5),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>24),
|
||||
'clients'=>array('lib'=>'Sirenage Clients',
|
||||
'db'=>'jo',
|
||||
'table'=>'sirenage_clients',
|
||||
'zones'=>"190 AS source, id AS source_id, 0 AS num,
|
||||
nom AS L1in, enseigne AS L2in, adresse2 AS L3in, adresse1 AS L4in,
|
||||
CONCAT(adresse3,' ',adresse4) AS L5in, CONCAT(cp,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"nom<>'' AND (adresse1<>'' OR adresse2<>'' OR adresse3<>'' OR adresse4<>'') AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=190 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>190),
|
||||
'mand'=>array('lib'=>'Mandataires',
|
||||
'db'=>'jo',
|
||||
'table'=>'tabMandataires',
|
||||
'zones'=>"176 AS source, id AS source_id, 0 AS num,
|
||||
CONCAT(Nom,' ',Prenom) AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
|
||||
adresseComp AS L5in, CONCAT(cp,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"Nom<>'' AND adresse<>'' AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=176),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>176),
|
||||
'asso1'=>array( 'lib'=>'Associations',
|
||||
'db'=>'jo',
|
||||
'table'=>'asso',
|
||||
'zones'=>"3 AS source, id AS source_id, 0 AS num,
|
||||
Assoc_Nom AS L1in, '' AS L2in, '' AS L3in, Assoc_Adresse AS L4in,
|
||||
Assoc_AdrComp AS L5in, CONCAT(Assoc_AdrCP,' ',Assoc_AdrVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"Assoc_Nom<>'' AND Assoc_Adresse<>'' AND Assoc_AdrVille<>'' AND Type_Annonce NOT LIKE '%Dissolution%'
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=3 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>3,
|
||||
'idNum'=>0),
|
||||
'asso2'=>array( 'lib'=>'Associations (Déménagements)',
|
||||
'db'=>'jo',
|
||||
'table'=>'asso',
|
||||
'zones'=>"3 AS source, id AS source_id, 1 AS num,
|
||||
Assoc_Nom AS L1in, '' AS L2in, '' AS L3in, Assoc_NAdresse AS L4in,
|
||||
'' AS L5in, '' AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"Assoc_Nom<>'' AND Assoc_NAdresse<>'' AND Type_Annonce NOT LIKE '%Dissolution%'
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=3 AND num=1),0)",
|
||||
'go'=>1,
|
||||
'splitterL4'=>1, // Toute l'adresse est comprise dans la ligne 4
|
||||
'idSrc'=>3,
|
||||
'idNum'=>1),
|
||||
'jal'=>array( 'lib'=>'Annonces en Collecte',
|
||||
'db'=>'jo',
|
||||
'table'=>'annonces',
|
||||
'zones'=>"8 AS source, id AS source_id, 0 AS num,
|
||||
raisonSociale AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
|
||||
'' AS L5in, CONCAT(codePostal,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"raisonSociale<>'' AND adresse<>'' AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=8),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>8),
|
||||
'insee'=>array( 'lib'=>'Etablissements actifs de l\'Insee',
|
||||
'db'=>'insee',
|
||||
'table'=>'insee.identite',
|
||||
'zones'=>"2 AS source, id AS source_id, 0 AS num,
|
||||
insL1_NOMEN AS L1in, insL2_COMP AS L2in, insL3_CADR AS L3in, insL4_VOIE AS L4in,
|
||||
insL5_DISP AS L5in, insL6_POST AS L6in, insL7_ETRG AS L7in, dateUpdate*1 AS dateInsert",
|
||||
'where'=>"insL1_NOMEN<>'' AND insL4_VOIE<>'' AND insL6_POST<>'' AND ACTIF=1
|
||||
/*AND id NOT IN (SELECT source_id FROM villes.rnvpSources WHERE source=2)*/
|
||||
AND dateUpdate>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=2),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>2),
|
||||
'tourisme'=>array('lib'=>'Hotels/Campings',
|
||||
'db'=>'jo',
|
||||
'table'=>'tourisme',
|
||||
'zones'=>"200 AS source, id AS source_id, 0 AS num,
|
||||
nom AS L1in, '' AS L2in, '' AS L3in, adresse AS L4in,
|
||||
'' AS L5in, CONCAT(adrCp,' ',adrVille) AS L6in, '' AS L7in, dateUpdate*1 AS dateInsert",
|
||||
'where'=>"nom<>'' AND adresse<>'' AND adrVille<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=200),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>200),
|
||||
|
||||
'bodacc0'=>array('lib'=>'Bodacc',
|
||||
'db'=>'jo',
|
||||
'table'=>'bodacc_detail',
|
||||
'zones'=>"1 AS source, id AS source_id, 0 AS num,
|
||||
raisonSociale AS L1in, enseigne AS L2in, nomCommercial AS L3in, adresse AS L4in,
|
||||
'' AS L5in, CONCAT(codePostal,' ',ville) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"raisonSociale<>'' AND adresse<>'' AND codePostal>0 AND ville<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=0),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>1,
|
||||
'idNum'=>0),
|
||||
'bodacc1'=>array('lib'=>'Bodacc (Sièges)',
|
||||
'db'=>'jo',
|
||||
'table'=>'bodacc_detail',
|
||||
'zones'=>"1 AS source, id AS source_id, 1 AS num,
|
||||
raisonSociale AS L1in, enseigne AS L2in, nomCommercial AS L3in, adresseSiege AS L4in,
|
||||
'' AS L5in, CONCAT(codePostalSiege,' ',villeSiege) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"raisonSociale<>'' AND adresseSiege<>'' AND codePostalSiege>0 AND villeSiege<>''
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=1),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>1,
|
||||
'idNum'=>1),
|
||||
'bodacc2'=>array('lib'=>'Bodacc (Mandataires)',
|
||||
'db'=>'jo',
|
||||
'table'=>'bodacc_detail',
|
||||
'zones'=>"1 AS source, id AS source_id, 2 AS num,
|
||||
mandNom AS L1in, mandRepr AS L2in, Mandataire AS L3in, mandAdresse AS L4in,
|
||||
'' AS L5in, CONCAT(mandCP,' ',mandVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"Mandataire<>'' AND mandAdresse<>'' AND mandCP>0
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=2),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>1,
|
||||
'idNum'=>2),
|
||||
'bodacc3'=>array('lib'=>'Bodacc (ReprCreanciers)',
|
||||
'db'=>'jo',
|
||||
'table'=>'bodacc_detail',
|
||||
'zones'=>"1 AS source, id AS source_id, 3 AS num,
|
||||
creaNom AS L1in, creaRepr AS L2in, ReprCreanciers AS L3in, creaAdresse AS L4in,
|
||||
'' AS L5in, CONCAT(creaCP,' ',creaVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"ReprCreanciers<>'' AND creaAdresse<>'' AND creaCP>0
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=3),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>1,
|
||||
'idNum'=>3),
|
||||
'bodacc4'=>array('lib'=>'Bodacc (Administrateurs)',
|
||||
'db'=>'jo',
|
||||
'table'=>'bodacc_detail',
|
||||
'zones'=>"1 AS source, id AS source_id, 4 AS num,
|
||||
admNom AS L1in, admRepr AS L2in, administrateur AS L3in, admAdresse AS L4in,
|
||||
'' AS L5in, CONCAT(admCP,' ',admVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"administrateur<>'' AND admAdresse<>'' AND admCP>0
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=4),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>1,
|
||||
'idNum'=>4),
|
||||
'bodacc5'=>array('lib'=>'Bodacc (Oppositions)',
|
||||
'db'=>'jo',
|
||||
'table'=>'bodacc_detail',
|
||||
'zones'=>"1 AS source, id AS source_id, 5 AS num,
|
||||
oppoNom AS L1in, oppoRepr AS L2in, oppositions AS L3in, oppoAdresse AS L4in,
|
||||
'' AS L5in, CONCAT(oppoCP,' ',oppoVille) AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"oppositions<>'' AND oppoAdresse<>'' AND oppoCP>0
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=1 AND num=5),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>1,
|
||||
'idNum'=>5),
|
||||
'rcMonaco'=>array('lib'=>'RC Monaco',
|
||||
'db'=>'tmp',
|
||||
'table'=>'rcMonaco',
|
||||
'zones'=>"30 AS source, id AS source_id, 0 AS num,
|
||||
IF(rs='',nomPrenom,rs) AS L1in, etabEns AS L2in, ensAdr1 AS L3in, ensAdr2 AS L4in, ensAdr3 AS L5in, ensAdr4 AS L6in, '' AS L7in, dateInsert*1 AS dateInsert",
|
||||
'where'=>"(rs<>'' OR nomPrenom<>'') AND (ensAdr1 IS NOT NULL OR ensAdr2 IS NOT NULL OR ensAdr3 IS NOT NULL OR ensAdr4 IS NOT NULL)
|
||||
AND dateInsert>IFNULL((SELECT MAX(dateInsert*1) FROM villes.rnvpSources WHERE source=30),0)",
|
||||
'go'=>1,
|
||||
'idSrc'=>30),
|
||||
|
||||
/* 'qualifelec'=>array('lib'=>'Qualifelec',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'qualifelec',
|
||||
'zones'=>"id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, mail, web, DATE(dateInsert)*1 AS dateInsert, tel, fax",
|
||||
'where'=>"siret>100000000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>211),
|
||||
'qualipaysage'=>array('lib'=>'Qualipaysage',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'qualipaysage',
|
||||
'zones'=>"id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, mail, web, DATE(dateInsert)*1 AS dateInsert, tel, fax",
|
||||
'where'=>"siret>100000000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>212),
|
||||
'qualibat'=>array('lib'=>'Qualibat',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'qualibat',
|
||||
'zones'=>"id, siren, NULL AS nic, '' AS poste, email AS mail, web, DATE(dateInsert)*1 AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(tel,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(fax,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>1000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR email<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>213),
|
||||
'ecoartisan'=>array('lib'=>'EcoArtisan',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'ecoartisan',
|
||||
'zones'=>"id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, mail, web, DATE(dateInsert)*1 AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(tel,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(fax,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS fax,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(mob,')',''),'(',''),'-',''),' ',''),',',''),'.','') AS mob",
|
||||
'where'=>"siret>100000000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mob<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>214),
|
||||
'finess'=>array('lib'=>'Finess',
|
||||
'db'=>'sante',
|
||||
'table'=>'finess',
|
||||
'zones'=>"id, SUBSTRING(SIRET,1,9) AS siren, SUBSTRING(SIRET,10,5) AS nic, '' AS poste, '' AS mail, '' AS web, DATE(NOW())*1 AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"SIRET>1000 AND recupTel=0 AND (Tel<>'' OR Fax<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>210),
|
||||
'cncc'=>array('lib'=>'CNCC',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'tabCNCC',
|
||||
'zones'=>"id, siren, nic, '' AS poste, mail, web, dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>100 AND nic>9 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>300),
|
||||
'amf_mairies'=>array('lib'=>'AMFM',
|
||||
'db'=>'jo',
|
||||
'table'=>'villes',
|
||||
'zones'=>"id, siren, nic, '' AS poste, '' AS mail, web, dateMajAMF AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>100 AND nic>9 AND recupTel=0 AND (tel<>'' OR fax<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>400),
|
||||
'banatic'=>array('lib'=>'Banatic',
|
||||
'db'=>'insee',
|
||||
'table'=>'banatic_coor',
|
||||
'zones'=>"id, sirenGrp AS siren, NULL AS nic, '' AS poste, mail, web, dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"sirenGrp>100 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>52),
|
||||
'infos_entrep'=>array('lib'=>'InfosEntrep',
|
||||
'db'=>'jo',
|
||||
'table'=>'infos_entrep',
|
||||
'zones'=>"id, siren, nic, '' AS poste, mail, web, dateUpdate AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>1000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>175),*/
|
||||
);
|
||||
//$tabZones=array('tel', 'fax', 'mob', 'mail', 'web', 'an8');
|
||||
$verbose=$noMail=$collecteAdr=$recupRnvp=$envoiRnvp=$envoiRnvpAll=$listeSrc=$sourceCollecteOnly=false;
|
||||
$purgeFtp=30; // Purger les fichiers sur le FTP qui ont plus de X jours
|
||||
|
||||
$tabFichiers=$tabFichiersCmd=array();
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1) {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v':
|
||||
$verbose=true;
|
||||
break;
|
||||
case 'm':
|
||||
$noMail=true;
|
||||
break;
|
||||
case 'c':
|
||||
$collecteAdr=true;
|
||||
$sourceCollecteOnly=trim(substr($argv[$i],3));
|
||||
if ($sourceCollecteOnly=='') $sourceCollecteOnly=false;
|
||||
//die($sourceCollecteOnly);
|
||||
break;
|
||||
case 'r':
|
||||
$recupRnvp=true;
|
||||
break;
|
||||
case 'e': // Envoi des adresses à normaliser
|
||||
case 's': // Renvoyer la source XXX en RNVP (non opérationnel)
|
||||
case 'n': // Renvoyer toutes les adresses non traitées en RNVP
|
||||
$envoiRnvp=true;
|
||||
if (substr($argv[$i],1,1)=='s') {
|
||||
$tmp=substr($argv[$i],3,strlen($argv[$i])-3);
|
||||
$envoiSrc=@$tabSrc[$tmp]['idSrc'];
|
||||
$envoiNum=@$tabSrc[$tmp]['idNum']*1;
|
||||
if ($envoiSrc==0) die("Source '$tmp' inexistante !".EOL);
|
||||
$nbAdrRnvp=20000000;
|
||||
} elseif (substr($argv[$i],1,1)=='n') {
|
||||
$nbAdrRnvp=1000000;
|
||||
$envoiRnvpAll=true;
|
||||
}
|
||||
break;
|
||||
case 'l':
|
||||
$listeSrc=true;
|
||||
break;
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$tabFichiersCmd[]=$argv[$i];
|
||||
// $envoiRnvp=true;
|
||||
}
|
||||
}
|
||||
} else
|
||||
$collecteAdr=$recupRnvp=$envoiRnvp=true;
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
$iDb2=new WDB('villes');
|
||||
$iInsee=new MInsee();
|
||||
|
||||
if ($listeSrc) {
|
||||
foreach ($tabSrc as $codSrc=>$tabSrcDet) {
|
||||
$idSrc=$tabSrcDet['idSrc'];
|
||||
$nomSrc=$tabSrcDet['lib'];
|
||||
$srcActive=$tabSrcDet['go'];
|
||||
if($srcActive) echo "Actif\t";
|
||||
else echo "INACTIF\t";
|
||||
echo "n°$idSrc\t$codSrc\t$nomSrc".EOL;
|
||||
}
|
||||
die();
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de RNVP...".EOL;
|
||||
|
||||
if ($recupRnvp) {
|
||||
echo date('Y/m/d - H:i:s') ." - Reception des adresses normalisées...".EOL;
|
||||
$message=date('Y/m/d - H:i:s') ." - Début de réception des adresses normalisées.".EOL;
|
||||
|
||||
$tDeb=microtime(1);
|
||||
|
||||
$fc = ftp_connect(RNVP_FTP_HOST);
|
||||
if (!$fc) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de se connecter à '".RNVP_FTP_HOST."' !". EOL);
|
||||
$fl = ftp_login($fc, RNVP_FTP_LOGIN, RNVP_FTP_PASS);
|
||||
if (!$fl) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de s'authentifier à '".RNVP_FTP_HOST."' !". EOL);
|
||||
|
||||
// CHARGEMENT ET D'UN FICHIER
|
||||
$contents = ftp_nlist($fc, RNVP_FTP_DIR_GET);
|
||||
if ($contents) {
|
||||
foreach($contents as $k => $server_file) {
|
||||
$dwl=false;
|
||||
$tailleDist = ftp_size($fc, $server_file);
|
||||
$dateDist = ftp_mdtm($fc, $server_file);
|
||||
$server_fileName=basename($server_file);
|
||||
if (file_exists(RNVP_FTP_LOCALDIR . $server_fileName)) {
|
||||
$dateLoc=filemtime(RNVP_FTP_LOCALDIR . $server_fileName);
|
||||
$tailleLoc=filesize(RNVP_FTP_LOCALDIR . $server_fileName);
|
||||
}
|
||||
if ($tailleDist<>@$tailleLoc &&
|
||||
preg_match('/\.txt\.Rnvp\.(Rejets|20).*OK/i', $server_fileName) && substr($server_fileName,-5)<>'.flag') {
|
||||
$tDeb = microtime(true);
|
||||
if (ftp_get($fc, RNVP_FTP_LOCALDIR.basename($server_file), $server_file, FTP_BINARY)) {
|
||||
$tFin = microtime(true);
|
||||
$tDur = round($tFin-$tDeb,3);
|
||||
$tailleDistKo=round($tailleDist/1024,1);
|
||||
$tRatio=@round($tailleDistKo/$tDur,1);
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier distant $server_fileName téléchargé avec succès : $tailleDistKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s') ." - Fichier distant $server_fileName téléchargé avec succès : $tailleDistKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
|
||||
$dwl=true;
|
||||
}
|
||||
} elseif (($tailleDist==@$tailleLoc && preg_match('/\.txt\.Rnvp\.(Rejets|20).*OK/i', $server_fileName)) || substr($server_fileName,-5)=='.flag')
|
||||
$dwl=true;
|
||||
|
||||
if ($dwl && date('Ymd',$dateDist)<date('Ymd')) {
|
||||
if (ftp_delete($fc, $server_file)) {
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier distant $server_fileName effacé avec succès ($tailleDistKo Ko)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s') ." - Fichier distant $server_fileName effacé avec succès ($tailleDistKo Ko)".EOL; }
|
||||
}
|
||||
}
|
||||
}
|
||||
// Fermeture de la connexion
|
||||
ftp_close($fc);
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin des transferts FTP.".EOL;
|
||||
$message.=date('Y/m/d - H:i:s') ." - Fin des transferts FTP.".EOL;
|
||||
|
||||
$dh = opendir(RNVP_FTP_LOCALDIR);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && preg_match('/\.txt\.Rnvp\.(Rejets|20).*OK/i', $filename))
|
||||
$tabFichiers[] = RNVP_FTP_LOCALDIR.$filename;
|
||||
}
|
||||
sort($tabFichiers);
|
||||
|
||||
$tabPays=array();
|
||||
$tabTmp=$iDb2->select('jo.tabPays','codPays3, libPays', '1', false, MYSQL_ASSOC);
|
||||
foreach($tabTmp as $i=>$tabTmp2) {
|
||||
$tabPays[$tabTmp2['codPays3']]=$tabTmp2['libPays'];
|
||||
}
|
||||
$nbRows=count($tabTmp);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows pays en table...".EOL;
|
||||
|
||||
|
||||
foreach ($tabFichiers as $iFic=>$filename) {
|
||||
$nbUpdate=0;
|
||||
if (file_exists(REP_TEMP.basename($filename).'.lock')) {
|
||||
$tab2Tmp=explode(';',file_get_contents(REP_TEMP.basename($filename).'.lock'));
|
||||
$date2Tmp=WDate::DateT('YmdHis', 'd/m/Y H:i:s',$tab2Tmp[0]);
|
||||
$nbL2Tmp=$tab2Tmp[2];
|
||||
$nbLignesTot=trim($tab2Tmp[3]);
|
||||
// fwrite($fpT, date('Ymd-His')."$fichier;$dateInsert;$nbLignes;
|
||||
$messageLigne=date('Y/m/d - H:i:s')." - Le fichier n°$iFic ($filename) est en cours de chargement depuis le $date2Tmp ($nbL2Tmp/$nbLignesTot lignes chargées)...".EOL;
|
||||
echo $messageLigne;
|
||||
$message.=$messageLigne;
|
||||
//if (!$stopSiErreur) {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement Adresses RNVP - ERREUR !!!', $message);
|
||||
continue;
|
||||
//}
|
||||
}
|
||||
|
||||
$fp=fopen($filename, 'r');
|
||||
if ($fp) {
|
||||
$nbLignes=$nbLignesTot=0;
|
||||
|
||||
if (preg_match('/\.txt\.Rnvp\.(Rejets|20)(.*)\.OK/i', $filename, $matches)) {
|
||||
// RNVP_SED_20141219_135641.txt.Rnvp.20141219142501062.OK
|
||||
if ($matches[1]=='Rejets') {
|
||||
$codeRetourRnvp='KO';
|
||||
$dateRetourRnvp=substr($matches[2],1,14);
|
||||
} else {
|
||||
$codeRetourRnvp='OK';
|
||||
$dateRetourRnvp='20'.substr($matches[2],0,12);
|
||||
}
|
||||
while (!feof($fp)) {
|
||||
$a = fgets($fp, 4096);
|
||||
$nbLignesTot++;
|
||||
}
|
||||
$nbLignesTot--; // On enlève la ligne d'entête
|
||||
//if ($codeRetourRnvp<>'KO') {
|
||||
|
||||
$ret2=$iDb2->select('villes.rnvpSources', 'COUNT(*) AS nb', "dateRetourRnvp=$dateRetourRnvp AND codeRetour='$codeRetourRnvp'", false, MYSQL_ASSOC);
|
||||
$nbLignesBase=$ret2[0]['nb']*1;
|
||||
if ($nbLignesTot>0 && $nbLignesBase>=floor($nbLignesTot*0.995)) {
|
||||
if ($verbose) echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes et a déjà été chargé ($nbLignesBase lignes en base).".EOL;
|
||||
fclose($fp);
|
||||
continue;
|
||||
} elseif ($nbLignesTot==0) {
|
||||
if ($verbose) echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' est vide !".EOL;
|
||||
continue;
|
||||
} else {
|
||||
echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes".EOL;
|
||||
$ratio=floor($nbLignesTot*0.995);
|
||||
echo date('Y/m/d - H:i:s') ." - en base : $nbLignesBase lignes (rapport = $ratio).".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - $nbLignesBase > $ratio ?".EOL;
|
||||
if ($verbose) die();
|
||||
}
|
||||
} else continue;
|
||||
|
||||
//if ($codeRetourRnvp<>'KO') continue;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes ($nbLignesBase déjà chargées).".EOL;
|
||||
$message.=date('Y/m/d - H:i:s') ." - Le fichier '$codeRetourRnvp' à charger '".basename($filename)."' contient $nbLignesTot lignes ($nbLignesBase déjà chargées).".EOL;
|
||||
rewind($fp);
|
||||
$entete = fgets($fp, 4096);
|
||||
|
||||
$tabEntete=explode("\t", $entete);
|
||||
//echo $entete.EOL;
|
||||
//print_r($tabEntete);
|
||||
//die();
|
||||
while (!feof($fp)) {
|
||||
/** Ajout/Maj des infos du verrou **/
|
||||
if ($nbLignes==0 || $nbLignes%100000==0) {
|
||||
$fpT=fopen(REP_TEMP.basename($filename).'.lock', 'w');
|
||||
fwrite($fpT, date('YmdHis').";$filename;$nbLignes;$nbLignesTot".EOL);
|
||||
fclose($fpT);
|
||||
}
|
||||
$nbLignes++;
|
||||
//if ($nbLignes<$numReprise) continue;
|
||||
$ligne = fgets($fp, 4096);
|
||||
|
||||
$tabLigne=explode("\t", $ligne);
|
||||
$tabUpdate=array('dateRetourRnvp'=>$dateRetourRnvp,'codeRetour'=>$codeRetourRnvp);
|
||||
foreach ($tabLigne as $iCol=>$valeur)
|
||||
$tabUpdate[trim($tabEntete[$iCol])]=$valeur;
|
||||
|
||||
//print_r($tabUpdate);
|
||||
unset($tabUpdate['Rang']); // => R010
|
||||
unset($tabUpdate['IdElfy']);// => 1010
|
||||
unset($tabUpdate['CMedia']);
|
||||
|
||||
$tabUpdate['L1rnvp']=strtoupper($tabUpdate['TNP']); unset($tabUpdate['TNP']);
|
||||
if (isset($tabUpdate['NOM_OUTPUT']) && $tabUpdate['L1rnvp']=='' && $tabUpdate['NOM_OUTPUT']<>'')
|
||||
$tabUpdate['L1rnvp']=trim($tabUpdate['NOM_OUTPUT']);
|
||||
unset($tabUpdate['NOM_OUTPUT']);
|
||||
$tabUpdate['L2rnvp']=strtoupper($tabUpdate['CNom']); unset($tabUpdate['CNom']);
|
||||
if (isset($tabUpdate['ENSEIGNE_OUTPUT']) && $tabUpdate['L2rnvp']=='' && $tabUpdate['ENSEIGNE_OUTPUT']<>'')
|
||||
$tabUpdate['L2rnvp']=trim($tabUpdate['ENSEIGNE_OUTPUT']);
|
||||
unset($tabUpdate['ENSEIGNE_OUTPUT']);
|
||||
$tabUpdate['L3rnvp']=strtoupper($tabUpdate['CAdrs']); unset($tabUpdate['CAdrs']);
|
||||
$tabUpdate['L4rnvp']=strtoupper($tabUpdate['Adrs']); unset($tabUpdate['Adrs']);
|
||||
$tabUpdate['L5rnvp']=strtoupper($tabUpdate['LieuDit']); unset($tabUpdate['LieuDit']);
|
||||
$tabUpdate['L6rnvp']=strtoupper($tabUpdate['CpVille']); unset($tabUpdate['CpVille']);
|
||||
if ($tabUpdate['Pays']<>'' && $tabUpdate['Pays']<>'FRA')
|
||||
$tabUpdate['L6rnvp']=strtoupper($tabPays[$tabUpdate['Pays']]);
|
||||
|
||||
unset($tabUpdate['PAYS_OUTPUT']);
|
||||
$id=$tabUpdate['REF_OUTPUT']; unset($tabUpdate['REF_OUTPUT']);
|
||||
if ($id==0) continue; // Fin de fichier / Ligne vide
|
||||
|
||||
/** Zones non renseignées (option non comprise) **/
|
||||
unset($tabUpdate['TDM']);
|
||||
unset($tabUpdate['TourneeFacteur']);
|
||||
unset($tabUpdate['Codageo_Iris']);
|
||||
unset($tabUpdate['Codageo_X']);
|
||||
unset($tabUpdate['Codageo_Y']);
|
||||
unset($tabUpdate['Codageo_precision']);
|
||||
unset($tabUpdate['Codageo_Cq']);
|
||||
|
||||
unset($tabUpdate['StatAge']);
|
||||
unset($tabUpdate['CivCourt']);
|
||||
unset($tabUpdate['CivLong']);
|
||||
unset($tabUpdate['Sex']);
|
||||
unset($tabUpdate['Nom']);
|
||||
unset($tabUpdate['Prenom']);
|
||||
unset($tabUpdate['CQtnp']);
|
||||
/** Zones inutiles, chronospace **/
|
||||
unset($tabUpdate['RSoc_Input']);
|
||||
unset($tabUpdate['Ville38']);
|
||||
unset($tabUpdate['LibDept']);
|
||||
unset($tabUpdate['Prefecture']);
|
||||
unset($tabUpdate['RegionAdministrative']);
|
||||
|
||||
//echo "Mise à jour de l'id=$id ...".mysql_errno().' : '.mysql_error().EOL;
|
||||
//print_r($tabUpdate);
|
||||
|
||||
$ret2=$iDb2->update('rnvpSources', $tabUpdate, "id=$id", false, 1, true);
|
||||
|
||||
if (!mysql_errno()) $nbUpdate++;
|
||||
else {
|
||||
print_r($tabUpdate);
|
||||
echo "Erreur n°".mysql_errno()." lors de la mise à jour de la ligne id=$i (".mysql_error().")".EOL;
|
||||
}
|
||||
}
|
||||
fclose($fp);
|
||||
// Suppression du verrou
|
||||
unlink(REP_TEMP.basename($filename).'.lock');
|
||||
|
||||
if (bzip2($filename,RNVP_BACKUP_DIR.basename($filename))) {
|
||||
unlink($filename);
|
||||
$messageLigne=date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic ($filename) vient d'être historisé.".EOL;
|
||||
echo $messageLigne;
|
||||
$message.=$messageLigne;
|
||||
}
|
||||
|
||||
$message.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbUpdate lignes d'adresses sur $nbLignes.". EOL;
|
||||
}
|
||||
}
|
||||
//print_r($tabFichiers);
|
||||
//die();
|
||||
if (!$noMail) {
|
||||
$message.=date('Y/m/d - H:i:s') ." - Fin de réception des adresses RNVP.".EOL;
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Traitement RNVP - Envoi en RNVP", $message);
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de la réception des adresses RNVP.".EOL;
|
||||
}
|
||||
|
||||
if ($collecteAdr) {
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Recherche des nouvelles adresses par sources...".EOL;
|
||||
|
||||
foreach ($tabSrc as $src=>$tabSrcDet) {
|
||||
if ($tabSrcDet['go']==0) {
|
||||
echo date('Y/m/d - H:i:s') ." - On ne traite pas les adresses '".$tabSrcDet['lib']."'".EOL;
|
||||
continue;
|
||||
}
|
||||
if ($sourceCollecteOnly) {
|
||||
if ($sourceCollecteOnly<>$src) {
|
||||
//echo date('Y/m/d - H:i:s') ." - On ne traite pas les adresses '".$tabSrcDet['lib']."'".EOL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Traitement des adresses '".$tabSrcDet['lib']."' (Source ".$tabSrcDet['idSrc'].")".EOL;
|
||||
unset($iDb);
|
||||
$iDb=new WDB($tabSrcDet['db']);
|
||||
|
||||
//enum('an8', 'domaines', 'fax', 'logo', '', 'mob', 'tel', 'web')
|
||||
$nb=$iDb->select($tabSrcDet['table'], $tabSrcDet['zones'],$tabSrcDet['where'], false,MYSQL_ASSOC,true);
|
||||
/*
|
||||
echo "SELECT ".$tabSrcDet['zones']."
|
||||
FROM ".$tabSrcDet['table']."
|
||||
WHERE ".$tabSrcDet['where'].";".EOL;
|
||||
*/
|
||||
if (mysql_errno()<>0) die(mysql_error().EOL);
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nb ligne(s) d'adresses '".$tabSrcDet['lib']."' à traiter...".mysql_error().EOL;
|
||||
$j=0;
|
||||
while ($tabAdr=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$j++;
|
||||
$source = $tabAdr['source'];
|
||||
$source_id = $tabAdr['source_id'];
|
||||
$num = $tabAdr['num'];
|
||||
// Retraitement des adresses dont toutes les informations sont sur la même ligne
|
||||
if (isset($tabSrcDet['splitterL4']) && $tabSrcDet['splitterL4']==1) {
|
||||
$adrL4=$tabAdr['L4in'];
|
||||
$tabAdr2=$iInsee->structureVoie($adrL4);
|
||||
$tabAdr['L3in']=@$tabAdr2['adrComp0'];
|
||||
$tabAdr['L4in']=@$tabAdr2['num'].' '.@$tabAdr2['indRep'].' '.@$tabAdr2['typeVoie'].' '.@$tabAdr2['libVoie'];
|
||||
$tabAdr['L5in']=@$tabAdr2['adrComp1'];
|
||||
$tabAdr['L6in']=@$tabAdr2['cp'].' '.@$tabAdr2['ville'];
|
||||
//print_r($tabAdr);
|
||||
//die($adrL4);
|
||||
}
|
||||
|
||||
if ($iDb2->insert('rnvpSources', $tabAdr, false) || $iDb2->getLastErrorNum()==1062) {
|
||||
if ($iDb2->getLastErrorNum()<>1062) @$nbInsert[$src]++;
|
||||
/*elseif ($iDb2->getLastErrorNum()==1062) {
|
||||
$ret2=$iDb2->select('villes.rnvpSources', 'id', "source=$source AND source_id=$source_id AND num=$num", false, MYSQL_ASSOC);
|
||||
$id=$ret2[0]['id'];
|
||||
$iDb2->query("INSERT IGNORE INTO villes.rnvpHisto SELECT * FROM villes.rnvpSources WHERE id=$id;", false);
|
||||
$iDb2->query("DELETE FROM villes.rnvpSources WHERE id=$id;", false);
|
||||
@$nbUpdate[$src]++;
|
||||
if (!$iDb2->insert('rnvpSources', $tabAdr, false)) die($iDb2->getLastError());
|
||||
}*/
|
||||
@$nbTot[$src]++;
|
||||
} else die($iDb2->getLastError());
|
||||
}
|
||||
}
|
||||
|
||||
print_r($nbInsert);
|
||||
print_r($nbUpdate);
|
||||
print_r($nbTot);
|
||||
|
||||
|
||||
if (!$noMail) {
|
||||
$message=date('Y/m/d - H:i:s') ." - Fin de la récupération des Adresses des différentes sources :".EOL;
|
||||
foreach ($tabSrc as $src=>$tTmp)
|
||||
if (@$nbTot[$src]>0)
|
||||
$message.=" Adresses '$src' :\t".@$nbInsert[$src].' ajouts et '.@$nbUpdate[$src].' MAJ / '.@$nbTot[$src].' adresses'.EOL;
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Traitement RNVP - Récupération des adresses", $message);
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de la recherche des adresses par sources.".EOL;
|
||||
|
||||
}
|
||||
|
||||
if ($envoiRnvp || $envoiRnvpAll) {
|
||||
$dateEnvoirRnvp=date('Ymd_His');
|
||||
$dateEnvoirRnvpInt=str_replace('_','',$dateEnvoirRnvp);
|
||||
$nbExport=0;
|
||||
if ($envoiSrc>0) {
|
||||
$sqlWhereRnvp=" source=$envoiSrc AND num=$envoiNum ";
|
||||
} elseif ($envoiRnvpAll) {
|
||||
$sqlWhereRnvp=" dateEnvoiRnvp<>0 AND dateRetourRnvp=0 ";
|
||||
} else
|
||||
$sqlWhereRnvp=" dateEnvoiRnvp=0 ";
|
||||
|
||||
if (count($tabFichiersCmd)==1)
|
||||
$fileNameOut=$tabFichiersCmd[0];
|
||||
else {
|
||||
$fileNameOut="RNVP_SED_$dateEnvoirRnvp.txt";
|
||||
echo date('Y/m/d - H:i:s') ." - Sélection des adresses à envoyer en RNVP.".EOL;
|
||||
$message=date('Y/m/d - H:i:s') ." - Début de la sélection des adresses à envoyer en RNVP.".EOL;
|
||||
$tabTmp=$iDb2->select('villes.rnvpSources','COUNT(*) AS nb', $sqlWhereRnvp, false, MYSQL_ASSOC);
|
||||
$nbExport=$tabTmp[0]['nb'];
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbExport lignes d'adresses à envoyer en RNVP...".EOL;
|
||||
}
|
||||
$fileNameFlag=substr($fileNameOut,0,-4).'.flag';
|
||||
$fileNameZip=substr($fileNameOut,0,-4).'.zip';
|
||||
if ($nbExport>0 && count($tabFichiersCmd)==0) {
|
||||
$nb=$iDb->exportCSV("SELECT id AS REF,
|
||||
TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L1in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')) AS NOM,
|
||||
TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L2in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')) AS ENSEIGNE,
|
||||
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L3in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS ADRESSE1,
|
||||
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L4in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS ADRESSE2,
|
||||
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L5in,'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS ADRESSE3,
|
||||
SUBSTRING(L6in,1,5) AS CP,
|
||||
SUBSTRING(TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING(L6in,6,LENGTH(L6in)),'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')),1,150) AS VILLE,
|
||||
TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(L7in,'F-',''),'\"',' '),CHAR(9),' '),CHAR(13),' '),CHAR(10),' '),' ',' ')) AS PAYS FROM villes.rnvpSources WHERE $sqlWhereRnvp ORDER BY id ASC LIMIT 0,$nbAdrRnvp;", RNVP_FTP_LOCALDIR.$fileNameOut,$sep,$eol);
|
||||
|
||||
$iDb->query("UPDATE villes.rnvpSources SET dateEnvoiRnvp=$dateEnvoirRnvpInt WHERE $sqlWhereRnvp ORDER BY id ASC LIMIT $nbAdrRnvp;", false);
|
||||
echo mysql_error().EOL;
|
||||
$sizeO=filesize(RNVP_FTP_LOCALDIR.$fileNameOut);
|
||||
file_put_contents(RNVP_FTP_LOCALDIR.$fileNameFlag, "$fileNameOut");
|
||||
$sizeK=round($sizeO/1024,1);
|
||||
echo date('Y/m/d - H:i:s') ." - Export de $nb lignes d'adresses ($sizeK Ko).". EOL;
|
||||
}
|
||||
if (count($tabFichiersCmd)==1 || $nbExport>0) {
|
||||
if (count($tabFichiersCmd)==1)
|
||||
echo date('Y/m/d - H:i:s') ." - Export du fichier '$fileNameOut'...". EOL;
|
||||
$sizeO=filesize(RNVP_FTP_LOCALDIR.$fileNameOut);
|
||||
$sizeK=round($sizeO/1024,1);
|
||||
|
||||
$tDeb=microtime(1);
|
||||
|
||||
$fc = ftp_connect(RNVP_FTP_HOST);
|
||||
if (!$fc) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de se connecter à '".RNVP_FTP_HOST."' !". EOL);
|
||||
$fl = ftp_login($fc, RNVP_FTP_LOGIN, RNVP_FTP_PASS);
|
||||
if (!$fl) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de s'authentifier à '".RNVP_FTP_HOST."' !". EOL);
|
||||
|
||||
//CHARGEMENT ET D'UN FICHIER
|
||||
$fup = ftp_put($fc, RNVP_FTP_DIR_PUT.$fileNameOut, RNVP_FTP_LOCALDIR.$fileNameOut, FTP_BINARY);
|
||||
|
||||
//VERIFICATION DU BON CHARGEMENT DU FICHIER
|
||||
if (!$fup) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de déposer '".RNVP_FTP_LOCALDIR.$fileNameOut."' vers '".RNVP_FTP_HOST."' !". EOL);
|
||||
$duree=round(microtime(1)-$tDeb,1);
|
||||
$fup = ftp_put($fc, RNVP_FTP_DIR_PUT.$fileNameFlag, RNVP_FTP_LOCALDIR.$fileNameFlag, FTP_BINARY);
|
||||
if (!$fup) die(date('Y/m/d - H:i:s') ." - Erreur : Impossible de déposer '".RNVP_FTP_LOCALDIR.$fileNameFlag."' vers '".RNVP_FTP_HOST."' !". EOL);
|
||||
|
||||
if (count($tabFichiersCmd)==1)
|
||||
echo date('Y/m/d - H:i:s') ." - Upload du fichier '$fileNameOut' ($sizeK Ko) en $duree secondes.". EOL;
|
||||
else
|
||||
echo date('Y/m/d - H:i:s') ." - Upload de $nb lignes d'adresses ($sizeK Ko) en $duree secondes.". EOL;
|
||||
|
||||
//FERMETURE DE LA CONNEXION
|
||||
ftp_close($fc);
|
||||
|
||||
if (bzip2(RNVP_FTP_LOCALDIR.$fileNameOut,RNVP_BACKUP_DIR.$fileNameOut)) {
|
||||
unlink(RNVP_FTP_LOCALDIR.$fileNameOut);
|
||||
$messageLigne=date ('Y/m/d - H:i:s') . " - Le fichier '$fileNameOut' vient d'être historisé.".EOL;
|
||||
echo $messageLigne;
|
||||
$message.=$messageLigne;
|
||||
}
|
||||
|
||||
if (!$noMail) {
|
||||
$message.=date('Y/m/d - H:i:s') ." - Fin de l'envoi vers la RNVP.".EOL;
|
||||
if (count($tabFichiersCmd)==1)
|
||||
$message.=date('Y/m/d - H:i:s') ." - Upload du fichier '$fileNameOut' ($sizeK Ko) en $duree secondes.". EOL;
|
||||
else
|
||||
$message.=date('Y/m/d - H:i:s') ." - Upload de $nb lignes d'adresses ($sizeK Ko) en $duree secondes.". EOL;
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Traitement RNVP - Envoi en RNVP", $message);
|
||||
}
|
||||
|
||||
|
||||
} else
|
||||
echo date('Y/m/d - H:i:s') ." - Il n'y a aucune adresse à envoyer en RNVP !".EOL;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de l'envoi vers la RNVP.".EOL;
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - FIN du programme de RNVP.".EOL;
|
||||
|
||||
die();
|
||||
|
||||
?>
|
247
batch/getAllIsin.php
Normal file
247
batch/getAllIsin.php
Normal file
@ -0,0 +1,247 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'common/controles.php');
|
||||
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
function getNextDate($dateCour, $nbJours=7) {
|
||||
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
|
||||
return $nextDate;
|
||||
}
|
||||
|
||||
$urlBase='http://www.zonebourse.com';// 593
|
||||
$url='/bourse/actions/a-9/';
|
||||
|
||||
$tabUrlZones=array( 8=> array('lib'=>'Amérique du Nord','url'=>'/bourse/actions/Amerique-du-Nord-8/',),
|
||||
10=>array('lib'=>'Amérique du Sud', 'url'=>'/bourse/actions/Amerique-du-Sud-10/',),
|
||||
3=>array('lib'=>'Europe', 'url'=>'/bourse/actions/Europe-3/',),
|
||||
4=>array('lib'=>'Afrique', 'url'=>'/bourse/actions/Afrique-4/',),
|
||||
5=>array('lib'=>'Moyen-Orient', 'url'=>'/bourse/actions/Moyen-Orient-5/',),
|
||||
6=>array('lib'=>'Asie', 'url'=>'/bourse/actions/Asie-6/',),
|
||||
7=>array('lib'=>'Océanie', 'url'=>'/bourse/actions/Oceanie-7/',),
|
||||
);
|
||||
$tabUrlPays=array();
|
||||
$pays=$zone=false;
|
||||
|
||||
function getInfosAnnonce($annonceHtml) {
|
||||
$tabRet=array();
|
||||
$tabRet['raisonSociale']=trim(str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml,'<dd><label>Société : </label><strong>', '<strong>', '</strong></dd>'))));
|
||||
$tabRet['isin']=strtoupper(trim(strtr(@getTextInHtml($annonceHtml, '<dd><label>ISIN : </label>', '</label>', '</dd>'), array(':'=>'',' '=>''))));
|
||||
$tabRet['docDesc']=trim(@getTextInHtml($annonceHtml, '<div class="r_desc">', 'class="r_desc">', '</div>'));
|
||||
$tabRet['docDate']=WDate::DateT('d/m/Y','Y-m-d', trim(@getTextInHtml($annonceHtml, '<span class="date">', 'class="date">', '</span>'))).' '.trim(@getTextInHtml($annonceHtml, '<span class="heure">', 'class="heure">', '</span>')).':00';
|
||||
$tabRet['docCategorie']=utf8_decode(strip_tags('<a href="'.trim(str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<div class="resultat_HitGroup">', '<a href="', '</div>'))))));
|
||||
$tabRet['docTitre']=utf8_decode(trim(str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml, '<dd><label>Titre du document : </label>', '"> ', '</a></dd>')))));
|
||||
$tabRet['docLangue']=trim(@getTextInHtml($annonceHtml, '<dd><label>Langue : </label>', '</label>', '</dd>'));
|
||||
$tabRet['pdfLink']=str_replace('https://', 'http://', str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<a href="http://www.info-financiere.fr/', 'href="', '">'))));
|
||||
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
$iPage=1; // Reprendre à la page 1
|
||||
|
||||
$tempsMinEntreRequetes=7;
|
||||
$tempsMaxEntreRequetes=21;
|
||||
$modeDebug=false;
|
||||
set_time_limit(0);
|
||||
$lastJO=$dateDebut=$dateFin=$dateF=$dateCour=$load=false;
|
||||
|
||||
$iDb=new WDB('tmp');
|
||||
$iInsee=new MInsee();
|
||||
$iBourse=new MBourse();
|
||||
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère les dernières annonces BOAMP sur le site de la DJO.
|
||||
|
||||
Sans aucun paramètre, récupération des dernières Annonces.
|
||||
Sinon:
|
||||
-r:XXX Reprendre à la page n°XXX
|
||||
-n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes)
|
||||
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
|
||||
-z(:NN) Liste des zones/Zones à traiter
|
||||
-p(:NN) Liste des pays de la zone/Pays à traiter
|
||||
-d Verbosité debug
|
||||
-c Chargement détaillé
|
||||
";/*
|
||||
-l Dernières parutions uniquement (*)
|
||||
-d:JJ/MM/AAAA Date de début de publication
|
||||
-f:JJ/MM/AAAA Date de fin de publication
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $lastJO=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd':
|
||||
$modeDebug=true;
|
||||
break;
|
||||
case 'f':
|
||||
$dateFin=substr($argv[$i],3,10);
|
||||
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
|
||||
$lastJO=false;
|
||||
break;
|
||||
case 'r':
|
||||
$iPage=substr($argv[$i],3)*1;
|
||||
break;
|
||||
case 'n':
|
||||
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
|
||||
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
|
||||
break;
|
||||
case 'i':
|
||||
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
|
||||
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
|
||||
break;
|
||||
case 'c':
|
||||
$load=true;
|
||||
break;
|
||||
case 'z':
|
||||
$zone=substr($argv[$i],3)*1;
|
||||
if ($zone==0) {
|
||||
echo 'Liste des zones :'.EOL;
|
||||
foreach ($tabUrlZones as $iZ=>$tZ) echo " - $iZ = ".$tZ['lib'].EOL;
|
||||
die();
|
||||
} else
|
||||
$url=$tabUrlZones[$zone]['url'];
|
||||
break;
|
||||
case 'p':
|
||||
$pays=substr($argv[$i],3)*1;
|
||||
//if ($pays==0) $pays=-1;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tabZones=array('nom2'=>'<title>(.*):(?:.*)Zone bourse</title>',
|
||||
'ticker'=>'<title>(?:.*):(?:.*)\| (.*) \| (?:.*) \| Zone bourse</title>',
|
||||
'isin2'=>'<title>(?:.*):(?:.*)\| (?:.*) \| (.*) \| Zone bourse</title>',
|
||||
'isin3'=>'<title>(?:.*):(?:.*)\| (.*) \| Zone bourse</title>',
|
||||
'adr1'=>'<nobr><b>Coordonnées société</b></nobr></td></tr>(?:.*)<tr><td class="std_txt" style="padding-top:4px">(.*)<br>(?:.*)<br>(?:.*)<br><br>',
|
||||
'adr2'=>'<nobr><b>Coordonnées société</b></nobr></td></tr>(?:.*)<tr><td class="std_txt" style="padding-top:4px">(?:.*)<br>(.*)<br>(?:.*)<br><br>',
|
||||
'adr3'=>'<nobr><b>Coordonnées société</b></nobr></td></tr>(?:.*)<tr><td class="std_txt" style="padding-top:4px">(?:.*)<br>(?:.*)<br>(.*)<br><br>',
|
||||
'tel'=>'<br>Téléphone : (.*)<br>',
|
||||
'fax'=>'<br>Fax : (.*)<br>',
|
||||
'web'=>'<br>Internet : <a class="pageprofil_link_blue" href="(.*)"',
|
||||
'isin'=>'- Code Isin : </td>\s+<td align="left" style="padding-left:10px"> (.*)</td>',
|
||||
'bloomberg'=>'- Code Bloomberg : </td>\s+<td align="left" style="padding-left:10px;padding-top:5px"> (.*)</td>',
|
||||
'reuteurs'=>'- Code Reuters : </td>\s+<td align="left" style="padding-left:10px;padding-top:5px"> (.*)</td>',
|
||||
'datastream'=>'- Code Datastream : </td>\s+<td valign="top" align="left" style="padding-left:10px;padding-top:5px"> (.*)</td>',
|
||||
);
|
||||
|
||||
$tabTmp=$iDb->select('jo.tabPays','codPays,codPays3', '1', false, MYSQL_ASSOC);
|
||||
foreach($tabTmp as $i=>$tabTmp2) {
|
||||
$tabPays[$tabTmp2['codPays']]=$tabTmp2['codPays3'];
|
||||
}
|
||||
$nbRows=count($tabTmp);
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows pays en base.".EOL;
|
||||
|
||||
while (true) {
|
||||
$urlCour=$urlBase.$url.'?Req=&p='.$iPage;
|
||||
$referer='';
|
||||
$page=getUrl($urlCour, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
$referer=$urlCour;
|
||||
if ($zone>0 && $pays!==false && empty($tabUrlPays) && preg_match_all('/<div class="tabSTab4" style="(?:.*)"><a class="" href="(.*)"\s+?>(.*)<\/a><\/div>/Uis', $body, $matches)) {
|
||||
foreach($matches[1] as $i=>$url2) {
|
||||
//print_r($matches);
|
||||
if (preg_match('/\-(\d+)\/$/Uis', str_replace($url,'',$url2), $matches2)) $idPays=$matches2[1];
|
||||
//die ($idPays);
|
||||
$tabUrlPays[$idPays]=array('lib'=>html_entity_decode($matches[2][$i]),'url'=>$url2);
|
||||
}
|
||||
|
||||
if ($pays==0) {
|
||||
echo "Liste des pays de la zone $zone (".$tabUrlZones[$zone]['lib'].') :'.EOL;
|
||||
foreach ($tabUrlPays as $iZ=>$tZ) echo " - $iZ = ".$tZ['lib'].EOL;
|
||||
} else {
|
||||
$url=$tabUrlPays[$pays]['url'];
|
||||
//die($url);
|
||||
continue;
|
||||
}
|
||||
die();
|
||||
}
|
||||
|
||||
if (preg_match_all('/<tr\s+><td class="large30 center"(?:.*)<img width="16" height="16" title="(.*)" src="\/images\/png-country\/16x16\/(.*)png"><\/td>(?:.*)<a href="(.*)"(?:.*)<\/a><\/td><td class="large200 center"(?:.*)<span title="(.*)">(?:.*)<\/font><\/td><td class="large70 right pright20"(?:.*)>(.*)<\/td>(?:.*)<\/a><\/td>\s+<\/tr>/Uis', $body, $matches)) {
|
||||
// print_r($matches[0]);
|
||||
foreach($matches[2] as $iLigne=>$codePays) {
|
||||
$codePays=substr(strtoupper($codePays),0,2);
|
||||
$libPays=$matches[1][$iLigne];
|
||||
$societe=$matches[3][$iLigne];
|
||||
$activite=html_entity_decode($matches[4][$iLigne]);
|
||||
$capitalisation=str_replace(' ','',$matches[5][$iLigne]);
|
||||
$urlDetail='http://www.zonebourse.com'.$societe.'societe/';
|
||||
$ret=$iDb->select('zonebourse', 'idZb, LENGTH(html) AS htm, isin', "nom='$societe'",false);
|
||||
if (@$ret[0]['idZb']*1==0 || @$ret[0]['htm']*1==0) {
|
||||
$page2=getUrl($urlDetail, '', '', $referer, false);
|
||||
$tabInsert=@html2array($page2['body'], $tabZones);
|
||||
|
||||
$tmpNom=explode('-', str_replace('/','',$societe));
|
||||
$nbMots=count($tmpNom);
|
||||
$idZb=end($tmpNom);
|
||||
$rs='';
|
||||
foreach ($tmpNom as $iN=>$mot)
|
||||
if ($iN<$nbMots-1)
|
||||
$rs.=$mot.' ';
|
||||
$rs=trim($rs);
|
||||
|
||||
$tabInsert['ligne']=$iLigne;
|
||||
$tabInsert['page']=$iPage;
|
||||
$tabInsert['paysIso2']=$codePays;
|
||||
$tabInsert['codPays3']=$tabPays[$codePays];
|
||||
$tabInsert['paysLib']=$libPays;
|
||||
$tabInsert['idZb']=$idZb;
|
||||
$tabInsert['nom']=$societe;
|
||||
$tabInsert['raisonSociale']=$rs;
|
||||
$tabInsert['url']=$urlDetail;
|
||||
$tabInsert['activite']=$activite;
|
||||
if ($capitalisation<>'-')
|
||||
$tabInsert['capitalisation']=str_replace(',','.',$capitalisation)*1.0;
|
||||
$tabInsert['html']=$page2['body'];
|
||||
if (!isset($tabInsert['isin']) || $tabInsert['isin']=='')
|
||||
$tabInsert['isin']=@trim($tabInsert['isin2']);
|
||||
if (strlen($tabInsert['isin'])<>12)
|
||||
$tabInsert['isin']=@trim($tabInsert['isin3']);
|
||||
//print_r($tabInsert);
|
||||
//die();
|
||||
if (strlen($tabInsert['isin'])<>12)
|
||||
unset($tabInsert['isin']);
|
||||
unset($tabInsert['isin2']);
|
||||
unset($tabInsert['isin3']);
|
||||
$update=false;
|
||||
$isin=$tabInsert['isin'];
|
||||
if (!isValidIsin($isin)) die("Code ISIN $isin invalide !".EOL);
|
||||
|
||||
if (@$ret[0]['idZb']*1==0)
|
||||
echo "AJOUT $iPage\t$iLigne\t$codePays\t$isin\t$societe\t$urlDetail\t$activite\t$capitalisation".EOL;
|
||||
else {
|
||||
$update=true;
|
||||
echo "COMPL $iPage\t$iLigne\t$codePays\t$isin\t$societe\t$urlDetail\t$activite\t$capitalisation".EOL;
|
||||
}
|
||||
if (!$update) $iDb->insert('zonebourse', $tabInsert, false);
|
||||
else $iDb->update('zonebourse', $tabInsert, "nom='$societe'",false);
|
||||
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
|
||||
|
||||
} else {
|
||||
$isin=@$ret[0]['isin'];
|
||||
echo "Passe $iPage\t$iLigne\t$codePays\t$isin\t$societe\t$urlDetail\t$activite\t$capitalisation".EOL;
|
||||
}
|
||||
//die();
|
||||
}
|
||||
randsleep($tempsMinEntreRequetes*3, $tempsMaxEntreRequetes*3);
|
||||
}
|
||||
else break;
|
||||
$iPage++;
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin du traitement de récupération de tous les ISIN.".EOL;
|
||||
die();
|
||||
|
||||
?>
|
@ -21,7 +21,7 @@ $argv=$_SERVER['argv'];
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case 'v': $modeDebug=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
@ -31,7 +31,8 @@ for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
|
||||
$iDb=new WDB('sdv1');
|
||||
$table='amf_geco';
|
||||
$urlBase='http://www.amf-france.org/bio/rech_SG.aspx';
|
||||
//$urlBase='http://www.amf-france.org/bio/rech_SG.aspx';
|
||||
$urlBase='http://www.amf-france.org/bio/res_SG.aspx';
|
||||
|
||||
$tabZones=array('codeQE'=>' <b>Code QE n°</b>(?:.*) (\d+)</td>',
|
||||
/* type char(3) latin1_swedish_ci Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
|
926
batch/getAnnoncesInsee.php
Normal file
926
batch/getAnnoncesInsee.php
Normal file
@ -0,0 +1,926 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
$table='annonces';
|
||||
/*
|
||||
ALTER TABLE `annonces` ADD `inter5type` CHAR( 1 ) NOT NULL AFTER `inter4nom`,
|
||||
ADD `inter5id` SMALLINT( 5 ) UNSIGNED ZEROFILL NOT NULL AFTER `inter5type`,
|
||||
ADD `inter5nom` VARCHAR( 255 ) NOT NULL AFTER `inter5id`;
|
||||
*/
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/ftp.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
|
||||
define('CSF_FTP_DIR', '/home/data/ftp/creditsafe/send/');
|
||||
define('CSF_BACKUP_DIR', '/home/data/jal/creditsafe/');
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Chargement des annonces Ventes/LG provenant des évènements Insee.
|
||||
|
||||
Options :
|
||||
-j Ne pas charger les jugements INPI S&D en Amont
|
||||
-c Ne pas charger les défaillances CSF
|
||||
-d Mode debug (Verbosité au maximum)
|
||||
-i Ne pas poser de questions interactives.
|
||||
-t Charger en test (implique -j -d)
|
||||
|
||||
";
|
||||
$iDb=new WDB('jo');
|
||||
$iInsee=new MInsee();
|
||||
$iBodacc=new MBodacc();
|
||||
$iRncs=new MRncs();
|
||||
$iGreffe=new MGreffes();
|
||||
|
||||
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=$nbSiretRetraitement=0;
|
||||
$modeDebug=false; // Mode débug
|
||||
$questions=true; // Questions interactives autorisées
|
||||
$loadInpiLocal=true; // Charger d'abord les derniers jugements INPI IMR locaux
|
||||
$loadCSF=true; // Charger les jugements Greffes via CSF
|
||||
$tabFichier=$tabFichLigneCmd=array();
|
||||
$message=''; // Initialisation du mail d'exécution du traitement
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case 'i': $questions=false; break;
|
||||
case 'j': $loadInpiLocal=false; break;
|
||||
case 'c': $loadCSF=false; break;
|
||||
case 't': $table='annonces2';
|
||||
$modeDebug=$questions=true;
|
||||
$loadInpiLocal=false;
|
||||
break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
} else $tabFichLigneCmd[]=$argv[$i];
|
||||
}
|
||||
|
||||
if (count($tabFichLigneCmd)==0) {
|
||||
$dh = opendir(CSF_FTP_DIR);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.csv')
|
||||
$tabFichier[] = $filename;
|
||||
}
|
||||
sort($tabFichier);
|
||||
} else $tabFichier=$tabFichLigneCmd;
|
||||
|
||||
$nbAnnUpdateJ=$nbAnnInsertJ=0; // Jugements
|
||||
$nbAnnUpdateE=$nbAnnInsertE=0; // Evènements
|
||||
$tabTmp=$iDb->select($table, 'MAX(dateInsert) AS lastInsert',"source='II'", false, MYSQL_ASSOC);
|
||||
$dateMaj=$tabTmp[0]['lastInsert'];
|
||||
$dateMaj='2013-09-01 02:00:00';
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Dernier chargement des annonces de ventes/LG Insee le $dateMaj.".EOL;
|
||||
|
||||
$tabEvenInseeSED=array( '3' => '5500,5103',
|
||||
'D' => '2870,2892',
|
||||
'E' => '2870,2893',
|
||||
'G' => '2870,2892',
|
||||
'H' => '2870,2893',
|
||||
'I' => '2406',
|
||||
'J' => '5500,5106',
|
||||
'VP'=> '5500,5200',
|
||||
);
|
||||
|
||||
/**
|
||||
** Jugements INPI
|
||||
**/
|
||||
/*
|
||||
insSIEGE, insAUXILT, insTEFET, insAPET700, insAPRM, insMODET, insMARCHET,
|
||||
insSAISONAT, insACTIVNAT, insENSEIGNE, insL2_COMP, insNUMVOIE, insINDREP,
|
||||
insTYPVOIE, insLIBVOIE, insL5_DISP, insL6_POST, insL7_ETRG, insRPET, insDEPCOM, insCODEVOIE, insDREACTET, insEXPLET, insDAPET,
|
||||
insLIEUACT, insACTISURF, insDEFET, insTEL, insCJ, insCIVILITE, insTEFEN, insAPEN700, insMODEN, insMARCHEN, insNOMEN, insTYPCREH,
|
||||
insMNICSIEGE, insMNOMEN, insMCJ, insMAPEN,
|
||||
insMMARCHEN, insMORDIN, insEFENCENT, insSIGLE, insNBETEXPL, insNICSIEGE, insDEPCOMEN, insMENSEIGNE, insMAPET, insMNATURE,
|
||||
insMADRESSE, insMEFET, insMSINGT, insMTELT, insMMARCHET, insMAUXILT, insSINGT, insEFETCENT,
|
||||
dirNom, dirNomUsage, dirPrenom, insDCRET, insDCREN, insPRODPART, insDREACTEN, insEXPLEN, insDEFEN, insMONOREG,
|
||||
insREGIMP, insMONOACT, insMSIGLE, insMEXPLEN, insRPEN, insMEXPLET, insDAPEN
|
||||
*/
|
||||
$AnnDb=$iDb->select('insee.insee_even',
|
||||
"insSIREN AS siren, insNIC AS nic, siretValide AS sirenValide, insDESTINAT AS DESTINAT, insEVE, insDATEVE AS dateJugement, insDATEMAJ,
|
||||
idFlux AS dateSource, dateInsert, 'II' AS source, insL1_NOMEN AS raisonSociale,
|
||||
insL4_VOIE AS Adresse, insCODPOS AS codePostal, insLIBCOM AS ville,
|
||||
insSIRETPS, insSIRETASS, insTYPETAB, insTRAN, insNICTRAN, insORIGINE, id",
|
||||
"dateInsert>'$dateMaj' AND DATEDIFF(NOW(), insDATEVE)<=90 AND insDESTINAT IN (3,5,'D','E','G','H','I','J','VP') AND id>23000000
|
||||
AND dateInsert<'2013-09-11 01:00:00';", false, MYSQL_ASSOC);
|
||||
// ", false, MYSQL_ASSOC);
|
||||
|
||||
/*
|
||||
DESTINAT => typeEven
|
||||
*/
|
||||
$nbAnnonces=count($AnnDb);
|
||||
$message.="Il y a $nbAnnonces annonce(s) de ventes/LG Insee depuis le dernier chargement du $dateMaj :\r\n";
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonce(s) de ventes/LG Insee depuis le dernier chargement du $dateMaj.".EOL;
|
||||
|
||||
// Il ne doit pas déjà y avoir d'annonces du même type dans l'année !
|
||||
$dateVentePre=WDate::getNextDate(date('Ymd'), -360);
|
||||
|
||||
foreach ($AnnDb as $i=>$tabInsert) {
|
||||
$siren=$tabInsert['siren'];
|
||||
$nic=$tabInsert['nic'];
|
||||
$siret=''.$siren.''.$nic;
|
||||
$id=$tabInsert['id']*1;
|
||||
$dateJugement=$tabInsert['dateJugement'];
|
||||
$strEven=$tabEvenInseeSED[trim($tabInsert['DESTINAT'])];
|
||||
$typeEtab='Etablissement';
|
||||
if (trim($tabInsert['DESTINAT'])=='G' || trim($tabInsert['DESTINAT'])=='H' ||
|
||||
trim($tabInsert['DESTINAT'])=='I' || trim($tabInsert['DESTINAT'])=='J')
|
||||
$typeEtab.=' agricole';
|
||||
|
||||
/** On récupère les annonces légales liés à cet évènement **/
|
||||
if (trim($tabInsert['DESTINAT'])=='3' || trim($tabInsert['DESTINAT'])=='J' || trim($tabInsert['DESTINAT'])=='VP')
|
||||
$tabVentes=@$iInsee->getAnnoncesLegales($siren, 0, 'V', false);
|
||||
else
|
||||
$tabVentes=@$iInsee->getAnnoncesLegales($siren, 0, 'G', false);
|
||||
|
||||
unset($tabInsert['DESTINAT']);
|
||||
$tabEven=explode(',', $strEven);
|
||||
$tabInsert['typeEven']=$tabEven[0];
|
||||
unset($tabEven[0]);
|
||||
$tabInsert['strEven']=@implode(',', $tabEven);
|
||||
|
||||
$tabTmp=@$iInsee->getIdentiteEntreprise($siren, $tabInsert['nic']);
|
||||
$tabInsert['tribunal']=$tabTmp['Tribunal'];
|
||||
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - $i/$nbAnnonces - Even $strEven sur $siren le $dateJugement : ";
|
||||
|
||||
/** On recherche s'il y a eu une annonce légale de Ventes/Cessions ou LG en tant que vendeur au cours de N derniers mois **/
|
||||
if (count($tabVentes)>0) {
|
||||
$vte=@$tabVentes[0];
|
||||
$dateVente=@$vte['dateJugement'];
|
||||
if ($dateVente=='0000-00-00') $dateVente=@$vte['dateEffet'];
|
||||
if ($dateVente=='0000-00-00') $dateVente=@$vte['DateParution'];
|
||||
$dateVente=WDate::dateT('Y-m-d','Ymd', $dateVente);
|
||||
|
||||
if ($dateVente>=$dateVentePre) {
|
||||
if ($modeDebug) echo "Annonce de vente récente déjà en base : $dateVente".EOL;
|
||||
continue;
|
||||
} elseif ($dateVente<=20010101) {
|
||||
// Cas impossible car on prend aussi DatePArution
|
||||
if ($modeDebug) echo "Annonce de vente sans date : $dateVente".EOL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$siretPS=$siretAS=0;
|
||||
$idDeb=$id-150000;
|
||||
$idFin=$id+150000;
|
||||
$tabInsert['complement']='';
|
||||
if ($tabInsert['insSIRETPS']>1000000000) {
|
||||
// Si le siret est inactif, on ne l'affiche pas !
|
||||
$sirenPS=substr($tabInsert['insSIRETPS'],0,9);
|
||||
$nicPS=substr($tabInsert['insSIRETPS'],9,5);
|
||||
$tabId=@$iInsee->getIdentiteLight($sirenPS,$nicPS);
|
||||
if ($tabId['Actif']==1) {
|
||||
$tabInsert['complement'].='Successeur : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville'].' ('.$tabInsert['insSIRETPS'].'). ';
|
||||
$siretPS=1;
|
||||
}
|
||||
}
|
||||
if ($tabInsert['insSIRETASS']>1000000000) {
|
||||
// Si le siret est inactif, on ne l'affiche pas !
|
||||
$sirenAS=substr($tabInsert['insSIRETASS'],0,9);
|
||||
$nicAS=substr($tabInsert['insSIRETASS'],9,5);
|
||||
$tabId=@$iInsee->getIdentiteLight($sirenAS,$nicAS);
|
||||
if ($tabId['Actif']==1) {
|
||||
$tabInsert['complement'].='Entitée associée : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville'].' ('.$tabInsert['insSIRETASS'].'). ';
|
||||
$siretAS=1;
|
||||
}
|
||||
}
|
||||
|
||||
if ($siretPS==0 && $siretAS==0) {
|
||||
// Recherche d'un siret associé sur un autre évènement proche (15 jours)
|
||||
$AnnDb2=$iDb->select('insee.insee_even', "insSIREN AS siren, insNIC AS nic, insSIRETPS, insSIRETASS",
|
||||
"id BETWEEN $idDeb AND $idFin AND id<>$id AND ( (insSIREN=$siren AND insNIC=$nic AND (insSIRETPS>1000000000 OR insSIRETASS>1000000000) ) OR insSIRETPS=$siret or insSIRETASS=$siret)", false, MYSQL_ASSOC);
|
||||
$tabTmp=@$AnnDb2[0];
|
||||
if (count($tabTmp)>0) {
|
||||
if ($siret==$tabTmp['insSIRETPS']) {
|
||||
// Notre établissement est le prédécesseur d'un nouvel établissement, si ce siret est inactif, on ne l'affiche pas !
|
||||
$sirenPS=$tabTmp['siren'];
|
||||
$nicPS=$tabTmp['nic'];
|
||||
$tabId=@$iInsee->getIdentiteLight($sirenPS,$nicPS);
|
||||
if ($tabId['Actif']==1) {
|
||||
$tabInsert['complement'].='Successeur : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville']." ($sirenPS $nicPS). ";
|
||||
$siretPS=1;
|
||||
}
|
||||
} elseif ($siret==$tabTmp['insSIRETASS']) {
|
||||
// Notre établissement est le siret associé d'un nouvel établissement, si ce siret est inactif, on ne l'affiche pas !
|
||||
$sirenAS=$tabTmp['siren'];
|
||||
$nicAS=$tabTmp['nic'];
|
||||
$tabId=@$iInsee->getIdentiteLight($sirenAS,$nicAS);
|
||||
if ($tabId['Actif']==1) {
|
||||
$tabInsert['complement'].='Entitée associée : '.$tabId['Nom'].', '.$tabId['Adresse'].', '.$tabId['CP'].' '.$tabId['Ville']." ($sirenAS $nicAS). ";
|
||||
$siretPS=1;
|
||||
}
|
||||
} /*else {
|
||||
print_r($AnnDb2);
|
||||
echo 'Rechercher un siret associé sur un autre évènement antérieur !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'.EOL;
|
||||
die();
|
||||
}*/
|
||||
}
|
||||
// echo mysql_error().EOL;
|
||||
}
|
||||
$tabInsert['complement'].=$typeEtab.' concerné : '. $tabInsert['Adresse'] .', '. $tabInsert['codePostal'] .' '. $tabInsert['ville'].' ('. $tabInsert['nic'].')';
|
||||
if ($modeDebug) echo $tabInsert['complement'].EOL;
|
||||
|
||||
if (trim($tabInsert['tribunal'])=='') $tabInsert['tribunal']='INCONU';
|
||||
|
||||
//print_r($tabInsert);
|
||||
|
||||
unset($tabInsert['nic']);
|
||||
unset($tabInsert['insEVE']);
|
||||
unset($tabInsert['insDATEMAJ']);
|
||||
unset($tabInsert['id']);
|
||||
|
||||
unset($tabInsert['insSIRETPS']);
|
||||
unset($tabInsert['insSIRETASS']);
|
||||
unset($tabInsert['insTYPETAB']);
|
||||
unset($tabInsert['insTRAN']);
|
||||
unset($tabInsert['insNICTRAN']);
|
||||
unset($tabInsert['insORIGINE']);
|
||||
|
||||
if (!$iDb->insert($table, array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))))) {
|
||||
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
|
||||
print_r($tabInsert);
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'insertion du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
$tabTmp=$iDb->select($table, 'id, siren, typeEven, dateJugement, dateCessationPaiement, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom,
|
||||
/*inter5type, inter5id, inter5nom,* dateSource, dateInsert, source, tribunal, raisonSociale',"siren=$siren AND ABS(DATEDIFF(dateJugement, '$dateJugement'))<60 AND typeEven=$typeEven", false, MYSQL_ASSOC);
|
||||
echo date ('Y/m/d - H:i:s') ." - Mise à jour du jugement $typeEven en date du $dateJugement pour $siren : ".count($tabTmp).EOL;
|
||||
$tabEnbase=$tabTmp[0];
|
||||
if (isset($tabEnbase['id'])) {
|
||||
$dateJugementEnBase=$tabEnbase['dateJugement'];
|
||||
// On garde la source Originel
|
||||
unset($tabInsert['source']);
|
||||
unset($tabInsert['dateInsert']);
|
||||
|
||||
if ($dateJugementEnBase<>$dateJugement) {
|
||||
if ($tabEnbase['source']<>'GC') {
|
||||
echo "ATTENTION : JUGEMENT UN AUTRE JOUR DEJA EN BASE ($dateJugementEnBase<>$dateJugement) :".EOL;
|
||||
}
|
||||
}
|
||||
else
|
||||
echo 'JUGEMENT le même JOUR déjà en base :'.EOL;
|
||||
// On liste les types de mandataires enregistrés par les greffes ou autre
|
||||
$tabMandEnBase=$tabMandSav=array();
|
||||
for ($iMand=1;$iMand<6;$iMand++)
|
||||
if (trim($tabEnbase['inter'.$iMand.'type'])<>'')
|
||||
$tabMandEnBase[$iMand]=trim($tabEnbase['inter'.$iMand.'type']);
|
||||
|
||||
// On garde les infos mandataires déjà en base et correctement renseignées
|
||||
for ($iInsert=1;$iInsert<5;$iInsert++) {
|
||||
for ($iMand=1; $iMand<6 && isset($tabMandEnBase[$iMand]);$iMand++)
|
||||
if (in_array($tabInsert['inter'.$iInsert.'type'], $tabMandEnBase)) {
|
||||
if ($tabInsert['inter'.$iInsert.'type']==$tabMandEnBase[$iMand]) {
|
||||
if ($tabEnbase['inter'.$iMand.'type']<>'')
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['type'] =$tabInsert['inter'.$iInsert.'type'];
|
||||
else
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['type'] =$tabInsert['inter'.$iMand.'type'];
|
||||
|
||||
if ($tabEnbase['inter'.$iMand.'id']*1==0)
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['id'] =$tabInsert['inter'.$iInsert.'id'];
|
||||
else
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['id'] =$tabEnbase['inter'.$iMand.'id'];
|
||||
|
||||
if ($tabEnbase['inter'.$iMand.'nom']<>'')
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['nom'] =$tabInsert['inter'.$iInsert.'nom'];
|
||||
else
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['nom'] =$tabInsert['inter'.$iMand.'nom'];
|
||||
}
|
||||
} else {
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['type'] =$tabEnbase['inter'.$iMand.'type'];
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['id'] =$tabEnbase['inter'.$iMand.'id'];
|
||||
$tabMandSav[$tabMandEnBase[$iMand]]['nom'] =$tabEnbase['inter'.$iMand.'nom'];
|
||||
}
|
||||
}
|
||||
|
||||
$iInsert=1;
|
||||
foreach ($tabMandEnBase as $typeMand) {
|
||||
$tabInsert['inter'.$iInsert.'type']=$tabMandSav[$typeMand]['type'];
|
||||
$tabInsert['inter'.$iInsert.'id']=$tabMandSav[$typeMand]['id'];
|
||||
$tabInsert['inter'.$iInsert.'nom']=$tabMandSav[$typeMand]['nom'];
|
||||
$iInsert++;
|
||||
if ($iInsert==6) {
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, plus de 4 intervenants dans la procédure pour $siren".EOL.print_r($tabMandSav, true).EOL.
|
||||
"Annonce en base :".EOL.
|
||||
print_r($tabEnbase, true).EOL.
|
||||
"Informations à mettre à jour :".EOL.
|
||||
print_r($tabInsert, true).EOL);
|
||||
//die("Trop d'intervenants".EOL);
|
||||
}
|
||||
}
|
||||
echo 'EN BASE :'.EOL;
|
||||
print_r($tabEnbase);
|
||||
echo 'MODIFICATIONS :'.EOL;
|
||||
print_r($tabInsert);
|
||||
echo 'Mandataires :'.EOL;
|
||||
print_r($tabMandSav);
|
||||
if ($modeDebug) $line = trim(fgets(STDIN));
|
||||
|
||||
// On met toujours la date INPI en base !
|
||||
if (!$iDb->update($table, $tabInsert,"siren=$siren AND dateJugement='$dateJugementEnBase' AND typeEven=$typeEven", false, MYSQL_ASSOC)) {
|
||||
echo date ('Y/m/d - H:i:s') ." - A la mise à jour sur $table :".EOL;
|
||||
print_r($tabInsert);
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
} else {
|
||||
$nbAnnUpdateJ++;
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
}
|
||||
} else {
|
||||
|
||||
if (// Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!!
|
||||
$tabInsert['typeEven']*1==1505 || // Appel de jugement
|
||||
$tabInsert['typeEven']*1==1506 || // Infirmation Jugement
|
||||
$tabInsert['typeEven']*1==1507 || // Extrait d'arrêt de la cour d'appel
|
||||
$tabInsert['typeEven']*1==1515 || // Arrêt divers
|
||||
$tabInsert['typeEven']*1==1517 || // Rectification d'une erreur matérielle
|
||||
$tabInsert['typeEven']*1==1520 || // Ordonnance
|
||||
$tabInsert['typeEven']*1==1525 || // Appel du ministère public
|
||||
$tabInsert['typeEven']*1==1999) { // Autre procol)
|
||||
$tabInsert['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $i : Annonce INPI à retraiter manuellement ". $tabInsert['siren'] .' !'.EOL;
|
||||
$nbSiretRetraitement++;
|
||||
}
|
||||
|
||||
if (!$iDb->insert($table, array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))))) {
|
||||
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
|
||||
print_r($tabInsert);
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'insertion du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
}
|
||||
/*
|
||||
echo 'JUGEMENT LE MEME JOUR DEJA EN BASE :'.EOL;
|
||||
print_r($tabEnbase);
|
||||
echo 'MODIFICATIONS :'.EOL;
|
||||
print_r($tabInsert);
|
||||
$line = trim(fgets(STDIN));
|
||||
}
|
||||
} else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de l'ajout du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
} else {*
|
||||
$nbAnnInsertJ++;
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Ajout du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
}
|
||||
}
|
||||
$message.=" $nbAnnInsertJ ajouts et $nbAnnUpdateJ mises à jours sur $nbAnnonces annonces et $nbSiretRetraitement annonces à retraiter !\r\n\r\n".EOL;
|
||||
*/
|
||||
die();
|
||||
|
||||
if (count($tabFichier)>0 || count($tabFichLigneCmd)>0) {
|
||||
if (!$loadCSF)
|
||||
die(date ('Y/m/d - H:i:s') . " - On ignore le chargement des défaillances".EOL);
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des défaillances".EOL;
|
||||
|
||||
|
||||
function getCodeEven($codeEven) {
|
||||
global $tabCodeEven;
|
||||
return $tabCodeEven[$codeEven];
|
||||
}
|
||||
|
||||
for ($i=0; isset($tabFichier[$i]); $i++)
|
||||
{
|
||||
$nomFichier =$tabFichier[$i];
|
||||
|
||||
$fp=fopen(CSF_FTP_DIR.$nomFichier, 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter (".$nomFichier.")".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
$nbLignes=0; // Nombre de ligne du fichier
|
||||
while (!feof($fp))
|
||||
{
|
||||
$nbLignes++;
|
||||
$a = trim(fgets($fp, 1024));
|
||||
}
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier ($nbLignes lignes à traiter) !".EOL;
|
||||
|
||||
//$finFichier=false;
|
||||
$ligne=1;
|
||||
rewind($fp);
|
||||
|
||||
/** Traitement de la 1ère ligne **/
|
||||
$a = trim(fgets($fp, 2048));
|
||||
$tab=explode("\t", $a);
|
||||
$erreur='';
|
||||
if (strtoupper($tab[ 0])<>'REF_CLIENT') $erreur.='Ligne 1, Champ 1 : libellé REF_CLIENT attentu';
|
||||
if (strtoupper($tab[ 1])<>'DATE_FRAICHEUR') $erreur.='Ligne 1, Champ 2 : libellé DATE_FRAICHEUR attentu';
|
||||
if (strtoupper($tab[ 2])<>'RCS') $erreur.='Ligne 1, Champ 3 : libellé RCS attentu';
|
||||
if (strtoupper($tab[ 3])<>'RAISON_SOCIALE') $erreur.='Ligne 1, Champ 4 : libellé RAISON_SOCIALE attentu';
|
||||
if (strtoupper($tab[ 4])<>'ADRESSE1') $erreur.='Ligne 1, Champ 5 : libellé ADRESSE1 attentu';
|
||||
if (strtoupper($tab[ 5])<>'ADRESSE2') $erreur.='Ligne 1, Champ 6 : libellé ADRESSE2 attentu';
|
||||
if (strtoupper($tab[ 6])<>'ADRESSE3') $erreur.='Ligne 1, Champ 7 : libellé ADRESSE3 attentu';
|
||||
if (strtoupper($tab[ 7])<>'CCJ_CSFR') $erreur.='Ligne 1, Champ 8 : libellé CCJ_CSFR attentu';
|
||||
if (strtoupper($tab[ 8])<>'CCJ_DATE') $erreur.='Ligne 1, Champ 9 : libellé CCJ_DATE attentu';
|
||||
if (strtoupper($tab[ 9])<>'TRIBUNAL') $erreur.='Ligne 1, Champ 10 : libellé TRIBUNAL attentu';
|
||||
if (strtoupper($tab[10])<>'MANDATAIRE') $erreur.='Ligne 1, Champ 11 : libellé MANDATAIRE attentu';
|
||||
if (strtoupper($tab[11])<>'REF_CSFR') $erreur.='Ligne 1, Champ 12 : libellé REF_CSFR attentu';
|
||||
//Ref_client date_fraicheur RCS Raison_sociale adresse1 adresse2 adresse3 CCJ_CSFR
|
||||
//CCJ_date Tribunal mandataire Ref_csfr
|
||||
|
||||
if ($erreur<>'') {
|
||||
echo date ('Y/m/d - H:i:s') . " - Erreur : $erreur !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
//$dateInsert=date('YmdHis');
|
||||
|
||||
while (!feof($fp))
|
||||
{
|
||||
$ligne++;
|
||||
$a = trim(fgets($fp, 1024));
|
||||
if ($a=='') continue;
|
||||
|
||||
//if ($modeDebug) echo "Ligne $ligne Déb: '$a'".EOL;
|
||||
|
||||
//unset($tabErreur); $nbErr=0;
|
||||
$tab=explode("\t", $a);
|
||||
|
||||
$tabAnn=array();
|
||||
|
||||
if ($tab[0]<>'SandD')
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs REF_CLIENT différent de 'SandD' (".$tab[0].') !'.EOL;
|
||||
|
||||
$siren=$tabAnn['siren'] = $tab[2];
|
||||
|
||||
if (!$iInsee->valideSiren($tabAnn['siren'])) {
|
||||
$tabAnn['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs SIREN invalide ". $tabAnn['siren'] .' !'.EOL;
|
||||
$nbSiretInvalides++;
|
||||
} else {
|
||||
$tabAnn['sirenValide']=1;
|
||||
$nbSiretValides++;
|
||||
}
|
||||
$tabAnn['raisonSociale'] = $tab[3];
|
||||
if (strlen($tabAnn['raisonSociale'])>60)
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs RAISON_SOCIALE de longueur ". strlen($tabAnn['raisonSociale']) .' !'.EOL;
|
||||
|
||||
$tabAnn['adresse'] = $tab[4];
|
||||
$cpVille = $tab[5];
|
||||
$tabAnn['codePostal'] = substr($cpVille,0,5);
|
||||
$tabAnn['ville'] = trim(substr($cpVille,5));
|
||||
$dep=substr($cpVille,0,2)*1;
|
||||
if (!$iInsee->isDepartement($dep)) {
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Département '$dep' inconnu !".EOL;
|
||||
//die($a);
|
||||
//echo '?';
|
||||
//$line = trim(fgets(STDIN));
|
||||
}
|
||||
|
||||
$dateIn = $tab[1];
|
||||
if (strlen($dateIn)<>19)
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs DATE_FRAICHEUR de longueur ". strlen($dateIn) .' !'.EOL;
|
||||
$tabAnn['dateSource'] = /*@WDate::dateT('Y-m-d','Y-m-d',*/$dateIn/*)*/;
|
||||
/* $dateIn = $tab[6];
|
||||
$dateOut=@WDate::dateT('m/d/Y','Y-m-d',$dateIn);
|
||||
if ($dateIn<>'') $tabAnn['naissance_date']=$dateOut;
|
||||
else $tabAnn['naissance_date']='0000-00-00';*/
|
||||
|
||||
$dateJugeKbis = $tab[8];
|
||||
if (strlen($dateJugeKbis)<>19)
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CCJ_DATE de longueur ".strlen($dateJugeKbis).' !'.EOL;
|
||||
else
|
||||
$dateJugeKbis=Wdate::dateT('Y-m-d', 'Ymd', $dateJugeKbis);
|
||||
|
||||
$codeJugementCSF = $tab[7];
|
||||
$tabAnn['typeEven'] = getCodeEven($codeJugementCSF)*1;
|
||||
if ($tabAnn['typeEven']==0) {
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CCJ_CSFR (Code Jugement CSF) inconnu '$codeJugementCSF' !".EOL;
|
||||
}
|
||||
|
||||
$source= trim($tab[11]);
|
||||
if ($source=='G' || $source=='I'/* || $source=='P'*/) {
|
||||
//if ($modeDebug) echo "Ligne $ligne SRC: '$a'".EOL;
|
||||
$tribunal = trim($tab[9]);
|
||||
$tabAnn['tribunal'] = $iBodacc->getTribunalCode('TRIBUNAL DE COMMERCE '.strtr(strtoupper(' '.$tribunal.' '),array(' ST '=>' SAINT ')), $dep);
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI1: '$a'".EOL;
|
||||
|
||||
if (!$tabAnn['tribunal']) {
|
||||
$tabAnn['tribunal'] = $iBodacc->getTribunalCode('TRIBUNAL DE COMMERCE '.strtr(strtoupper(' '.$tribunal.' '),array(' ST '=>' SAINT ')), 0);
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI2: '$a'".EOL;
|
||||
if (!$tabAnn['tribunal']) {
|
||||
if ($tribunal=='AIX') $tabAnn['tribunal']='AIXC';
|
||||
elseif ($tribunal=='MONT DE MARSAN') $tabAnn['tribunal']='MONTMC';
|
||||
elseif ($tribunal=='SALON DE PROVENCE') $tabAnn['tribunal']='SALONC';
|
||||
elseif ($tribunal=='BAGNERES DE BIGORRE') $tabAnn['tribunal']='BAGNEC';
|
||||
elseif ($tribunal=='OLORON STE MARIE') $tabAnn['tribunal']='OLOROC';
|
||||
elseif ($tribunal=='LE PUY EN VELAY') $tabAnn['tribunal']='LEPUYC';
|
||||
elseif ($tribunal=='CLERMONT L HERAULT') $tabAnn['tribunal']='CLHERC';
|
||||
elseif ($source=='G' && $tribunal=='' && $dep==23) $tabAnn['tribunal']='GUEREC';
|
||||
elseif ($source=='G' && $tribunal=='' && $dep==26) $tabAnn['tribunal']='ROMANC';
|
||||
elseif ($source=='G' && $tribunal=='' && $dep==27) $tabAnn['tribunal']='BERNAC';
|
||||
elseif ($source=='G' && $tribunal=='' && $dep==48) $tabAnn['tribunal']='MENDEC';
|
||||
elseif ($source=='G' && $tribunal=='' && $tabAnn['siren']>100) {
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI3: '$a'".EOL;
|
||||
$tabIdentite=@$iInsee->getIdentiteEntreprise($tabAnn['siren'],0,0,false,false);
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI4: '$a'".EOL;
|
||||
$tabTribunaux=$iBodacc->getTribunauxParCommune($tabIdentite['Dept'].$tabIdentite['codeCommune']);
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI5: '$a'".EOL;
|
||||
foreach ($tabTribunaux as $trib)
|
||||
if ($trib['triType']=='C' && $trib['triStatut']=='Actif') {
|
||||
$tabAnn['tribunal']=$trib['triCode'];
|
||||
break;
|
||||
}
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI6: '$a'".EOL;
|
||||
if (!$tabAnn['tribunal']) {
|
||||
foreach ($tabTribunaux as $trib)
|
||||
if ($trib['triType']=='G' && $trib['triStatut']=='Actif') {
|
||||
$tab['tribunal']=$trib['triCode'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
//if ($modeDebug) echo "Ligne $ligne TRI9: '$a'".EOL;
|
||||
}
|
||||
elseif ($source=='P' && $dep>0 && $dep<977) {
|
||||
$tabIdentite=@$iInsee->getIdentiteEntreprise($tabAnn['siren'],0,0,false,false);
|
||||
$tabTribunaux=$iBodacc->getTribunauxParCommune($tabIdentite['Dept'].$tabIdentite['codeCommune']);
|
||||
// En fonction du département 67,68 et de la CJ 1xxx non commerçant, Associations : TGI
|
||||
foreach ($tabTribunaux as $trib)
|
||||
if ($trib['triType']=='C' && $trib['triStatut']=='Actif') {
|
||||
$tabAnn['tribunal']=$trib['triCode'];
|
||||
break;
|
||||
}
|
||||
if (!$tabAnn['tribunal']) {
|
||||
foreach ($tabTribunaux as $trib)
|
||||
if ($trib['triType']=='G' && $trib['triStatut']=='Actif') {
|
||||
$tab['tribunal']=$trib['triCode'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$tabAnn['tribunal']) {
|
||||
foreach ($tabTribunaux as $trib)
|
||||
if ($trib['triType']=='M' && $trib['triStatut']=='Actif') {
|
||||
$tab['tribunal']=$trib['triCode'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$tabAnn['tribunal']) {
|
||||
foreach ($tabTribunaux as $trib)
|
||||
if ($trib['triType']=='P' && $trib['triStatut']=='Actif') {
|
||||
$tab['tribunal']=$trib['triCode'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes : Tribunal CSF inconnu '$tribunal' (Dept.=$dep, source=$source) !".EOL;
|
||||
$tabAnn['tribunal']=$tribunal.'*';
|
||||
if ($source<>'P' && $source<>'I') { /* On insert le jugement uniquement si on l'a pas déjà en base ! */
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren']." : '$a' - Problème de tribunal".EOL;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement CSF : Problème de tribunal', "Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($source=='I') {
|
||||
$tabAnn['source'] = 'JC';
|
||||
$tabAnn['dateJugement'] = $dateJugeKbis;
|
||||
$tabIdentite=@$iInsee->getIdentiteEntreprise($tabAnn['siren'],0,0,false,false);
|
||||
if ($tabIdentite['SituationJuridique']<>'P') {
|
||||
if ($dateJugeKbis>date('Ymd',mktime(0,0,0,date('m')-6,date('d'),date('Y')))) {
|
||||
if ($tabAnn['typeEven']<>1445) {
|
||||
// L'entreprise n'est pas connue comme en Procol et le jugement à mois de 6 mois !
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes, source JC, siren=".$tabAnn['siren']." : '$a'".EOL;
|
||||
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', 'Chargement CSF : Procol inconnue', "Ligne $ligne/$nbLignes, source Kairos via CSF, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
} else continue;
|
||||
} else continue;
|
||||
} else {
|
||||
// Provisoirement, on ignore l'annonce car déjà en procol
|
||||
/** @todo
|
||||
Si dernière annonce = SV, RJ, LJ prendre la nouv. annonce si suite du jugement
|
||||
**/
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
$tabAnn['source'] = $source.'C';
|
||||
$texte = trim(@$tab[10]);
|
||||
/*JUGEMENT DU TRIBUNAL DE COMMERCE DE EVRY EN DATE DU 15/02/2010 A PRONONCÉ LA LIQUIDATION JUDICIAIRE, SOUS LE NUMÉRO 2010J00041 DÉSIGNE LIQUIDATEUR LA SCP YVES COUDRAY-CHRISTOPHE ANCEL, EN LA PERSONNE DE MAÎTRE ANCEL, MANDATAIRE JUDICIAIRE ASSOCIÉ 9 BOULEVARD DE L'EUROPE 91050 ÉVRY CEDEX , JUGE COMMISSAIRE M. CHIKAR , JUGE COMMISSAIRE SUPPLÉANT M. HAMON , MET FIN À LA MISSION DE L'ADMINISTRATEUR ME TULIER RUE RENÉ CASSIN IMMEUBLE LE MAZIÈRE - 4ÈME ÉTAGE 91000 EVRY
|
||||
*/
|
||||
$regExDate='((?:\d{1,2}|1er)(?:\/|\.|-)\d{1,2}(?:\/|\.|-)\d{4,4})';
|
||||
$regExDate2='((?:\d{1,2}|1er)(?:\/|\.|-)\d{1,2}(?:\/|\.|-)\d{2,2})';
|
||||
$regExDateLong='(([0-9]{1,2}|1er)\s+(janvier|février|fevrier|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre|decembre)\s+([0-9]{4,4}))';
|
||||
//SUIVANT JUGEMENT RENDU LE 27 AVRIL 2010, LE TRIBUNAL DE COMMERCE DE BOBIGNY A PRONONCE L'OUVERTURE D'UNE PROCEDURE DE REDRESSEMENT JUDICIAIRE
|
||||
|
||||
if (preg_match("/(JGT|JUGEMENT|prononc|ORDONNANCE).{1,75}\s+EN\s+DATE\s+DU\s+$regExDate/Uis", $texte, $matches)) {
|
||||
//echo $texte.EOL;
|
||||
$dateJuge=$matches[2];
|
||||
echo "A, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
/*print_r($matches);
|
||||
die();*/
|
||||
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).{1,120}(?:DU|RENDUE? LE)\s+$regExDate/Uis", $texte, $matches)) {
|
||||
$dateJuge=$matches[2];
|
||||
echo "B1, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).{1,120}(?:DU|RENDUE? LE)\s+$regExDate2/Uis", $texte, $matches)) {
|
||||
$dateJuge=$matches[2];
|
||||
echo "B2, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
} elseif (preg_match("/DATE\s+D(?:\+|')EFFET(?:\s+\:?\s+)$regExDate/Uis", $texte, $matches)) {
|
||||
$dateJuge=$matches[1];
|
||||
echo "C, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
/* print_r($matches);
|
||||
die();*/
|
||||
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).{1,120}(?:DU|RENDUE? LE)\s+$regExDateLong/Ui", $texte, $matches)) {
|
||||
$dateJuge=Wdate::dateT('dMY', 'd/m/Y',$matches[2]);
|
||||
echo "D, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
/*print_r($matches);
|
||||
die();*/
|
||||
} elseif (preg_match("/(JGT|JUGEMENT|ORDONNANCE).RENDU.{1,80}(?: DU| LE)\s+$regExDate/Uis", $texte, $matches)) {
|
||||
$dateJuge=$matches[2];
|
||||
echo "D2, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
} elseif (preg_match("/JGT|JUGEMENT.{1,55}\s+$regExDate\s+/Ui", $texte, $matches)) {
|
||||
$dateJuge=$matches[1];
|
||||
echo "E, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
/*print_r($matches);
|
||||
die();*/
|
||||
//
|
||||
} elseif (preg_match("/Arr.t de la Cour d.Appel (?:.*) du\s+$regExDate\s+/Uis", $texte, $matches)) {
|
||||
$dateJuge=$matches[1];
|
||||
echo "F, $siren : Jugement kbis du $dateJugeKbis vs $dateJuge".EOL;
|
||||
} else {
|
||||
/*
|
||||
Ordonnance de Monsieur le Président de la Chambre des Procédures Collectives du Tribunal de Commerce de Vienne en date du 02/02/2010 décidant de l'APPLICATION DE LA LIQUIDATION JUDICIAIRE SIMPLIFIEE
|
||||
410946008 : Jugement kbis du 20100413. DATE TEXTE !
|
||||
*/
|
||||
echo "$siren : Jugement kbis du $dateJugeKbis. DATE TEXTE NON TROUVEE !!!".EOL;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, date texte non trouvée pour le siren $siren :
|
||||
$texte
|
||||
Jugement kbis du ".$tabAnn['dateJugement'].EOL);
|
||||
echo $texte.EOL;
|
||||
if ($modeDebug || $questions) {
|
||||
while(1) {
|
||||
echo "Entrez la date du jugement au format JJ/MM/AAAA ?".EOL;
|
||||
$dateJuge = trim(fgets(STDIN));
|
||||
$line=Wdate::dateT('d/m/Y', 'Ymd',strtr($dateJuge, array('.'=>'/','-'=>'/')));
|
||||
if ($line>=0 && $line<date('Ymd')) break;
|
||||
}
|
||||
}
|
||||
else die("$siren : Jugement kbis du $dateJugeKbis. DATE TEXTE !".EOL);
|
||||
}//JUGEMENT DU TRIBUNAL DE COMMERCE DE EVRY EN DATE DU 08/02/2010 A PRONONCÉ LA LIQUIDATION JUDICIAIRE,
|
||||
$dateJuge=Wdate::dateT('d/m/Y', 'Ymd',strtr($dateJuge, array('.'=>'/','-'=>'/')));
|
||||
|
||||
$dateJugeMin=date('Ymd', mktime(0, 0, 0,
|
||||
WDate::dateT('Ymd','m',$dateJugeKbis),
|
||||
WDate::dateT('Ymd','d',$dateJugeKbis)-60,
|
||||
WDate::dateT('Ymd','Y',$dateJugeKbis)));
|
||||
if ($dateJuge>=$dateJugeMin && $dateJuge<=$dateJugeKbis)
|
||||
$tabAnn['dateJugement']=$dateJuge;
|
||||
else
|
||||
$tabAnn['dateJugement']=$dateJugeKbis;
|
||||
|
||||
echo "Date de jugement RETENUE : ".$tabAnn['dateJugement'].EOL;
|
||||
echo $texte.EOL;
|
||||
//if ($modeDebug) $line = trim(fgets(STDIN));
|
||||
|
||||
if (preg_match('/Arr.t.{1,15}Cour.{1,15}Appel.{1,75}INFIRM/is', $texte, $matches)) {
|
||||
if (preg_match('INFIRM/is', $texte, $matches))
|
||||
$tabAnn['typeEven']=1506; // Rétractation de jugement => Infirmation Jugement
|
||||
else
|
||||
$tabAnn['typeEven']=1507; // Arret de la cours d'appel
|
||||
$tabAnn['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Annonce à retraiter manuellement ". $tabAnn['siren'] .' !'.EOL;
|
||||
$nbSiretRetraitement++;
|
||||
} elseif (// Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!!
|
||||
$tabAnn['typeEven']*1==1505 || // Appel de jugement
|
||||
$tabAnn['typeEven']*1==1506 || // Infirmation Jugement
|
||||
$tabAnn['typeEven']*1==1507 || // Extrait d'arrêt de la cour d'appel
|
||||
$tabAnn['typeEven']*1==1515 || // Arrêt divers
|
||||
$tabAnn['typeEven']*1==1517 || // Rectification d'une erreur matérielle
|
||||
$tabAnn['typeEven']*1==1520 || // Ordonnance
|
||||
$tabAnn['typeEven']*1==1525 || // Appel du ministère public
|
||||
$tabAnn['typeEven']*1==1999) { // Autre procol)
|
||||
$tabAnn['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Annonce à retraiter manuellement ". $tabAnn['siren'] .' !'.EOL;
|
||||
$nbSiretRetraitement++;
|
||||
}
|
||||
|
||||
if (preg_match('/CESSATION.{1,35}PAIEMENTS(.*)/is', $texte, $matches)) {
|
||||
if (preg_match("/FIXE AU\s+$regExDate.{1,15}CESSATION.{1,35}PAIEMENTS/is", $texte, $matches2))
|
||||
$tabAnn['dateCessationPaiement']=Wdate::dateT('d/m/Y', 'Ymd',trim(strtr($matches2[1], array('.'=>'/','-'=>'/'))));
|
||||
elseif (preg_match("/FIXE AU\s+$regExDateLong.{1,15}CESSATION.{1,35}PAIEMENTS/is", $texte, $matches2))
|
||||
$tabAnn['dateCessationPaiement']=Wdate::dateT('dMY', 'Ymd', $matches2[1]);
|
||||
|
||||
elseif (preg_match("/\s+$regExDate/Uis", substr($matches[1],0,35), $matches))
|
||||
$tabAnn['dateCessationPaiement']=Wdate::dateT('d/m/Y', 'Ymd',trim(strtr($matches[1], array('.'=>'/','-'=>'/'))));
|
||||
|
||||
elseif (preg_match("/\s+$regExDateLong/Ui", $texte, $matches))
|
||||
$tabAnn['dateCessationPaiement']=Wdate::dateT('dMY', 'Ymd',$matches[1]);
|
||||
}
|
||||
|
||||
$jugeCommissaire=$jugeCommissaireSup='';
|
||||
if (preg_match('/JUGE.{1,5}COMMISSAIRE(.*)JUGE.{1,5}COMMISSAIRE.{1,5}SUPPL(?:è|é|E)ANT(.*)$/Uis', $texte, $matches)) {
|
||||
$jugeCommissaire=strtr(strtoupper($matches[1]),array('TITULAIRE'=>'',':'=>'',','=>''));
|
||||
$jugeCommissaireSup=strtr(strtoupper(preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',$matches[2])),array('TITULAIRE'=>'',':'=>'',','=>''));
|
||||
} elseif (preg_match('/JUGE.{1,5}COMMISSAIRE.{1,5}SUPPL(?:è|é|E)ANT(.*)$/Uis', $texte, $matches)) {
|
||||
$jugeCommissaireSup=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1])),array(':'=>''));
|
||||
} elseif (preg_match('/JUGE.{1,5}COMMISSAIRE(.*)$/Uis', $texte, $matches)) {
|
||||
$jugeCommissaire=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1]),array('TITULAIRE'=>'',':'=>'')));
|
||||
}
|
||||
|
||||
$adm=$mand=$liq='';
|
||||
if (preg_match('/ADMINISTRATEUR(.*)MANDATAIRE(.*)$/Uis', $texte, $matches)) {
|
||||
preg_match('/^(.*\d{5,5}.*,)/Uis', $matches[1], $matches);
|
||||
$adm=strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'',':'=>'',','=>''));
|
||||
preg_match('/^(.*\d{5,5}.*,)/Uis', $matches[2], $matches);
|
||||
$mand=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
|
||||
} elseif (preg_match('/ADMINISTRATEUR(.*)$/Uis', $texte, $matches)) {
|
||||
$adm=preg_replace('/(,|LIQUIDATEUR|MANDATAIRE).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
|
||||
}
|
||||
if (preg_match('/MANDATAIRE(.*)$/Uis', $texte, $matches)) {
|
||||
preg_match('/^(.*\d{5,5}.*(,|)$)/Uis', $matches[1], $matches);
|
||||
$mand=preg_replace('/(,|LIQUIDATEUR|ADMINISTRATEUR).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
|
||||
}
|
||||
if (preg_match('/LIQUIDATEUR(.*)$/Uis', $texte, $matches)) {
|
||||
preg_match('/^(.*\d{5,5}.*(,|)$)/Uis', $matches[1], $matches);
|
||||
$liq=preg_replace('/(,|MANDATAIRE|ADMINISTRATEUR).*/','',strtr(strtoupper($matches[1]),array('JUDICIAIRE'=>'','*'=>'',':'=>'')));
|
||||
}
|
||||
|
||||
$numero='';
|
||||
if (preg_match('/NUM(?:E|é|è)RO\s+([A-Z0-9\.\/,-]{8,20})\s+/Uis', $texte, $matches)) {
|
||||
$tabAnn['numero']=trim(strtoupper($matches[1]));
|
||||
}
|
||||
|
||||
/*
|
||||
OUVERTURE PERIODE D'OBSERVATION DE SIX MOIS
|
||||
OUVRE UNE PÉRIODE D'OBSERVATION EXPIRANT LE 28/07/2010
|
||||
DATE D'EFFET : 27/01/2010
|
||||
MET FIN À LA MISSION DE L'ADMINISTRATEUR ME AVEZOU 5 BD DE L'EUROPE 91050 EVRY CEDEX
|
||||
DÉSIGNE LIQUIDATEUR LA SCP YVES COUDRAY-CHRISTOPHE ANCEL, EN LA PERSONNE DE MAÎTRE ANCEL, MANDATAIRE JUDICIAIRE ASSOCIÉ 9 BOULEVARD DE L'EUROPE 91050 ÉVRY CEDEX ,
|
||||
SUIVANT ORDONNANCE RENDUE LE 15 JANVIER 2010 PAR LE TRIBUNAL DE COMMERCE DE NANTES, MR LE JUGE-COMMISSAIRE A MIS FIN A LA MISSION DE ME A. DOLLEY, MANDATAIRE JUDICIAIRE.
|
||||
*/
|
||||
|
||||
$iMand=1;
|
||||
if (trim($adm)<>'') {
|
||||
$tabAnn['inter'.$iMand.'type']='A';
|
||||
//$tabAnn['inter'.$iMand.'id']=?;
|
||||
$tabAnn['inter'.$iMand.'nom']=trim($adm);
|
||||
$iMand++;
|
||||
}
|
||||
if (trim($mand)<>'') {
|
||||
$tabAnn['inter'.$iMand.'type']='M';
|
||||
//$tabAnn['inter'.$iMand.'id']=?;
|
||||
$tabAnn['inter'.$iMand.'nom']=trim($mand);
|
||||
$iMand++;
|
||||
}
|
||||
if (trim($liq)<>'') {
|
||||
$tabAnn['inter'.$iMand.'type']='L';
|
||||
//$tabAnn['inter'.$iMand.'id']=?;
|
||||
$tabAnn['inter'.$iMand.'nom']=trim($liq);
|
||||
$iMand++;
|
||||
}
|
||||
if (trim($jugeCommissaire)<>'') {
|
||||
$tabAnn['inter'.$iMand.'type']='J';
|
||||
//$tabAnn['inter'.$iMand.'id']=?;
|
||||
$tabAnn['inter'.$iMand.'nom']=trim($jugeCommissaire);
|
||||
$iMand++;
|
||||
}
|
||||
if (trim($jugeCommissaireSup)<>'') {
|
||||
$tabAnn['inter'.$iMand.'type']='K';
|
||||
//$tabAnn['inter'.$iMand.'id']=?;
|
||||
$tabAnn['inter'.$iMand.'nom']=trim($jugeCommissaireSup);
|
||||
$iMand++;
|
||||
}
|
||||
|
||||
if ($iMand==1)
|
||||
$tabAnn['annonce']=strtolower($texte);
|
||||
else
|
||||
$tabAnn['infosBrutes']=strtoupper($texte);
|
||||
|
||||
/*
|
||||
|
||||
JUGE COMMISSAIRE : MONSIEUR SWIDERSKI,
|
||||
JUGE COMMISSAIRE : MONSIEUR NOEL,
|
||||
ADMINISTRATEUR : SCP THEVENOT PERDEREAU EN LA PERSONNE DE ME THEVENOT 131 BD MALESHERBES 75017 PARIS, AVEC POUR MISSION : d'assister,
|
||||
MANDATAIRE JUDICIAIRE : MAITRE COURTOUX DIDIER 62 BD DE SÉBASTOPOL 75003 PARIS,
|
||||
PERIODE D'OBSERVATION EXPIRANT LE 26/03/2010,
|
||||
Juge Commissaire Mme Lefebvre H. ,
|
||||
Juge Commissaire suppléant M. Bejui F. ,
|
||||
Administrateur Me Bleriot Philippe 26 Chemin de la Madeleine 93000 Bobigny avec pour mission de : d'assister le débiteur dans ses actes de gestion ,
|
||||
Mandataire judiciaire SCP Moyrand - Bally en la personne de Maître Pascal Bally 14/16 Rue de Lorraine 93000 Bobigny
|
||||
période d'observation expirant le 26/07/2010 .
|
||||
*/
|
||||
//if ($tabAnn['complement']<>'') $tabAnn['complement']='Mandataire : '.$tabAnn['complement'];
|
||||
}
|
||||
//$tabAnn['dateInsert']=$dateInsert;
|
||||
|
||||
if (isset($tabAnn['tribunal']) && strlen($tabAnn['tribunal'])<3) $tabAnn['tribunal']='INCONU';
|
||||
if (isset($tabAnn['inter5id']) || isset($tabAnn['inter5type']) || isset($tabAnn['inter5nom'])) {
|
||||
unset($tabAnn['inter5type']);
|
||||
unset($tabAnn['inter5id']);
|
||||
unset($tabAnn['inter5nom']);
|
||||
}
|
||||
|
||||
$tabTmp=$iDb->select($table, 'id, siren, sirenValide, strEven, raisonSociale, adresse, codePostal, ville, dateSource, dateJugement, typeEven, tribunal, source, complement',"siren='".$tabAnn['siren']."' AND dateJugement='".$tabAnn['dateJugement'] ."' AND typeEven =".$tabAnn['typeEven'], false, MYSQL_ASSOC);
|
||||
if (count($tabTmp)==0) {
|
||||
$iDb->insert($table, array_merge($tabAnn,array('dateInsert'=>date('YmdHis'))));
|
||||
if (mysql_errno()>0) {
|
||||
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
|
||||
print_r($tabAnn);
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
if ($modeDebug) $line = trim(fgets(STDIN));
|
||||
else die("ERREUR SQL".EOL);
|
||||
}
|
||||
$nbInsert++;
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Insertion du jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .'!'.EOL;
|
||||
} else {
|
||||
$tabAnnEnBase=$tabTmp[0];
|
||||
$even=$tabAnnEnBase['typeEven'];
|
||||
$trib=trim($tabAnnEnBase['tribunal']);
|
||||
$comp=trim($tabAnnEnBase['complement']);
|
||||
if ($tabAnn['typeEven']<>$even) {
|
||||
print_r($tabAnn);
|
||||
echo(date ('Y/m/d - H:i:s') . " - Jugement différent $even par rapport à ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL);
|
||||
}
|
||||
if (strlen($trib)>1 && $trib<>'INCONU' && $tabAnn['tribunal']<>$trib) {
|
||||
echo (date ('Y/m/d - H:i:s') . " - Nouveau tribunal différent ".$tabAnn['tribunal']." par rapport à $trib pour l'annonce ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL);
|
||||
unset($tabAnn['tribunal']);
|
||||
}
|
||||
if (strlen($comp)==0 && @$tabAnn['complement']<>'') {
|
||||
//$tabAnn['complement']=$tabAnn['complement'];
|
||||
echo (date ('Y/m/d - H:i:s') . " - Ajout du complément ".$tabAnn['complement'].' pour '. $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL);
|
||||
} elseif (strlen($comp)>1 && $tabAnn['complement']<>$comp) {
|
||||
echo date ('Y/m/d - H:i:s') . " - Complément différent ".$tabAnn['complement'].EOL;
|
||||
echo "par rapport à $comp ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' !'.EOL;
|
||||
$sortie=false;
|
||||
if ($questions) {
|
||||
while($sortie==false) {
|
||||
echo 'Voulez vous conserver l\'ancien mandataire ? (Oui/Ajout/Non)';
|
||||
$line = trim(fgets(STDIN));
|
||||
if ($line=='O' || $line=='o') { $sortie=true; unset($tabAnn['complement']); }
|
||||
elseif ($line=='N' || $line=='n' || $line=='') { $sortie=true; }
|
||||
elseif ($line=='A' || $line=='a') { $sortie=true; $tabAnn['complement']="$comp, ".$tabAnn['complement'];}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - MAJ du jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .'!'.EOL;
|
||||
|
||||
if (count($tabTmp)>1) {
|
||||
print_r($tabAnn);
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR : Jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .' présent plusieurs fois !'.EOL;
|
||||
//die();
|
||||
}
|
||||
|
||||
$iDb->update($table,$tabAnn,'id='.$tabAnnEnBase['id']);
|
||||
if (mysql_errno()>0) {
|
||||
echo date ('Y/m/d - H:i:s') ." - A la mise à jour sur $table :".EOL;
|
||||
print_r($tabAnn);
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
if ($modeDebug) $line = trim(fgets(STDIN));
|
||||
else die("ERREUR SQL 2".EOL);
|
||||
}
|
||||
|
||||
/*echo mysql_error().EOL."En base:".EOL;
|
||||
print_r($tabAnnEnBase);
|
||||
echo mysql_error().EOL."A mettre à jour :".EOL;
|
||||
print_r($tabAnn);
|
||||
echo "?";
|
||||
$sdfqsd=trim(fgets(STDIN));*/
|
||||
$nbUpdate++;
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Ligne $ligne : MAJ du jugement ". $tabAnn['typeEven'] .' en date du '. $tabAnn['dateJugement'].", siren=".$tabAnn['siren'] .'!'.EOL;
|
||||
}
|
||||
}
|
||||
//if ($modeDebug) echo "Ligne $ligne Fin: '$a'".EOL;
|
||||
}
|
||||
fclose ($fp);
|
||||
echo date ('Y/m/d - H:i:s')." - Le fichier n°$i, $nomFichier vient d'être chargé : $nbInsert ajouts et $nbUpdate MAJ !".EOL;
|
||||
if ($table=='annonces2') {
|
||||
echo date ('Y/m/d - H:i:s')." - Chargement en test. Arrêt du traitement...".EOL;
|
||||
die("TABLE ANNONCE 2".EOL);
|
||||
}
|
||||
|
||||
if (bzip2(CSF_FTP_DIR.$nomFichier, CSF_BACKUP_DIR.$nomFichier)) {
|
||||
unlink(CSF_FTP_DIR.$nomFichier);
|
||||
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siren/siret invalides et $nbSiretRetraitement annonces à retraiter !".EOL;
|
||||
$message.="Le fichier n°$i, $nomFichier vient d'être chargé :\r\n";
|
||||
$message.=" $nbInsert ajouts et $nbUpdate mises à jours sur $nbLignes lignes ($nbSiretInvalides siren/siret invalides et $nbSiretRetraitement annonces à retraiter).".EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des défaillances.".EOL;
|
||||
}
|
||||
else {
|
||||
$message.="Aucun fichier CSF à traiter !\r\n";
|
||||
echo date ('Y/m/d - H:i:s') . " - Aucun fichier CSF à traiter !".EOL;
|
||||
}
|
||||
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement annonces Greffes', $message);
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement annonces Greffes', $message);
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement.".EOL;
|
||||
die();
|
||||
|
||||
?>
|
@ -1,6 +1,144 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$modeDebug=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des tribunaux compétents pour les codes insee des communes depuis le site du ministère de la justice.
|
||||
/**@todo : Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!**/
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
/** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
|
||||
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
|
||||
**
|
||||
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
|
||||
**/
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
$iInsee=new MInsee();
|
||||
|
||||
$table='annonces_jal';
|
||||
$urlBase='http://www.annonces-legales.fr/annonce-legale/';
|
||||
$tabZones=array(
|
||||
'jalNum'=>'<div id="al_title"><h1><a href="http://www.annonces-legales.fr/journal/(.*)/',
|
||||
'jalDept'=>'<div id="al_title"><h1><a href="http://www.annonces-legales.fr/journal/(?:.*)">(?:.*) (\d+|2A|2B)</a></h1></div>',
|
||||
'jalNom'=>'<div id="al_title"><h1><a href="http://www.annonces-legales.fr/journal/(?:.*)/(.*)">',
|
||||
'jalLib'=>'<div id="al_title"><h1><a href="http://www.annonces-legales.fr/journal/(?:.*)">(.*)</a></h1></div>',
|
||||
'jalDateTxt'=>'<div id=\'annonce_legale_date\'><b>(.*)</b></div>',
|
||||
'annCat'=>'<div id=\'annonce_legale_date\'><b>(?:.*)</b></div><h2><b><a href=\'http://(.*).annonces-legales.fr/publication\'>',
|
||||
'evenLib'=>'<div id=\'annonce_legale_date\'><b>(?:.*)</b></div><h2><b><a href=\'http://(?:.*).annonces-legales.fr/publication\'>(.*)</b></a></h2>',
|
||||
'socNom'=>'<div align=\'center\' style=\'font-size: 24pt; line-height: 24pt;\'><strong>(.*)</strong></div>',
|
||||
'fjCap'=>'<div align=\'center\'><strong>(.*)</strong></div>',
|
||||
'adr'=>'<div align=\'center\'><strong>(?:.*)</strong></div>(?:.*)<div><center>(.*)\d\d\d\d\d',
|
||||
'adrSiege'=>'<div>Si.*ge social : (.*)</div>',
|
||||
'cpVille'=>'<div align=\'center\'><strong>(?:.*)</strong></div>(?:.*)<div><center>(.*)(\d\d\d\d\d\s.*)<br>',
|
||||
'siren'=>'<br>(?:.*)(\d\d\d\d\d\d\d\d\d) R',
|
||||
'tribunal'=>'(?:\d\d\d\d\d\d\d\d\d) R.C.S. (.*)</center>',
|
||||
'tribunalImm'=>'<div>Immatriculation au RCS de (.*)</div>',
|
||||
'socDuree'=>'<div>Dur.*e : (\d+) ans</div>',
|
||||
'socObjet'=>'<div>Objet social : (.*)</div>',
|
||||
'socGerance'=>'<div>G.*rance : (.*)</div>',
|
||||
'annonce'=>'<div class=.annonce.>(.*)<div class="separator">',
|
||||
'mention'=>'<div>(Mention en sera faite.*)</div>',
|
||||
'acteDate'=>'<div>Par acte SSP en date du (.*)\s',
|
||||
'acteNature'=>'<div>Par acte SSP en date du (?:.*)/\d\d\d\d\s(.*)</div>',
|
||||
/* <div>Par acte SSP en date du 08/10/2009 il a été constitué la société suivante :</div>
|
||||
<div>Siège social : 108 rue des Bains, 8 Allée du Douet d'Auge 14103 Pont l'Eveque, 14360 Trouville sur Mer</div>
|
||||
<div>Capital : €</div>
|
||||
*/
|
||||
// id socTri uid
|
||||
);
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des informations '$table'...".EOL;
|
||||
|
||||
$ret=$iDb->select($table, 'MAX(id)', '1', false);
|
||||
$iDeb=$ret[0][0];
|
||||
$nbVides=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Dernier id '$table' = $iDeb".EOL;
|
||||
//$iDeb=54701;
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
/* $ret=$iDb->select($table, 'raiSoc', "id=$i", false);
|
||||
if (@$ret[0][0]<>'') continue;
|
||||
*/
|
||||
|
||||
$url=$urlBase.$i;
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
if ($page['code']==301) {
|
||||
$url=$page['header']['Location'];
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
$referer=$url;
|
||||
}
|
||||
$body=$page['body'];
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
if ($tabHtml['jalNum']=='' || @$tabHtml['annCat']=='') {
|
||||
$nbVides++;
|
||||
$i0=$i-10;
|
||||
if ($nbVides==10) die("Le dernier numéro d'annonces est probablement le '$i0'".EOL);
|
||||
continue;
|
||||
}
|
||||
$nbVides=0;
|
||||
$tabHtml['jalDateYmd']=WDate::dateT('d M Y','Y-m-d',$tabHtml['jalDateTxt']);
|
||||
$tabInsert=array_merge($tabInsert,$tabHtml);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (@$iInsee->valideSiren($tabInsert['siren']))
|
||||
$tabInsert['sirenValide']=1;
|
||||
else
|
||||
$tabInsert['sirenValide']=0;
|
||||
|
||||
print_r($tabInsert);
|
||||
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
|
||||
/**
|
||||
** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice)
|
||||
** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
|
||||
@ -54,7 +192,33 @@ function html2txt($html) {
|
||||
//die(print_r($page));
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Début de la récupération des annonces sur le site JAL...".EOL;
|
||||
$urlBase='http://www.journal-annonce-legale.fr';
|
||||
|
||||
/*<div id="annonce_legale_item">
|
||||
<br>
|
||||
<div id="al_title"><h1><a href="http://www.annonces-legales.fr/journal/338/lecho-de-louest">L'Echo de l'Ouest - Loire-Atlantique 44</a></h1></div>
|
||||
<div class="separator"></div>
|
||||
<div id='annonce_legale_date'><b>30 août 2012</b></div><h2><b><a href='http://transfert-de-siege-dans-le-departement.annonces-legales.fr/publication'>Transfert de siége dans le département</b></a></h2> <div id="annonce_legale_text" style="">
|
||||
|
||||
<div class='annonce'>
|
||||
<div align='center' style='font-size: 24pt; line-height: 24pt;'><strong>SELECTIMMO</strong></div>
|
||||
|
||||
<div align='center'><strong>SARL Unipersonnelle au capital de 1500 Euros</strong></div>
|
||||
<div align='center'>
|
||||
<center>12 rue de la Chevasnerie,<br>
|
||||
44000 NANTES<br>
|
||||
494480759 R.C.S. Nantes</center>
|
||||
|
||||
</div>
|
||||
<div>Par décision du gérant en date du 30 août 2012 il a été décidé de transférer le siège social de la société au 58 boulevard Meusnier de Querlon, 44000 NANTES à compter du 30 août 2012.</div>
|
||||
<div>Mention en sera faite au Registre du Commerce et des Sociétés de Nantes</div>
|
||||
</div> </div>
|
||||
<br><br><div class="separator"></div>
|
||||
<br><h4>Autres annonces légales</h4><b><a href='/annonce-legale/54627/SOCIETE-CIVILE-DE-BONHERBE-Radiation-Liquidation-de-societe'>Annonce légale - SOCIETE CIVILE DE BONHERBE - Radiation - Liquidation de société</a></b><br><b><a href='/annonce-legale/54436/QIMNET-Transfert-de-siege-dans-le-departement'>Annonce légale - QIMNET - Transfert de siége dans le département</a></b><br><b><a href='/annonce-legale/54368/SCI-SAINT-JALMES-JOZWICKI-Transfert-de-siege-hors-departement'>Annonce légale - SCI SAINT-JALMES - JOZWICKI - Transfert de siége hors département</a></b><br></div> </div>
|
||||
<div class="clear"></div>
|
||||
<div class="clear"></div>
|
||||
<div id="footer">
|
||||
<div id="footer_l">
|
||||
Regiepress s'est engagée à soutenir :<br>*/
|
||||
$page=getUrl($urlBase.'/annonces_legales', '', '', $referer);
|
||||
$size=round(strlen($page['body'])/1024);
|
||||
echo date ('Y/m/d - H:i:s') . " - Récupération de $size Ko de données. Recherche des annonces...".EOL;
|
||||
|
2116
batch/getAnnoncesOctde.php
Normal file
2116
batch/getAnnoncesOctde.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -183,7 +183,7 @@ Options :
|
||||
$iInsee=new MInsee();
|
||||
$iBodacc=new MBodacc();
|
||||
|
||||
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=0;
|
||||
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=$nbIgnore=0;
|
||||
$modeDebug=false; // Mode débug
|
||||
$questions=true; // Questions interactives autorisées ?
|
||||
$tabFichier=$tabFichLigneCmd=array();
|
||||
@ -338,6 +338,10 @@ for ($iFic=0; isset($tabFichier[$iFic]); $iFic++)
|
||||
$tabAnnonce['nature']=trim($title->item(0)->nodeValue);
|
||||
$tabAnnonce['tabEven']=array();
|
||||
$tabAnnonce['tabEven'][]=$tabEvenTessi[$tabAnnonce['nature']];
|
||||
if ($tabEvenTessi[$tabAnnonce['nature']]*1==0) {
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com,ylenaour@scores-decisions.com', "Chargement TESSI : Problème de code Jugement Inconnu '".$tabAnnonce['nature']."'", "Fichier '$nomFichier'".EOL);
|
||||
die("L'évènement '".$tabAnnonce['nature']."' n'est pas reconnu chez S&D !");
|
||||
}
|
||||
@$tabCptAnn[$tabAnnonce['even']][$tabEvenTessi[$tabAnnonce['nature']]]++;
|
||||
|
||||
/** Tableau des modifications
|
||||
@ -458,7 +462,7 @@ for ($iFic=0; isset($tabFichier[$iFic]); $iFic++)
|
||||
$tabAnnonce['newFJur']=$line;
|
||||
} else {
|
||||
$message.='Arrêt du traitement, forme juridique inconnue : "'.$tabAnnonce['fj_new'].'"'.EOL;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur Chargement annonces JAL - Forme Jur inconnue', $message);
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Erreur Chargement annonces JAL - Forme Jur inconnue', $message);
|
||||
die();
|
||||
}
|
||||
}
|
||||
@ -900,6 +904,7 @@ SOCIETE ABSORBEE PAR ABTEY CHOCOLATERIE SIREN 946351376 RTE NATIONALE 466 68990
|
||||
elseif ($tribunal=='TC DE ANNECY') $tabAnnonce['tribunal']='ANNECC';
|
||||
elseif ($tribunal=='GRAY-VESOUL') $tabAnnonce['tribunal']='GRAYC';
|
||||
elseif ($tribunal=='SALON') $tabAnnonce['tribunal']='SALONC';
|
||||
elseif ($tribunal=='VILLEFRANCHE SUR SAONE-TARARE') $tabAnnonce['tribunal']='VILTAC';
|
||||
else {
|
||||
echo date ('Y/m/d - H:i:s')." - Tribunal Tessi inconnu '$tribunal' (Dept.=$dep, source=".$tabAnnonce['natureTribunal'].", siren=$siren) !".EOL;
|
||||
if ($questions) {
|
||||
@ -911,7 +916,7 @@ SOCIETE ABSORBEE PAR ABTEY CHOCOLATERIE SIREN 946351376 RTE NATIONALE 466 68990
|
||||
$tabAnnonce['tribunal']=$line;
|
||||
} else {
|
||||
$message.="Arrêt du traitement, Tribunal inconnu : '$tribunal'".EOL;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur Chargement annonces JAL - Tribunal inconnu', $message);
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Erreur Chargement annonces JAL - Tribunal inconnu', $message);
|
||||
die();
|
||||
}
|
||||
// die();
|
||||
@ -1298,6 +1303,13 @@ SOCIETE ABSORBEE PAR ABTEY CHOCOLATERIE SIREN 946351376 RTE NATIONALE 466 68990
|
||||
}
|
||||
// $line = trim(fgets(STDIN));
|
||||
} else {
|
||||
if ($tabInsert['typeEven']==5999) { // Ventes et cessions
|
||||
$nbIgnore++;
|
||||
echo date ('Y/m/d - H:i:s')." - On ignore la vente pour le siren $siren !".EOL;
|
||||
echo print_r($tabInsert, 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
$ret=$iDb->insert($table, $tabInsert);
|
||||
$nbInsertEven[$typeEven]++;
|
||||
$nbInsert++;
|
||||
@ -1339,7 +1351,7 @@ SOCIETE ABSORBEE PAR ABTEY CHOCOLATERIE SIREN 946351376 RTE NATIONALE 466 68990
|
||||
echo date ('Y/m/d - H:i:s') . " - DETAIL des mises à jours :".EOL;
|
||||
//print_r($nbUpdateEven);
|
||||
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement annonces JAL', $message);
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Chargement annonces JAL', $message);
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement annonces JAL', $message);
|
||||
}
|
||||
|
||||
|
@ -179,10 +179,10 @@ while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
|
||||
} elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
|
||||
$message=date('Y/m/d - H:i:s') .' - ERREUR : Il n\'y a que '. $nbAnnDb .' annonces en base sur les '. $nbAnnonces .' annonces présentes au JO BALO du '. $dateDerParution .' !'. EOL;
|
||||
echo $message;
|
||||
mail('ylenaour@scores-decisions.com', 'JO BALO', $message);
|
||||
/* mail('ylenaour@scores-decisions.com', 'JO BALO', $message);
|
||||
mail('lenaoury@gmail.com', 'JO BALO', $message);
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
|
||||
die();
|
||||
die();*/
|
||||
}
|
||||
|
||||
$tabAnnonces=explode('<div class="hr"><hr/></div>', $page['body']);
|
||||
@ -235,7 +235,24 @@ while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
|
||||
$strIsin="";
|
||||
echo date('Y/m/d - H:i:s') ." - Annonce n°$i2/$nbAnnonces, Siren $siren $strIsin: ".$infoAnnBalo['Societe_Nom'] .EOL;
|
||||
|
||||
$nbBoucles=0;
|
||||
while (1) {
|
||||
$nbBoucles++;
|
||||
$page=getUrl($infoAnnBalo['Url_Annonce_Html'], '', '', '', false, 'balo.journal-officiel.gouv.fr');
|
||||
// [code] => 301
|
||||
// ['header']['Location'] => http://www.journal
|
||||
if ($page['code']==301) {
|
||||
echo date('Y/m/d - H:i:s') ." - On patiente $nbBoucles fois...". EOL;
|
||||
sleep(3600);
|
||||
} elseif ($page['code']==200) break;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s') ." - On a patienté $nbBoucles fois avant d'obtenir pour cette URL : ".$infoAnnBalo['Url_Annonce_Html'].EOL;
|
||||
print_r($page);
|
||||
}
|
||||
// echo $infoAnnBalo['Url_Annonce_Html'];
|
||||
// $page=getUrl($infoAnnBalo['Url_Annonce_Html'], '', '', '', false, 'balo.journal-officiel.gouv.fr');
|
||||
}
|
||||
|
||||
//echo '<table border="1"><tr><td>'. $page['body'] .'</td></tr></table><hr/>';
|
||||
$infoAnnBalo['Annonce_Html']=$page['body'];
|
||||
randsleep($tempsMinEntreRequetes,$tempsMaxEntreRequetes);
|
||||
|
238
batch/getBanques.php
Normal file
238
batch/getBanques.php
Normal file
@ -0,0 +1,238 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
$modeDebug=$modeSirenBanque=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des listes des sociétés de gestion agrées par l'AMF
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-b Sirenage des codes banques non encore sirenés
|
||||
-r=13S00000 Traiter ce numéro de RCI
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'b': $modeSirenBanque=true; break;
|
||||
//case 'r': $modeRCI=trim(substr($argv[$i],3,strlen($argv[$i])-1)); break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDB('insee');
|
||||
$table='BDF_Etabs';
|
||||
/*$urlBase='http://www.amf-france.org/bio/rech_SG.aspx';
|
||||
$referer='http://www.rci.gouv.mc/index.jsp';
|
||||
$urlRecherche='10088';
|
||||
*/
|
||||
$retrait=1;
|
||||
$urlDetail="https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination=&siren=&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=21&cib=";
|
||||
|
||||
$tabZones =array('id'=>"&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=(.*)\">(?:.*)</a></td></tr></table>");
|
||||
$tabZones2=array( 'nom' => '<strong>Dénomination sociale : </strong>(.*)</p>',
|
||||
'denomination' => '<li>Dénomination sociale : <span>(.*)</span></li>',
|
||||
'nomCom' => '<li>Nom commercial : <span>(.*)</span></li>',
|
||||
'fjLib' => '<li>Forme juridique : <span>(.*)</span></li>',
|
||||
'bdfFibCodeEtab'=> '<li class="pre-espacement">Code banque \(CIB\) : <span>(.*)</span></li>',
|
||||
'siren' => '</span></li><li>SIREN : <span>(.*)</span></li></ul>',
|
||||
'typAgentFi' => '</ul><strong class="description">(.*)</strong><ul class="nopuce">',
|
||||
'natAutor' => '<li>Nature d\'autorisation : <span>(.*)</span></li>',
|
||||
'natExercice' => '<li>Nature d\'exercice : <span>(.*)</span></li>',
|
||||
'adresse' => '<li class="pre-espacement post-espacement">Adresse du siège social : <span>(.*)</span></li>',
|
||||
'CP' => '<li>Code postal : <span>(.*)</span></li>',
|
||||
'Ville' => '<li>Ville : <span>(.*)</span></li>',
|
||||
'paysLib' => '<li>Pays : <span>(.*)</span></li>');
|
||||
//
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL;
|
||||
|
||||
$modeSirenBanque=true;
|
||||
|
||||
if ($modeSirenBanque) {
|
||||
$ret=$iDb->select($table, 'bdfFibCodeEtab, bdfFibDenom40', "1/*siren<1000 AND bdfFibCodeEtab>23585*/ AND preRegafi IS NULL AND idRegafi IS NULL ORDER BY bdfFibCodeEtab", false);
|
||||
$nbLet=count($ret);
|
||||
foreach ($ret as $tFiche) {
|
||||
@$nbDone++;
|
||||
$id=$tFiche['bdfFibCodeEtab'];
|
||||
$nom=$tFiche['bdfFibDenom40'];
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : Code Banque $id - $nom = ";
|
||||
$referer="https://www.regafi.fr/spip.php?page=advancedsearch&id_secteur=1";
|
||||
$urlFiche="https://www.regafi.fr/spip.php?page=results&type=advanced&id_secteur=1&lang=fr&denomination=&siren=&cib=$id&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait";
|
||||
$page=getUrl($urlFiche, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
if (preg_match('/<strong>Nombre de résultats \:<\/strong> 0<\/p>/', $body, $matches)) {
|
||||
$iDb->update($table, array('preRegafi'=>0), "bdfFibCodeEtab=$id");
|
||||
echo 'Non trouvé !'.EOL;
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(60,120);
|
||||
continue;
|
||||
}
|
||||
//print_r($page);die();
|
||||
$tabUpdate=@html2array($body, $tabZones);
|
||||
//print_r($tabUpdate);die();
|
||||
|
||||
// Détail
|
||||
$referer=$urlFiche;
|
||||
//https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination&siren&cib&bic&nom&siren_agent&num&cat=0&retrait=0&pg=57&page=af&id=7571
|
||||
$idRegafi=$tabUpdate['id'];
|
||||
$urlFiche="https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination=&siren=&cib=$id&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=".$idRegafi;
|
||||
$page=getUrl($urlFiche, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
//print_r($page);die();
|
||||
$tabUpdate=@html2array($body, $tabZones2);
|
||||
//print_r($tabUpdate);die();
|
||||
echo $tabUpdate['nom'].' - '.@$tabUpdate['siren'].EOL;
|
||||
unset($tabUpdate['nom']);
|
||||
$tabUpdate['idRegafi']=$idRegafi;
|
||||
$tabUpdate['preRegafi']=1;
|
||||
if (@$tabUpdate['siren']>1000 || $idRegafi>0) {
|
||||
$tabUpdate['sirenValide']=1;
|
||||
$tabUpdate['denomination']=strtr($tabUpdate['denomination'],array('''=>"'"));
|
||||
$tabUpdate['nomCom']=@strtr($tabUpdate['nomCom'],array('''=>"'"));
|
||||
$tabUpdate['adresse']=@strtr($tabUpdate['adresse'],array('''=>"'"));
|
||||
$tabTypAgentFi=array();
|
||||
if (preg_match("/ablissement de cr.{1,10}alis.{1,5}/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CRS';
|
||||
elseif (preg_match("/Etablissement de cr.{1,5}t/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CR';
|
||||
if (preg_match("/Non prestataire de services d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='NSI';
|
||||
elseif (preg_match("/Prestataire de services d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='SI';
|
||||
if (preg_match("/Banque mutualiste ou coop.{1,5}tive/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='BQM';
|
||||
elseif (preg_match("/Banque/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='BQ';
|
||||
if (preg_match("/Caisse de cr.{1,5}t municipal et .{1,5}blissement assimilable/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CM';
|
||||
if (preg_match("/Entreprise d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EI';
|
||||
if (preg_match("/Etablissement de monnaie.{1,5}ctronique/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EM';
|
||||
if (preg_match("/Soci.{1,5} de financement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='SF';
|
||||
if (preg_match("/Etablissement de paiement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EP';
|
||||
if (preg_match("/Institution financi.{1,5} sp.{1,5}alis/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='IFS';
|
||||
if (preg_match("/Compagnie financi.{1,5} holding/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CFH';
|
||||
if (preg_match("/Changeur manuel/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CHM';
|
||||
if (count($tabTypAgentFi)==0) die('Je ne connais pas '.$tabUpdate['typAgentFi'].EOL);
|
||||
$iDb->update($table, $tabUpdate, "bdfFibCodeEtab=$id");
|
||||
}
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
die();
|
||||
echo count($tabLet);
|
||||
//serialize
|
||||
print_r($tabLet);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
print_r($tabHtml);
|
||||
|
||||
die();
|
||||
|
||||
|
||||
$ret=$iDb->select($table, 'agrementNum', '1', false);
|
||||
foreach ($ret as $tAgrNum) {
|
||||
$agrNum=$tAgrNum['agrementNum'];
|
||||
echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
}
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
$url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15";
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
print_r($page);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$i;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
|
||||
$nbVides++;
|
||||
if ($nbVides<20) continue;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
$nbVides=0;
|
||||
|
||||
unset($tabInsert['qualifs']);
|
||||
|
||||
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
|
||||
$urlLogo='http://www.qualifelec.fr/';
|
||||
die($tabInsert['urlImg']);
|
||||
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
|
||||
$extension=substr(strrchr($urlLogo,'.'),1);
|
||||
if (!file_exists("/home/data/logos/$siren.$extension")) {
|
||||
$referer='';
|
||||
$tDeb=microtime(true);
|
||||
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
|
||||
$duree=round(microtime(true)-$tDeb,3);
|
||||
$body=$page['body'];
|
||||
$taille=round(strlen($body)/1024,1);
|
||||
file_put_contents("/home/data/logos/$siren.$extension",$body);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tabInsert['urlImg']);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
?>
|
@ -43,7 +43,8 @@ $iInsee=new MInsee();
|
||||
foreach ($tabFichier as $i=>$fichier) {
|
||||
$tabSiren=file($fichier);
|
||||
foreach ($tabSiren as $iSiren=>$siren) {
|
||||
$siren=trim($siren);
|
||||
$siren=explode(',',trim($siren));
|
||||
$siren=$siren[0];
|
||||
$tabIdentite=$iInsee->getIdentiteLight($siren);
|
||||
$rs=$tabIdentite['Nom'];
|
||||
$strBase="$iSiren,$siren,$rs";
|
||||
@ -51,6 +52,8 @@ foreach ($tabFichier as $i=>$fichier) {
|
||||
$tabActes=@$iGreffes->getBilansImages($siren);
|
||||
$bilan=@$tabActes[0];
|
||||
$ref=$bilan['ref'];
|
||||
$type=$bilan['type'];
|
||||
$dateCloture=$bilan['dateCloture'];
|
||||
echo $strBase.
|
||||
$bilan['annee'].','.
|
||||
$bilan['type'] .','.
|
||||
@ -58,9 +61,11 @@ foreach ($tabFichier as $i=>$fichier) {
|
||||
$bilan['depot_num'] .','.
|
||||
$bilan['vecteurs'] .',';
|
||||
if ($ref<>'') {
|
||||
echo "http://extranet.scores-decisions.com/pieces/bilan/siret/$siren/ref/$ref/mode/T";
|
||||
//echo "http://extranet.scores-decisions.com/pieces/bilan/siren/$siren/ref/$ref/mode/T";
|
||||
echo "http://extranet.scores-decisions.com/pieces/bilan/siren/$siren/mode/T/type/$type/cloture/$dateCloture";
|
||||
echo ',';
|
||||
echo "http://extranet.scores-decisions.com/fichier/pdf/bilan-$siren-$ref.pdf";
|
||||
echo "http://extranet.scores-decisions.com/fichier/greffe/bilan-$siren-$type-$dateCloture.pdf";
|
||||
// http://extranet.scores-decisions.com/fichier//bilan-303217368-sociaux-2013-12-31.pdf
|
||||
}
|
||||
}
|
||||
elseif ($type=='S') {
|
||||
|
@ -691,6 +691,7 @@ Options :
|
||||
-h Ne pas charger la notice dans la base des 'historiques'
|
||||
";*/
|
||||
$iDb=new WDB();
|
||||
$iDbH=new WDB('historiques');
|
||||
global $iInsee;
|
||||
$iInsee=new MInsee();
|
||||
$iRncs=new MRncs();
|
||||
@ -750,7 +751,7 @@ if ($ftpStep) {
|
||||
$dateDist = ftp_mdtm($conn_id, $server_file);
|
||||
$server_fileName=basename($server_file);
|
||||
|
||||
if (!preg_match('/BILSCOREDEC/i', $server_fileName)) {
|
||||
if (!preg_match('/BILSCOREDEC/i', $server_fileName) || preg_match('/\.swp/i', $server_fileName)) {
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s'). " - Le fichier distant '$server_fileName' n'est pas un flux RNCS/BILANS.".EOL;
|
||||
continue;
|
||||
} elseif ($modeDebug)
|
||||
@ -879,6 +880,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
if ($fp) {
|
||||
$nbLignes=$nbLignes1=$nbLignes2=$nbLignes3=$nbLignes4=0;
|
||||
$nbUpdate=$nbNotUpdate=$nbInsert=0;
|
||||
$tabDept=$tabMill=$tabDeptMill=array();
|
||||
$a = fgets($fp, 4096);
|
||||
$tailleLigne=strlen($a);
|
||||
if ($tailleLigne<90 || $tailleLigne>91) {
|
||||
@ -915,6 +917,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$siren = trim( substr($a, 0, 9)); // SIREN
|
||||
$nic = trim( substr($a, 9, 5)); // NIC
|
||||
$dateCloture= trim( substr($a, 14, 8)); // SSAAMMJJ
|
||||
|
||||
if (strlen(trim($a))==34) {
|
||||
// echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, ligne de 34 caractères '$a'...".EOL;
|
||||
$idFichier = trim( substr($a, 0, 10));
|
||||
@ -943,7 +946,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
}
|
||||
// echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, ligne de 34 caractères '$a'... RAS".EOL;
|
||||
}
|
||||
|
||||
$tabPages=array();
|
||||
switch ($codeEnr) {
|
||||
case '1': // Structure de début de Bilan
|
||||
$nbLignes1++;
|
||||
@ -953,6 +956,8 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$ff) {
|
||||
// Enregistrer le Bilan précédent si siren différent
|
||||
$nbBilans++;
|
||||
@$tabMill[substr($dateCloturePre,0,4)]++;
|
||||
|
||||
$strPostes='';
|
||||
foreach($tabPostes as $poste=>$valeur)
|
||||
$strPostes.="$poste=$valeur;";
|
||||
@ -988,19 +993,70 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
}
|
||||
|
||||
if (/*$codeSai=='00' || $codeSai=='01'*/strlen($strPostes)>0) {
|
||||
$ret=$iDb->select('bilans', 'partenaire, siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dureeExercice', "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false, MYSQL_ASSOC);
|
||||
//
|
||||
$ret=$iDb->select('bilans', 'id, partenaire, siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dateProvPartenaire, dureeExercicePre, monnaie, monnaieOrigine, unite, postes, confidentiel, dateInsert, dureeExercice', "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false, MYSQL_ASSOC);
|
||||
//unset($ret);
|
||||
if (isset($ret[0])) {
|
||||
$codeCon=false;
|
||||
$bilanPre=$ret[0];
|
||||
$messageLigne=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Bilan INPI déjà saisi le ".$bilanPre['dateProvPartenaire']." (".$bilanPre['partenaire'].") et entré en base S&D le ".$bilanPre['dateInsert'].EOL;
|
||||
echo $messageLigne;
|
||||
$message.=$messageLigne;
|
||||
$idBilanPre=$bilanPre['id'];
|
||||
$confPre=$bilanPre['confidentiel'];
|
||||
$dateInsertPre=$bilanPre['dateInsert'];
|
||||
|
||||
if ($bilanPre['partenaire']==7 ||
|
||||
$bilanPre['partenaire']==8 ||
|
||||
$bilanPre['partenaire']==9) {
|
||||
/** On n'écrase pas le bilan s'il a été saisit par S&D */
|
||||
unset($bilanPre['id']);
|
||||
unset($bilanPre['dureeExerciceCalc']);
|
||||
unset($bilanPre['confidentiel']);
|
||||
unset($bilanPre['dateInsert']);
|
||||
/*$bilanPre['dateExercicePre']=$bilanPre['dateExercicePre']*1;
|
||||
$bilanPre['dureeExercice']=$bilanPre['dureeExercice']*1;
|
||||
$bilanPre['dureeExercicePre']=$bilanPre['dureeExercicePre']*1;
|
||||
*/
|
||||
$strPostePre=$bilanPre['postes'];
|
||||
$strPostePre=explode(';', $strPostePre);
|
||||
foreach ($strPostePre as $tmpPoste) {
|
||||
$tmpPoste=explode('=', $tmpPoste);
|
||||
if (isset($tmpPoste[1]))
|
||||
$tabPostesPre[$tmpPoste[0]]=$tmpPoste[1];
|
||||
}
|
||||
$bilanDiff = array_diff($tabInsert, $bilanPre);
|
||||
$postesDiff = array_diff($tabPostes, $tabPostesPre);
|
||||
if (count($bilanDiff)>0 || count($postesDiff)>0) {
|
||||
$ret=$iDb->update('bilans', $tabInsert, "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false);
|
||||
$bilanPre['id']=$idBilanPre;
|
||||
$bilanPre['confidentiel']=$confPre;
|
||||
$bilanPre['dateInsert']=$dateInsertPre;
|
||||
$retH=$iDbH->update('bilans', $tabInsert, false);
|
||||
//print_r($tabInsert);
|
||||
//print_r($bilanPre);
|
||||
print_r($bilanDiff);
|
||||
echo EOL;
|
||||
//print_r($tabPostes);
|
||||
//print_r($tabPostesPre);
|
||||
print_r($postesDiff);
|
||||
$strPostesDiff='';
|
||||
foreach($postesDiff as $poste=>$valeur)
|
||||
$strPostesDiff.="$poste=$valeur;";
|
||||
if (trim($strPostesDiff)<>'') {
|
||||
$tabInsertDiff=array('idUtilisateur'=> 0,
|
||||
'siren' => $sirenPre,
|
||||
'dateExercice' => $dateCloturePre,
|
||||
'typeBilan' => $typeBilan,
|
||||
//dateAction'=>date('YmdHis'),
|
||||
'postesDiff' => trim($strPostesDiff),
|
||||
);
|
||||
$iDb->insert('bilans_user', $tabInsertDiff);
|
||||
}
|
||||
//die();
|
||||
$nbUpdate++;
|
||||
} else
|
||||
$nbNotUpdate++;
|
||||
} else $nbNotUpdate++;
|
||||
} else $nbNotUpdate++;
|
||||
} else {
|
||||
/** Tester sur les nouveaux bilans
|
||||
* - CA x par 10 - 100
|
||||
@ -1037,12 +1093,12 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
}
|
||||
if (!((@$tabPostes[$strCtrl]*1)>=$totalMin && (@$tabPostes[$strCtrl]*1)<=$totalMax)) {
|
||||
if (!$anoBilan)
|
||||
$messageLigne="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
||||
$messageLigne="Fichier $fichier : ligne $nbLignes, bilan n°$nbBilans, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
||||
else
|
||||
$messageLigne='';
|
||||
$messageLigne.="$strEcho (saisi ".@$tabPostes[$strCtrl].' <> '.$total." calculé)".EOL;
|
||||
echo $messageLigne;
|
||||
$codeCon=2;
|
||||
$codeCon=5;
|
||||
$messageErrCtrl.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents";
|
||||
if ($codeSai=='00') $anoBilan=true;
|
||||
}
|
||||
@ -1075,7 +1131,8 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$resultat=@$tabPostesCtrl['HN'];
|
||||
$caTotal=@$tabPostesCtrl['FL'];
|
||||
$fondsPr=@$tabPostesCtrl['DL'];
|
||||
$messageAno="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre ($duree), N-1=$dateClP ($dureeP), Greffe n°$numGre, fj=$cj capital $capTyp=$capital $capDev DA=$capBil HN=$resultat Immat=$dateIm - ";
|
||||
$effectif=@$tabPostesCtrl['YP'];
|
||||
$messageAno="Fichier $fichier : ligne $nbLignes, bilan n°$nbBilans, $sirenPre, $dateCloturePre ($duree), N-1=$dateClP ($dureeP), Greffe n°$numGre, fj=$cj, capital $capTyp=$capital $capDev, DA=$capBil, HN=$resultat, FL=$caTotal, YP=$effectif, Immat=$dateIm - ";
|
||||
|
||||
/** Contrôle de cohérence entre le capital Registre et Bilan
|
||||
**/
|
||||
@ -1106,6 +1163,45 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
//2319 Poursuite de l'activité malgré la perte de plus de la moitié du capital
|
||||
}
|
||||
|
||||
/** Contrôle de cohérence Effectif
|
||||
**/
|
||||
// FY : Salaires et traitements
|
||||
// FZ : Charges sociales (10)
|
||||
if ($effectif>4 && ($caTotal/$effectif<1000 || (@$tabPostesCtrl['FY']+@$tabPostesCtrl['FZ'])<10)) {
|
||||
$messageAno.=' - EFFECTIF INCOHERENT !';
|
||||
$codeCon=7;
|
||||
}
|
||||
|
||||
$tabTmp=@$iInsee->getIdentiteLight($sirenPre);
|
||||
$cp=''.$tabTmp['CP'];
|
||||
$dep=substr($cp,0,2);
|
||||
if ($dep>96) $dep=substr($cp,0,3);
|
||||
@$tabDept[$dep]++;
|
||||
@$tabDeptMill[$dep][substr($dateCloturePre,0,4)]++;
|
||||
$tefEnId=$tabTmp['EffEnTr'];
|
||||
$tefEtId=$tabTmp['EffEtTr'];
|
||||
if ($effectif>10000 && $tefEnId<=52 && $tefEtId<=52) {
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com',
|
||||
'ATTENTION : Chargement INPI BILANS', "Attention,
|
||||
|
||||
L'effectif de $effectif salariés saisi pour la société : ".$tabTmp['Nom']." , ".$tabTmp['CP'].' '.$tabTmp['Ville']."( $sirenPre) semble être abérant pour l'exercice $dateCloturePre ($duree mois).
|
||||
Merci de procéder au contrôle et à la correction !
|
||||
|
||||
-----
|
||||
|
||||
Siren : $sirenPre
|
||||
Raison Sociale : ".$tabTmp['Nom']."
|
||||
Localité : ".$tabTmp['CP'].' '.$tabTmp['Ville']."
|
||||
Forme juridique : $cj
|
||||
Date d'immatriculation : $dateIm
|
||||
Capital $capTyp : $capBil $capDev
|
||||
Résultat Net : $resultat
|
||||
Chiffre d'affaires : $caTotal
|
||||
Effectif : $effectif salariés
|
||||
");
|
||||
// die();
|
||||
}
|
||||
|
||||
/** Contrôle du résultat afin de savoir si perte > 1/2 capital
|
||||
**/
|
||||
if ($capBil>0 && $resultat<0) {
|
||||
@ -1131,7 +1227,6 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$fondsPr<0 && // Fonds propres négatifs
|
||||
WDate::nbMoisEntre($dateIm, $dateCloturePre)>=36) { // Et l'entreprise à 3 ans passés
|
||||
/** @todo Créer l'annonce **/
|
||||
$tabTmp=@$iInsee->getIdentiteLight($sirenPre);
|
||||
$tabInsertAnn=array('siren' => $sirenPre,
|
||||
'sirenValide' => @$iInsee->valideSiren($sirenPre),
|
||||
'typeEven' => 2319,
|
||||
@ -1164,10 +1259,10 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
if ($nbMoisCreaN<$duree) {
|
||||
$messageAno.=' - PREMIER EXERCICE COMPTABLE !';
|
||||
$tabInsert['dateExercicePre']=0;
|
||||
} elseif ($nbMoisCreaNp<0) die("Age à N=$nbMoisCreaN mois, Age à N-1=$nbMoisCreaNp mois".EOL);
|
||||
}// elseif ($nbMoisCreaNp<0) die($messageAno.EOL."Age à N=$nbMoisCreaN mois, Age à N-1=$nbMoisCreaNp mois".EOL);
|
||||
}
|
||||
|
||||
if (strlen($messageAno)>185) {
|
||||
if (strlen($messageAno)>220) {
|
||||
echo $messageAno.EOL;
|
||||
$listeAnomalies.=$messageAno.EOL;
|
||||
}
|
||||
@ -1196,7 +1291,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
!$totalMin2 && // ... et max
|
||||
!((@$tabPostesCtrl[$ctrl]*1)>=$totalMin1 && (@$tabPostesCtrl[$ctrl]*1)<=$totalMax1)) {
|
||||
if (!$anoBilan)
|
||||
$messageLigne="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
||||
$messageLigne="Fichier $fichier : ligne $nbLignes, bilan n°$nbBilans, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
||||
else
|
||||
$messageLigne='';
|
||||
$codeCon=9;
|
||||
@ -1207,7 +1302,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tabInsert['dateInsert']=date('YmdHis'); // $dateInsert;
|
||||
$ret=$iDb->insert('bilans', $tabInsert, false);
|
||||
$nbInsert++;
|
||||
}
|
||||
@ -1219,6 +1314,12 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
@$tabNbCodeRet['_'.$codeSai]++;
|
||||
|
||||
// Insertion des informations relatives à l'acte Bilan
|
||||
$strPagesPostes='';
|
||||
foreach($tabPagesPostes as $page=>$nbPostes) {
|
||||
$strPagesPostes.=str_replace('_','',$page)."=$nbPostes,";
|
||||
}
|
||||
$strPagesPostes=substr($strPagesPostes,0,strlen($strPagesPostes)-1);
|
||||
$tabPagesPostes=array();
|
||||
$tabInsert=array( 'siren' => $sirenPre,
|
||||
'numRC' => substr($numGest,2), // char(10)
|
||||
'numRC2' => $numGest,
|
||||
@ -1230,10 +1331,14 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
'duree_exercice'=> $duree,
|
||||
'saisie_date' => $dateEnv,
|
||||
'saisie_code' => $codeSai,
|
||||
'pages' => $strPagesPostes,
|
||||
);
|
||||
if ($codeCon) $tabInsert['ctrl_code']=$codeCon;
|
||||
|
||||
if (!$iDb->insert('greffes_bilans', $tabInsert, false)) {
|
||||
/** @todo
|
||||
* 1. Gérer l'état actif du document dans la liste
|
||||
* 2. Sur la nouvelle machine, requeter Infogreffe pour chaque SIREN et mettre à jour la liste des bilans **/
|
||||
if (!$iDb->insert('greffes_bilans', array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))), false)) {
|
||||
if (!$iDb->update('greffes_bilans', $tabInsert, "siren='$sirenPre' AND num_depot='$numDep' AND date_cloture='$dateCloturePre' AND type_comptes='$typeComptes'", false)) {
|
||||
if (!$iDb->update('greffes_bilans', $tabInsert, "siren='$sirenPre' AND num_depot='$numDep' AND date_cloture='$dateCloturePre' AND type_comptes=''", false)) {
|
||||
echo "Impossible de mettre à jour la table 'greffes_bilans' pour les éléments suivants :".EOL;
|
||||
@ -1251,7 +1356,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
//print_r($tabInsert);
|
||||
} elseif ($sirenPre<>0 && $dateCloturePre<>0 && $typeBilanPre<>0) {
|
||||
$nbDoublons++;
|
||||
$messageLigne=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - Bilan INPI saisit 2 fois !".EOL;
|
||||
$messageLigne=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Bilan INPI saisit 2 fois !".EOL;
|
||||
echo $messageLigne;
|
||||
$message.=$messageLigne;
|
||||
}
|
||||
@ -1269,7 +1374,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$codeSai=trim( substr($a, 72, 2)); // code motif de non saisie
|
||||
if ($codeSai<>'00') {
|
||||
// echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes - '$a'".EOL;
|
||||
echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - Retour n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
||||
echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Retour n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
||||
}
|
||||
$typeBil=trim( substr($a, 74, 1)); // type de bilan
|
||||
switch (strtoupper($typeBil)) {
|
||||
@ -1280,7 +1385,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
case 'A': $typeBilan='A'; $typeComptes=''; break; // Assurance
|
||||
break;
|
||||
default:
|
||||
$messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - Type Bilan INPI inconnu '$typeBil' !".EOL;
|
||||
$messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Type Bilan INPI inconnu '$typeBil' !".EOL;
|
||||
echo $messageErr;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com',
|
||||
'ERREUR : Chargement INPI BILANS', $messageErr);
|
||||
@ -1296,7 +1401,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
else
|
||||
die(date('Y/m/d - H:i:s'). " - Erreur fichier n°$iFic, $fichier : Origine de la devise = '$origDev' !".EOL);
|
||||
$filler1=trim( substr($a, 79, 11)); // vide
|
||||
if ($filler1<>'') echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - filler1 = '$filler1' !".EOL;
|
||||
if ($filler1<>'') echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - filler1 = '$filler1' !".EOL;
|
||||
break;
|
||||
case '2':
|
||||
$nbLignes2++;
|
||||
@ -1313,6 +1418,9 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
case '4':
|
||||
$nbLignes4++;
|
||||
$pageBilan = trim( substr($a, 23, 2)); // N° de la page du bilan
|
||||
@$tabPagesPostes['_'.$pageBilan]++;
|
||||
//print_r($tabPagesBilans);
|
||||
//echo "$a => $pageBilan".EOL;
|
||||
if ($typeBilan=='S') $dec=1; // Si bilan simplifié, on décale de 1 caractère !
|
||||
else $dec=0;
|
||||
$codeCerfa = trim( substr($a, 25, 2+$dec)); // N° de la page du bilan
|
||||
@ -1322,7 +1430,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$montant[3] =nbrBilExt2int(substr($a,72+$dec, 15),$a); // N° de la page du bilan
|
||||
if ($montant[0]===false || $montant[0]===false ||
|
||||
$montant[2]===false || $montant[3]===false) {
|
||||
$messageErr=date('Y/m/d - H:i:s'). " - Erreur fichier n°$iFic, $fichier : bilan du $siren au $dateCloture de type '$typeBilan' lors du traitement du code '$codeCerfa', page $pageBilan montant 1,2,3 ou 4 null = ".$montant[0].', '.$montant[1].', '. $montant[2].', '.$montant[3].' !'.EOL;
|
||||
$messageErr=date('Y/m/d - H:i:s'). " - Erreur fichier n°$iFic, $fichier : bilan n°$nbBilans du $siren au $dateCloture de type '$typeBilan' lors du traitement du code '$codeCerfa', page $pageBilan montant 1,2,3 ou 4 null = ".$montant[0].', '.$montant[1].', '. $montant[2].', '.$montant[3].' !'.EOL;
|
||||
echo $messageErr;
|
||||
if ($stopOnError) {
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com',
|
||||
@ -1332,7 +1440,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
}
|
||||
$filler4 = trim( substr($a, 87+$dec, 3-$dec)); // vide
|
||||
if ($filler4<>'') {
|
||||
$messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren ($codeEnr) - Erreur filler4 = '$filler4' !".EOL;
|
||||
$messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren ($codeEnr) - Erreur filler4 = '$filler4' !".EOL;
|
||||
$messageErr.=date('Y/m/d - H:i:s'). " - Page $pageBilan, Code $codeCerfa - Montant 1,2,3 ou 4 = ".$montant[0].', '.$montant[1].', '. $montant[2].', '.$montant[3].' !'.EOL;
|
||||
$messageErr.=$aPre;
|
||||
$messageErr.=$a;
|
||||
@ -1348,7 +1456,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$listeErreurs.=$msgErreur;
|
||||
break;
|
||||
default:
|
||||
$messageErr=date('Y/m/d - H:i:s') ." - ERREUR ligne $nbLignes : Code Enregistrement '$codeEnr' inconnu pour la ligne :".EOL.trim($a).EOL;
|
||||
$messageErr=date('Y/m/d - H:i:s') ." - ERREUR ligne $nbLignes, bilan n°$nbBilans : Code Enregistrement '$codeEnr' inconnu pour la ligne :".EOL.trim($a).EOL;
|
||||
echo $messageErr;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com',
|
||||
'ERREUR : Chargement INPI BILANS', $messageErr);
|
||||
@ -1431,11 +1539,20 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
echo mysql_errno();
|
||||
echo mysql_error();
|
||||
if (trim($listeErreurs)=='') $listeErreurs='Néant';
|
||||
ksort($tabDept);
|
||||
$listeDepts=print_r($tabDept,true);
|
||||
ksort($tabDeptMill);
|
||||
$listeDeptsMills=print_r($tabDeptMill,true);
|
||||
krsort($tabMill);
|
||||
$listeMills=print_r($tabMill,true);
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com,jm.champeau@recocash.com',
|
||||
'Chargement INPI BILANS',
|
||||
$message.EOL."Liste des erreurs de saisie :".EOL.$messageErrCtrl.EOL.
|
||||
"Liste des erreurs dans le format de fichier :".EOL.$listeErreurs.EOL.
|
||||
"Liste des anomalies diverses :".EOL.$listeAnomalies.EOL);
|
||||
"Liste des anomalies diverses :".EOL.$listeAnomalies.EOL.
|
||||
"Liste des départements traités :".EOL.$listeDepts.EOL.
|
||||
"Liste des millésimes par départements traités :".EOL.$listeDeptsMills.EOL.
|
||||
"Liste des millésimes traités :".EOL.$listeMills.EOL );
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
422
batch/getCFE.php
422
batch/getCFE.php
@ -11,16 +11,360 @@
|
||||
**/
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/PHPExcel.php');
|
||||
|
||||
$referer='http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcfeaf.jsp';
|
||||
$iDb=new WDB();
|
||||
$iDbI=new WDB('insee');
|
||||
$iInsee=new MInsee();
|
||||
|
||||
$doCFE=$doAMF=$doBanatic=$modeDebug=false;
|
||||
/*
|
||||
$url='http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01000&type=all';
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.justice.gouv.fr');
|
||||
die($page['body']);
|
||||
*/
|
||||
$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee BETWEEN 85068 AND 91000 GROUP BY codeInsee');// "`Code Insee`<'10000'");
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des liens actionnaires et participations.
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-a Traiter les Maires AMF (Noms des maires, tel, fax, web mairies)
|
||||
-b Traiter la base Banatic (EPCI, Président, tel, fax...)
|
||||
-c Traiter les CFE
|
||||
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
//$tabSiren=array();
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'a': $doAMF=true; break;
|
||||
case 'b': $doBanatic=true; break;
|
||||
case 'c': $doCFE=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}// else $tabSiren[]=$argv[$i];
|
||||
}
|
||||
|
||||
if ($doBanatic) {
|
||||
$urlBase='https://www.banatic.interieur.gouv.fr/V5/fichiers-en-telechargement/';
|
||||
$url=$urlBase.'fichiers-telech.php';
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
$dateMAJ=false;
|
||||
//$urlGrpListe=$urlGrpCoord=$urlGrpCompe=$urlGrpPerim='';
|
||||
|
||||
$tabRegions=array( 93=>231300021, // REGION PROVENCE-ALPES-COTE D'AZUR
|
||||
25=>231400011, // REGION DE BASSE NORMANDIE
|
||||
94=>232000018, // COLLECTIVITE TERRITORIALE DE CORSE
|
||||
26=>232100016, // REGION DE BOURGOGNE
|
||||
43=>232500017, // REGION DE FRANCHE-COMTE
|
||||
73=>233100015, // REGION DE MIDI PYRENEES
|
||||
72=>233300011, // REGION D'AQUITAINE
|
||||
91=>233400019, // REGION DU LANGUEDOC-ROUSSILLON
|
||||
53=>233500016, // REGION BRETAGNE
|
||||
52=>234400034, // REGION DES PAYS DE LA LOIRE
|
||||
24=>234500023, // REGION CENTRE
|
||||
21=>235100013, // REGION CHAMPAGNE-ARDENNE
|
||||
41=>235700010, // REGION DE LORRAINE
|
||||
31=>235900016, // REGION NORD PAS DE CALAIS
|
||||
83=>236300018, // REGION D'AUVERGNE
|
||||
42=>236700019, // REGION D ALSACE
|
||||
82=>236900015, // REGION RHONE ALPES
|
||||
11=>237500079, // REGION ILE DE FRANCE
|
||||
23=>237600010, // REGION DE HAUTE NORMANDIE
|
||||
22=>238000038, // REGION PICARDIE
|
||||
54=>238600019, // REGION POITOU CHARENTES
|
||||
74=>238708507, // REGION LIMOUSIN
|
||||
1=>239710015, // CONSEIL REGIONAL DE LA GUADELOUPE
|
||||
2=>239720014, // REGION DE MARTINIQUE
|
||||
3=>239730013, // REGION GUYANE
|
||||
4=>239740012, // REGION REUNION
|
||||
);
|
||||
|
||||
$tabZones=array(
|
||||
// Toutes les infos de cette table sont dans 'banatic_coord'
|
||||
'banatic_liste'=> array( "Région siège"=>'region',
|
||||
"Département siège"=>'dept',
|
||||
"Arrondissement siège"=>'arrond',
|
||||
"Commune siège"=>'commune',
|
||||
"N° SIREN"=>'sirenGrp',
|
||||
"Nom du groupement"=>'nomGrp',
|
||||
"Nature juridique"=>'nJur',
|
||||
"Syndicat à la carte"=>'syndCarte',
|
||||
"Groupement interdépartemental"=>'grpInterDep',
|
||||
"Date de création"=>'dateCrea',
|
||||
"Date d'effet"=>'dateEffet',
|
||||
"Mode de répartition des sièges"=>'repSieges',
|
||||
"Autre mode de répartition des sièges"=>'modeRep',
|
||||
"Nombre de membres"=>'nbMbr',
|
||||
"Population"=>'popu',
|
||||
"Nombre de compétences exercées"=>'nbrComp',
|
||||
"Mode de financement"=>'modeFin',
|
||||
"Civilité Président"=>'presCiv',
|
||||
"Prénom Président"=>'presPre',
|
||||
"Nom Président"=>'presNom',
|
||||
),
|
||||
'banatic_comp'=> array( "Région siège"=>'region',
|
||||
"Département siège"=>'dept',
|
||||
"Arrondissement siège"=>'arrond',
|
||||
"Commune siège"=>'commune',
|
||||
"N° SIREN"=>'sirenGrp',
|
||||
"Nom du groupement"=>'nomGrp',
|
||||
"Nature juridique"=>'nJur',
|
||||
"Syndicat à la carte"=>'syndCarte',
|
||||
"Groupement interdépartemental"=>'grpInterDep',
|
||||
"Date de création"=>'dateCrea',
|
||||
"Date d'effet"=>'dateEffet',
|
||||
"Mode de répartition des sièges"=>'repSieges',
|
||||
"Autre mode de répartition des sièges"=>'modeRep',
|
||||
"Nombre de membres"=>'nbMbr',
|
||||
"Population"=>'popu',
|
||||
"Nombre de compétences exercées"=>'nbrComp',
|
||||
"Mode de financement"=>'modeFin',
|
||||
"DGF Bonifiée"=>'dgf',
|
||||
"DSC"=>'dsc',
|
||||
"REOM"=>'reom',
|
||||
"Autre redevance"=>'autreRdv',
|
||||
"TEOM"=>'teom',
|
||||
"Autre taxe"=>'autreTx',
|
||||
"Civilité Président"=>'presCiv',
|
||||
"Prénom Président"=>'presPre',
|
||||
"Nom Président"=>'presNom',
|
||||
"Adresse du siège_1"=>'adr1',
|
||||
"Adresse du siège_2"=>'adr2',
|
||||
"Adresse du siège_3"=>'adr3',
|
||||
//"Code postal du siège - Ville du siège"=>'cpVille',
|
||||
"Code postal du siège Ville du siège"=>'cpVille',
|
||||
"Téléphone du siège"=>'tel',
|
||||
"Fax du siège"=>'fax',
|
||||
"Courriel du siège"=>'mail',
|
||||
"Site internet"=>'web',
|
||||
"Adresse annexe_1"=>'annAdr1',
|
||||
"Adresse annexe_2"=>'annAdr2',
|
||||
"Adresse annexe_3"=>'annAdr3',
|
||||
//"Code postal annexe - Ville annexe"=>'annCpVille',
|
||||
"Code postal annexe Ville annexe"=>'annCpVille',
|
||||
"Téléphone annexe"=>'annTel',
|
||||
"Fax annexe"=>'annFax',
|
||||
),
|
||||
'banatic_peri'=> array( "Région siège"=>'region',
|
||||
"Département siège"=>'dept',
|
||||
"Arrondissement siège"=>'arrond',
|
||||
"Commune siège"=>'commune',
|
||||
"N° SIREN"=>'sirenGrp',
|
||||
"Nom du groupement"=>'nomGrp',
|
||||
"Nature juridique"=>'nJur',
|
||||
"Syndicat à la carte"=>'syndCarte',
|
||||
"Groupement interdépartemental"=>'grpInterDep',
|
||||
"Date de création"=>'dateCrea',
|
||||
"Date d'effet"=>'dateEffet',
|
||||
"Mode de répartition des sièges"=>'repSieges',
|
||||
"Autre mode de répartition des sièges"=>'modeRep',
|
||||
"Nombre de membres"=>'nbMbr',
|
||||
"Population"=>'popu',
|
||||
"Nombre de compétences exercées"=>'nbrComp',
|
||||
"Mode de financement"=>'modeFin',
|
||||
"DGF Bonifiée"=>'dgf',
|
||||
"DSC"=>'dsc',
|
||||
"REOM"=>'reom',
|
||||
"Autre redevance"=>'autreRdv',
|
||||
"TEOM"=>'teom',
|
||||
"Autre taxe"=>'autreTx',
|
||||
"Civilité Président"=>'presCiv',
|
||||
"Prénom Président"=>'presPre',
|
||||
"Nom Président"=>'presNom',
|
||||
"Adresse du siège_1"=>'adr1',
|
||||
"Adresse du siège_2"=>'adr2',
|
||||
"Adresse du siège_3"=>'adr3',
|
||||
"Code postal du siège Ville du siège"=>'cpVille',
|
||||
"Téléphone du siège"=>'tel',
|
||||
"Fax du siège"=>'fax',
|
||||
"Courriel du siège"=>'mail',
|
||||
"Site internet"=>'web',
|
||||
"Adresse annexe_1"=>'annAdr1',
|
||||
"Adresse annexe_2"=>'annAdr2',
|
||||
"Adresse annexe_3"=>'annAdr3',
|
||||
"Code postal annexe Ville annexe"=>'annCpVille',
|
||||
"Téléphone annexe"=>'annTel',
|
||||
"Fax annexe"=>'annFax',
|
||||
"Type"=>'typeMbr',
|
||||
"Siren membre"=>'sirenMbr',
|
||||
"Nom membre"=>'nomMbr',
|
||||
"Représentation-substitution"=>'reprMbr',
|
||||
"Compétence conservée"=>'compConsMbr',
|
||||
"Population membre"=>'popuMbr',
|
||||
"Adhésion siren"=>'sirenAdh',
|
||||
"Adhésion nom"=>'nomAdh',
|
||||
"Adhésion population"=>'popuAdh',
|
||||
),
|
||||
);
|
||||
|
||||
$tabBanatic=array(// 1=>array('table'=>'banatic_liste', 'lib'=>'Liste des groupements'),
|
||||
// 2=>array('table'=>'banatic_coord', 'lib'=>'Coordonnées des groupements'),
|
||||
3=>array('table'=>'banatic_comp', 'lib'=>'Compétences des groupements'),
|
||||
4=>array('table'=>'banatic_peri', 'lib'=>'Périmètre des EPCI à fiscalité propre'),
|
||||
);
|
||||
|
||||
if (preg_match('/<p class="s_titre">Donn..?es mises ..? jour le \: <span>(.*)<\/span><\/p>/Uis', $body, $matches))
|
||||
$dateMAJ=$matches[1];
|
||||
|
||||
if (preg_match('/<li><span>France<\/span>\s+<ul>\s+<li class="file">(.*)<\/li>\s+<li class="file">(.*)<\/li>\s+<li class="file">(.*)<\/li>\s+<li class="file">(.*)<\/li>\s+<\/ul>\s+<\/li>/Uis', $body, $matches)) {
|
||||
//print_r($matches);
|
||||
foreach($tabBanatic as $iFichier=>$tabFichier) {
|
||||
if (preg_match('/<a href="(.*)" class="doc">/Uis', $matches[$iFichier], $matches2)) $tabBanatic[$iFichier]['url']=$urlBase.$matches2[1];
|
||||
echo (date('Y/m/d - H:i:s') .' - Téléchargement de "'. $tabBanatic[$iFichier]['url'] .'"'. EOL);
|
||||
$page=getUrl($tabBanatic[$iFichier]['url'], '', '', $url, false);
|
||||
$body=$page['body'];
|
||||
if(file_put_contents('/tmp/'.$tabBanatic[$iFichier]['table'].'.csv', $body)) {
|
||||
echo (date('Y/m/d - H:i:s') .' - Ecriture de "'. $tabBanatic[$iFichier]['table'] .'"'. EOL);
|
||||
// Chargement de la table
|
||||
$row = 0;
|
||||
$sirenPre=$deptPre=0;
|
||||
if (($handle = fopen('/tmp/'.$tabBanatic[$iFichier]['table'].'.csv', 'r')) !== FALSE) {
|
||||
while (($data = fgetcsv($handle, 2054, "\t")) !== FALSE) {
|
||||
$num = count($data);
|
||||
if ($row==0) {
|
||||
$tabEntetes=$tabEntetesComp=array();
|
||||
for ($c=0; $c<$num; $c++) {
|
||||
if (isset($tabZones[$tabBanatic[$iFichier]['table']][trim($data[$c])]))
|
||||
$tabEntetes[$c]=$tabZones[$tabBanatic[$iFichier]['table']][trim($data[$c])];
|
||||
elseif ($tabBanatic[$iFichier]['table']=='banatic_comp' && $c>39)
|
||||
// $tabEntetes[$c]=$data[$c];
|
||||
$tabEntetesComp[$c]=trim($data[$c]);
|
||||
elseif ($tabBanatic[$iFichier]['table']=='banatic_peri' && $c>48)
|
||||
$tabEntetesComp[$c]=trim($data[$c]);
|
||||
else {
|
||||
$taille=strlen($data[$c]);
|
||||
for($z=0; $z<$taille; $z++) {
|
||||
$car=substr($data[$c],$z,1);
|
||||
echo "$z:$car=chr(".ord($car).')'.EOL;
|
||||
}
|
||||
die(print_r($data,1).$tabBanatic[$iFichier]['table'].EOL.'c='.$c.EOL.$data[$c].EOL.$tabZones['banatic_peri'][$data[$c]].EOL.print_r($tabZones['banatic_peri'],1));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$tabInsert=$tabInsertComp=array();
|
||||
for ($c=0; $c<$num; $c++)
|
||||
if (isset($tabEntetes[$c]))
|
||||
$tabInsert[$tabEntetes[$c]]=$data[$c];
|
||||
elseif (($tabBanatic[$iFichier]['table']=='banatic_comp' && $c>39 && $data[$c]==1) ||
|
||||
($tabBanatic[$iFichier]['table']=='banatic_peri' && $c>48 && $data[$c]==1))
|
||||
$tabInsertComp[]=$tabEntetesComp[$c];
|
||||
//$iDbI->insert($tabBanatic[$iFichier]['table'], $tabInsert, false);
|
||||
if ($tabBanatic[$iFichier]['table']=='banatic_comp' ||
|
||||
$tabBanatic[$iFichier]['table']=='banatic_peri') {
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
/** Nettoyage des données **/
|
||||
switch(trim(str_replace('.','',$tabInsert['presCiv']))) {
|
||||
case 'Monsieur':
|
||||
case 'Mr':
|
||||
case 'M':
|
||||
$tabInsert['presCiv']='M'; break;
|
||||
case 'Madame':
|
||||
case 'Mme':
|
||||
$tabInsert['presCiv']='Mme'; break;
|
||||
case 'Mademoiselle':
|
||||
case 'Melle':
|
||||
case 'Mlle':
|
||||
$tabInsert['presCiv']='Mlle'; break;
|
||||
}
|
||||
$tabInsert['tel']=strtr($tabInsert['tel'],array('.'=>'',' '=>''));
|
||||
if (strlen($tabInsert['tel'])<10) unset($tabInsert['tel']);
|
||||
$tabInsert['fax']=strtr($tabInsert['fax'],array('.'=>'',' '=>''));
|
||||
if (strlen($tabInsert['fax'])<10) unset($tabInsert['fax']);
|
||||
$tabInsert['annTel']=strtr($tabInsert['annTel'],array('.'=>'',' '=>''));
|
||||
if (strlen($tabInsert['annTel'])<10) unset($tabInsert['annTel']);
|
||||
$tabInsert['annFax']=strtr($tabInsert['annFax'],array('.'=>'',' '=>''));
|
||||
if (strlen($tabInsert['annFax'])<10) unset($tabInsert['annFax']);
|
||||
|
||||
$tmp=explode(' - ', $tabInsert['region']);
|
||||
$tabInsert['region']=$tmp[0];
|
||||
$tabInsert['regionLib']=$tmp[1];
|
||||
$tabInsert['sirenRegion']=$tabRegions[$tmp[0]*1];
|
||||
|
||||
$tmp=explode(' - ', $tabInsert['dept']);
|
||||
$tabInsert['dept']=$tmp[0];
|
||||
$tabInsert['deptLib']=$tmp[1];
|
||||
if ($tabInsert['dept']==$deptPre) $tabInsert['sirenDept']=$sirenDeptPre;
|
||||
else {
|
||||
$ret2=$iDb->select( 'etablissements_old', 'siren', "source=2 AND siege=1 AND actif=1 AND adr_dep='".$tabInsert['dept']."' AND capital>=0 AND cj=7220 AND siren BETWEEN 200000000 AND 299999999", false, MYSQL_ASSOC);
|
||||
$tabInsert['sirenDept']=$sirenDeptPre=@$ret2[0]['siren'];
|
||||
$deptPre=$tabInsert['dept'];
|
||||
}
|
||||
|
||||
$tmp=explode(' - ', $tabInsert['arrond']);
|
||||
$tabInsert['arrond']=$tmp[0];
|
||||
$tabInsert['arrondLib']=$tmp[1];
|
||||
$tmp=explode(' - ', $tabInsert['commune']);
|
||||
$tabInsert['commune']=$tmp[0];
|
||||
$tabInsert['communeLib']=$tmp[1];
|
||||
if (@$tabInsert['sirenGrp']>1000) {
|
||||
if ($sirenPre==$tabInsert['sirenGrp']) $tabInsert['nicGrp']=$nicPre;
|
||||
else {
|
||||
$siren=$tabInsert['sirenGrp'];
|
||||
$ret2=$iDb->select( 'etablissements_old', 'nic', "source=2 AND siege=1 AND actif=1 AND siren=$siren", false, MYSQL_ASSOC);
|
||||
$tabInsert['nicGrp']=@$ret2[0]['nic'];
|
||||
$sirenPre=$siren; $nicPre=$tabInsert['nicGrp'];
|
||||
}
|
||||
}
|
||||
if (@$tabInsert['sirenMbr']>1000) {
|
||||
$siren=$tabInsert['sirenMbr'];
|
||||
$ret2=$iDb->select( 'etablissements_old', 'nic, adr_dep, adr_com', "source=2 AND siege=1 AND actif=1 AND siren=$siren", false, MYSQL_ASSOC);
|
||||
$tabInsert['nicMbr']=@$ret2[0]['nic'];
|
||||
$dep1=@$ret2[0]['adr_dep']*1;
|
||||
if ($dep1>96)
|
||||
$tabInsert['codeInsee']=@substr($ret2[0]['adr_dep'],0,2).$ret2[0]['adr_com'];
|
||||
elseif($dep1>0 && $dep1<10)
|
||||
$tabInsert['codeInsee']='0'.$dep1.''.$ret2[0]['adr_com'];
|
||||
else
|
||||
$tabInsert['codeInsee']=''.$dep1.''.@$ret2[0]['adr_com'];
|
||||
}
|
||||
if (@$tabInsert['sirenAdh']>1000) {
|
||||
$siren=$tabInsert['sirenAdh'];
|
||||
$ret2=$iDb->select( 'etablissements_old', 'nic', "source=2 AND siege=1 AND actif=1 AND siren=$siren", false, MYSQL_ASSOC);
|
||||
$tabInsert['nicAdh']=@$ret2[0]['nic'];
|
||||
}
|
||||
|
||||
if ($tabBanatic[$iFichier]['table']=='banatic_comp')
|
||||
$iDbI->insert('banatic_coor', $tabInsert, false);
|
||||
elseif($tabBanatic[$iFichier]['table']=='banatic_peri')
|
||||
$iDbI->insert('banatic_peri', $tabInsert, false);
|
||||
|
||||
// Ajout des compétences
|
||||
foreach ($tabInsertComp as $iComp=>$cComp) {
|
||||
$iDbI->insert('banatic_comp', array('sirenGrp'=>$tabInsert['sirenGrp'], 'codComp'=>$cComp, 'dateInsert'=>date('YmdHis')), false);
|
||||
mysql_error();
|
||||
}
|
||||
//$tabInsertComp[]=$tabEntetes[$c];
|
||||
}
|
||||
/*print_r($tabInsert);
|
||||
print_r($tabInsertComp);
|
||||
die();*/
|
||||
}
|
||||
$row++;
|
||||
}
|
||||
fclose($handle);
|
||||
}
|
||||
}
|
||||
|
||||
//convertXLStoCSV('/tmp/'.$tabBanatic[$iFichier]['table'].'.xls','/tmp/'.$tabBanatic[$iFichier]['table'].'.csv');
|
||||
}
|
||||
print_r($tabBanatic);
|
||||
}
|
||||
|
||||
//print_r($page);
|
||||
die($dateMAJ.EOL);
|
||||
}
|
||||
|
||||
//$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee BETWEEN 85068 AND 91000 GROUP BY codeInsee');// "`Code Insee`<'10000'");
|
||||
$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','siren IS NULL ORDER BY codeInsee ASC');// "`Code Insee`<'10000'");
|
||||
foreach ($lstCom as $i=>$tabCom) {
|
||||
$numInsee=$tabCom['codeInsee'];
|
||||
$dep=substr($numInsee,0,2);
|
||||
@ -29,6 +373,7 @@ foreach ($lstCom as $i=>$tabCom) {
|
||||
$com=substr($numInsee,3,2);
|
||||
} else
|
||||
$com=substr($numInsee,2,3);
|
||||
if ($doCFE) {
|
||||
$url="http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/Controleur.jsp?ddd=$dep&ccc=$com&service=lcfer&type=NULL&Valider=Valider";
|
||||
$page=getUrl($url, '', '', $referer, false, 'annuaire-cfe.insee.fr');
|
||||
$body=$page['body'];
|
||||
@ -135,10 +480,79 @@ foreach ($lstCom as $i=>$tabCom) {
|
||||
$str=$tabCom['codeInsee'].";0;;;".$tabCom['LibCom']."\n";
|
||||
echo $str;
|
||||
}
|
||||
/*if ($sleep) randsleep(5, 15);//7,21);
|
||||
else randsleep(2, 7);*/
|
||||
// sleep(2);
|
||||
}
|
||||
|
||||
if ($doAMF) {
|
||||
$url="http://www.amf.asso.fr/annuaire/index.asp?refer=commune&dep_n_id=$dep&NUM_INSEE=$numInsee";
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
//print_r($page);
|
||||
|
||||
$civ=$nom=$prenom=$tel=$fax=$web='';
|
||||
$siren=0;
|
||||
|
||||
|
||||
if (preg_match('/Téléphone \: <strong>(.*)<\/strong>/Uis', $body, $matches)) {
|
||||
//print_r($page);
|
||||
$tel=$matches[1];
|
||||
//die($tel);
|
||||
}
|
||||
if (preg_match('/Fax \: <strong>(.*)<\/strong>/Uis', $body, $matches))
|
||||
$fax=$matches[1];
|
||||
if (preg_match('/<p>Site web : <a href="(.*)" target="_blank">/Uis', $body, $matches))
|
||||
$web=$matches[1];
|
||||
//http://www.yeun-elez.com/brasparts.php" target="_blank"><span style="color:#"><strong>www.yeun-elez.com/brasparts.php</strong>
|
||||
|
||||
if (preg_match('/<div style="padding-bottom\:30px; padding-top\:10px;">Nom du Maire \: <strong>(.*)<\/strong><\/div>/Uis', $body, $matches)) {
|
||||
$tabNom=explode(' ', $matches[1]);
|
||||
$civ=$tabNom[0];
|
||||
$prenom=$tabNom[1];
|
||||
$nom=$tabNom[2];
|
||||
if (isset($tabNom[3])) die();
|
||||
|
||||
//$depLib=$matches[2];
|
||||
//$comLib=$matches[3];
|
||||
}
|
||||
|
||||
$ret2=$iDb->select( 'etablissements_old',
|
||||
'id, siren, nic, cj, raisonSociale, adr_ville, adr_dep, adr_com, dateInsert*1 AS dateInsert, dateUpdate*1 AS dateUpdate',
|
||||
"source=2 AND siege=1 AND actif=1 AND adr_dep=$dep AND capital>=0 AND cj=7210 AND adr_com=$com AND siren BETWEEN 200000000 AND 299999999", false, MYSQL_ASSOC);
|
||||
$siren=@$ret2[0]['siren'];
|
||||
$nic=@$ret2[0]['nic'];
|
||||
//$rsAct=$ret2[0]['raisonSociale'];
|
||||
|
||||
$tabUpdate=array( 'siren' => $siren,
|
||||
'nic' => $nic,
|
||||
'tel' => $tel,
|
||||
'fax' => $fax,
|
||||
'web' => $web,
|
||||
'maireCiv' => $civ,
|
||||
'maireNom' => $nom,
|
||||
'mairePrenom'=> $prenom,
|
||||
'dateMajAMF'=>date('Ymd'));
|
||||
echo $tabCom['codeInsee'].";0;;;".$tabCom['LibCom'].";$siren;$nic;$tel;$fax;$web;$civ $nom $prenom".EOL;
|
||||
if (!$iDb->update('villes', $tabUpdate, "codeInsee='$numInsee'", false))
|
||||
die(mysql_error());
|
||||
//M. Hugues FOURAGE</strong></div>
|
||||
if (!$modeDebug) randsleep(7, 21);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function convertXLStoCSV($infile,$outfile)
|
||||
{
|
||||
$fileType = PHPExcel_IOFactory::identify($infile);
|
||||
$objReader = PHPExcel_IOFactory::createReader($fileType);
|
||||
|
||||
$objReader->setReadDataOnly(true);
|
||||
$objPHPExcel = $objReader->load($infile);
|
||||
|
||||
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
|
||||
$objWriter->save($outfile);
|
||||
}
|
||||
|
||||
|
||||
die();
|
||||
?>
|
294
batch/getCncc.php
Normal file
294
batch/getCncc.php
Normal file
@ -0,0 +1,294 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
$tabZones=array(
|
||||
'nom'=>'<th>Nom :(?:.*)<td>(.*)</td>',
|
||||
'adresse'=>'<th>Adresse :(?:.*)<td>(.*)<br />',
|
||||
'adresse2'=>'<th>Adresse :(?:.*)<td>(?:.*)<br />(.*)?<br />',
|
||||
'cp'=>'<th>Adresse :(?:.*)<td>(?:.*)<br />(?:.*)?<br />(\d\d\d\d\d) ',
|
||||
'ville'=>'<th>Adresse :(?:.*)<td>(?:.*)<br />(?:.*)?<br />(?:\d\d\d\d\d) (.*)</td>',
|
||||
'tel'=>'<th>Tél. :(?:.*)<td>(.*)</td>',
|
||||
'fax'=>'<th>Fax :(?:.*)<td>(.*)</td>',
|
||||
'annee'=>'<th>Année d\'inscription :(?:.*)<td>(.*)</td>',
|
||||
'mail'=>'Mail :(?:.*)<td>(?:.*);">(.*)</a></td>',
|
||||
'web'=>'<th>Site web :(?:.*)<td>(.*)</td>',
|
||||
'numCRCC'=>'<th>Compagnie régionale :(?:.*)page=fiche_crcc&id=(.*)&parente=',
|
||||
'fj'=>'<th>Forme juridique :(?:.*)<td>(.*)</td>',
|
||||
'pays'=>'<th>Agréé par (?:.*)<td>(.*)</td>',
|
||||
'reseau'=>'<th>Réseau :(?:.*)<td>(.*)</td>',
|
||||
'adh[nom,idAdh]'=>'<td style="padding-left:20px;">(?:.*)<strong>(.*)</strong>(?:.*)page=fiche&id=(.*)&r=&parente=',
|
||||
);
|
||||
|
||||
$tabCRC=array( '_03'=>'Agen',
|
||||
'_06'=>'Aix en Provence - Bastia',
|
||||
'_09'=>'Amiens',
|
||||
'_12'=>'Angers',
|
||||
'_13'=>'Basse-Terre',
|
||||
'_15'=>'Besançon',
|
||||
'_18'=>'Bordeaux',
|
||||
'_21'=>'Bourges',
|
||||
'_24'=>'Caen',
|
||||
'_27'=>'Chambéry',
|
||||
'_30'=>'Colmar',
|
||||
'_33'=>'Dijon',
|
||||
'_36'=>'Douai',
|
||||
'_95'=>'Fort-de-France',
|
||||
'_39'=>'Grenoble',
|
||||
'_42'=>'Limoges',
|
||||
'_45'=>'Lyon',
|
||||
'_48'=>'Metz',
|
||||
'_51'=>'Montpellier',
|
||||
'_54'=>'Nancy',
|
||||
'_57'=>'Nîmes',
|
||||
'_60'=>'Nouméa',
|
||||
'_63'=>'Orléans',
|
||||
'_66'=>'Paris',
|
||||
'_67'=>'Paris: "CAC inscrits dans le cadre de l\'art. L822-1-3"',
|
||||
'_69'=>'Pau',
|
||||
'_72'=>'Poitiers',
|
||||
'_75'=>'Reims',
|
||||
'_78'=>'Rennes',
|
||||
'_81'=>'Riom',
|
||||
'_84'=>'Rouen',
|
||||
'_07'=>'Saint-Denis de la Réunion',
|
||||
'_87'=>'Toulouse',
|
||||
'_90'=>'Versailles');
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
$modeDebug=$modeFiches=false;
|
||||
$numCRCC=0;
|
||||
$strCRCC='';
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des tribunaux compétents pour les codes insee des communes depuis le site du ministère de la justice.
|
||||
/**@todo : Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!**/
|
||||
|
||||
Options :
|
||||
-d Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-f Mode fiche
|
||||
-r:XX Numéro de la CRCC
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case 'r': $numCRCC=substr($argv[$i],3); break;
|
||||
case 'f': $modeFiches=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDB('sdv1');
|
||||
$table='tabCNCC';
|
||||
$urlBase="http://annuaire.cncc.fr/index.php?page=liste";
|
||||
$urlFiche="http://annuaire.cncc.fr/index.php?page=fiche&id=";
|
||||
|
||||
if ($numCRCC>0 && !@array_key_exists("_$numCRCC", $tabCRC))
|
||||
die("Numéro de CRCC inexistant : $numCRCC".EOL);
|
||||
elseif (!$modeFiches)
|
||||
$strCRCC=" de la CRCC '".$tabCRC["_$numCRCC"]."'";
|
||||
elseif ($modeFiches) {
|
||||
$ret=$iDb->select('tabCNCC', 'id, type, numCRCC, nom', "dateUpdate=0", false, MYSQL_ASSOC);
|
||||
$nb=count($ret);
|
||||
foreach($ret as $i=>$tabCAC) {
|
||||
$id=$tabCAC['id'];
|
||||
$url=$urlFiche.$id;
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
//print_r($page);
|
||||
$tabHtml=@html2array($body, $tabZones);
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$id;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$id AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif ($zone=='mail')
|
||||
$tabInsert[$zone]=str_replace('[arrobase]','@',$data);
|
||||
else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
$iDb->update($table, $tabInsert, "id=$id", false);
|
||||
echo date ('Y/m/d - H:i:s')." - $i/$nb : Mise à jour du CAC n°$id, ".$tabCAC['nom'].'...'.EOL;
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
die();
|
||||
}
|
||||
|
||||
$tabZones=array('type'=>'<td align="center"><img src="_img/picto_type_(PM|PP).gif"',
|
||||
'id'=>'page=fiche&id=(.*)&r=',
|
||||
'nom'=>'page=fiche&id=(?:.*)&r=(?:.*)">(.*)</a></td>',
|
||||
);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des CAC".$strCRCC.'...'.EOL;
|
||||
|
||||
$listeCAC=array();
|
||||
|
||||
$post=array('recherche'=>1,
|
||||
'nature_fiche'=>'toutes',
|
||||
'nom_societe'=>'',
|
||||
'cp_ville'=>'',
|
||||
'crcc'=>$numCRCC,
|
||||
'x'=>0,
|
||||
'y'=>10);
|
||||
$page=getUrl($urlBase, '', $post, '', false);
|
||||
$referer=$urlBase;
|
||||
$body=$page['body'];
|
||||
|
||||
if (preg_match('/<span class="float-left">Nombre de résultats \:(.*)<\/span>/Uis', $body, $matches)) {
|
||||
$nbCAC=trim($matches[1]);
|
||||
$nbPages=ceil($nbCAC/15);
|
||||
}
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Liste de $nbCAC CAC sur $nbPages pages.".EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Page ";
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
$pageCour=1;
|
||||
while(1) {
|
||||
echo "$pageCour/$nbPages, ";
|
||||
$tmpListe=explode('<tr class="ligne_', $body);
|
||||
foreach ($tmpListe as $i=>$tmpCAC) {
|
||||
if ($i==0) continue;
|
||||
$tmpCAC=preg_replace('/<\/table>.*$/Uis', '', $tmpCAC);
|
||||
//echo $i.EOL.$tmpCAC;
|
||||
$tabHtml=@html2array($tmpCAC, $tabZones);
|
||||
$listeCAC[]=$tabHtml;
|
||||
}
|
||||
|
||||
$pageCour++;
|
||||
if ($pageCour>$nbPages) break;
|
||||
//if ($pageCour>100) break;
|
||||
$url=$urlBase.'&p='.$pageCour;
|
||||
$page=getUrl($url, $cookie, '', $referer, false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
foreach ($listeCAC as $i=>$tabCAC) {
|
||||
echo $tabCAC['type']."\t".$tabCAC['id']."\t".$tabCAC['nom'].EOL;
|
||||
//$tabCAC['nom']=utf8_decode($tabCAC['nom']);
|
||||
if ($numCRCC>0) $tabCAC['numCRCC']=$numCRCC;
|
||||
//else $tabCAC['numCRCC']=NULL;
|
||||
$tabCAC['dateInsert']=date('YmdHis');
|
||||
$iDb->insert($table, $tabCAC, false);
|
||||
if (mysql_errno()<>0 && mysql_errno()<>1062) echo mysql_error().EOL;
|
||||
}
|
||||
|
||||
die();
|
||||
/*
|
||||
|
||||
$iDeb=$ret[0][0];
|
||||
$nbVides=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Dernier id entreprise '$table' = $iDeb".EOL;
|
||||
µ/
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
//http://www.qualifelec.fr/recherche/fiche.php?idadh=8148&PHPSESSID=i1jgdorhdighojasq5otfpc1v67drkqi
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
$ret=$iDb->select($table, 'raiSoc', "id=$i", false);
|
||||
if (@$ret[0][0]<>'') continue;
|
||||
|
||||
$url=$urlBase.$i;
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$i;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
|
||||
$nbVides++;
|
||||
if ($nbVides<20) continue;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
$nbVides=0;
|
||||
|
||||
unset($tabInsert['qualifs']);
|
||||
|
||||
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
|
||||
$urlLogo='http://www.qualifelec.fr/';
|
||||
die($tabInsert['urlImg']);
|
||||
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
|
||||
$extension=substr(strrchr($urlLogo,'.'),1);
|
||||
if (!file_exists("/home/data/logos/$siren.$extension")) {
|
||||
$referer='';
|
||||
$tDeb=microtime(true);
|
||||
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
|
||||
$duree=round(microtime(true)-$tDeb,3);
|
||||
$body=$page['body'];
|
||||
$taille=round(strlen($body)/1024,1);
|
||||
file_put_contents("/home/data/logos/$siren.$extension",$body);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tabInsert['urlImg']);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
*/
|
||||
?>
|
@ -36,7 +36,7 @@ Options :
|
||||
$iRncs=new MRncs();
|
||||
$iGreffe=new MGreffes();
|
||||
|
||||
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=0;
|
||||
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=$nbSiretRetraitement=0;
|
||||
$modeDebug=false; // Mode débug
|
||||
$questions=true; // Questions interactives autorisées
|
||||
$loadInpiLocal=true; // Charger d'abord les derniers jugements INPI IMR locaux
|
||||
@ -177,7 +177,7 @@ Options :
|
||||
$tabInsert['inter'.$iInsert.'nom']=$tabMandSav[$typeMand]['nom'];
|
||||
$iInsert++;
|
||||
if ($iInsert==6) {
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, plus de 4 intervenants dans la procédure pour $siren".EOL.print_r($tabMandSav, true).EOL.
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, plus de 4 intervenants dans la procédure pour $siren".EOL.print_r($tabMandSav, true).EOL.
|
||||
"Annonce en base :".EOL.
|
||||
print_r($tabEnbase, true).EOL.
|
||||
"Informations à mettre à jour :".EOL.
|
||||
@ -203,6 +203,21 @@ print_r($tabInsert, true).EOL);
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
}
|
||||
} else {
|
||||
|
||||
if (// Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!!
|
||||
$tabInsert['typeEven']*1==1505 || // Appel de jugement
|
||||
$tabInsert['typeEven']*1==1506 || // Infirmation Jugement
|
||||
$tabInsert['typeEven']*1==1507 || // Extrait d'arrêt de la cour d'appel
|
||||
$tabInsert['typeEven']*1==1515 || // Arrêt divers
|
||||
$tabInsert['typeEven']*1==1517 || // Rectification d'une erreur matérielle
|
||||
$tabInsert['typeEven']*1==1520 || // Ordonnance
|
||||
$tabInsert['typeEven']*1==1525 || // Appel du ministère public
|
||||
$tabInsert['typeEven']*1==1999) { // Autre procol)
|
||||
$tabInsert['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $i : Annonce INPI à retraiter manuellement ". $tabInsert['siren'] .' !'.EOL;
|
||||
$nbSiretRetraitement++;
|
||||
}
|
||||
|
||||
if (!$iDb->insert($table, array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))))) {
|
||||
echo date ('Y/m/d - H:i:s') ." - A l'insertion sur $table :".EOL;
|
||||
print_r($tabInsert);
|
||||
@ -223,7 +238,7 @@ print_r($tabInsert, true).EOL);
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Ajout du jugement $typeEven en date du $dateJugement pour $siren...".EOL;
|
||||
}
|
||||
}
|
||||
$message.=" $nbAnnInsertJ ajouts et $nbAnnUpdateJ mises à jours sur $nbAnnonces annonces.\r\n\r\n".EOL;
|
||||
$message.=" $nbAnnInsertJ ajouts et $nbAnnUpdateJ mises à jours sur $nbAnnonces annonces et $nbSiretRetraitement annonces à retraiter !\r\n\r\n".EOL;
|
||||
} else
|
||||
echo date('Y/m/d - H:i:s') ." - On ignore le chargement des annonce(s) jugements INPI IMR !".EOL;
|
||||
|
||||
@ -258,6 +273,8 @@ print_r($tabInsert, true).EOL);
|
||||
'JEP' => 1502, // Extinction du passif
|
||||
'JIG' => 1601, // Interdiction de gérer
|
||||
'LB' => 1603, // Liquidation de biens
|
||||
'OSA' => 1110, // Ouverture Sauvegarde Financière Accelérée
|
||||
'PSA' => 1115, // Plan de sauvegarde financière accélérée
|
||||
'PC' => 1411, // Plan de cession
|
||||
'PCL' => 1411, // Plan de cession avec location-gérance
|
||||
'PCM' => 1408, // Jugement lié au plan de cession
|
||||
@ -406,10 +423,13 @@ print_r($tabInsert, true).EOL);
|
||||
else
|
||||
$dateJugeKbis=Wdate::dateT('Y-m-d', 'Ymd', $dateJugeKbis);
|
||||
|
||||
$codeJugementCSF = $tab[7];
|
||||
$codeJugementCSF = trim($tab[7]);
|
||||
$tabAnn['typeEven'] = getCodeEven($codeJugementCSF)*1;
|
||||
if ($tabAnn['typeEven']==0) {
|
||||
if ($tabAnn['typeEven']==0 && $codeJugementCSF<>'') {
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CCJ_CSFR (Code Jugement CSF) inconnu '$codeJugementCSF' !".EOL;
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com,ylenaour@scores-decisions.com', "Chargement CSF : Problème de code Jugement Inconnu '$codeJugementCSF'", "Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
|
||||
//PROCéDURE DE SAUVEGARDE FINANCIèRE ACCéLéRéE
|
||||
}
|
||||
|
||||
$source= trim($tab[11]);
|
||||
@ -491,7 +511,7 @@ print_r($tabInsert, true).EOL);
|
||||
$tabAnn['tribunal']=$tribunal.'*';
|
||||
if ($source<>'P' && $source<>'I') { /* On insert le jugement uniquement si on l'a pas déjà en base ! */
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren']." : '$a' - Problème de tribunal".EOL;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement CSF : Problème de tribunal', "Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Chargement CSF : Problème de tribunal', "Ligne $ligne/$nbLignes, source $source, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -506,7 +526,7 @@ print_r($tabInsert, true).EOL);
|
||||
if ($tabAnn['typeEven']<>1445) {
|
||||
// L'entreprise n'est pas connue comme en Procol et le jugement à mois de 6 mois !
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne/$nbLignes, source JC, siren=".$tabAnn['siren']." : '$a'".EOL;
|
||||
sendMail('production@scores-decisions.com', 'prod@scores-decisions.com', 'Chargement CSF : Procol inconnue', "Ligne $ligne/$nbLignes, source Kairos via CSF, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Chargement CSF : Procol inconnue', "Ligne $ligne/$nbLignes, source Kairos via CSF, siren=".$tabAnn['siren'].EOL."$a".EOL.print_r($tabAnn, true).EOL);
|
||||
} else continue;
|
||||
} else continue;
|
||||
} else {
|
||||
@ -566,7 +586,7 @@ Ordonnance de Monsieur le Pr
|
||||
410946008 : Jugement kbis du 20100413. DATE TEXTE !
|
||||
*/
|
||||
echo "$siren : Jugement kbis du $dateJugeKbis. DATE TEXTE NON TROUVEE !!!".EOL;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, date texte non trouvée pour le siren $siren :
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Erreur : Chargement annonces Greffes', "Attention, date texte non trouvée pour le siren $siren :
|
||||
$texte
|
||||
Jugement kbis du ".$tabAnn['dateJugement'].EOL);
|
||||
echo $texte.EOL;
|
||||
@ -595,6 +615,28 @@ Ordonnance de Monsieur le Pr
|
||||
echo $texte.EOL;
|
||||
//if ($modeDebug) $line = trim(fgets(STDIN));
|
||||
|
||||
if (preg_match('/Arr.t.{1,15}Cour.{1,15}Appel.{1,75}INFIRM/is', $texte, $matches)) {
|
||||
if (preg_match('INFIRM/is', $texte, $matches))
|
||||
$tabAnn['typeEven']=1506; // Rétractation de jugement => Infirmation Jugement
|
||||
else
|
||||
$tabAnn['typeEven']=1507; // Arret de la cours d'appel
|
||||
$tabAnn['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Annonce à retraiter manuellement ". $tabAnn['siren'] .' !'.EOL;
|
||||
$nbSiretRetraitement++;
|
||||
} elseif (// Pour les Procol suivantes, on redemande le sirenage et surtout l'affectation du code Even !!!
|
||||
$tabAnn['typeEven']*1==1505 || // Appel de jugement
|
||||
$tabAnn['typeEven']*1==1506 || // Infirmation Jugement
|
||||
$tabAnn['typeEven']*1==1507 || // Extrait d'arrêt de la cour d'appel
|
||||
$tabAnn['typeEven']*1==1515 || // Arrêt divers
|
||||
$tabAnn['typeEven']*1==1517 || // Rectification d'une erreur matérielle
|
||||
$tabAnn['typeEven']*1==1520 || // Ordonnance
|
||||
$tabAnn['typeEven']*1==1525 || // Appel du ministère public
|
||||
$tabAnn['typeEven']*1==1999) { // Autre procol)
|
||||
$tabAnn['sirenValide']=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Annonce à retraiter manuellement ". $tabAnn['siren'] .' !'.EOL;
|
||||
$nbSiretRetraitement++;
|
||||
}
|
||||
|
||||
if (preg_match('/CESSATION.{1,35}PAIEMENTS(.*)/is', $texte, $matches)) {
|
||||
if (preg_match("/FIXE AU\s+$regExDate.{1,15}CESSATION.{1,35}PAIEMENTS/is", $texte, $matches2))
|
||||
$tabAnn['dateCessationPaiement']=Wdate::dateT('d/m/Y', 'Ymd',trim(strtr($matches2[1], array('.'=>'/','-'=>'/'))));
|
||||
@ -704,7 +746,7 @@ Ordonnance de Monsieur le Pr
|
||||
}
|
||||
//$tabAnn['dateInsert']=$dateInsert;
|
||||
|
||||
if (isset($tabAnn['tribunal']) && strlen($tabAnn['tribunal'])<3) $tabAnn['tribunal']='INCONU';
|
||||
if (!isset($tabAnn['tribunal']) || strlen($tabAnn['tribunal'])<3) $tabAnn['tribunal']='INCONU';
|
||||
if (isset($tabAnn['inter5id']) || isset($tabAnn['inter5type']) || isset($tabAnn['inter5nom'])) {
|
||||
unset($tabAnn['inter5type']);
|
||||
unset($tabAnn['inter5id']);
|
||||
@ -794,9 +836,9 @@ Ordonnance de Monsieur le Pr
|
||||
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siren/siret invalides !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siren/siret invalides et $nbSiretRetraitement annonces à retraiter !".EOL;
|
||||
$message.="Le fichier n°$i, $nomFichier vient d'être chargé :\r\n";
|
||||
$message.=" $nbInsert ajouts et $nbUpdate mises à jours sur $nbLignes lignes ($nbSiretInvalides siren/siret invalides).".EOL;
|
||||
$message.=" $nbInsert ajouts et $nbUpdate mises à jours sur $nbLignes lignes ($nbSiretInvalides siren/siret invalides et $nbSiretRetraitement annonces à retraiter).".EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des défaillances.".EOL;
|
||||
}
|
||||
@ -805,7 +847,7 @@ Ordonnance de Monsieur le Pr
|
||||
echo date ('Y/m/d - H:i:s') . " - Aucun fichier CSF à traiter !".EOL;
|
||||
}
|
||||
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement annonces Greffes', $message);
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', 'Chargement annonces Greffes', $message);
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement annonces Greffes', $message);
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement.".EOL;
|
||||
die();
|
||||
|
@ -7,6 +7,450 @@ include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
/*
|
||||
00150 Taux de change DGI
|
||||
00151 Taux de change BCE
|
||||
00152 Taux de change Douanes
|
||||
00153 Taux de change Banque Mondiale
|
||||
00159 Taux de change S&D Taux de change du site http://fxtop.com
|
||||
*/
|
||||
|
||||
/** Taux de change DGI (Source 150)
|
||||
**/
|
||||
// Données relatives aux taux (Fichier txt - 272,0 Ko)
|
||||
$urlListeTauxDGI='http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/tauxtxt';
|
||||
// Données relatives aux monnaies (Fichier txt - 18,2 Ko)
|
||||
$urlListeDevDGI='http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/monnaietxt';
|
||||
// Données relatives aux pays (Fichier txt - 29,0 Ko)
|
||||
//http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/paystxt
|
||||
// Données relatives aux barèmes des frais de mission des personnels civils de l'État (Fichier txt - 64,5 Ko)
|
||||
//http://www.economie.gouv.fr/dgfip/fichiers_taux_chancellerie/missiontxt
|
||||
|
||||
/** Taux de change BCE (Source 151)
|
||||
**/
|
||||
$urlListeTauxBCE='https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip';
|
||||
// Histo http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip
|
||||
|
||||
/** Taux de change des Douanes (Source 152)
|
||||
**/
|
||||
$urlListeTauxDouanes='https://pro.douane.gouv.fr/download/downloadurl.asp?file=dropbo/drop.zip';
|
||||
//$urlListeTauxDouanesIni='https://pro.douane.gouv.fr/debweb/cf.srv?etape=initTelechargementTauxTaux';
|
||||
//$urlListeTauxDouanesBase='https://pro.douane.gouv.fr/debweb/';
|
||||
|
||||
/** Taux de change de la Banque Mondiale (Source 153)
|
||||
**/
|
||||
$urlListeTauxBqMonde='http://api.worldbank.org/v2/fr/indicator/pa.nus.fcrf?downloadformat=csv';
|
||||
|
||||
//http://fxtop.com/dev/submithisto.php?FORMAT=CSV&MA=0&YA=1&C1=EUR&C2=USD&A=1&DD1=01&MM1=01&YYYY1=2004&DD2=31&MM2=03&YYYY2=2014&LANG=fr
|
||||
|
||||
$modeDebug=$listeTaux=false;
|
||||
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère l'historique des cours des devises par rapport à l'euro sur différents serveurs.
|
||||
|
||||
options :
|
||||
-v Mode verbose
|
||||
-l Liste les derniers taux
|
||||
";/*
|
||||
Sans aucun paramètre, récupère le dernier cours pour chaque devise par rapport à l'euro.
|
||||
Sinon:
|
||||
-d:JJ/MM/AAAA Date de début de période (*)
|
||||
-f:JJ/MM/AAAA Date de fin de période (*)
|
||||
-n:X Intervalle MIN en secondes entre les requêtes (défaut=$tmin)
|
||||
-i:X \" MAX \" \" \" \" \" (défaut=$tmax)
|
||||
-p Récupération de la dernière liste des pays (par défaut, une fois par mois, le 1er du mois)
|
||||
-h Récupération de l'historique complet
|
||||
-c=DEV Récupération limité à la devise passée en paramètre
|
||||
|
||||
* : par défaut, le programme récupère le dernier cour pour le jour précédent !
|
||||
";*/
|
||||
//$tabCurrency=array();
|
||||
$argv=$_SERVER['argv'];
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'l': $listeTaux=true; break;
|
||||
case '-': die($strInfoProg); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
|
||||
}
|
||||
}/* else {
|
||||
$tabCurrency[]=$argv[$i];
|
||||
}*/
|
||||
}
|
||||
|
||||
$iDb=new WDb('sdv1');
|
||||
$iDb2=new WDb();
|
||||
|
||||
if ($listeTaux) {
|
||||
$ret=$iDb2->select('tabDevises', 'devIso', "devNewIso='' ORDER BY devIso ASC", false, MYSQL_ASSOC);
|
||||
$tabDevises=array();
|
||||
foreach ($ret as $i=>$tmp) {
|
||||
$tabDevises[$tmp['devIso']]=array();
|
||||
}
|
||||
$ret=$iDb->select('devise_cours', 'devise, source, `date`*1 AS dateJour, valeur, DATE(dateInsert) as jourInsert', '`date`>=20100101 GROUP BY devise, `date`, source', false, MYSQL_ASSOC);
|
||||
foreach ($ret as $i=>$tmp) {
|
||||
switch($tmp['source']*1) {
|
||||
// Taux de change DGI
|
||||
case 150: $tabDevises[$tmp['devise']][$tmp['dateJour']]['DGI']=$tmp['valeur']; break;
|
||||
// Taux de change BCE
|
||||
case 151: $tabDevises[$tmp['devise']][$tmp['dateJour']]['BCE']=$tmp['valeur']; break;
|
||||
// Taux de change Douanes
|
||||
case 152: $tabDevises[$tmp['devise']][$tmp['dateJour']]['DOU']=$tmp['valeur']; break;
|
||||
// Taux de change BQM
|
||||
case 153: $tabDevises[$tmp['devise']][$tmp['dateJour']]['BQM']=$tmp['valeur']; break;
|
||||
default; continue; break;
|
||||
}
|
||||
}
|
||||
//print_r($tabDevises);
|
||||
|
||||
$dateDeb='20040101';
|
||||
$dateDeb='20100101';
|
||||
$dateFin=date('Ymd');
|
||||
echo "Devise\tDateCour\tTxDGI\tTxBCE\tTxDouane\tTxBanqueMondiale".EOL;
|
||||
foreach ($tabDevises as $devise=>$tabDates) {
|
||||
$dateCour=$dateDeb;
|
||||
$txDGI_pre=$txBCE_pre=$txDOU_pre=$txBQM_pre='-';
|
||||
while ($dateCour<$dateFin) {
|
||||
echo "$devise\t$dateCour\t";
|
||||
if (isset($tabDevises[$devise][$dateCour]['DGI'])) echo $tabDevises[$devise][$dateCour]['DGI']; else echo $txDGI_pre;
|
||||
echo "\t";
|
||||
if (isset($tabDevises[$devise][$dateCour]['BCE'])) echo $tabDevises[$devise][$dateCour]['BCE']; else echo $txBCE_pre;
|
||||
echo "\t";
|
||||
if (isset($tabDevises[$devise][$dateCour]['DOU'])) echo $tabDevises[$devise][$dateCour]['DOU']; else echo $txDOU_pre;
|
||||
echo "\t";
|
||||
if (isset($tabDevises[$devise][$dateCour]['BQM'])) echo $tabDevises[$devise][$dateCour]['BQM']; else echo $txBQM_pre;
|
||||
echo EOL;
|
||||
if (isset($tabDevises[$devise][$dateCour]['DGI'])) $txDGI_pre=$tabDevises[$devise][$dateCour]['DGI'];
|
||||
if (isset($tabDevises[$devise][$dateCour]['BCE'])) $txBCE_pre=$tabDevises[$devise][$dateCour]['BCE'];
|
||||
if (isset($tabDevises[$devise][$dateCour]['DOU'])) $txDOU_pre=$tabDevises[$devise][$dateCour]['DOU'];
|
||||
if (isset($tabDevises[$devise][$dateCour]['BQM'])) $txBQM_pre=$tabDevises[$devise][$dateCour]['BQM'];
|
||||
$dateCour=getNextDate($dateCour,1);
|
||||
}
|
||||
}
|
||||
die();
|
||||
}
|
||||
|
||||
$strMailInfo='Résultat des téléchargements et de la consolidation des différents taux de change en date du '.date('d/m/Y').' :'.EOL;
|
||||
$nbInsertDGI=$nbInsertBCE=$nbInsertDouanes=$nbInsertBqMonde=0;
|
||||
$nbUpdateDGI=$nbUpdateBCE=$nbUpdateDouanes=$nbUpdateBqMonde=0;
|
||||
$dateDevDGI =$dateDevBCE =$dateDevDouanes =$dateDevBqMonde =0;
|
||||
|
||||
/** Chargement des Taux Historiques de la DGI
|
||||
**/
|
||||
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la DGI...'. EOL);
|
||||
$page=getUrl($urlListeTauxDGI, '', '', '', false);
|
||||
if ($page['code']==200) {
|
||||
if ($modeDebug) echo (date('Y/m/d - H:i:s') .' - Lecture des devises de la DGI...'. EOL);
|
||||
$tabTmp=explode(EOL, utf8_decode($page['body']));
|
||||
foreach($tabTmp as $iL=>$tL) {
|
||||
$tC=explode("\t", $tL);
|
||||
if (count($tC)<3) break;
|
||||
// print_r($tC);
|
||||
$devIso=substr($tC[0],-3);
|
||||
$dateDev=WDate::DateT('d/m/Y','Ymd',$tC[1]);
|
||||
$taux=1.0*(substr($tC[2],0,3).'.'.substr($tC[2],3,10));
|
||||
//echo "$iL:$devIso".EOL;
|
||||
if ($dateDev>$dateDevDGI) $dateDevDGI=$dateDev;
|
||||
$tabInsert=array( 'devise'=>$devIso,
|
||||
'source'=>150,
|
||||
'date' =>$dateDev,
|
||||
'valeur'=>$taux,
|
||||
);
|
||||
//print_r($tabInsert);die();
|
||||
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
|
||||
$nbInsertDGI++;
|
||||
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=150 AND `date`='$dateDev'", false))
|
||||
$nbUpdateDGI++;
|
||||
//die(print_r($tabInsert, 1));
|
||||
}
|
||||
$dateDevDGI=WDate::DateT('Ymd','d/m/Y',$dateDevDGI);
|
||||
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la DGI : $nbInsertDGI taux ajoutés et $nbUpdateDGI validations.". EOL);
|
||||
$strMailInfo.=" - ajout de $nbInsertDGI taux pour les devises DGI ($nbUpdateDGI taux déjà en base, derniers taux du $dateDevDGI),".EOL;
|
||||
} else
|
||||
$strMailInfo.=" - ERREUR lors de la récupération du flux DGI !".EOL;
|
||||
|
||||
/** Chargement des Taux Historiques de la BCE
|
||||
**/
|
||||
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la BCE...'. EOL);
|
||||
$page=getUrl($urlListeTauxBCE, '', '', '', false);
|
||||
if ($page['code']==200) {
|
||||
if (file_put_contents('/tmp/urlListeTauxBCE.zip',$page['body'])) {
|
||||
$zip = new ZipArchive();
|
||||
$zip->open('/tmp/urlListeTauxBCE.zip');
|
||||
//echo "Nombre de fichiers : " . $zip->numFiles . "\n";
|
||||
for ($i=0; $i<$zip->numFiles;$i++) {
|
||||
//echo "index : $i\n";
|
||||
$filename = $zip->getNameIndex($i);
|
||||
//print_r($zip->statIndex($i));
|
||||
if ($zip->extractTo('/tmp/', $filename)) {
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture des devises de la BCE (Extraction réussie de $filename)...".EOL;
|
||||
$tabTmp=file("/tmp/$filename");
|
||||
foreach($tabTmp as $iL=>$tL) {
|
||||
$tC=explode(',', $tL);
|
||||
if ($iL==0) {//print_r($tC);
|
||||
// Gestion de l'entête (Noms des Devises)
|
||||
$tabNomDev=array();
|
||||
foreach($tC as $iC=>$iDev) {
|
||||
if ($iC==0) continue;
|
||||
if (trim($iDev)<>'') $tabNomDev[$iC]=trim($iDev);
|
||||
}
|
||||
} else {
|
||||
foreach($tC as $iC=>$iDev) {
|
||||
if ($iC==0) {
|
||||
$dateDev=$iDev;
|
||||
continue;
|
||||
}
|
||||
if (isset($tabNomDev[$iC])) {
|
||||
if ($iDev<>0) $taux=1/$iDev;
|
||||
else $taux=null;
|
||||
if (str_replace('-','',$dateDev)>$dateDevBCE) $dateDevBCE=str_replace('-','',$dateDev);
|
||||
$tabInsert=array( 'devise'=>$tabNomDev[$iC],
|
||||
'source'=>151,
|
||||
'date' =>$dateDev,
|
||||
'valeur'=>$taux,
|
||||
);
|
||||
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
|
||||
$nbInsertBCE++;
|
||||
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=151 AND `date`='$dateDev'", false))
|
||||
$nbUpdateBCE++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$dateDevBCE=WDate::DateT('Ymd','d/m/Y',$dateDevBCE);
|
||||
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la BCE : $nbInsertBCE taux ajoutés et $nbUpdateBCE validations.". EOL);
|
||||
$strMailInfo.=" - ajout de $nbInsertBCE taux pour les devises BCE ($nbUpdateBCE taux déjà en base, derniers taux du $dateDevBCE),".EOL;
|
||||
} else
|
||||
$strMailInfo.=" - ERREUR lors de la récupération du flux BCE !".EOL;
|
||||
|
||||
|
||||
|
||||
/** Chargement des Taux Historiques de la Douane
|
||||
**/
|
||||
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la Douane...'. EOL);
|
||||
$page=getUrl($urlListeTauxDouanes, '', '', '', false);
|
||||
if ($page['code']==200) {
|
||||
if (file_put_contents('/tmp/urlListeTauxDouanes.zip',$page['body'])) {
|
||||
$zip = new ZipArchive();
|
||||
$zip->open('/tmp/urlListeTauxDouanes.zip');
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la Douane : ".$zip->numFiles." fichiers à traiter.".EOL;
|
||||
for ($i=0; $i<$zip->numFiles;$i++) {
|
||||
//echo "index : $i\n";
|
||||
$filename = $zip->getNameIndex($i);
|
||||
//print_r($zip->statIndex($i));
|
||||
if ($zip->extractTo('/tmp/', $filename)) {
|
||||
// if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la Douane : Extraction réussie de $filename".EOL;
|
||||
if ($filename=='DEVISE.xml') {
|
||||
$strXml=file_get_contents("/tmp/$filename");
|
||||
if (preg_match_all('/<ligne><CHAMP1>(.*)<\/CHAMP1><CHAMP2>(.*)<\/CHAMP2><CHAMP3>(.*)<\/CHAMP3><CHAMP4>(.*)<\/CHAMP4><CHAMP5>(.*)<\/CHAMP5><\/ligne>/Uis',$strXml, $matches)) {
|
||||
foreach ($matches[1] as $iX=>$iDevise) {
|
||||
$devIso=$matches[2][$iX];
|
||||
$libDevise=utf8_decode($matches[3][$iX]);
|
||||
$tabUpdate=array( 'devIdDouane' => $iDevise,
|
||||
'devLibDouane' => $libDevise,
|
||||
'devDateDebDouane' => @WDate::DateT('d/m/Y','Y-m-d',$matches[4][$iX]),
|
||||
'devDateFinDouane' => @WDate::DateT('d/m/Y','Y-m-d',$matches[5][$iX]));
|
||||
$ret=$iDb2->select('tabDevises', 'count(*) as nb', "devIso='$devIso'", false);
|
||||
if (@$ret[0]['nb']*1==0) {
|
||||
$iDb2->insert('tabDevises', array_merge($tabUpdate, array('devIso'=>$devIso, 'dateInsert'=>date('YmdHis'))), false);
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la Douane : Ajout d'une devise ($devIso - $libDevise)".EOL;
|
||||
$strMailInfo.=" - INFORMATION lors de la mise à jour des devises de la Douane, ajout d'une devise ($devIso - $libDevise),".EOL;
|
||||
}
|
||||
else
|
||||
$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso'", false);
|
||||
|
||||
if (preg_match('/\s\((.*)\)/Ui', $libDevise, $matches2)) {
|
||||
$tabUpdate=array( 'division' => $matches2[1]);
|
||||
if (!$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso' AND division IS NULL", false))
|
||||
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif($filename=='COURSDEVISE.xml') {
|
||||
$strXml=file_get_contents("/tmp/$filename");
|
||||
if (preg_match_all('/<ligne><CHAMP1>(.*)<\/CHAMP1><CHAMP2>(.*)<\/CHAMP2><CHAMP3>(.*)<\/CHAMP3><CHAMP4>(.*)<\/CHAMP4><\/ligne>/Uis',$strXml, $matches)) {
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture des devises de la Douane (Extraction réussie de $filename)...".EOL;
|
||||
$ret=$iDb2->select('tabDevises', 'devIdDouane, devIso', 'devIdDouane IS NOT NULL', false);
|
||||
$tabDevDouanes=array();
|
||||
foreach ($ret as $tmpRet)
|
||||
$tabDevDouanes[$tmpRet['devIdDouane']]=$tmpRet['devIso'];
|
||||
foreach ($matches[1] as $iX=>$iDevise) {
|
||||
$devIso=$tabDevDouanes[$iDevise];
|
||||
$dateDev=@WDate::DateT('d/m/Y','Ymd',$matches[3][$iX]);
|
||||
if ($matches[2][$iX]*1==0) continue;
|
||||
if ($dateDev>$dateDevDouanes) $dateDevDouanes=$dateDev;
|
||||
$taux=1/$matches[2][$iX];
|
||||
$tabInsert=array( 'devise'=>$devIso,
|
||||
'source'=>152,
|
||||
'date' =>$dateDev,
|
||||
'valeur'=>$taux,
|
||||
);
|
||||
//print_r($tabInsert);die();
|
||||
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
|
||||
$nbInsertDouanes++;
|
||||
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=152 AND `date`='$dateDev'", false))
|
||||
$nbUpdateDouanes++;
|
||||
}
|
||||
$dateDevDouanes=WDate::DateT('Ymd','d/m/Y',$dateDevDouanes);
|
||||
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la Douane : $nbInsertDouanes taux et $nbUpdateDouanes validations.". EOL);
|
||||
$strMailInfo.=" - ajout de $nbInsertDouanes taux pour les devises de la Douane ($nbUpdateDouanes taux déjà en base, derniers taux du $dateDevDouanes),".EOL;
|
||||
} else
|
||||
$strMailInfo.=" - ERREUR lors de la récupération du flux Douanes !".EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$strMailInfo.=" - ERREUR lors de la récupération du flux Douanes !".EOL;
|
||||
|
||||
|
||||
|
||||
/** Taux de change de la Banque Mondiale (Source 153)
|
||||
**/
|
||||
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des devises de la Banque Mondiale...'. EOL);
|
||||
$page=getUrl($urlListeTauxBqMonde, '', '', '', false);
|
||||
if ($page['code']==200) {
|
||||
if (file_put_contents('/tmp/urlListeTauxBqMonde.zip',$page['body'])) {
|
||||
$zip = new ZipArchive();
|
||||
$zip->open('/tmp/urlListeTauxBqMonde.zip');
|
||||
//echo "Nombre de fichiers : " . $zip->numFiles . "\n";
|
||||
for ($i=0; $i<$zip->numFiles;$i++) {
|
||||
//echo "index : $i\n";
|
||||
$filename = $zip->getNameIndex($i);
|
||||
//print_r($zip->statIndex($i));
|
||||
if ($zip->extractTo('/tmp/', $filename)) {
|
||||
//echo "Extraction réussie de $filename".EOL;
|
||||
if ($filename=='pa.nus.fcrf_Indicator_fr_csv_v2.csv') {
|
||||
// Chargement des liens Pays ==> Devise
|
||||
$ret=$iDb2->select('tabPays', 'codPays3, devise', "codPays3 IS NOT NULL AND devise<>''", false);
|
||||
$tabPaysDev=array();
|
||||
foreach ($ret as $tmpRet)
|
||||
$tabPaysDev[$tmpRet['codPays3']]=$tmpRet['devise'];
|
||||
//print_r($tabPaysDev);die();
|
||||
// Lecture des Tx Annuels de la Banque Mondiale
|
||||
// echo "Extraction réussie de $filename".EOL;
|
||||
// if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Mise à jour des devises de la : Chargemenet des taux...".EOL;
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Lecture des devises de la Banque Mondiale (Extraction réussie de $filename)...".EOL;
|
||||
$tabTmp=file("/tmp/$filename");
|
||||
$iL2=0;
|
||||
$tabAnnees=$tabPays=$txUsdEur=array();
|
||||
foreach($tabTmp as $iL=>$tL) {
|
||||
$tC=explode('","', '",'.utf8_decode(trim($tL)).'"');
|
||||
if (count($tC)<4) continue;
|
||||
foreach($tC as $iC=>$tC) {
|
||||
if ($iC==2 && $tC<>'Country Code') $pays=$tC;
|
||||
elseif ($iC>4) {
|
||||
if ($iL2==0) {
|
||||
if ($tC<>'') $tabAnnees[$iC]=$tC;
|
||||
}
|
||||
elseif (isset($tabAnnees[$iC]) && isset($tabPaysDev[$pays]))
|
||||
$tabPays[$tabPaysDev[$pays]][$tabAnnees[$iC]]=$tC;
|
||||
elseif ($pays=='EMU')
|
||||
@$txUsdEur[$tabAnnees[$iC]]=$tC;
|
||||
}
|
||||
}
|
||||
$iL2++;
|
||||
}
|
||||
//print_r($txUsdEur);die();
|
||||
// Conversion USD / EUR des devises
|
||||
foreach ($tabPays as $devIso=>$tabAnnees) {
|
||||
foreach ($tabAnnees as $annee=>$tauxUSD) {
|
||||
if ($tauxUSD=='' || $txUsdEur[$annee]*1==0) continue;
|
||||
// echo 'Tx USD.EUR='.$txUsdEur[$annee].EOL;
|
||||
//if ($txUsdEur[$annee]=='')
|
||||
//if ($devIso<>'USD') // ?
|
||||
$taux=1/($tauxUSD/$txUsdEur[$annee]);
|
||||
$dateDev=$annee.'1231';
|
||||
if ($dateDev>$dateDevBqMonde) $dateDevBqMonde=$dateDev;
|
||||
|
||||
$tabInsert=array( 'devise'=>$devIso,
|
||||
'source'=>153,
|
||||
'date' =>$dateDev,
|
||||
'valeur'=>$taux,
|
||||
);
|
||||
//print_r($tabInsert);//die();
|
||||
if ($iDb->insert('devise_cours', array_merge($tabInsert, array('dateInsert'=>date('YmdHis'))), false))
|
||||
$nbInsertBqMonde++;
|
||||
elseif ($iDb->update('devise_cours', $tabInsert, "devise='$devIso' AND source=153 AND `date`='$dateDev'", false))
|
||||
$nbUpdateBqMonde++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$dateDevBqMonde=WDate::DateT('Ymd','d/m/Y',$dateDevBqMonde);
|
||||
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises de la Banque Mondiale : $nbInsertBqMonde taux et $nbUpdateBqMonde validations.". EOL);
|
||||
$strMailInfo.=" - ajout de $nbInsertBqMonde taux pour les devises Banque Mondiale ($nbUpdateBqMonde taux déjà en base, derniers taux du $dateDevBqMonde),".EOL;
|
||||
} else
|
||||
$strMailInfo.=" - ERREUR lors de la récupération du flux Banque Mondiale !".EOL;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'Chargement des devises', $strMailInfo);
|
||||
|
||||
die();
|
||||
|
||||
|
||||
|
||||
|
||||
$page=getUrl($urlListeDevDGI, '', '', '', false);
|
||||
if ($page['code']==200) {
|
||||
$tabTmp=explode(EOL, utf8_decode($page['body']));
|
||||
foreach($tabTmp as $iL=>$tL) {
|
||||
$tC=explode("\t", $tL);
|
||||
if (count($tC)<6) break;
|
||||
print_r($tC);
|
||||
$devIso=substr($tC[0],-3);
|
||||
echo "$iL:$devIso".EOL;
|
||||
$tabUpdate=array( 'devNomDGI' => $tC[1],
|
||||
'devRemDGI' => $tC[3].$tC[4],
|
||||
'devPrincipale' => $tC[5]);
|
||||
if (!$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso'", true)) {
|
||||
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
|
||||
}
|
||||
}
|
||||
/* if (file_put_contents('/tmp/urlListeDevDGI.txt',$page['body'])) {
|
||||
$zip = new ZipArchive();
|
||||
$zip->open('/tmp/urlListeDevDGI.zip');
|
||||
echo "Nombre de fichiers : " . $zip->numFiles . "\n";
|
||||
for ($i=0; $i<$zip->numFiles;$i++) {
|
||||
echo "index : $i\n";
|
||||
$filename = $zip->getNameIndex($i);
|
||||
//print_r($zip->statIndex($i));
|
||||
if ($zip->extractTo('/tmp/', $filename)) {
|
||||
echo "Extraction réussie de $filename".EOL;
|
||||
$tabTmp=file("/tmp/$filename");
|
||||
foreach($tabTmp as $iL=>$tL) {
|
||||
$tC=explode("\t", $tL);
|
||||
// print_r($tC);
|
||||
$devIso=$tC[0];
|
||||
echo "$iL:$devIso".EOL;
|
||||
$tabUpdate=array( 'devNomDGI' => $tC[1],
|
||||
'devDGI' => $tC[2],
|
||||
'devRemDGI' => $tC[3].$tC[4],
|
||||
'devActive' => $tC[5]);
|
||||
if (!$iDb2->update('tabDevises', $tabUpdate, "devIso='$devIso'", true)) {
|
||||
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
die();
|
||||
|
||||
print_r($page);
|
||||
die();
|
||||
$body=$page['body'];
|
||||
|
||||
|
||||
$repImgDrapeaux='/home/data/logos/drapeaux/';
|
||||
$tabJour=array(0=>'Dim', 1=>'Lun', 2=>'Mar', 3=>'Mer', 4=>'Jeu', 5=>'Ven', 6=>'Sam');
|
||||
|
||||
@ -79,8 +523,8 @@ else {
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDb('sdv1');
|
||||
$iDb2=new WDb();
|
||||
|
||||
|
||||
|
||||
/** Une fois par mois, récupéreation de la liste des pays et de leur devises
|
||||
**/
|
||||
@ -162,7 +606,7 @@ if($pays || date('d')*1==1) {
|
||||
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour de la liste des devise !'. EOL);
|
||||
$crea=$maj=0;
|
||||
$tabDevisesSite=array();
|
||||
$url= 'http://fxtop.com/fr/historates.php3';
|
||||
$url= 'http://fxtop.com/fr/historique-taux-change.php';
|
||||
$referer= '';
|
||||
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
|
||||
$body=$page['body'];
|
||||
@ -228,8 +672,8 @@ foreach ($tabDevises as $tabDevise) {
|
||||
echo (date('Y/m/d - H:i:s') ." - Récupération du cour du $devise par rapport à l'euro pour le $DD1/$MM1/$YYYY1...". EOL);
|
||||
else
|
||||
echo (date('Y/m/d - H:i:s') ." - Récupération du cour du $devise par rapport à l'euro pour la période du $DD1/$MM1/$YYYY1 au $DD2/$MM2/$YYYY2...". EOL);
|
||||
$url= "http://fxtop.com/fr/historates.php3?C1=$devise&C2=EUR&DD1=$DD1&MM1=$MM1&YYYY1=$YYYY1&DD2=$DD2&MM2=$MM2&YYYY2=$YYYY2&btnOK=Chercher";
|
||||
$referer= 'http://fxtop.com/fr/historates.php3';
|
||||
$url= "http://fxtop.com/fr/historique-taux-change.php?A=1&B=1&P=&I=1&C1=$devise&C2=EUR&DD1=$DD1&MM1=$MM1&YYYY1=$YYYY1&DD2=$DD2&MM2=$MM2&YYYY2=$YYYY2&btnOK=Chercher";
|
||||
$referer= 'http://fxtop.com/fr/historique-taux-change.php';
|
||||
randsleep($tmin, $tmax);
|
||||
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
|
||||
$body=$page['body'];
|
||||
@ -267,5 +711,11 @@ foreach ($tabDevises as $tabDevise) {
|
||||
else
|
||||
echo (date('Y/m/d - H:i:s') ." - Devise $devise : $nbCours valeurs du $dateMin au $dateMax...". EOL);
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
|
||||
|
||||
function getNextDate($dateCour, $nbJours=7) {
|
||||
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
|
||||
return $nextDate;
|
||||
}
|
||||
?>
|
339
batch/getElus.php
Normal file
339
batch/getElus.php
Normal file
@ -0,0 +1,339 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
$modeDebug=$modeDetail=$modeRCI=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des listes des sociétés de gestion agrées par l'AMF
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-d Remplir les fiches détaillées
|
||||
-r=13S00000 Traiter ce numéro de RCI
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'd': $modeDetail=true; break;
|
||||
case 'r': $modeRCI=trim(substr($argv[$i],3,strlen($argv[$i])-1)); break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDB('tmp');
|
||||
$table='elus';
|
||||
$urlBase='http://senat.fr/senateur/';
|
||||
$referer='http://senat.fr/senateurs/sencir.html';
|
||||
/*$urlRecherche='http://www.rci.gouv.mc/resultatRecherche';
|
||||
$urlDetailS='http://www.rci.gouv.mc/ficheSGratuit.jsp?rc=';
|
||||
$urlDetailPP='http://www.rci.gouv.mc/fichePPGratuit.jsp?rc=';
|
||||
*/
|
||||
$tabZonesS=array( 'nomPrenom'=>'<div class="title">\s+<h1 class="title-01">(.*)</h1>\s+<h2 class="subtitle-02">Sénateur (.*)(\(.*)\)</h2>',
|
||||
//'departement'=>'<div class="title">\s+<h1 class="title-01">(?:.*)</h1>\s+<h2 class="subtitle-02">Sénateur (.*)(\(.*)\)</h2>',
|
||||
//'region'=>'<div class="title">\s+<h1 class="title-01">(?:.*)</h1>\s+<h2 class="subtitle-02">Sénateur(?:.*)(\(.*)\)</h2>',
|
||||
'partiCode'=>'<li class="last">Apparenté au\s+<a href="/senateurs/(.*).html"',
|
||||
'partiLib'=>'<li class="last">Apparenté au\s+<a href="/senateurs/(?:.*).html" target="_self">(.*)</a></li>',
|
||||
'dateElection'=>'<h2 class="title title-02">Election</h2>(?:.*)<li>\s+Elu le (.*)</li>',
|
||||
'mail'=>'<a href="mailto:(.*)" class="link-color-01">',
|
||||
'dateNaiss'=>'<dt>Etat Civil</dt>\s+<dd>Né le (.*)</dd>',
|
||||
'profession'=>'<dt>Profession</dt>\s+<dd>(.*)</dd><dt>Place dans',
|
||||
);
|
||||
$tabZonesPP=array('codeRCI'=>'<b>Numéro RCI :</b>(.*)<br>',
|
||||
'etat'=>'<b>Etat :</b>(.*)<br>',
|
||||
'forme'=>'<b>Structure :</b>(.*)<br>',
|
||||
'rs'=>'<b>Commerce exercé sous le nom :</b>(.*)<br>',
|
||||
'formePP'=>'<h1 class="titre2">Etat-civil du déclarant</h1>(?:.*)<h1 class="titre3">(.*)</h1><br>',
|
||||
'nom'=>'<b>Nom :</b>(.*)<br>',
|
||||
'prenom'=>'<b>Prénom :</b>(.*)<br>',
|
||||
'nomJF'=>'<b>Nom de jeune fille :</b>(.*)<br>',
|
||||
'activite'=>'<b>Activité de l\'établissement :</b>(.*)<br>(?:\s+)</div>',
|
||||
'etab'=>'</DIV>(?:.*)<h1 class="titre2">(.*)</h1>(?:.*)<div',
|
||||
'etabType'=>'<h1 class="titre3">(.*)</h1><br>',
|
||||
'etabEns'=>'<h1 class="titre4">(.*)</h1>',
|
||||
'ensAdr1'=>'<td><b>Adresse :</b></td>(?:.*)<td>(.*)<br>(?:.*)<br>(?:.*)<br>(?:.*)</td>',
|
||||
'ensAdr2'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(.*)<br>(?:.*)<br>(?:.*)</td>',
|
||||
'ensAdr3'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(?:.*)<br>(.*)<br>(?:.*)</td>',
|
||||
'ensAdr4'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(?:.*)<br>(?:.*)<br>(.*)</td>',
|
||||
);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL;
|
||||
//$letIni=file_get_contents (REP_TEMP.$table);
|
||||
//$letIni='AVK';
|
||||
|
||||
|
||||
|
||||
|
||||
$page=getUrl($referer, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
/** Ventilation par départements **/
|
||||
if (preg_match_all('/title\-05">(.*)<\/h2>(?:.*)<ul class="list\-type\-03">(.*)<\/ul>/Uis', $body, $matches)) {
|
||||
//print_r($matches);
|
||||
//die();
|
||||
foreach($matches[1] as $i=>$libDept) {
|
||||
$listeSenateursHtm=$matches[2][$i];
|
||||
//echo "$i\t$libDept".EOL;
|
||||
/** Ventillation par député du département **/
|
||||
if (preg_match_all('/<li><A href="\/senateur\/(.*)\.html">(.*)<\/A><\/li>/Uim', $listeSenateursHtm, $matches2)) {
|
||||
foreach($matches2[1] as $i=>$urlDetail) {
|
||||
$url=$urlBase.$urlDetail.'.html';
|
||||
$nomPrenom=$matches2[2][$i];
|
||||
$tabTmp=explode(' ', $nomPrenom);
|
||||
$nom=$tabTmp[0];
|
||||
$prenom=$tabTmp[1];
|
||||
echo "$i\t$libDept\t$nomPrenom\t$nom\t$prenom\t$url".EOL;
|
||||
if (count($tabTmp[1])>2) die('Cas non prévu !!!'.EOL);
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
$tabUpdate=html2array($body, $tabZonesS);
|
||||
$tabUpdate['mandat']='senateur';
|
||||
$tabUpdate['nom']=$nom;
|
||||
$tabUpdate['prenom']=$prenom;
|
||||
$tabUpdate['libDept']=$libDept;
|
||||
$tabUpdate['url']=$url;
|
||||
$tabUpdate['dateInsert']=date('YmdHis');
|
||||
$tabUpdate['dateElection']=WDate::dateT('d M Y','Ymd', $tabUpdate['dateElection']);
|
||||
$tabUpdate['dateNaiss']=WDate::dateT('d M Y','Ymd', $tabUpdate['dateNaiss']);
|
||||
@$iDb->insert($table, $tabUpdate);
|
||||
print_r($tabUpdate);
|
||||
//die(mysql_error().EOL);
|
||||
//die();
|
||||
randsleep(7,21);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
die();
|
||||
|
||||
|
||||
|
||||
if (!$modeDetail || $modeRCI) {
|
||||
|
||||
if (!$modeRCI) {
|
||||
$tabSerialised=@file_get_contents(REP_TEMP.$table);
|
||||
if (!$tabSerialised) {
|
||||
if (!$nbLet)
|
||||
//$letIni='AAA';
|
||||
for ($l1=65; $l1<91; $l1++) {
|
||||
//if ($letIni) $l1=ord(substr($letIni,0,1));
|
||||
$L1=chr($l1);
|
||||
for ($l2=65; $l2<91; $l2++) {
|
||||
//if ($letIni) $l2=ord(substr($letIni,1,1));
|
||||
$L2=chr($l2);
|
||||
for ($l3=65; $l3<91; $l3++) {
|
||||
//if ($letIni) $l3=ord(substr($letIni,2,1));
|
||||
$letIni=false;
|
||||
$L3=chr($l3);
|
||||
$let=''.$L1.$L2.$L3;
|
||||
$tabLet[]=$let;
|
||||
}
|
||||
}
|
||||
}
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
} else
|
||||
$tabLet=unserialize($tabSerialised);
|
||||
|
||||
$nbLet=count($tabLet);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il reste $nbLet requêtes à traiter...".EOL;
|
||||
} else {
|
||||
$an=substr($modeRCI,0,2);
|
||||
//if ($an*1<1 || $an>99999) die("Erreur : N° RCI '$modeRCI' incorrect !");
|
||||
$lettre=strtoupper(substr($modeRCI,2,1));
|
||||
if ($lettre<>'S' && $lettre<>'P') die("Erreur : N° RCI '$modeRCI' incorrect !");
|
||||
$numRC=substr($modeRCI,3,5);
|
||||
if ($numRC<1 || $numRC>99999) die("Erreur : N° RCI '$modeRCI' incorrect !");
|
||||
$tabLet=array(0=>$modeRCI);
|
||||
$nbLet=2;
|
||||
}
|
||||
$nbDone=0;
|
||||
foreach ($tabLet as $j=>$let) {
|
||||
$nbDone++;
|
||||
if ($modeRCI) $url=$urlRecherche."Gratuit.jsp?mille=$an&fj=$lettre&rc=$numRC";
|
||||
else $url=$urlRecherche.'RSEGratuit.jsp?rse='.$let;
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RC Monaco '$let' ...";
|
||||
if (preg_match_all('/<a href="\.\/fiche(PP|S)Gratuit\.jsp\?rc=(.*)">(.*)<\/a>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) {
|
||||
foreach($matches[2] as $i=>$numRCI) {
|
||||
$tabEntrep=array('codeRCI'=>trim($numRCI),
|
||||
'PmPP'=>trim($matches[1][$i]),
|
||||
'forme'=>trim($matches[4][$i]),
|
||||
'rs'=>trim($matches[5][$i]),
|
||||
'etabEns'=>trim($matches[6][$i]),
|
||||
'etat'=>trim($matches[7][$i]),
|
||||
'dateInsert'=>date('YmdHis'));
|
||||
@$iDb->insert($table, $tabEntrep);
|
||||
//print_r($tabEntrep);
|
||||
}
|
||||
$i++;
|
||||
echo "$i entreprise(s)";
|
||||
} else
|
||||
echo "Pas d'entreprise";
|
||||
echo EOL;
|
||||
if (!$modeRCI) {
|
||||
unset($tabLet[$j]);
|
||||
|
||||
file_put_contents(REP_TEMP.$table, serialize(array_unique($tabLet)));
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($modeDetail || $modeRCI) {
|
||||
if ($modeRCI)
|
||||
$ret=$iDb->select($table, 'id,codeRCI,PmPP', "codeRCI='$modeRCI'", false);
|
||||
else
|
||||
$ret=$iDb->select($table, 'id,codeRCI,PmPP', "activite IS NULL OR etat='' /*AND PmPP='PP'*/ ORDER BY dateInsert DESC", false);
|
||||
$nbLet=count($ret);
|
||||
foreach ($ret as $tFiche) {
|
||||
@$nbDone++;
|
||||
$id=$tFiche['id'];
|
||||
$rci=$tFiche['codeRCI'];
|
||||
$ppS=$tFiche['PmPP'];
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RCI Monaco '$rci' ($id) - '";
|
||||
//echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
if ($ppS=='S') $urlFiche=$urlDetailS.$rci;
|
||||
elseif ($ppS=='PP') $urlFiche=$urlDetailPP.$rci;
|
||||
else die("Type '$ppS' inconnu !".EOL);
|
||||
$page=getUrl($urlFiche, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
if ($ppS=='S') $tabZones=$tabZonesS;
|
||||
elseif ($ppS=='PP') $tabZones=$tabZonesPP;
|
||||
$tabUpdate=html2array($body, $tabZones);
|
||||
if (strpos($tabUpdate['ensAdr4'],'Pour de plus amples informations')>0) $tabUpdate['ensAdr4']='';
|
||||
$iDb->update($table, $tabUpdate, "id=$id");
|
||||
echo $tabUpdate['rs']."'".EOL;
|
||||
if (!$modeRCI) {
|
||||
if ($modeDebug) randsleep(1,2);//randsleep(7,21);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
die();
|
||||
echo count($tabLet);
|
||||
//serialize
|
||||
print_r($tabLet);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
print_r($tabHtml);
|
||||
|
||||
die();
|
||||
|
||||
|
||||
$ret=$iDb->select($table, 'agrementNum', '1', false);
|
||||
foreach ($ret as $tAgrNum) {
|
||||
$agrNum=$tAgrNum['agrementNum'];
|
||||
echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
}
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
$url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15";
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
print_r($page);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$i;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
|
||||
$nbVides++;
|
||||
if ($nbVides<20) continue;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
$nbVides=0;
|
||||
|
||||
unset($tabInsert['qualifs']);
|
||||
|
||||
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
|
||||
$urlLogo='http://www.qualifelec.fr/';
|
||||
die($tabInsert['urlImg']);
|
||||
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
|
||||
$extension=substr(strrchr($urlLogo,'.'),1);
|
||||
if (!file_exists("/home/data/logos/$siren.$extension")) {
|
||||
$referer='';
|
||||
$tDeb=microtime(true);
|
||||
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
|
||||
$duree=round(microtime(true)-$tDeb,3);
|
||||
$body=$page['body'];
|
||||
$taille=round(strlen($body)/1024,1);
|
||||
file_put_contents("/home/data/logos/$siren.$extension",$body);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tabInsert['urlImg']);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
?>
|
263
batch/getFantoir.php
Normal file
263
batch/getFantoir.php
Normal file
@ -0,0 +1,263 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/dbf_class.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$urlBase='http://www.collectivites-locales.gouv.fr/files/files/gestion_locale_dgfip/national/FANTOIR.zip';
|
||||
$db_name='insee';
|
||||
$j=0;
|
||||
$modeDebug=$finFichier=false;
|
||||
$getFantoir=true;
|
||||
$tabFichiers=array();
|
||||
$separator=',';
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [FICHIERS]
|
||||
Récupération du RECME (Répertoire des Entreprises Contrôlées Majoritairement par l'État).
|
||||
|
||||
Options :
|
||||
-d Récupération du dernier FANTOIR sur le site http://www.collectivites-locales.gouv.fr/
|
||||
-t Récupération de tous les derniers RECME sur le site de l'INSEE
|
||||
-v Mode bavard
|
||||
|
||||
";
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $getFantoir=false; break;
|
||||
// case 't': $nbRecme=999; break;
|
||||
case 'v': $modeDebug=true; break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !".EOL);
|
||||
}
|
||||
} else {
|
||||
$tabFichiers[$j]=$argv[$i];
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($getFantoir) {
|
||||
$filename=REP_TEMP.'FANTOIR.zip';
|
||||
if (file_exists($filename) && date('Ymd',filemtime($filename))==date('Ymd'))
|
||||
echo date ('Y/m/d - H:i:s')." - Le dernier fichier FANTOIR a déjà été récupéré.".EOL;
|
||||
else {
|
||||
echo date ('Y/m/d - H:i:s')." - Recherche du dernier FANTOIR...".EOL;
|
||||
$tDeb=microtime(1);
|
||||
$url=$urlBase;
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
$duree=round(microtime(1)-$tDeb,1);
|
||||
$tailleMo=round(strlen($body)/(1024*1024),1);
|
||||
echo date ('Y/m/d - H:i:s')." - Récupération du dernier FANTOIR en $duree s ($tailleMo Mo).".EOL;
|
||||
file_put_contents($filename, $body);
|
||||
}
|
||||
$filename2=REP_TEMP.'FANTOIR.txt';
|
||||
if (file_exists($filename2) && date('Ymd',filemtime($filename2))==date('Ymd') && filesize($filename2)>filesize($filename)*7) {
|
||||
echo date ('Y/m/d - H:i:s')." - Le dernier fichier FANTOIR a déjà été décompressé avec succès.".EOL;
|
||||
$tabFichiers[]=$filename2;
|
||||
} else {
|
||||
echo date ('Y/m/d - H:i:s')." - Décompression du fichier à traiter : ". basename($filename) .EOL;
|
||||
$zip = zip_open($filename);
|
||||
if (is_resource($zip)) {
|
||||
while ($zip_entry = zip_read($zip)) {
|
||||
$tDeb = microtime(true);
|
||||
$filenameGz=zip_entry_name($zip_entry);
|
||||
$fp = fopen(REP_TEMP.$filenameGz, "w");
|
||||
if (zip_entry_open($zip, $zip_entry, "r")) {
|
||||
$tailleGz=zip_entry_compressedsize($zip_entry);
|
||||
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
|
||||
fwrite($fp,"$buf");
|
||||
zip_entry_close($zip_entry);
|
||||
fclose($fp);
|
||||
} else
|
||||
die(date ('Y/m/d - H:i:s') . " - ERREUR 1 : Décompression impossible de $filenameGz !".EOL);
|
||||
$tailleGz=round($tailleGz/1024,1);
|
||||
$tailleUnz=round(filesize(REP_TEMP.$filenameGz)/1024,1);
|
||||
$tFin = microtime(true);
|
||||
$tDur = round($tFin-$tDeb,1);
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier $filenameGz décompressé : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressés)".EOL;
|
||||
$fichierZip=$filename;
|
||||
$tabFichiers[]=REP_TEMP.$filenameGz;
|
||||
}
|
||||
zip_close($zip);
|
||||
} else
|
||||
die(date ('Y/m/d - H:i:s') . " - ERREUR 2 : Décompression impossible de ". basename($filename).' !'.EOL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$iDb=new WDB($db_name);
|
||||
|
||||
for ($nbFichiers=0; isset($tabFichiers[$nbFichiers]); $nbFichiers++) {
|
||||
$finFichier=false;
|
||||
$nomFichier=$tabFichiers[$nbFichiers];
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $tabFichiers[$nbFichiers] ."...".EOL;
|
||||
$fp=fopen($nomFichier, 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$nbFichiers à traiter '".$nomFichier."'".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
$dateInsert=date('YmdHis');
|
||||
$nbLignes=0; // Nombre de ligne du fichier
|
||||
while (!feof($fp))
|
||||
{
|
||||
$nbLignes++;
|
||||
$a = trim(fgets($fp, 256));
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier n°$nbFichiers, $nomFichier : $nbLignes lignes à traiter...".EOL;
|
||||
$nbLignes=$nbErreurs=0;
|
||||
rewind($fp);
|
||||
$tabDep=$tabCom=array();
|
||||
while (!feof($fp))
|
||||
{
|
||||
$nbLignes++;
|
||||
$a = trim(fgets($fp, 256));
|
||||
|
||||
$codDepartement = trim(substr($a, 0, 2 )); // Code Département
|
||||
$codDirection = trim(substr($a, 2, 1 )); // Code Direction dans le département
|
||||
$codCommune = trim(substr($a, 3, 3 )); // Code Commune
|
||||
|
||||
$idVoieCommune = trim(substr($a, 6, 4 )); // Identifiant de la voie dans la commune
|
||||
$cleRivoli = trim(substr($a, 10, 1 )); // Clé Rivoli (Numérique pour les voies, Axxx=Ens. immobiliers, Bxxx à Wxxx pour les lieux-dits, Xxxx=Pseudo Voies, Yxxx ou Zxxx=Voies provisoires à annuler)
|
||||
$libDirOuCommune= trim(substr($a, 11, 30 )); // Libellé de la Direction/Commune
|
||||
|
||||
$voieNature = substr($a, 11, 4 ); // Code nature de la voie
|
||||
$voieLib = substr($a, 15, 26 ); // Libellé de la voie
|
||||
|
||||
$typeCommune = substr($a, 42, 1 ); // Type Commune (N=Rurale, R=recensée)
|
||||
$carRUR = substr($a, 45, 1 ); // Caractère RUR (3=pseudo-recensée)
|
||||
$voieCar = substr($a, 48, 1 ); // Caractère de la voie (0=publique, 1=privée)
|
||||
$popCar = substr($a, 49, 1 ); // Caractère de population (blanc si < 3000hab, * sinon)
|
||||
$popReel = substr($a, 52, 7 ); // Population Réelle
|
||||
$popApar = substr($a, 59, 7 ); // Population à part
|
||||
$popFic = substr($a, 66, 7 ); // Population fictive
|
||||
$annulationCar = substr($a, 73, 1 ); // Caractère d'annulation (Q=annulation avec transfert)
|
||||
$annulationDate = substr($a, 74, 7 )*1; // Date d'annulation
|
||||
if ($annulationDate==0) $annulationDateYmd=0;
|
||||
else $annulationDateYmd = date('Ymd', mktime(0, 0, 0, 1, substr($a,77,3), substr($a,74,4)));// Date d'annulation
|
||||
$creationArticle= substr($a, 81, 7 )*1; // Date de création de l'article
|
||||
if ($creationArticle==0) $creationArticleYmd=0;
|
||||
else $creationArticleYmd= date('Ymd', mktime(0, 0, 0, 1, substr($a,85,3), substr($a,81,4))); // Date de création de l'article
|
||||
|
||||
$codeMajic = substr($a, 103, 5 ); // Code identifiant MAJIC de la voie = FANTOIR = RIVOLI
|
||||
$typeVoie = substr($a, 108, 1 ); // Type de voie (1=voie, 2=ensemble immobilier, 3=lieu-dit, 4=pseudo-voie, 5=voie provisoire)
|
||||
$lieuDitCar = substr($a, 109, 1 ); // Caractère du lieu-dit (1=lieu-dit bâti, 0 sinon)
|
||||
$derMotLibVoie = substr($a, 112, 8 ); // Dernier mot entièrement alphabétique du libellé de la voie
|
||||
|
||||
if ($codDepartement=='EN') {
|
||||
// Entête du fichier
|
||||
// ENEVERS 2014050120141220000000
|
||||
$origineFichier=trim(substr($a, 1, 24 )); // L'origine du fichier : caractère et libellé du CSI (Nevers).
|
||||
$dateTopad =trim(substr($a, 25, 8 )); // Références du fichier origine : (n° de version du fichier TOPO de la base TOPAD).
|
||||
$dateFantoir =trim(substr($a, 33, 7 ))*1; // La date de production du fichier.
|
||||
if ($dateFantoir>0)
|
||||
$dateFantoirYmd=date('Ymd', mktime(0, 0, 0, 1, substr($dateFantoir,4,3), substr($dateFantoir,0,4)));
|
||||
/* b. ARTICLE FIN (DERNIER ENREGISTREMENT)
|
||||
IDENTIFIANT : 1,10 A 9999999999
|
||||
IL ENREGISTRE LE NOMBRE D'ARTICLES ECRITS SUR LE FICHIER.*/
|
||||
continue;
|
||||
} elseif($codDepartement=='99') {
|
||||
// Fin du fichier
|
||||
//9999999999 7586976109370537549812000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
$finFichier=true;
|
||||
continue;
|
||||
}
|
||||
elseif ($codDepartement=='') break;
|
||||
elseif ($codCommune=='') {
|
||||
$tabInsert=array( 'numDep' => $codDepartement,
|
||||
'numDir' => $codDirection,
|
||||
'libDep' => $libDirOuCommune,
|
||||
'dateFantoirYmd'=> $dateFantoirYmd,
|
||||
'dateTopad' => $dateTopad,
|
||||
'origineFantoir'=> $origineFichier,
|
||||
'dateInsert' => $dateInsert,
|
||||
);
|
||||
$db_table='fantoirDep';
|
||||
echo "Ligne $nbLignes, DEP='$codDepartement' Dir='$codDirection:$cleRivoli:$libDirOuCommune'".EOL;
|
||||
} elseif ($idVoieCommune=='') {
|
||||
$tabInsert=array( 'numDep' => $codDepartement,
|
||||
'numDir' => $codDirection,
|
||||
'codCom' => $codCommune,
|
||||
'codComInsee' => $codDepartement.''.$codCommune,
|
||||
'libCom' => $libDirOuCommune,
|
||||
'typeCom' => $typeCommune,
|
||||
'carRUR' => $carRUR,
|
||||
'popReel' => $popReel,
|
||||
'popApar' => $popApar,
|
||||
'popFic' => $popFic,
|
||||
'popCar' => $popCar,
|
||||
'annulCar' => $annulationCar,
|
||||
'annulDat' => $annulationDate,
|
||||
'annulDatYmd' => $annulationDateYmd,
|
||||
'dateCre' => $creationArticle,
|
||||
'dateCreYmd' => $creationArticleYmd,
|
||||
'dateFantoirYmd'=> $dateFantoirYmd,
|
||||
'dateInsert' => $dateInsert,
|
||||
);
|
||||
|
||||
$db_table='fantoirCom';
|
||||
echo "Ligne $nbLignes, Commune='$codDepartement $codCommune' : '$libDirOuCommune' ($typeCommune,$carRUR) Population=$popReel/$popApar/$popFic($popCar)".EOL;
|
||||
} else {
|
||||
$tabInsert=array( 'numDep' => $codDepartement,
|
||||
'numDir' => $codDirection,
|
||||
'codCom' => $codCommune,
|
||||
'codComInsee' => $codDepartement.''.$codCommune,
|
||||
'idVoieCom' => $idVoieCommune,
|
||||
'cleRivoli' => $cleRivoli,
|
||||
'voieNature' => $voieNature,
|
||||
'voieLib' => $voieLib,
|
||||
'voieCar' => $voieCar,
|
||||
'typeCom' => $typeCommune,
|
||||
'carRUR' => $carRUR,
|
||||
'popReel' => $popReel,
|
||||
'popApar' => $popApar,
|
||||
'popFic' => $popFic,
|
||||
'popCar' => $popCar,
|
||||
'annulCar' => $annulationCar,
|
||||
'annulDat' => $annulationDate,
|
||||
'annulDatYmd' => $annulationDateYmd,
|
||||
'dateCre' => $creationArticle,
|
||||
'dateCreYmd' => $creationArticleYmd,
|
||||
'codeMajic' => $codeMajic,
|
||||
'typeVoie' => $typeVoie,
|
||||
'lieuDitCar' => $lieuDitCar,
|
||||
'derMotLibVoie' => $derMotLibVoie,
|
||||
'dateFantoirYmd'=> $dateFantoirYmd,
|
||||
'dateInsert' => $dateInsert,
|
||||
);
|
||||
$db_table='fantoirVoi';
|
||||
//echo "Ligne $nbLignes, Commune='$codDepartement $codCommune' : '$libDirOuCommune' ($typeCommune,$carRUR) Population=$popReel/$popApar/$popFic($popCar)".EOL;
|
||||
}
|
||||
|
||||
$ret=$iDb->insert($db_table, $tabInsert);
|
||||
if ($ret!=1) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$strUpdate="numDep='$codDepartement' AND numDir=$codDirection";
|
||||
switch($db_table) {
|
||||
case 'fantoirCom': $strUpdate.=" AND codCom='$codCommune'"; break;
|
||||
case 'fantoirVoi': $strUpdate.=" AND codCom='$codCommune' AND idVoieCom='$idVoieCommune'"; break;
|
||||
}
|
||||
$ret=$iDb->update($db_table, $tabInsert, $strUpdate);
|
||||
if ($ret!=1) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR n°".mysql_errno()." à l'insertion de la ligne n°$nbLignes dans la table '$db_table' :".EOL;
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose ($fp);
|
||||
}
|
||||
if ($finFichier)
|
||||
die(date ('Y/m/d - H:i:s')." - Fin du traitement avec succès.".EOL);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL;
|
||||
?>
|
@ -50,6 +50,7 @@ $tabDep=array( 'CORSE'=>'',
|
||||
'HAUTES-PYRENEES'=>'65',
|
||||
'HAUTS-DE-SEINE'=>'92',
|
||||
'HERAULT'=>'34',
|
||||
'ILE DE CLIPPERTON'=>'9M',
|
||||
'ILLE-ET-VILAINE'=>'35',
|
||||
'INDRE'=>'36',
|
||||
'INDRE-ET-LOIRE'=>'37',
|
||||
@ -76,10 +77,12 @@ $tabDep=array( 'CORSE'=>'',
|
||||
'MOSELLE'=>'57',
|
||||
'NIEVRE'=>'58',
|
||||
'NORD'=>'59',
|
||||
'NOUVELLE CALEDONIE'=>'9L',
|
||||
'OISE'=>'60',
|
||||
'ORNE'=>'61',
|
||||
'PARIS'=>'75',
|
||||
'PAS-DE-CALAIS'=>'62',
|
||||
'POLYNESIE FRANCAISE'=>'9K',
|
||||
'PUY-DE-DOME'=>'63',
|
||||
'PYRENEES-ATLANTIQUES'=>'64',
|
||||
'PYRENEES-ORIENTALES'=>'66',
|
||||
@ -92,6 +95,7 @@ $tabDep=array( 'CORSE'=>'',
|
||||
'SEINE-MARITIME'=>'76',
|
||||
'SEINE-SAINT-DENIS'=>'93',
|
||||
'SOMME'=>'80',
|
||||
'T.A.A.F.'=>'9I',
|
||||
'TARN'=>'81',
|
||||
'TARN-ET-GARONNE'=>'82',
|
||||
'TERRITOIRE DE BELFORT'=>'90',
|
||||
@ -102,6 +106,7 @@ $tabDep=array( 'CORSE'=>'',
|
||||
'VENDEE'=>'85',
|
||||
'VIENNE'=>'86',
|
||||
'VOSGES'=>'88',
|
||||
'WALLIS ET FUTUNA'=>'9J',
|
||||
'YONNE'=>'89',
|
||||
'YVELINES'=>'78',
|
||||
);
|
||||
@ -140,7 +145,7 @@ function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) {
|
||||
}
|
||||
}
|
||||
$sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
|
||||
$sql.=") TYPE=MYISAM COMMENT='".basename($nomFichier)." du ".date('d/m/Y H:i', filemtime($nomFichier))." (".round(filesize($nomFichier)/1024)." ko)';";
|
||||
$sql.=") ENGINE=MYISAM COMMENT='".basename($nomFichier)." du ".date('d/m/Y H:i', filemtime($nomFichier))." (".round(filesize($nomFichier)/1024)." ko)';";
|
||||
if ($create) {
|
||||
$sql0="DROP TABLE IF EXISTS `$table`;";
|
||||
$iDb->query($sql0);
|
||||
@ -195,6 +200,7 @@ function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) {
|
||||
if ($tabTailles[$i]<256) {
|
||||
$tabTmp=array_unique($tabTypes[$i]);
|
||||
//print_r($tabTmp);
|
||||
$strType="VARCHAR(".$tabTailles[$i].")";
|
||||
if (count($tabTmp)==1) {
|
||||
reset($tabTmp);
|
||||
switch (current($tabTmp)) {
|
||||
@ -215,7 +221,6 @@ function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) {
|
||||
return $nbLignes;
|
||||
}
|
||||
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
|
||||
@ -264,7 +269,7 @@ if ($tAll) $tRisks=$tXport=$tPollu=$tSante=true;
|
||||
echo date('Y/m/d - H:i:s')." - Début du script...".EOL;
|
||||
|
||||
/**
|
||||
** Base GASPAR
|
||||
** Base FINESS
|
||||
**/
|
||||
if ($tSante) {
|
||||
echo date('Y/m/d - H:i:s')." - Connexion à la base Finess.".EOL;
|
||||
@ -348,7 +353,7 @@ if ($tSante) {
|
||||
echo date('Y/m/d - H:i:s')." - ERREUR : Récupération du CSV impossible (pas de cookies) !".EOL;
|
||||
else
|
||||
$cookie=$matches[1][0].'; '.$matches[1][1];*/
|
||||
randsleep(7,21);
|
||||
if (!$modeDebug) randsleep(7,21);
|
||||
|
||||
$referer=$url;
|
||||
$tdeb=microtime(1);
|
||||
@ -368,6 +373,7 @@ if ($tSante) {
|
||||
} else
|
||||
echo date('Y/m/d - H:i:s')." - Récupération du CSV depuis le cache pour $dep $etab,$publ.".EOL;
|
||||
|
||||
if (@$nbResultats*1>0) { // le fichier doit contenir au moins une ligne d'entête
|
||||
$tabTmp=file("/tmp/$table.csv");
|
||||
$nbLignesCache=count($tabTmp)-1;
|
||||
|
||||
@ -388,6 +394,7 @@ if ($tSante) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// On supprime l'ancienne table
|
||||
echo date('Y/m/d - H:i:s')." - Mise en place de la nouvelle table Finess...".EOL;
|
||||
$tabErreur=array();
|
||||
@ -397,7 +404,7 @@ if ($tSante) {
|
||||
$sql="RENAME TABLE `finess` TO `finess_old`;";
|
||||
if (!$iDb->query($sql)) $tabErreur[]='RENAME TABLE '.mysql_errno().':'.mysql_error();
|
||||
// Création de la nouvelle table
|
||||
$sql="CREATE TABLE `finess` (
|
||||
$sql="CREATE TABLE `finessWeb` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`Numéro FINESS` char(9) NOT NULL,
|
||||
`SIRET` varchar(14) DEFAULT NULL,
|
||||
@ -428,7 +435,7 @@ if ($tSante) {
|
||||
if (!$iDb->query($sql)) $tabErreur[]='CREATE TABLE '.mysql_errno().':'.mysql_error();
|
||||
|
||||
// Ecritures des lignes
|
||||
$sql='INSERT INTO finess '.implode(EOL.' UNION ', $tabSelect).';';
|
||||
$sql='INSERT INTO finessWeb '.implode(EOL.' UNION ', $tabSelect).';';
|
||||
if (!$iDb->query($sql)) $tabErreur[]='INSERT INTO '.mysql_errno().':'.mysql_error().EOL.$sql;
|
||||
|
||||
if (count($tabErreur)==0) {
|
||||
@ -532,27 +539,36 @@ if ($tRisks) {
|
||||
**/
|
||||
if ($tPollu) {
|
||||
echo date('Y/m/d - H:i:s')." - Demande de récupération du fichier du Registre français des émissions polluantes.".EOL;
|
||||
|
||||
$fichierZipIREP=REP_TEMP.'Base_iREP.zip';
|
||||
if (!file_exists($fichierZipIREP) || date('Ymd',filemtime($fichierZipIREP))<>date('Ymd')) {
|
||||
$url='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/XML/dump.php';
|
||||
$cookie=$post='';
|
||||
$referer='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/';
|
||||
$page=getUrl($url, $cookie, $post, $referer);
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s')." - Début de récupération du fichier des émissions polluantes...".EOL;
|
||||
|
||||
|
||||
$url='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/downloads/Base_iREP.zip';
|
||||
$referer='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/generic.php?strType=download';
|
||||
$page=getUrl($url, $cookie, $post, $referer);
|
||||
$zip=preg_replace('/(^HTTP.*\r\nPK)/Us','PK', $page['body']);
|
||||
$fp=fopen('/tmp/Base_iREP.zip', 'w');
|
||||
$fp=fopen($fichierZipIREP, 'w');
|
||||
fwrite($fp, $zip);
|
||||
fclose($fp);
|
||||
|
||||
echo date('Y/m/d - H:i:s')." - Fichier du Registre français des émissions polluantes téléchargé.".EOL;
|
||||
|
||||
} else {
|
||||
echo date('Y/m/d - H:i:s')." - Fichier du Registre français des émissions polluantes lu dans le cache.".EOL;
|
||||
}
|
||||
$zip = new ZipArchive;
|
||||
if ($zip->open('/tmp/Base_iREP.zip') === TRUE) {
|
||||
$tabFichiersConnus=array( 'activite_gidic_etablissements.csv'=> 'activite_gidic_etablissements',
|
||||
if ($zip->open($fichierZipIREP) === TRUE) {
|
||||
$tabFichiersConnus=array( 'emissions.csv'=> 'emissions',
|
||||
'etablissements.csv'=> 'etablissements',
|
||||
'Prelevements.csv'=> 'Prelevements',
|
||||
'Prod_dechets_dangereux.csv'=> 'Prod_dechets_dangereux',
|
||||
'Prod_dechets_non_dangereux.csv'=> 'Prod_dechets_non_dangereux',
|
||||
'Trait_dechets_dangereux.csv'=> 'Trait_dechets_dangereux',
|
||||
'Trait_dechets_non_dangereux.csv'=> 'Trait_dechets_non_dangereux',
|
||||
/*
|
||||
'activite_gidic_etablissements.csv'=> 'activite_gidic_etablissements',
|
||||
'activite_ippc_etab.csv'=> 'activite_ippc_etab',
|
||||
'caracteristique_du_dechet.csv'=> 'caracteristique_du_dechet',
|
||||
'dechets.csv'=> 'dechets',
|
||||
@ -562,10 +578,13 @@ if ($tPollu) {
|
||||
'MCD_iREP.pdf'=> '',
|
||||
'polluants_liste.csv'=> 'polluants_liste',
|
||||
'prelevements_en_eau.csv'=> 'prelevements_en_eau',
|
||||
'proddechetnondang.csv'=> 'proddechetnondang',
|
||||
'projections.csv'=> 'projections',
|
||||
'rejets_etablissements.csv'=> 'rejets_etablissements',
|
||||
'traitedechetdang.csv'=> 'traitedechetdang',
|
||||
'traitedechetnondang.csv'=> 'traitedechetnondang',);
|
||||
'traitedechetnondang.csv'=> 'traitedechetnondang',
|
||||
*/
|
||||
);
|
||||
|
||||
$iDb=new WDB('pollutions');
|
||||
$tabFichiers=$tabSize=$tabTime=array();
|
||||
@ -583,7 +602,10 @@ if ($tPollu) {
|
||||
$zip->extractTo('/tmp/');
|
||||
$zip->close();
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s')." - Décompression des $i fichiers du Registre français des émissions polluantes OK.".EOL;
|
||||
|
||||
if (count($tabFichiersConnus)<>$i) {
|
||||
echo date('Y/m/d - H:i:s')." - ERREUR - Nombre de fichiers décompressés : $i fichiers dans $fichierZipIREP contre ".$tabFichiersConnus.' attendus !'.EOL;
|
||||
die();
|
||||
}
|
||||
foreach ($tabFichiers as $idxF=>$nomFichier) {
|
||||
if (in_array(basename(str_replace('.csv', '', $nomFichier)),$tabFichiersConnus)) {
|
||||
$table=str_replace('.csv', '', $tabFichiersConnus[basename($nomFichier)]);
|
||||
@ -606,7 +628,7 @@ if ($tPollu) {
|
||||
$champ[$i]=$data[$i];
|
||||
}
|
||||
$sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
|
||||
$sql.=") TYPE = MYISAM COMMENT = '".basename($nomFichier)." du ".date('d/m/Y H:i', $tabTime[$idxF])." (".round($tabSize[$idxF]/1024)." ko)'";
|
||||
$sql.=") ENGINE=MYISAM COMMENT = '".basename($nomFichier)." du ".date('d/m/Y H:i', $tabTime[$idxF])." (".round($tabSize[$idxF]/1024)." ko)'";
|
||||
if ($iDb->query($sql))
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la table $table OK...".EOL;
|
||||
else {
|
||||
@ -618,13 +640,16 @@ if ($tPollu) {
|
||||
}
|
||||
|
||||
$tabDataToInsert=array();
|
||||
|
||||
while (count($data)<$nbColonnes) {
|
||||
// En cat de saut de ligne mal géré par la source
|
||||
$data = array_merge($data,fgetcsv($fp, 5000, ';'));
|
||||
}
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
|
||||
if (strlen($data[$i])>$tabTailles[$i])
|
||||
$tabTailles[$i]=strlen($data[$i]);
|
||||
|
||||
if (gettype($data[$i])=='string') {
|
||||
if (@gettype($data[$i])=='string') {
|
||||
if (is_numeric($data[$i])) {
|
||||
if (round($data[$i]*1)<>($data[$i]*1))
|
||||
$tabTypes[$i][]='double';
|
||||
@ -632,12 +657,14 @@ if ($tPollu) {
|
||||
$tabTypes[$i][]='integer';
|
||||
} else
|
||||
$tabTypes[$i][]='string';
|
||||
} else $tabTypes[$i][]=gettype($data[$i]);
|
||||
} else $tabTypes[$i][]=@gettype($data[$i]);
|
||||
}
|
||||
|
||||
$ret=$iDb->insert($table, $tabDataToInsert);
|
||||
if ($ret!=1) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR SQL sur la table '$table', SQL no ".mysql_errno().' : '.mysql_error().EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR à l'insertion de la ligne n°$i : ". implode(';', $data) ." !".EOL;
|
||||
print_r($tabDataToInsert);
|
||||
flush();
|
||||
}
|
||||
unset($tabDataToInsert);
|
||||
@ -648,6 +675,7 @@ if ($tPollu) {
|
||||
if ($tabTailles[$i]<256) {
|
||||
$tabTmp=array_unique($tabTypes[$i]);
|
||||
print_r($tabTmp);
|
||||
$strType="VARCHAR(".$tabTailles[$i].")";
|
||||
if (count($tabTmp)==1) {
|
||||
reset($tabTmp);
|
||||
switch (current($tabTmp)) {
|
||||
@ -745,9 +773,15 @@ if ($tXport) {
|
||||
);
|
||||
randsleep(7,21);
|
||||
$page=getUrl($url, $cookie, $post, $referer);
|
||||
$zip=preg_replace('/(^HTTP.*\r\nPK)/Us','PK', $page['body']);
|
||||
if (preg_match('/^HTTP.*filename=(.*)\r\n/Us', $page['body'], $matches)) {
|
||||
$nomFichier=$matches[1];
|
||||
//$zip=/*preg_replace('/(^HTTP.*\r\nPK)/Us','PK', */$page['body'];//);
|
||||
//print_r($page);
|
||||
//die();
|
||||
if ($page['code']==200 && @trim($page['header']['Content-Type'])=='application/zip') {
|
||||
$zip=/*preg_replace('/(^HTTP.*\r\nPK)/Us','PK', */$page['body'];//);
|
||||
$zipSizeSrv=@$page['header']['Content-Length'];
|
||||
$nomFichier=@str_replace('filename=','',@trim($page['header']['Content-Disposition']));
|
||||
//preg_match('/\[Content-Disposition\] => filename=\r\n/Us', $page['body'], $matches)) {
|
||||
//$nomFichier=$matches[1];
|
||||
$fp=fopen('/tmp/importExport.zip', 'w');
|
||||
fwrite($fp, $zip);
|
||||
fclose($fp);
|
||||
@ -766,7 +800,8 @@ if ($tXport) {
|
||||
'annee'=>$annee,
|
||||
'siren'=>$data[0],
|
||||
'raisonSociale'=>$data[1],
|
||||
'naf'=>$data[2],
|
||||
'naf'=>trim(substr($data[2],0,5)),
|
||||
'nafLib'=>trim(substr($data[2],5,strlen($data[2])-5)),
|
||||
'categorie'=>$data[3],
|
||||
'adresse'=>$data[4],
|
||||
'rangNational'=>$data[5],
|
||||
|
@ -11,7 +11,7 @@ include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMFacto.php');
|
||||
|
||||
define('GE_FTP_DIR', '/mnt/sftp/gefacto/send/');
|
||||
define('GE_FTP_DIR', '/mnt/data/clients/gefacto/send/');
|
||||
define('GE_BACKUP_DIR', '/home/data/gefacto/');
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
@ -35,7 +35,7 @@ Options :
|
||||
|
||||
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=0;
|
||||
$modeDebug=false; // Mode débug
|
||||
$tabFichier=$tabFichLigneCmd=array();
|
||||
$tabFichier=$tabFichLigneCmd=$tabFichierFin=array();
|
||||
$message=''; // Initialisation du mail d'exécution du traitement
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
@ -54,25 +54,36 @@ Options :
|
||||
if (count($tabFichLigneCmd)==0) {
|
||||
$dh = opendir(GE_FTP_DIR);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, 0, 5)=='GESCD')
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, 0, 5)=='GESCD') {
|
||||
if (substr($filename, -4)=='.fin')
|
||||
$tabFichierFin[] = substr($filename, 0, 17);
|
||||
else
|
||||
$tabFichier[] = $filename;
|
||||
}
|
||||
}
|
||||
sort($tabFichier);
|
||||
} else $tabFichier=$tabFichLigneCmd;
|
||||
|
||||
if (count($tabFichier)>0 || count($tabFichLigneCmd)>0) {
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des infos GE".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des Informations de Paiement".EOL;
|
||||
|
||||
for ($i=0; isset($tabFichier[$i]); $i++)
|
||||
{
|
||||
$nomFichier=$tabFichier[$i];
|
||||
$dateFichier=date('YmdHis',filemtime(GE_FTP_DIR.$nomFichier));
|
||||
/*if (!in_array(substr($nomFichier, 0, 17), $tabFichierFin)) {
|
||||
$message.=date ('Y/m/d - H:i:s')." - Erreur : Impossible de charger le fichier n°$i à traiter (".$nomFichier.") car le transfert n'est pas fini !".EOL;
|
||||
echo $message;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'ERREUR lors du chargement des Informations de Paiement', $message);
|
||||
die();
|
||||
}*/
|
||||
|
||||
$fp=fopen(GE_FTP_DIR.$nomFichier, 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter (".$nomFichier.")".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
$message.=date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter (".$nomFichier.")".EOL;
|
||||
echo $message;
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'ERREUR lors du chargement des Informations de Paiement', $message);
|
||||
die();
|
||||
}
|
||||
|
||||
@ -97,8 +108,8 @@ Options :
|
||||
$table='ge_cs2';
|
||||
$iDb->update($table, array('indTrt'=>0),'1');
|
||||
//UPDATE ge_cs2 SET =0
|
||||
}elseif ($taille==118){ $iFacto->setTypeFic(0); $table='ge_acheteurs'; }
|
||||
elseif ($taille==72) { $iFacto->setTypeFic(2); $table='ge_paiements'; }
|
||||
}elseif ($taille==119){ $iFacto->setTypeFic(0); $table='ge_acheteurs'; } // GESCDACH_20131204164846
|
||||
elseif ($taille==73) { $iFacto->setTypeFic(2); $table='ge_paiements'; }
|
||||
else {
|
||||
echo date ('Y/m/d - H:i:s') . " - Erreur : Première ligne de taille $taille non gérée \"$ligne\" !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
@ -167,6 +178,7 @@ Options :
|
||||
$iDb->update($table, array('dateSuppr'=>$dateInsert), 'indTrt=0');
|
||||
|
||||
if (bzip2(GE_FTP_DIR.$nomFichier, GE_BACKUP_DIR.$nomFichier.'-'.date('Ym'))) {
|
||||
$iDb->update('flux_filein', array('dateExecute'=>date('YmdHis')), "name='GEFACTO' AND depotFile='$nomFichier'", false);
|
||||
unlink(GE_FTP_DIR.$nomFichier);
|
||||
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
|
||||
}
|
||||
@ -175,14 +187,14 @@ Options :
|
||||
$message.="Le fichier n°$i, $nomFichier vient d'être chargé :\r\n";
|
||||
$message.=" $nbInsert ajouts et $nbUpdate mises à jours sur $nbLignes lignes ($nbSiretInvalides siren/siret invalides).".EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des défaillances.".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des Informations de Paiement.".EOL;
|
||||
}
|
||||
else {
|
||||
$message.="Aucun fichier GE à traiter !\r\n";
|
||||
echo date ('Y/m/d - H:i:s') . " - Aucun fichier GE à traiter !".EOL;
|
||||
$message.="Aucun fichier Informations de Paiement à traiter !\r\n";
|
||||
echo date ('Y/m/d - H:i:s') . " - Aucun fichier Informations de Paiement à traiter !".EOL;
|
||||
}
|
||||
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des infos GE', $message);
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'Chargement des Informations de Paiement', $message);
|
||||
die();
|
||||
|
||||
?>
|
@ -1,6 +1,44 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
/*
|
||||
ALTER TABLE `tourisme2`
|
||||
CHANGE `DATE DE CLASSEMENT` `dateClasse` VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `DATE DE PUBLICATION DE L'ETABLISSEMENT` `datePublication` VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `TYPOLOGIE ÉTABLISSEMENT` `typeClasse` VARCHAR(30) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `CLASSEMENT` `nbEtoiles` TINYINT(1) NOT NULL,
|
||||
CHANGE `CATÉGORIE` `categorie` VARCHAR(80) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `MENTION` `mention` VARCHAR(50) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `NOM COMMERCIAL` `nom` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `ADRESSE` `adresse` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `CODE POSTAL` `adrCp` MEDIUMINT( 5 ) NOT NULL,
|
||||
CHANGE `COMMUNE` `adrVille` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `TÉLÉPHONE` `tel` VARCHAR( 21 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `COURRIEL` `mail` VARCHAR( 80 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `SITE INTERNET` `web` VARCHAR( 200 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
|
||||
CHANGE `TYPE DE SÉJOUR` `typeSejour` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
|
||||
CHANGE `CAPACITÉ D'ACCUEIL (PERSONNES)` `capacite` VARCHAR(4) NULL DEFAULT NULL,
|
||||
CHANGE `NOMBRE DE CHAMBRES` `nbChambres` VARCHAR(4) NULL DEFAULT NULL,
|
||||
CHANGE `NOMBRE D'EMPLACEMENTS` `nbEmplacements` VARCHAR(4) NULL DEFAULT NULL,
|
||||
CHANGE `NOMBRE D'UNITES D'HABITATION` `nbHabitations` VARCHAR(4) NULL DEFAULT NULL,
|
||||
CHANGE `NOMBRE DE LOGEMENTS` `nbLogements` VARCHAR(4) NULL DEFAULT NULL;
|
||||
|
||||
UPDATE tourisme2 SET categorie='' WHERE categorie='-';
|
||||
UPDATE tourisme2 SET mention='' WHERE mention='-';
|
||||
UPDATE tourisme2 SET typeSejour='' WHERE typeSejour='-';
|
||||
UPDATE tourisme2 SET capacite=NULL WHERE capacite='-';
|
||||
UPDATE tourisme2 SET nbChambres=NULL WHERE nbChambres='-';
|
||||
UPDATE tourisme2 SET nbEmplacements=NULL WHERE nbEmplacements='-';
|
||||
UPDATE tourisme2 SET nbHabitations=NULL WHERE nbHabitations='-';
|
||||
UPDATE tourisme2 SET nbLogements=NULL WHERE nbLogements='-';
|
||||
UPDATE tourisme2 SET dateClasse=CONCAT(SUBSTRING(dateClasse,7,4),'-',SUBSTRING(dateClasse,4,2),'-',SUBSTRING(dateClasse,1,2));
|
||||
UPDATE tourisme2 SET datePublication=CONCAT(SUBSTRING(datePublication,7,4),'-',SUBSTRING(datePublication,4,2),'-',SUBSTRING(datePublication,1,2));
|
||||
|
||||
INSERT IGNORE INTO tourisme SELECT NULL AS id, nom, UCASE(adresse) AS adresse, adrCp, adrVille, NULL AS actif, 0 AS siren, 0 AS sirenValide, 0 AS idSirenage,
|
||||
0 AS nic, 0 AS nicValide, '' AS nafEn, '' AS nafEt, nbEtoiles, typeClasse, categorie, mention, dateClasse, tel, NULL AS fax, mail, web, typeSejour, '' AS typeChambres, capacite, nbChambres, nbEmplacements, nbHabitations, nbLogements, NOW( ) AS dateInsert, 0 AS recupTel, 0 AS dateUpdate
|
||||
FROM `tourisme2`;
|
||||
|
||||
*/
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
|
@ -5,34 +5,86 @@
|
||||
** ALTER TABLE `articles` CHANGE `source` `source` ENUM( 'A', 'B', 'D', 'E', 'H' ) NOT NULL DEFAULT 'A';
|
||||
**/
|
||||
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/ftp.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$iDb=new WDB('presse');
|
||||
$nbHugin=$nbActus=$nbDiRel=$nbEchos=$nbBusin=0;
|
||||
$doHugin=$doActus=$doEchos=$doBusin=$doAll=false;
|
||||
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Intégration des derniers communiqués boursier.
|
||||
|
||||
Sans aucun paramètre, récupère les derniers communiqués.
|
||||
Sinon:
|
||||
-v Mode bavard
|
||||
-h Traite uniquement le diffuseur Hugin
|
||||
-a idem ActuNews
|
||||
-e idem Les Echos
|
||||
-b idem BusinessWire
|
||||
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $doAll=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'h': $doHugin=true; break;
|
||||
case 'a': $doActus=true; break;
|
||||
case 'e': $doEchos=true; break;
|
||||
case 'b': $doBusin=true; break;
|
||||
case 'v': $modeDebug=true; break;
|
||||
case '-': die($strInfoProg); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$doHugin && !$doActus && !$doEchos && !$doBusin) $doAll=true;
|
||||
|
||||
$strMessage=date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux relatifs aux informations règlementées...".EOL;
|
||||
/*
|
||||
if ($doHugin || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux Hugin...".EOL;
|
||||
$ret=ftp_mget(HUGIN_FTP_URL, HUGIN_FTP_USER, HUGIN_FTP_PASS, '*.xml', HUGIN_LOCAL_DIR, true);
|
||||
if ($ret===false)
|
||||
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux Hugin en FTP incorrecte !".EOL);
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Hugin en FTP ($ret fichiers récupérés).".EOL;
|
||||
|
||||
else {
|
||||
$message=date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Hugin en FTP ($ret fichiers récupérés).".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
}
|
||||
*/
|
||||
if ($doActus || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux ActusNews...".EOL;
|
||||
$ret=ftp_mget(ACTUSNEWS_FTP_URL, ACTUSNEWS_FTP_USER, ACTUSNEWS_FTP_PASS, '*.xml', ACTUSNEWS_LOCAL_DIR, true);
|
||||
if ($ret===false)
|
||||
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux ActusNews en FTP incorrecte !".EOL);
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux ActusNews en FTP ($ret fichiers récupérés).".EOL;
|
||||
else {
|
||||
$message=date ('Y/m/d - H:i:s')." - FIN de la récupération des flux ActusNews en FTP ($ret fichiers récupérés).".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux Di Release...".EOL;
|
||||
$ret=ftp_mget(DIRELEASE_FTP_URL, DIRELEASE_FTP_USER, DIRELEASE_FTP_PASS, '*.xml', DIRELEASE_LOCAL_DIR, true);
|
||||
if ($ret===false)
|
||||
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux Di Release en FTP incorrecte !".EOL);
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Di Release en FTP ($ret fichiers récupérés).".EOL;
|
||||
else {
|
||||
$message=date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Di Release en FTP ($ret fichiers récupérés).".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}*/
|
||||
|
||||
if ($doBusin || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux BusinessWire...".EOL;
|
||||
$dh = opendir(BUSINESSWIRE_LOCAL_DIR_INCOMING);
|
||||
$ret=0;
|
||||
@ -43,20 +95,27 @@ while (false !== ($filename = readdir($dh))) {
|
||||
$ret++;
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux BusinessWire ($ret fichiers copiés).".EOL;
|
||||
$message=date ('Y/m/d - H:i:s')." - FIN de la récupération des flux BusinessWire ($ret fichiers copiés).".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
|
||||
if ($doEchos || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux Les Echos...".EOL;
|
||||
$ret=ftp_mget(LESECHOS_FTP_URL, LESECHOS_FTP_USER, LESECHOS_FTP_PASS, 'syndication/*.xml', LESECHOS_LOCAL_DIR, true);
|
||||
if ($ret===false)
|
||||
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux Les Echos en FTP incorrecte !".EOL);
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Les Echos en FTP ($ret fichiers récupérés).".EOL;
|
||||
|
||||
|
||||
echo (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux Les Echos en FTP incorrecte !".EOL);
|
||||
else {
|
||||
$message=date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Les Echos en FTP ($ret fichiers récupérés).".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
** INTEGRATION DES COMMUNIQUES "HUGIN"
|
||||
**/
|
||||
if ($doHugin || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des flux Hugin...".EOL;
|
||||
$tabFichier=array();
|
||||
$dh = opendir(HUGIN_LOCAL_DIR);
|
||||
@ -64,7 +123,6 @@ while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.xml')
|
||||
$tabFichier[] = $filename;
|
||||
}
|
||||
|
||||
foreach ($tabFichier as $k => $nomFichier) {
|
||||
$tabTmp=file(HUGIN_LOCAL_DIR.$nomFichier);
|
||||
if (!$tabTmp) die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier local $nomFichier inexistant !".EOL);
|
||||
@ -109,14 +167,19 @@ foreach ($tabFichier as $k => $nomFichier) {
|
||||
die();
|
||||
} elseif ($iDb->getLastErrorNum()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - Communiqué n°$pressReleaseId enregistré avec succès.".EOL;
|
||||
$nbHugin++;
|
||||
}
|
||||
unset($dom);
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - FIN de l'intégration des flux Hugin.".EOL;
|
||||
$message=date('Y/m/d - H:i:s') ." - FIN de l'intégration des $nbHugin communiqués Hugin.".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
|
||||
/**
|
||||
** INTEGRATION DES COMMUNIQUES "ACTUSNEWS"
|
||||
**/
|
||||
if ($doActus || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des flux ActusNews...".EOL;
|
||||
$tabFichier=array();
|
||||
$dh = opendir(ACTUSNEWS_LOCAL_DIR);
|
||||
@ -190,17 +253,20 @@ foreach ($tabFichier as $k => $nomFichier) {
|
||||
die();
|
||||
} elseif ($iDb->getLastErrorNum()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - Communiqué n°$pressReleaseId enregistré avec succès.".EOL;
|
||||
$nbActus++;
|
||||
}
|
||||
unset($dom);
|
||||
}
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - FIN de l'intégration des flux ActusNews...".EOL;
|
||||
|
||||
$message=date('Y/m/d - H:i:s') ." - FIN de l'intégration des $nbActus communiqués ActusNews.".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
|
||||
/**
|
||||
** INTEGRATION DES COMMUNIQUES "DIRELEASE"
|
||||
**/
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des flux DiRelease...".EOL;
|
||||
/*echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des flux DiRelease...".EOL;
|
||||
$tabFichier=array();
|
||||
$dh = opendir(DIRELEASE_LOCAL_DIR);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
@ -210,17 +276,10 @@ while (false !== ($filename = readdir($dh))) {
|
||||
|
||||
/** @todo Pour DiRelease, Ne pas utiliser le parser XML mais uniquement des expr. régulière car XML de merde.
|
||||
** Prendre tous les ISIN et rechercher le SIREN.
|
||||
**/
|
||||
**
|
||||
|
||||
foreach ($tabFichier as $k => $nomFichier) {
|
||||
$strTmp=file_get_contents(DIRELEASE_LOCAL_DIR.$nomFichier);
|
||||
/*$strTmp=preg_replace('/\s+/is',' ', $strTmp);
|
||||
$fp=fopen(DIRELEASE_LOCAL_DIR.'new_'.$nomFichier, 'w');
|
||||
fwrite($fp, $strTmp);
|
||||
fclose($fp);
|
||||
$tabTmp=file(DIRELEASE_LOCAL_DIR.'new_'.$nomFichier);
|
||||
if (!$tabTmp) die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier local $nomFichier inexistant !".EOL);
|
||||
*/
|
||||
if (stripos($strTmp, 'ISO-8859-1')>0) $encoding='ISO-8859-1';
|
||||
elseif (stripos($strTmp, 'UTF-8')>0) $encoding='UTF-8';
|
||||
else die(date ('Y/m/d - H:i:s')." - ERREUR : Encoding non géré !".EOL);
|
||||
@ -282,13 +341,6 @@ foreach ($tabFichier as $k => $nomFichier) {
|
||||
'pressReleaseText'=>trim(strtr(html_entity_decode(strip_tags($contenu)),array('’'=>'’'))),
|
||||
'pressReleaseHtml'=>$contenu,
|
||||
'pressReleaseAttachments'=>$pdf,
|
||||
/*
|
||||
'pressReleaseUrl'=>$dom->getValueFromTag('PRESS_RELEASE_URL_CNG'),
|
||||
'indexAll'=>$dom->getValueFromTag('INDEX_ALL'),
|
||||
'indexTheme'=>$dom->getValueFromTag('INDEX_THEME'),
|
||||
'indexCountry'=>$dom->getValueFromTag('INDEX_COUNTRY'),
|
||||
'indexLanguage'=>$dom->getValueFromTag('INDEX_LANGUAGE'),
|
||||
*/
|
||||
'indexQuoteInd'=>$indice,
|
||||
'indexSector'=>$secteur,
|
||||
'indexMarketPlace'=>$marche_cotation,
|
||||
@ -305,15 +357,20 @@ foreach ($tabFichier as $k => $nomFichier) {
|
||||
die();
|
||||
} elseif ($iDb->getLastErrorNum()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - Communiqué n°$pressReleaseId enregistré avec succès.".EOL;
|
||||
$nbDiRel++;
|
||||
}
|
||||
unset($dom);
|
||||
}
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - FIN de l'intégration des flux DiRelease...".EOL;
|
||||
$message=date('Y/m/d - H:i:s') ." - FIN de l'intégration des $nbDiRel communiqués DiRelease.".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
*/
|
||||
|
||||
/**
|
||||
** INTEGRATION DES COMMUNIQUES "BUSINESSWIRE"
|
||||
**/
|
||||
if ($doBusin || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des flux BusinessWire...".EOL;
|
||||
$tabFichier=array();
|
||||
$dh = opendir(BUSINESSWIRE_LOCAL_DIR);
|
||||
@ -325,7 +382,7 @@ while (false !== ($filename = readdir($dh))) {
|
||||
foreach ($tabFichier as $k => $nomFichier) {
|
||||
$tabTmp=file(BUSINESSWIRE_LOCAL_DIR.$nomFichier);
|
||||
$strTmp=implode("\n", $tabTmp);
|
||||
if (!$tabTmp) die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier local ".BUSINESSWIRE_LOCAL_DIR."$nomFichier inexistant !".EOL);
|
||||
if (!$tabTmp) echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier local ".BUSINESSWIRE_LOCAL_DIR."$nomFichier inexistant ou vide !".EOL;
|
||||
|
||||
/*if (stripos($tabTmp[0], 'ISO-8859-1')>0) $encoding='ISO-8859-1';
|
||||
elseif (stripos($tabTmp[0], 'UTF-8')>0) $encoding='UTF-8';
|
||||
@ -457,15 +514,19 @@ foreach ($tabFichier as $k => $nomFichier) {
|
||||
die();
|
||||
} elseif ($iDb->getLastErrorNum()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - Communiqué n°$pressReleaseId enregistré avec succès.".EOL;
|
||||
$nbBusin++;
|
||||
}
|
||||
unset($dom);
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - FIN de l'intégration des flux BusinessWire.".EOL;
|
||||
|
||||
$message=date('Y/m/d - H:i:s') ." - FIN de l'intégration des $nbBusin communiqués BusinessWire.".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
|
||||
/**
|
||||
** INTEGRATION DES COMMUNIQUES "LES ECHOS"
|
||||
**/
|
||||
if ($doEchos || $doAll) {
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de l'intégration des flux Les Echos...".EOL;
|
||||
$tabFichier=array();
|
||||
$dh = opendir(LESECHOS_LOCAL_DIR.'syndication/');
|
||||
@ -521,12 +582,18 @@ foreach ($tabFichier as $k => $nomFichier) {
|
||||
die();
|
||||
} elseif ($iDb->getLastErrorNum()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - Communiqué n°$pressReleaseId enregistré avec succès.".EOL;
|
||||
$nbEchos++;
|
||||
}
|
||||
} else
|
||||
echo date ('Y/m/d - H:i:s')." - Langue du communiqué non intégrée en base ($language).".EOL;
|
||||
unset($dom);
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - FIN de l'intégration des flux Les Echos.".EOL;
|
||||
$message=date('Y/m/d - H:i:s') ." - FIN de l'intégration des $nbEchos communiqués Les Echos.".EOL;
|
||||
echo $message;
|
||||
$strMessage.=$message;
|
||||
}
|
||||
|
||||
sendMail('webmaster@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', "Intégration des informations réglementées", $strMessage);
|
||||
|
||||
die();
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -20,12 +20,14 @@ $strInfoScript='Usage : '.basename($argv[0]). " <option> [FICHIERS]
|
||||
Chargement du/des flux en provenance de l'INPI (license RNCS IMR).
|
||||
|
||||
Options :
|
||||
-d Mode debug (Verbosité au maximum)
|
||||
-v Mode debug (Verbosité au maximum)
|
||||
-l:XXXX Reprendre à partir de la ligne XXXX
|
||||
-s:AAAAMMJJ Fichier stock de tous les établissements actifs avec jour de l'extraction du stock
|
||||
-s Fichier stock de tous les établissements actifs (préciser le jour de l'extraction avec -f)
|
||||
-f:AAAAMMJJ Forcer la dateFlux de ce chargement
|
||||
-r Ne pas exécuter en réel
|
||||
-j Ne pas se connecter au serveur FTP d'Extelia (INPI/IMR via Infogreffe)
|
||||
-c Continuer en cas d'erreur de fichier
|
||||
-m Mettre à jour les siren des dirigeants PM
|
||||
";/*
|
||||
-p Chargement d'une ancienne notice (pas de modification de la zone ACTIF chargement des zones différentes)
|
||||
-u Ne pas mettre à jour la table identite de l'insee
|
||||
@ -45,6 +47,8 @@ $actifIni=1; // L'
|
||||
$jourStock=0; // Jour du stock SSAMMJJ
|
||||
$env=''; // Suffix des tables de chargements (en prod '' sinon '2', etc... Vérifier que les tables existes)
|
||||
$strMailInfo=''; // Initialisation du contenu du message d'information
|
||||
$doMajSirenDir=false; // Mettre à jour les siren des dirigeants
|
||||
$stopSiErreur=true; // Stopper le traitement si erreur de fichier
|
||||
|
||||
$tabFichiers=array(); // Tableau des Fichiers téléchargés sur le FTP
|
||||
$tabFichier=array(); // Fichiers locaux en attente de traitement
|
||||
@ -58,12 +62,14 @@ $argv=$_SERVER['argv'];
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'j': $ftpStep=false; break;
|
||||
case 'l': $numReprise=substr($argv[$i],3,strlen($argv[$i])-3); break;
|
||||
case 's': $stock=1; $actifIni=11;
|
||||
case 'f': $jourStock=substr($argv[$i],3,8); break;
|
||||
case 'r': $env='2'; break;
|
||||
case 'm': $doMajSirenDir=true; break;
|
||||
case 'c': $stopSiErreur=false; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break;
|
||||
@ -89,7 +95,7 @@ if ($ftpStep) {
|
||||
$dateDist = ftp_mdtm($conn_id, $server_file);
|
||||
$server_fileName=basename($server_file);
|
||||
|
||||
if (!preg_match('/licence/i', $server_fileName)) {
|
||||
if (!preg_match('/licence/i', $server_fileName) || preg_match('/\.swp/i', $server_fileName)) {
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s'). " - Le fichier distant '$server_fileName' n'est pas un flux IMR.".EOL;
|
||||
continue;
|
||||
} elseif ($modeDebug)
|
||||
@ -160,8 +166,11 @@ if (count($tabFichLigneCmd)==0) {
|
||||
$tDur = round($tFin-$tDeb);
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier $filename décompressé : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressés)".EOL;
|
||||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier $filename décompressé : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressés)".EOL;
|
||||
} else
|
||||
die(date ('Y/m/d - H:i:s') . " - ERREUR : Décompression impossible de $filenameGz !".EOL);
|
||||
} else {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR : Décompression impossible de $filenameGz !".EOL;
|
||||
//if (!$stopSiErreur)
|
||||
die();
|
||||
}
|
||||
}
|
||||
$tabFichier[] = RNCS_IMR_FTP_LOCALDIR.$filename;
|
||||
}
|
||||
@ -171,7 +180,7 @@ if (count($tabFichLigneCmd)==0) {
|
||||
if (count($tabFichier)==0)
|
||||
$tabFichier=$tabFichLigneCmd;
|
||||
|
||||
if (count($tabFichier)==0 && count($tabFichLigneCmd)==0)
|
||||
if (count($tabFichier)==0 && count($tabFichLigneCmd)==0 && !$doMajSirenDir)
|
||||
die(date ('Y/m/d - H:i:s') . " - Aucun fichier RNCS IMR de l'INPI à traiter (--help pour plus d'options).".EOL);
|
||||
elseif (!$ftpStep)
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement du flux INPI".EOL;
|
||||
@ -210,8 +219,10 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
// fwrite($fpT, date('Ymd-His')."$fichier;$dateInsert;$nbLignes;
|
||||
$message="Le fichier $fichier est en cours de chargement depuis le $date2Tmp ($nbL2Tmp lignes)...";
|
||||
echo date('Y/m/d - H:i:s')." - $message".EOL;
|
||||
//if (!$stopSiErreur) {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement INPI IMR - ERREUR !!!', $message);
|
||||
die();
|
||||
//}
|
||||
}
|
||||
|
||||
/** Le fichier a-t-il déjà été chargé **/
|
||||
@ -233,13 +244,14 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$dateFichierNom=0;*/
|
||||
$dateFichierNom=substr($fichier,0,8)*1;
|
||||
|
||||
if ($jourStock>0 && $stock==0) $dateFlux=$jourStock;
|
||||
if ($jourStock>0/* && $stock==0*/) $dateFlux=$jourStock;
|
||||
elseif ($dateFichierMod==$dateFichierNom) $dateFlux=$dateFichierMod;
|
||||
elseif ($dateFichierMod<>0 && $dateFichierNom==0) $dateFlux=$dateFichierMod;
|
||||
else {
|
||||
echo date ('Y/m/d - H:i:s') . " - La date du fichier ($dateFichierMod) ne correspond pas avec le nom '$fichier' !".EOL;
|
||||
$dateFlux=$dateFichierNom;
|
||||
if (($dateFlux*1)<20080101 || ($dateFlux*1)>(date('Ymd')*1))
|
||||
//if (!$stopSiErreur)
|
||||
die();
|
||||
}
|
||||
|
||||
@ -250,11 +262,14 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$nbLignes=$nbLignes00=$nbLignes01=$nbLignes02=$nbLignes02p=$nbLignes03=$nbLignes04=$nbLignes05=$nbLignes06=0;
|
||||
$tabEntete=array();
|
||||
for($i=0; $i<7; $i++) $nb[$i]=$nbInsert[$i]=$nbUpdate[$i]=0;
|
||||
$nb[30]=$nbInsert[30]=$nbUpdate[30]=0;
|
||||
$nbCreations=$nbModifI=$nbModifF=$nbModifS=$nbFermetures=$nbModifErr=0;
|
||||
$a = fgets($fp, 4096);
|
||||
if (strlen($a)<800) {
|
||||
echo date('Y/m/d - H:i:s') ." - Le fichier RNCS à charger $fichier n'est pas au format IMR Infogreffe/Extelia !".EOL;
|
||||
die();
|
||||
//if ($stopSiErreur) die();
|
||||
//else
|
||||
continue;
|
||||
}
|
||||
|
||||
$nbLignesTot=0;
|
||||
@ -320,6 +335,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$siren=0;
|
||||
$modifDir=$modifJug=false;
|
||||
$table='';
|
||||
$tabSirenJugeNT=array();
|
||||
|
||||
while (!feof($fp)) {
|
||||
/** Ajout/Maj des infos du verrou **/
|
||||
@ -367,7 +383,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$nbEtab[$etab['actif']]=$etab['nb'];
|
||||
$ret=$iDb->update('rncs_etab'.$env, array('actif'=>0,'dateFermeture'=>$dateFlux), "actif>9 AND siren=$sirenPre", false, 0, true);
|
||||
if ($modeDebug) {
|
||||
echo date ('Y/m/d - H:i:s') . " - Les établissements du siren $sirenPre non transmis ont été passés à inactifs (".$nbEtab[10]." déjà inactifs et ".$nbEtab[11]." actifs).".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Les établissements du siren $sirenPre non transmis ont été passés à inactifs (".(@$nbEtab[10]*1)." déjà inactifs et ".(@$nbEtab[11]*1)." actifs).".EOL;
|
||||
print_r($nbEtab);
|
||||
}
|
||||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun établissement pour le siren $sirenPre en base précédement !".EOL;
|
||||
@ -380,32 +396,43 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$nbEtab[$etab['actif']]=$etab['nb'];
|
||||
$ret=$iDb->update('rncs_dirigeants'.$env, array('actif'=>0,'dateFin'=>$dateFlux), "actif>9 AND siren=$sirenPre", false, 0, true);
|
||||
if ($modeDebug) {
|
||||
echo date ('Y/m/d - H:i:s') . " - Les dirigeants du siren $sirenPre non transmis ont été passés à inactifs (".$nbEtab[10]." déjà inactifs et ".$nbEtab[11]." actifs).".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Les dirigeants du siren $sirenPre non transmis ont été passés à inactifs (".(@$nbEtab[10]*1)." déjà inactifs et ".(@$nbEtab[11]*1)." actifs).".EOL;
|
||||
print_r($nbEtab);
|
||||
}
|
||||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun dirigeants pour le siren $sirenPre en base précédement !".EOL;
|
||||
}
|
||||
/** Suppressions des jugements non transmis **/
|
||||
if ($modifJug) {
|
||||
$ret=$iDb->select('rncs_jugements'.$env, 'actif, count(*) as nb', "siren=$sirenPre GROUP BY actif ORDER BY actif ASC", false, MYSQL_ASSOC);
|
||||
// if ($modifJug) {
|
||||
$ret=$iDb->select('rncs_jugements'.$env, 'siren, actif, count(*) as nb', "siren=$sirenPre GROUP BY actif ORDER BY actif ASC", false, MYSQL_ASSOC);
|
||||
//print_r($ret);
|
||||
if (isset($ret[0])) {
|
||||
$nbEtab=array();
|
||||
foreach ($ret as $iEtab=>$etab)
|
||||
$nbEtab[$etab['actif']]=$etab['nb'];
|
||||
if ($actif<>0)
|
||||
if ($actif<>0) {
|
||||
// Si le siren est encore actif et que le jugement n'est pas transmit, il doit s'agir d'une correction de jugement
|
||||
$ret=$iDb->update('rncs_jugements'.$env, array('actif'=>0,'dateSuppr'=>$dateFlux), "actif>9 AND siren=$sirenPre", false, 0, true);
|
||||
else
|
||||
if (!$modifJug) $tabSirenJugeNT[]=array('siren' => $sirenPre,
|
||||
'cj' => $cj,
|
||||
'capital' => $capital,
|
||||
'dateImma' => $dateImma,
|
||||
);
|
||||
} else
|
||||
$ret=$iDb->update('rncs_jugements'.$env, array('actif'=>1), "actif>9 AND siren=$sirenPre", false, 0, true);
|
||||
|
||||
if ($modeDebug) {
|
||||
echo date ('Y/m/d - H:i:s') . " - Les jugements du siren $sirenPre non transmis ont été passés à inactifs (".$nbEtab[10]." déjà inactifs et ".$nbEtab[11]." actifs).".EOL;
|
||||
print_r($nbEtab);
|
||||
}
|
||||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun jugements pour le siren $sirenPre en base précédement !".EOL;
|
||||
}
|
||||
if ($modeDebug)
|
||||
echo date ('Y/m/d - H:i:s') . " - Les jugements du siren $sirenPre non transmis ont été passés à inactifs (".(@$nbEtab[10]*1)." déjà inactifs et ".(@$nbEtab[11]*1)." actifs).".EOL;
|
||||
// print_r($nbEtab);
|
||||
//}
|
||||
} elseif ($modeDebug)
|
||||
echo date ('Y/m/d - H:i:s') . " - Aucun jugements pour le siren $sirenPre en base précédement !".EOL;
|
||||
// //}
|
||||
}
|
||||
$modifEtab=$modifDir=$modifJug=false;
|
||||
/** Marquage des jugements à actif provisoire **/
|
||||
$ret=$iDb->query("UPDATE LOW_PRIORITY $table SET actif=actif+10 WHERE siren=$siren");
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Les jugements du siren $siren sont OK pour la mise à jour ($ret).".EOL;
|
||||
|
||||
$table='rncs_entrep'.$env;
|
||||
if (trim( substr($a, 11, 2))=='00') $actif=$actifIni;
|
||||
elseif (trim( substr($a, 11, 2))=='99') $actif=0;
|
||||
@ -448,6 +475,8 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$nomUsage = trim( substr($a, 267, 80));
|
||||
$prenom = trim( substr($a, 187, 80));
|
||||
$numGreffe = trim( substr($a, 13, 4))*1;
|
||||
$capital = trim( substr($a, 551, 15))*1;
|
||||
$dateImma = trim( substr($a, 581, 8))*1;
|
||||
$tabUpdate=array(
|
||||
'actif' => $actif,
|
||||
'numGreffe' => $numGreffe, // Numéro de gestion (code greffe)
|
||||
@ -467,11 +496,11 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
'pays'=>$iRncs->getPaysInpi(trim( substr($a, 190, 3))*1), // Code nationalité
|
||||
'naf' => trim( substr($a, 536, 5)), // Code APE de l'entreprise
|
||||
'cj' => $cj, // Code catégorie juridique
|
||||
'capitalMontant'=>trim(substr($a, 551, 15))*1, // Capital (en unité)
|
||||
'capitalMontant'=>$capital, // Capital (en unité)
|
||||
'capitalCent'=> trim( substr($a, 566, 2)), // Capital (centimes)
|
||||
'capitalDevise'=>trim(substr($a, 568, 3)), // Code devise du capital
|
||||
'capitalDevIso'=>$iRncs->getDeviseInpi(trim(substr($a, 568, 3))*1), // Code devise du capital
|
||||
'dateImma' => trim( substr($a, 581, 8))*1, // Date d’immatriculation SSAAMMJJ
|
||||
'dateImma' => $dateImma, // Date d’immatriculation SSAAMMJJ
|
||||
'dateRad' => trim( substr($a, 589, 8))*1, // Date de radiation SSAAMMJJ
|
||||
'capitalType'=> trim( substr($a, 578, 3)), // Code type de capital SOC ou VAR SOC = Capital social VAR = Capital variable
|
||||
//'provisoires'=> trim( substr($a, 239, 1)), // Données provisoires P ou blanc = ‘P’ si données provisoires
|
||||
@ -489,10 +518,13 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
'valeur'=>$value,
|
||||
'flux'=>$dateFlux));
|
||||
}
|
||||
} elseif ($stock) {
|
||||
echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : $nbLignes lignes, $siren inconnu, $numGreffe $numRC2 présent dans le stock IMR ($raisonSociale $nom $prenom) !".EOL;
|
||||
$message.=date ('Y/m/d - H:i:s') . " - Fichier n°$iFic, $fichier : $nbLignes lignes, $siren inconnu, $numGreffe $numRC2 présent dans le stock IMR ($raisonSociale $nom $prenom) !".EOL;
|
||||
}
|
||||
|
||||
/** Ce siren fait parti des demandes de réémission de dossier IMR faites par S&D **/
|
||||
if (isset($tabDemIMR[$siren])) {
|
||||
if (isset($tabDemIMR[$siren]) && !$stock) {
|
||||
$iDb->update('rncs_demandes'.$env, array( 'dateReponse'=>$dateInsert,
|
||||
'flux'=>$dateFlux), "siren=$siren AND dateReponse IS NULL", false, 0, true);
|
||||
echo date('Y/m/d - H:i:s'). " - Dossier réémis sur $siren le ".$tabDemIMR[$siren]." reçu dans le flux IMR du $dateFlux.".EOL;
|
||||
@ -696,6 +728,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
print_r($tabInsert);
|
||||
echo mysql_errno().' : '.mysql_error().EOL;*/
|
||||
$nbInsert[3]++;
|
||||
if ($typeDir=='PM') $nbInsert[30]++;
|
||||
//if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Insertion du dirigeant ". $tabUpdate['nom']." ".$tabUpdate['prenom'].", siren=$siren !".EOL;
|
||||
} else {
|
||||
$iDb->update($table, $tabUpdate, "siren=$siren AND ".
|
||||
@ -706,6 +739,7 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
"naissance_date='". $tabUpdate['naissance_date'] ."' AND ".
|
||||
"fonction_code=". $iRncs->getCodFctBodaccFctDir($codeFonction), false, 0, true);
|
||||
$nbUpdate[3]++;
|
||||
if ($typeDir=='PM') $nbUpdate[30]++;
|
||||
//if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - MAJ du dirigeant ". $tabUpdate['nom']." ".$tabUpdate['prenom'].", siren=$siren !".EOL;
|
||||
}
|
||||
break;
|
||||
@ -713,10 +747,12 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$nbLignes04++;
|
||||
$table='rncs_jugements'.$env;
|
||||
/** Marquage des jugements à actif provisoire **/
|
||||
if (!$modifJug) {
|
||||
/*if (!$modifJug) {
|
||||
$ret=$iDb->query("UPDATE LOW_PRIORITY $table SET actif=actif+10 WHERE siren=$siren");
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Les jugements du siren $siren sont OK pour la mise à jour ($ret).".EOL;
|
||||
}
|
||||
@done Innutile ici car ne fonctionne que si une ligne 04 est transmise alors qu'un retour inbonis fait qu'il n'y a pas de '04'
|
||||
*/
|
||||
$modifJug=true;
|
||||
|
||||
$type1=$type2='';
|
||||
@ -735,9 +771,9 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$adm1adr3=trim( substr($a, 219, 40)); // Admin. 1 : Adresse Ligne 3
|
||||
$tabAdr1=getAdresse($adm1adr1,$adm1adr2,$adm1adr3);
|
||||
// Adresse 2
|
||||
$adm2adr1=trim( substr($a, 139, 40)); // Admin. 2 : Adresse Ligne 1
|
||||
$adm2adr2=trim( substr($a, 179, 40)); // Admin. 2 : Adresse Ligne 2
|
||||
$adm2adr3=trim( substr($a, 219, 40)); // Admin. 2 : Adresse Ligne 3
|
||||
$adm2adr1=trim( substr($a, 404, 40)); // Admin. 2 : Adresse Ligne 1 @ttention @todo depuis la version 2009, tous les adresses2 étaient fausse jusqu'au 29/09/2014
|
||||
$adm2adr2=trim( substr($a, 444, 40)); // Admin. 2 : Adresse Ligne 2 soit $adm2adr1, $adm2adr2 et $adm2adr3 qui reprenaient les lignes $adm1adr1...
|
||||
$adm2adr3=trim( substr($a, 484, 40)); // Admin. 2 : Adresse Ligne 3
|
||||
$tabAdr2=getAdresse($adm2adr1,$adm2adr2,$adm2adr3);
|
||||
$dateEffet = trim( substr($a, 11, 8));
|
||||
|
||||
@ -756,7 +792,8 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
'codeEven' => $iRncs->getCodeEvenJugementInpi($codeJugement),
|
||||
'adm1codeFct' => $codeFonction1, // Admin. 1 : Code Fonction
|
||||
'adm1type' => $type1, // Code type Mandataire
|
||||
'adm1id' => $iRncs->getIdMandataireInpi($adm1nom),
|
||||
'adm1id' => @$iRncs->getIdMandataireInpi($adm1nom, $adm1adr1.' '.$adm1adr2.' '.$adm1adr3, trim( substr($a, 259, 5)), $adrVille1),
|
||||
'adm1idPer' => $iRncs->matching,
|
||||
'adm1nom' => $adm1nom, // Admin. 1 : NOM
|
||||
'adm1adrNum' => @$tabAdr1['num'], // Admin. 1 : N° dans la voie
|
||||
'adm1adrInd' => @$tabAdr1['indRep'], // Admin. 1 : BTQ
|
||||
@ -770,7 +807,8 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
'adm1adrVille'=> $adrVille1, // Admin. 1 : Commune
|
||||
'adm2codeFct' => $codeFonction2, // Admin. 2 : Code Fonction
|
||||
'adm2type' => $type2,
|
||||
'adm2id' => $iRncs->getIdMandataireInpi($adm2nom),
|
||||
'adm2id' => @$iRncs->getIdMandataireInpi($adm2nom, $adm2adr1.' '.$adm2adr2.' '.$adm2adr3, trim( substr($a, 524, 5)), $adrVille2),
|
||||
'adm2idPer' => $iRncs->matching,
|
||||
'adm2nom' => $adm2nom, // Admin. 2 : NOM
|
||||
'adm2adrNum' => @$tabAdr2['num'], // Admin. 2 : N° dans la voie
|
||||
'adm2adrInd' => @$tabAdr2['indRep'], // Admin. 2 : BTQ
|
||||
@ -785,6 +823,10 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
'flux' => $dateFlux,
|
||||
);
|
||||
|
||||
// Ajout du 12/03/2015.
|
||||
$typeDate=strtoupper(trim( substr($a, 559, 1)));
|
||||
if ($typeDate<>'') $tabUpdate['typeDate']=$typeDate;
|
||||
|
||||
$tabInsert=$tabUpdate;
|
||||
|
||||
break;
|
||||
@ -946,8 +988,11 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
$message.="/".$tabEntete['nbEntrep'];
|
||||
$message.=" (".$nbInsert[1]." ajouts et ".$nbUpdate[1]." modifs)".EOL;
|
||||
|
||||
$nbLignes30=$nbInsert[30]+$nbUpdate[30];
|
||||
|
||||
$message.=date('Y/m/d - H:i:s'). " - Lignes 02 : $nbLignes02 établissements actifs dont $nbLignes02p provisoires (".$nbInsert[2]." ajouts et ".$nbUpdate[2]." modifs)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s'). " - Lignes 03 : $nbLignes03 dirigeants actifs (".$nbInsert[3]." ajouts et ".$nbUpdate[3]." modifs)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s'). " - ...... dont $nbLignes30 dirigeants PM actifs (".$nbInsert[30]." ajouts et ".$nbUpdate[30]." modifs)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s'). " - Lignes 04 : $nbLignes04 jugements (".$nbInsert[4]." ajouts et ".$nbUpdate[4]." déjà en base)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s'). " - Lignes 05 : $nbLignes05 actes/évènements (".$nbInsert[5]." ajouts et ".$nbUpdate[5]." déjà en base)".EOL;
|
||||
$message.=date('Y/m/d - H:i:s'). " - Lignes 06 : $nbLignes06 EIRL (".$nbInsert[6]." ajouts et ".$nbUpdate[6]." déjà en base)".EOL;
|
||||
@ -1008,8 +1053,50 @@ foreach ($tabFichier as $iFic=>$fichier)
|
||||
|
||||
unlink(REP_TEMP.basename($fichier).'.lock');
|
||||
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement INPI IMR', $message);
|
||||
//die();
|
||||
/** Traitement des jugements qui ne sont plus transmis **/
|
||||
$nbJugeNT=count($tabSirenJugeNT);
|
||||
$txtSirenJugeNT='';
|
||||
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbJugeNT SIREN qui sont redevenus InBonis :".EOL;
|
||||
foreach ($tabSirenJugeNT as $iTmp=>$tmpJugeNT) {
|
||||
$tabId=@$iInsee->getIdentiteEntreprise($tmpJugeNT['siren'], 0, 0, false, false);
|
||||
$txtSirenJugeNT.=$tmpJugeNT['siren'].', ';
|
||||
$message.="\t". $iTmp ."\t".
|
||||
$tmpJugeNT['siren'] ."\t".
|
||||
$tmpJugeNT['cj'] ."\t".
|
||||
$tabId['SituationJuridique']."\t".
|
||||
$tmpJugeNT['capital'] ."\t".
|
||||
$tmpJugeNT['dateImma'] ."\t".
|
||||
$tabId['TribunalLib'] ."\t";
|
||||
if ($tabId['SituationJuridique']=='P' || $tabId['SituationJuridique']=='PL') {
|
||||
$tabInsertAnn=array('siren'=> $tmpJugeNT['siren'],
|
||||
'sirenValide'=> 1,
|
||||
'raisonSociale'=> $tabId['Nom'],
|
||||
'adresse'=> $tabId['Adresse'],
|
||||
'codePostal'=> $tabId['CP'],
|
||||
'ville'=> $tabId['Ville'],
|
||||
'dateJugement'=> $dateFlux,
|
||||
'dateEffetFinP'=> $dateFlux,
|
||||
'tribunal'=> @$tabId['triCode'],
|
||||
//'complement'=>
|
||||
'source'=> 'PS',
|
||||
'dateSource'=> $dateDispo,
|
||||
'dateInsert'=> date('YmdHis'),
|
||||
);
|
||||
if ($tabId['SituationJuridique']=='P') $tabInsertAnn['typeEven']=1800;
|
||||
elseif ($tabId['SituationJuridique']=='PL') $tabInsertAnn['typeEven']=1801;
|
||||
if (@$tabId['triCode']=='') $tabInsertAnn['tribunal']='INCONU';
|
||||
$iDb->insert('annonces', $tabInsertAnn, false);
|
||||
$message.=mysql_error();
|
||||
}
|
||||
$message.=EOL;
|
||||
}
|
||||
$message.=EOL;
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbJugeNT SIREN qui sont redevenus InBonis : $txtSirenJugeNT".EOL;
|
||||
|
||||
|
||||
$doMajSirenDir=true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
if ($stock) {
|
||||
@ -1048,6 +1135,121 @@ if ($stock) {
|
||||
$iDb->query($sql, true);
|
||||
}
|
||||
|
||||
if ($doMajSirenDir) {
|
||||
|
||||
// Mise à jour des Administrations (BOAMP A, B ou MAPA)
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN des Dirigeants PM...".EOL;
|
||||
$nbSirened=0;
|
||||
$tabDelete=array();
|
||||
// Tableau RS>Siren
|
||||
$tabRsSiren=array();
|
||||
$tmp=$iDb->select('rncs_dirigeants', 'dirRS, adr_dep, dirSiren', "typeDir='PM' AND dirSiren>1000 AND dirRS<>'' GROUP BY dirRS", false, MYSQL_ASSOC);
|
||||
foreach ($tmp as $nbId=>$tabTmp)
|
||||
$tabRsSiren[trim($tabTmp['dirRS']).trim($tabTmp['adr_dep'])]=$tabTmp['dirSiren'];
|
||||
echo date ('Y/m/d - H:i:s')." - La table RS/SIREN dirigeants PM RNCS contient $nbId lignes...".EOL;
|
||||
|
||||
$tmp=$iDb->select('rncs_dirigeants', 'id, dirRS, adr_dep, actif, siren, raisonSociale', "typeDir='PM' AND dirSiren<1000 AND dirRS<>'' ORDER BY dirRS, adr_dep", false, MYSQL_ASSOC);
|
||||
$nbTmp=count($tmp);
|
||||
foreach ($tmp as $iLot=>$tabTmp) {
|
||||
$id=$tabTmp['id'];
|
||||
$rs=trim($tabTmp['dirRS']);
|
||||
$dep=trim($tabTmp['adr_dep']);
|
||||
$sirenSte=$tabTmp['siren'];
|
||||
$rsSte=$tabTmp['raisonSociale'];
|
||||
$dirAct=$tabTmp['actif'];
|
||||
if ($dirAct) $strAct='actif';
|
||||
else $strAct='inactif';
|
||||
//print_r($tabTmp);
|
||||
if (isset($tabRsSiren[$rs.$dep])) {
|
||||
$siren=$tabRsSiren[$rs.$dep];
|
||||
if ($iDb->update('rncs_dirigeants', array('dirSiren'=>$siren), 'id='.$id, false,0,true)) {
|
||||
$nbSirened++;
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour de id=$id avec $siren pour $rs ($dep) dirigeant $strAct de $rsSte ($sirenSte)...".EOL;
|
||||
//$iDb->delete('bodacc_sirenage', "idTable='rncs_dirigeants' AND idAnn=$id",false,true);
|
||||
$tabDelete[]=$id;
|
||||
} elseif (mysql_errno()==1062) {
|
||||
//if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour impossible de id=$id avec $siren pour $rs dirigeant $strAct de $rsSte ($sirenSte)...".EOL;
|
||||
/** @todo Vérifier pourquoi lent et doublon
|
||||
$iDb->delete('bodacc_sirenage', "idTable='rncs_dirigeants' AND idAnn=$id",false,true);
|
||||
*/
|
||||
}
|
||||
else
|
||||
echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : ERREUR SQL ".mysql_errno()." - ".mysql_error().EOL;
|
||||
}
|
||||
}
|
||||
if (count($tabDelete)>0) {
|
||||
$strIDL=implode(',',$tabDelete);
|
||||
$iDb->query("DELETE FROM bodacc_sirenage WHERE idTable='rncs_dirigeants' AND idAnn IN($strIDL);");
|
||||
echo "DELETE FROM bodacc_sirenage WHERE idTable='rncs_dirigeants' AND idAnn IN($strIDL);".EOL.mysql_error();
|
||||
}
|
||||
|
||||
if (@$nbInsert[3]>0 && @$nbUpdate[3]>0) $strInfo=" sur ".$nbInsert[3]." ajouts et ".$nbUpdate[3]." modifs.";
|
||||
else $strInfo="";
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN de dirigeants RNCS".$strInfo.EOL;
|
||||
if (!isset($message)) $message='';
|
||||
$message.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN de dirigeants RNCS".$strInfo.EOL;
|
||||
|
||||
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement INPI IMR (après sirenage dirigeants)', $message);
|
||||
|
||||
// CAC en provenance du BODACC
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN des Dirigeants CAC...".EOL;
|
||||
$nbSirened=0;
|
||||
$tabDelete=array();
|
||||
// Tableau RS>Siren
|
||||
$strSqlDirRS="TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(UCASE(CONCAT(rs, nom, prenom)),'&',' ET '),'-',' '),'.',''),', ',' '),' ',' '),'PARTANT',''),'ANCIEN',''),'NOMINATION D\'UN',''),'NOMINATION D\'',''),'NOMINATION DU',''))";
|
||||
$tabRsSiren=array();
|
||||
$tmp=$iDb->select('bodacc_dirigeants', "$strSqlDirRS AS dirRS, dirSiren", "fonction BETWEEN 300 AND 304 AND dirSiren>1000 AND (rs<>'' OR nom<>'' OR prenom<>'') GROUP BY dirRS", false, MYSQL_ASSOC);
|
||||
foreach ($tmp as $nbId=>$tabTmp)
|
||||
$tabRsSiren[trim($tabTmp['dirRS'])]=$tabTmp['dirSiren'];
|
||||
echo date ('Y/m/d - H:i:s')." - La table RS/SIREN dirigeants CAC contient $nbId lignes...".EOL;
|
||||
|
||||
$tmp=$iDb->select('bodacc_dirigeants', "idL, id, num, $strSqlDirRS AS dirRS, siren", "fonction BETWEEN 300 AND 304 AND dirSiren<1000 AND (rs<>'' OR nom<>'' OR prenom<>'') ORDER BY dirRS ASC, siren ASC", false, MYSQL_ASSOC);
|
||||
$nbTmp=count($tmp);
|
||||
foreach ($tmp as $iLot=>$tabTmp) {
|
||||
$id=$tabTmp['id'];
|
||||
$idL=$tabTmp['idL'];
|
||||
$num=$tabTmp['num'];
|
||||
$rs=trim($tabTmp['dirRS']);
|
||||
$sirenSte=$tabTmp['siren'];
|
||||
if (isset($tabRsSiren[$rs])) {
|
||||
$siren=$tabRsSiren[$rs];
|
||||
$rsSte='';
|
||||
if ($sirenSte>1000) {
|
||||
$tabId=@$iInsee->getIdentiteLight($sirenSte);
|
||||
$rsSte=$tabId['Nom'];
|
||||
}
|
||||
if ($iDb->update('bodacc_dirigeants', array('dirSiren'=>$siren), "id=$id AND num=$num", false,0,true)) {
|
||||
$nbSirened++;
|
||||
if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour de id=$id avec $siren pour $rs dirigeant de $rsSte ($sirenSte)...".EOL;
|
||||
$tabDelete[]=$idL;
|
||||
//$iDb->delete('bodacc_sirenage', "idTable='bodacc_dirigeants' AND idAnn=$idL",false,true);
|
||||
} elseif (mysql_errno()==1062) {
|
||||
$blazbla=1;
|
||||
}
|
||||
else
|
||||
echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : ERREUR SQL ".mysql_errno()." - ".mysql_error().EOL;
|
||||
}
|
||||
}
|
||||
if (count($tabDelete)>0) {
|
||||
$strIDL=implode(',',$tabDelete);
|
||||
$iDb->query("DELETE FROM bodacc_sirenage WHERE idTable='bodacc_dirigeants' AND idAnn IN($strIDL);");
|
||||
echo "DELETE FROM bodacc_sirenage WHERE idTable='bodacc_dirigeants' AND idAnn IN($strIDL);".EOL.mysql_error();
|
||||
}
|
||||
|
||||
// if (@$nbInsert[3]>0 && @$nbUpdate[3]>0) $strInfo=" sur ".$nbInsert[3]." ajouts et ".$nbUpdate[3]." modifs.";
|
||||
// else $strInfo="";
|
||||
echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN de dirigeants CAC".EOL;
|
||||
$message.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN de dirigeants CAC".EOL;
|
||||
|
||||
if (!$modeDebug) {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,mpurcarin@scores-decisions.com,suivi@scores-decisions.com', 'Chargement INPI IMR', $message);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement INPI IMR', $message);
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des flux RNCS IMR de l'INPI.".EOL;
|
||||
|
||||
die();
|
||||
|
@ -183,8 +183,11 @@ if ($loadInpiLocal) {
|
||||
(l.codEven>0
|
||||
OR j.acte_decision LIKE '%FUSION%' OR j.acte_decision LIKE '%ABSORPTION%'
|
||||
OR j.acte_decision LIKE '%TRANSMISSION%UNIVERSELLE%PATRIMOINE%'
|
||||
OR j.acte_decision LIKE '%TUP%' OR j.acte_decision LIKE '%T.U.P%'
|
||||
OR j.acte_decision LIKE '%DISSOLUTION%' OR j.acte_nature LIKE '%DISSOLUTION%'
|
||||
OR j.acte_decision LIKE '%MISE%SOMMEIL%'
|
||||
OR j.acte_decision LIKE '%APPORT%PARTIEL%ACTIF%'
|
||||
OR j.acte_decision LIKE '%SCISSION%'
|
||||
) ",
|
||||
false, MYSQL_ASSOC);
|
||||
$nbAnnonces=count($AnnDb);
|
||||
@ -202,9 +205,17 @@ if ($loadInpiLocal) {
|
||||
if (preg_match('/(FUSION|ABSORPTION)/i', $tabInsert['acte_decision'], $matches)) {
|
||||
if (preg_match('/PROJET/i', $tabInsert['acte_decision'], $matches)) $typeEven=2726;
|
||||
else $typeEven=2725;
|
||||
} elseif (preg_match('/TRANSMISSION.{1,3}UNIVERSELLE.{1,5}PATRIMOINE/i', $tabInsert['acte_decision'], $matches))
|
||||
} elseif (preg_match('/SCISSION/i', $tabInsert['acte_decision'], $matches)) {
|
||||
if (preg_match('/PROJET/i', $tabInsert['acte_decision'], $matches)) $typeEven=2741;
|
||||
else $typeEven=2740;
|
||||
} elseif (preg_match('/TRANSMISSION.{1,3}UNIVERSELLE.{1,5}PATRIMOINE/i', $tabInsert['acte_decision'], $matches) ||
|
||||
preg_match('/T.U.P/i', $tabInsert['acte_decision'], $matches) ||
|
||||
preg_match('/\bTUP\b/i', $tabInsert['acte_decision'], $matches))
|
||||
$typeEven=2620;
|
||||
elseif (preg_match('/DISSOLUTION/i', $tabInsert['acte_decision'], $matches) ||
|
||||
elseif (preg_match('/APPORT.{1,3}PARTIEL.{1,5}ACTIF/i', $tabInsert['acte_decision'], $matches)) {
|
||||
if (preg_match('/PROJET/i', $tabInsert['acte_decision'], $matches)) $typeEven=2665;
|
||||
else $typeEven=2661;
|
||||
} elseif (preg_match('/DISSOLUTION/i', $tabInsert['acte_decision'], $matches) ||
|
||||
preg_match('/DISSOLUTION/i', $tabInsert['acte_nature'], $matches) )
|
||||
$typeEven=2203;
|
||||
elseif (preg_match('/MISE.{1,9}SOMMEIL/i', $tabInsert['acte_decision'], $matches)) {
|
||||
|
File diff suppressed because it is too large
Load Diff
1410
batch/getInseeStockSyracuse.php
Normal file
1410
batch/getInseeStockSyracuse.php
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
208
batch/getJalApce.php
Normal file
208
batch/getJalApce.php
Normal file
@ -0,0 +1,208 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
/**
|
||||
** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice)
|
||||
** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
|
||||
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
|
||||
**
|
||||
** Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!
|
||||
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
|
||||
**/
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
|
||||
$referer='http://www.apce.com/pid1642/journaux-d-annonces-legales.html?espace=1&tp=1';
|
||||
$iDb=new WDB();
|
||||
$iInsee=new MInsee();
|
||||
/*
|
||||
$url='http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01000&type=all';
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.justice.gouv.fr');
|
||||
die($page['body']);
|
||||
*/
|
||||
|
||||
/** Initialisation des codes départements **/
|
||||
$tabDept=array();
|
||||
for($i=1;$i<96;$i++) {
|
||||
if ($i<10) $tabDept[]='0'.$i;
|
||||
elseif ($i==20) { $tabDept[]='2A'; $tabDept[]='2B'; }
|
||||
else $tabDept[]=$i;
|
||||
}
|
||||
$tabDept[]=971; $tabDept[]=972; $tabDept[]=973; $tabDept[]=974;
|
||||
$tabDept[]=975; $tabDept[]=976; $tabDept[]=987; $tabDept[]=988;
|
||||
|
||||
foreach ($tabDept as $i=>$dep) {
|
||||
/** Mise à jour provisoire de l'agrément **/
|
||||
$iDb->update('tabJAL', array('agree'=>11), "dep='$dep' AND agree=1", false);
|
||||
|
||||
$url="http://www.apce.com/pid1642/journaux-d-annonces-legales.html?departement=$dep";
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
if ($dep=='2A' || $dep=='2B') $dep=20;
|
||||
|
||||
if (preg_match('/<p>(?:.*)<h4>(.*)<\/h4>(?:.*)<\/p>/Uis', $body, $matches)) $libDep=$matches[1];
|
||||
|
||||
if (preg_match('/<div class="data">(?:.*)<ul class="arrow2">(.*)<\/ul>(?:.*)<\/div>/Uis', $body, $matches)) {
|
||||
$strJal=$matches[1];
|
||||
if (preg_match_all('/<li>(?:.*)<p>(.*)<strong>(.*)<\/strong>(?:.*)<br \/>(?:.*) -->(.*)<br \/>(.*) (\d\d\d\d\d) (.*)<br \/>(.*)<\/p>(?:.*)<\/li>/Uis', $strJal, $matches)) {
|
||||
//print_r($matches);
|
||||
foreach ($matches[2] as $j=>$nomJal) {
|
||||
$tabJal=array( 'agree'=>1,
|
||||
'dep' => $dep,
|
||||
'nomJal' => $nomJal,
|
||||
//siren int(9) UNSIGNED ZEROFILL Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
'siteWeb' => strtr(trim($matches[1][$j]),array('<a href="'=>'','" target="_blank">'=>'')),
|
||||
'adresse' => trim($matches[3][$j]),
|
||||
'adresse2' => trim($matches[4][$j]),
|
||||
'cp' => trim($matches[5][$j]),
|
||||
'ville' => trim($matches[6][$j]),
|
||||
);
|
||||
if (preg_match('/<br \/>Tel \: (.*)<br \/>/Uis', $matches[7][$j], $matches2))
|
||||
$tabJal['tel']=trim($matches2[1]);
|
||||
if (preg_match('/<br \/>Fax \: (.*)<br \/>/Uis', $matches[7][$j], $matches2))
|
||||
$tabJal['fax']=trim($matches2[1]);
|
||||
if (preg_match('/<br \/>E-mail \: <a href="mailto\:(.*)">(?:.*)<br \/>/Uis', $matches[7][$j], $matches2))
|
||||
$tabJal['email']= html_entity_decode(trim($matches2[1]));
|
||||
if (preg_match('/<br \/>Parution \: (.*)<br \/>/Uis', $matches[7][$j], $matches2))
|
||||
$tabJal['parution']=trim($matches2[1]);
|
||||
if (preg_match('/<br \/>Parution \:(?:.*)<br \/>(.*)$/Uis', trim($matches[7][$j]), $matches2))
|
||||
$tabJal['infos']=trim($matches2[1]);
|
||||
|
||||
/* datetime Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
dateUpdate timestamp')
|
||||
|
||||
/* parutionJours set('lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche') latin1_swedish_ci Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
aboAnnuel double Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
aboAnnuelWeb double Oui NULL Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
aboAnnuelDateMaj date Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
editions varchar(255) latin1_swedish_ci Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
sedDateAbo date Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
sedIdDerJal varchar(80) latin1_swedish_ci Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
sedTailleDerJal int(11) Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
sedDateDerJal datetime Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
|
||||
*/
|
||||
$nomJal2=addslashes($nomJal);
|
||||
$ret=$iDb->select('tabJAL', 'id, tel, fax, email, siteWeb', "dep='$dep' AND nomJal='$nomJal2'", false, MYSQL_ASSOC);
|
||||
if (count($ret)==0) {
|
||||
$tabInsert=array_merge($tabJal, array('dateInsert'=>date('YmdHis')));
|
||||
$iDb->insert('tabJAL', $tabInsert, false);
|
||||
echo date('Y/m/d - H:i:s') ." - Dept. $dep : Ajout du JAL '$nomJal'".EOL;
|
||||
} elseif (count($ret)==1) {
|
||||
if (@$ret[0]['siteWeb']<>'' && isset($tabJal['siteWeb']) && @$tabJal['siteWeb']=='') unset($tabJal['siteWeb']);
|
||||
$iDb->update('tabJAL', $tabJal, "dep='$dep' AND nomJal='$nomJal2'", false);
|
||||
echo date('Y/m/d - H:i:s') ." - Dept. $dep : MAJ du JAL '$nomJal'".EOL;
|
||||
} else {
|
||||
echo date('Y/m/d - H:i:s') ." - Dept. $dep : ATTENTION, plusieurs JAL pour '$nomJal'".EOL;
|
||||
}
|
||||
//print_r($tabJal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Mise à jour définitive de l'agrément **/
|
||||
$iDb->update('tabJAL', array('agree'=>0, 'dateFinAgree'=>date('Ymd')), "dep='$dep' AND agree!=1", false);
|
||||
|
||||
|
||||
//die();
|
||||
/*
|
||||
if (strpos($body, "<P>Erreur rencontrée : java.lang.NullPointerException</P>")==0)
|
||||
{
|
||||
//print_r($page);
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
$page=getUrl('http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcferf.jsp', $cookie, '', $url, false, 'annuaire-cfe.insee.fr');
|
||||
$body=$page['body'];
|
||||
if (preg_match('/<font size="2" face="Arial, Helvetica, sans-serif" color="#D01010">(?:.*)([\d]{2,3})(?:.*)- (.*) \/ (.*)<\/b><\/font><\/td>/Uis', $body, $matches)) {
|
||||
$depLu=$matches[1];
|
||||
$depLib=$matches[2];
|
||||
$comLib=$matches[3];
|
||||
}
|
||||
|
||||
$tabTmp=explode('<tr bgcolor="#FFFFFF">',$body);
|
||||
//print_r($tabTmp);die();
|
||||
$sleep=false;
|
||||
foreach ($tabTmp as $j=>$tabTrib) {
|
||||
if ($j<2) continue;
|
||||
if (preg_match('/<td valign="top" width="48%"> <font face="Arial, Helvetica, sans-serif" size="2">(?:.*)<b>(.*)<\/b><br>(.*)<\/font>/Uis', $tabTrib, $results)) {
|
||||
$libTri=strip_tags($results[1]);
|
||||
if (preg_match("/^Chambre de commerce et d'industrie$/i", $libTri)) $typeTri='O';// CCI
|
||||
elseif (preg_match("/^Chambre de métiers et de l'artisanat/i", $libTri)) $typeTri='T';// CM
|
||||
elseif (preg_match("/^Chambre de métiers/i", $libTri)) $typeTri='T';// CM
|
||||
elseif (preg_match("/^Greffe du tribunal de commerce/i", $libTri)) continue;//$typeTri='C';// TC
|
||||
elseif (preg_match("/^Chambre d'agriculture/i", $libTri)) $typeTri='R';// AGR
|
||||
elseif (preg_match("/^Chambre nationale de la batellerie artisanale/i", $libTri)) $typeTri='N';// BAR
|
||||
elseif (preg_match("/^URSSAF/i", $libTri)) $typeTri='U';// URS
|
||||
elseif (preg_match("/^Centre des impôts/i", $libTri)) $typeTri='Z';// CDI
|
||||
else die("Libellé CFE '$libTri' inconnu !");
|
||||
} else die('Erreur fatale');
|
||||
if (preg_match_all('/(.*)(?:<br>|<\/a>)/Uis', $results[2], $results)) {
|
||||
//print_r($results);die();
|
||||
$results2=$results[1];
|
||||
$adresse1=trim($results2[0]);
|
||||
$adresse2=trim($results2[1]);
|
||||
if (substr($adresse2,0,5)*1>0) {
|
||||
$adresse2='';
|
||||
$i=1;
|
||||
} else $i=2;
|
||||
$cpVille=trim(@$results2[$i]);
|
||||
$cp=substr($cpVille,0,5)*1;
|
||||
$ville=trim(substr($cpVille,5));
|
||||
$tel=str_replace(' ','',strtr(@$results2[$i+1], 'TélFax :.',' '))*1;
|
||||
$fax=str_replace(' ','',strtr(@$results2[$i+2], 'TélFax :.',' '))*1;
|
||||
if (preg_match('/<a href="(.*)"/Ui', trim(@$results2[$i+3]), $results2)) $web=strtolower($results2[1]);
|
||||
if ($web=='http://') $web='';
|
||||
|
||||
$id=md5($typeTri.$adresse1.$cp.$ville);
|
||||
$str=$tabCom['codeInsee'].";1;$depLu;$depLib;$comLib;$id;$typeTri;$adresse1;$adresse2;$cp;$ville;$cpVille;$tel;$fax;$web";
|
||||
$trib=$iDb->select('tribunaux', 'triId, triCode, triType, triNom, triCP, triTel, triFax', "triType='$typeTri' AND triCommentaire='$id'");
|
||||
if (isset($trib[0]['triId'])) {
|
||||
$id=$trib[0]['triId'];
|
||||
$code=$trib[0]['triCode'];
|
||||
$nom=$trib[0]['triNom'];
|
||||
} else {
|
||||
// Il faut insérer la fiche ID de la compétence
|
||||
$tabAdr=$iInsee->structureVoie($adresse1);
|
||||
$tabInsert=array('triType'=>$typeTri,
|
||||
'triNom'=> $libTri,
|
||||
'triCP'=>$cp,
|
||||
'triWeb'=>$web,
|
||||
'triAdrNum'=>$tabAdr['num'],
|
||||
'triAdrIndRep'=>@$tabAdr['indRep'],
|
||||
'triAdrTypeVoie'=>$tabAdr['typeVoie'],
|
||||
'triAdrVoie'=>$tabAdr['libVoie'],
|
||||
'triAdrComp'=>$adresse2,
|
||||
'triVille'=>$ville,
|
||||
'triTel'=>$tel,
|
||||
'triFax'=>$fax,
|
||||
'triCommentaire'=>$id,
|
||||
);
|
||||
$id=$iDb->insert('tribunaux', $tabInsert);
|
||||
$code='';
|
||||
$nom=$libTri;
|
||||
print_r($tabInsert);
|
||||
$sleep=true;
|
||||
}
|
||||
echo $str;
|
||||
if ($id>0) {
|
||||
$ret=$iDb->insert('tribunauxInsee', array('CodeInsee'=>$tabCom['codeInsee'],'triId'=>$id));
|
||||
if (!$ret) {
|
||||
echo ' Déjà en base.';
|
||||
}
|
||||
else {
|
||||
echo ' ===> INSERE !!!';
|
||||
$sleep=true;
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$str=$tabCom['codeInsee'].";0;;;".$tabCom['LibCom']."\n";
|
||||
echo $str;
|
||||
}*/
|
||||
/*if ($sleep) randsleep(5, 15);//7,21);
|
||||
else randsleep(2, 7);*/
|
||||
// sleep(2);
|
||||
}
|
||||
|
||||
die();
|
||||
?>
|
800
batch/getLEI.php
Normal file
800
batch/getLEI.php
Normal file
@ -0,0 +1,800 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
// ftp://ftp.gmeiutility.org/GMEIPlatform/CombinedLocalOperatingUnits/CommonFormat/GloballyAccepted/Full/
|
||||
// ftp://ftp.gmeiutility.org/GMEIPlatform/CombinedLocalOperatingUnits/CommonFormat/GloballyAccepted/Delta/
|
||||
|
||||
function xml2assoc($xml) {
|
||||
$assoc = null;
|
||||
while($xml->read()){
|
||||
switch ($xml->nodeType) {
|
||||
case XMLReader::END_ELEMENT: return $assoc;
|
||||
case XMLReader::ELEMENT:
|
||||
$assoc[$xml->name][] = array('value' => $xml->isEmptyElement ? '' : xml2assoc($xml));
|
||||
if($xml->hasAttributes){
|
||||
$el =& $assoc[$xml->name][count($assoc[$xml->name]) - 1];
|
||||
while($xml->moveToNextAttribute()) $el['@'.$xml->name] = $xml->value;
|
||||
}
|
||||
break;
|
||||
case XMLReader::TEXT:
|
||||
case XMLReader::CDATA: $assoc .= $xml->value;
|
||||
}
|
||||
}
|
||||
return $assoc;
|
||||
}/*
|
||||
function xml2assoc($xml, array &$target = array()) {
|
||||
while ($xml->read()) {
|
||||
switch ($xml->nodeType) {
|
||||
case XMLReader::END_ELEMENT:
|
||||
return $target;
|
||||
case XMLReader::ELEMENT:
|
||||
$name = $xml->name;
|
||||
$target[$name] = $xml->hasAttributes ? array() : '';
|
||||
if (!$xml->isEmptyElement) {
|
||||
$target[$name] = array();
|
||||
xml2assoc($xml, $target[$name]);
|
||||
}
|
||||
|
||||
if ($xml->hasAttributes)
|
||||
while($xml->moveToNextAttribute())
|
||||
$target[$name]['@'.$xml->name] = $xml->value;
|
||||
break;
|
||||
case XMLReader::TEXT:
|
||||
case XMLReader::CDATA:
|
||||
$target = $xml->value;
|
||||
}
|
||||
}
|
||||
return $target;
|
||||
}
|
||||
*/
|
||||
|
||||
function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) {
|
||||
$iDb=new WDB($db);
|
||||
//if ($modeDebug) echo date('Y/m/d - H:i:s')." - Chargement de la table $table...".EOL;
|
||||
$tabTailles=$tabTypes=$champ=array();
|
||||
if ($table=='') $table=basename($nomFichier);
|
||||
$fp = fopen($nomFichier, 'r');
|
||||
$nbLignes=$nbInsert=0;
|
||||
while (($data = fgetcsv($fp, 15000, ';')) !== FALSE) {
|
||||
$nbLignes++;
|
||||
if ($nbLignes==1) {
|
||||
// On compte le nombre de colonnes du fichier
|
||||
$nbColonnes=count($data);
|
||||
$sql="CREATE TABLE IF NOT EXISTS `$table` (";
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
if ($i==($nbColonnes-1) && trim($data[$i])=='') {
|
||||
$nbColonnes--;
|
||||
break;
|
||||
} else {
|
||||
$num=0;
|
||||
while (in_array($data[$i], $champ)) {
|
||||
$data[$i]=$data[$i].'_'.$i;
|
||||
}
|
||||
$sql.='`'.$data[$i].'` LONGTEXT,';
|
||||
$tabTailles[$i]=0;
|
||||
$champ[$i]=$data[$i];
|
||||
}
|
||||
}
|
||||
$sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
|
||||
$sql.=") TYPE=MYISAM COMMENT='".basename($nomFichier)." du ".date('d/m/Y H:i', filemtime($nomFichier))." (".round(filesize($nomFichier)/1024)." ko)';";
|
||||
if ($create) {
|
||||
$sql0="DROP TABLE IF EXISTS `$table`;";
|
||||
$iDb->query($sql0);
|
||||
if ($iDb->query($sql))
|
||||
'';//echo date ('Y/m/d - H:i:s')." - Création de la table $table OK...".EOL;
|
||||
else {
|
||||
echo $iDb->getLastError().EOL;
|
||||
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $table !".EOL."Requête SQL = $sql".EOL);
|
||||
}
|
||||
}
|
||||
if ($reload) {
|
||||
$sql="TRUNCATE TABLE `$table`;";
|
||||
if ($iDb->query($sql))
|
||||
'';//echo date ('Y/m/d - H:i:s')." - Création de la table $table OK...".EOL;
|
||||
else {
|
||||
echo $iDb->getLastError().EOL;
|
||||
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $table !".EOL."Requête SQL = $sql".EOL);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
$tabDataToInsert=array();
|
||||
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
|
||||
if (strlen($data[$i])>$tabTailles[$i])
|
||||
$tabTailles[$i]=strlen($data[$i]);
|
||||
|
||||
if (gettype($data[$i])=='string') {
|
||||
if (is_numeric($data[$i])) {
|
||||
if (round($data[$i]*1)<>($data[$i]*1))
|
||||
$tabTypes[$i][]='double';
|
||||
else
|
||||
$tabTypes[$i][]='integer';
|
||||
} else
|
||||
$tabTypes[$i][]='string';
|
||||
} else $tabTypes[$i][]=gettype($data[$i]);
|
||||
}
|
||||
|
||||
$ret=$iDb->insert($table, $tabDataToInsert);
|
||||
if ($ret!=1) {
|
||||
echo date ('Y/m/d - H:i:s') . ' - ERREUR n°'.mysql_errno()." à l'insertion de la ligne n°$i : ". implode(';', $data) ." !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . ' - '.mysql_error() .EOL;
|
||||
}
|
||||
unset($tabDataToInsert);
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
if ($create) {
|
||||
// On réduit la taille des colonnes au max de chaque champ
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
if ($tabTailles[$i]<256) {
|
||||
$tabTmp=array_unique($tabTypes[$i]);
|
||||
//print_r($tabTmp);
|
||||
if (count($tabTmp)==1) {
|
||||
reset($tabTmp);
|
||||
switch (current($tabTmp)) {
|
||||
case 'boolean': $strType='BOOL'; break;
|
||||
case 'integer': $strType="BIGINT(".$tabTailles[$i].")"; break;
|
||||
case 'double': $strType='DOUBLE'; break;
|
||||
default: $strType="VARCHAR(".$tabTailles[$i].")";break;
|
||||
}
|
||||
}
|
||||
$sql="ALTER TABLE `$table` CHANGE `".$champ[$i]."` `".$champ[$i]."` $strType NULL DEFAULT NULL ";
|
||||
if ($iDb->query($sql))
|
||||
echo '';//date ('Y/m/d - H:i:s')." - Taille du champ $i (". $champ[$i] .") passée à ". $tabTailles[$i] ."...".EOL;
|
||||
else
|
||||
echo '';//date ('Y/m/d - H:i:s')." - Impossible de modifier la taille du champ $i (". $champ[$i] .") à ". $tabTailles[$i] ." !".EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $nbLignes;
|
||||
}
|
||||
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTIONS]
|
||||
Téléchargement et mise à jour d'informations en provenance de Bases Internet.
|
||||
|
||||
Options:
|
||||
-d Mode debug
|
||||
-t Traiter tous les fichiers à mettre à jour (*)
|
||||
-r Traiter les fichiers Risques (prim.net)
|
||||
-x Traiter les fichiers Imports/Exports des Douanes
|
||||
-p Traiter les fichiers du Registre français des émissions polluantes
|
||||
-f Traiter le fichier Finess (Etablissements de Santé)
|
||||
|
||||
(*): Valeur par défaut !
|
||||
";
|
||||
$modeDebug=false;
|
||||
$tAll=true;
|
||||
$tRisks=$tXport=$tPollu=$tSante=false;
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1)
|
||||
{
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case 't': $tAll=true; break;
|
||||
case 'r': $tAll=false; $tRisks=true; break;
|
||||
case 'x': $tAll=false; $tXport=true; break;
|
||||
case 'p': $tAll=false; $tPollu=true; break;
|
||||
case 'f': $tAll=false; $tSante=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$tabFichier[$j]=$argv[$i];
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($tAll) $tRisks=$tXport=$tPollu=$tSante=true;
|
||||
|
||||
$iDb=new WDB('sdv1');
|
||||
|
||||
echo date('Y/m/d - H:i:s')." - Début du script...".EOL;
|
||||
|
||||
$tabSrcLei=array(
|
||||
/* 'lu'=>array( //'https://www.gmeiutility.org/actions/DailyFileDownload/?termsAndConditions=true&fileName=20150119T064922.zip&downloadFile=Envoyer'
|
||||
//'urlBase'=>'https://www.geiportal.org/customer',
|
||||
'urlListe'=>'https://www.gmeiutility.org/actions/DailyFileDownload/',
|
||||
'listeReg'=>'/<td><a href="\.(.*)">(LEI_Full_(?:.*))<\/a>/Uim',
|
||||
'listeUrl'=>1,
|
||||
),
|
||||
'de'=>array( 'urlBase'=>'https://www.geiportal.org/customer',
|
||||
'urlListe'=>'https://www.geiportal.org/customer/index.php?a=sea&act=downloadcff&lang=en',
|
||||
'listeReg'=>'/<td><a href="\.(.*)">(LEI_Full_(?:.*))<\/a>/Uim',
|
||||
'listeUrl'=>1,
|
||||
),*/
|
||||
'fr'=>array( 'urlBase'=>'https://lei-france.insee.fr',
|
||||
'urlListe'=>'https://lei-france.insee.fr/telechargement',
|
||||
'listeReg'=>'/<td headers="dateFichier">\s+(.*)<\/td>\s+<td headers="dateNom">\s+<a href="(.*)">(.*)<\/a>/Uis',
|
||||
'listeUrl'=>2,
|
||||
),
|
||||
);
|
||||
|
||||
$tabFichier=array();
|
||||
|
||||
foreach ($tabSrcLei as $pays=>$tabSrc) {
|
||||
$url=$tabSrc['urlListe'];
|
||||
$regex=$tabSrc['listeReg'];
|
||||
$fichier=REP_TEMP.'lei_'.$pays.'_'.date('Ymd').'.zip';
|
||||
if (!(file_exists($fichier) && date('Ymd',filemtime($fichier))==date('Ymd'))) {
|
||||
$page=getUrl($url);
|
||||
if ($page['code']<>200) die('Code retour finess différent de 200 !'.EOL);
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
// print_r($page);
|
||||
// die();
|
||||
|
||||
if (preg_match($regex, $body, $matches)) {
|
||||
$url=$tabSrc['urlBase'].$matches[$tabSrc['listeUrl']];
|
||||
$tdeb=microtime(1);
|
||||
// $url='http://finess.sante.gouv.fr/finess/jsp/liste.do?order=CSVEQUIP&noFiness=&export=complet';
|
||||
echo date('Y/m/d - H:i:s')." - Début de récupération de l'URL : $url".EOL;
|
||||
$page=getUrl($url, $cookie, '', $referer);
|
||||
$tfin=microtime(1);
|
||||
$duree=round($tfin-$tdeb,1);
|
||||
$tailleKo=round(strlen($page['body'])/1024,1);
|
||||
$debit=round((strlen($page['body'])/($tfin-$tdeb))/1024,1);
|
||||
$strXml=$page['body'];
|
||||
file_put_contents($fichier, $strXml);
|
||||
unset($strXml);
|
||||
echo date('Y/m/d - H:i:s')." - Fin de la récupération du fichier $fichier de $tailleKo Ko en $duree s ($debit Ko/s).".EOL;
|
||||
}
|
||||
} else {
|
||||
$tailleKo=round(filesize($fichier)/1024,1);
|
||||
echo date('Y/m/d - H:i:s')." - Fichier $fichier de $tailleKo Ko déjà téléchargé.".EOL;
|
||||
}
|
||||
|
||||
$zip = new ZipArchive;
|
||||
if ($zip->open($fichier) === TRUE) {
|
||||
for ($i=0; $i<$zip->numFiles;$i++) {
|
||||
$tabIndex[$i]=$zip->statIndex($i);
|
||||
/* if ($modeDebug){
|
||||
echo date('Y/m/d - H:i:s')." - Fichier ".basename($tabIndex['name'])."en cache datant du ".date('d/m/Y H:i:s', filectime('/tmp/'.$tabIndex['name']))." (".round(filesize('/tmp/'.$tabIndex['name'])/1024,1)." ko)".EOL;
|
||||
echo date('Y/m/d - H:i:s')." - Fichier dans l'archive téléchargée datant du ".date('d/m/Y H:i:s', $tabIndex['mtime'])." (".round($tabIndex['size']/1024,1)." ko)".EOL;
|
||||
}*/
|
||||
}
|
||||
//print_r($tabIndex);die();
|
||||
$zip->extractTo(REP_TEMP);
|
||||
$zip->close();
|
||||
$fichierXml=$tabIndex[0]['name'];
|
||||
}
|
||||
|
||||
//ini_set('memory_limit', -1);
|
||||
echo memory_get_usage ().' octets'.EOL;
|
||||
echo date('Y/m/d - H:i:s')." - Fin de la décompression du fichier $fichierXml.".EOL;
|
||||
|
||||
/*
|
||||
$xml_string=file_get_contents(REP_TEMP.$fichierXml);
|
||||
$xml = simplexml_load_string($xml_string);
|
||||
$json = json_encode($xml);
|
||||
$array = json_decode($json,TRUE);
|
||||
print_r($array);
|
||||
die();
|
||||
*/
|
||||
|
||||
/*
|
||||
$racine = simplexml_load_file(REP_TEMP.$fichierXml);
|
||||
$header = $racine->{'lei:LEIData'}->{'lei:LEIHeader>'}->{'lei:ContentDate'};
|
||||
|
||||
echo $header.EOL;
|
||||
die();
|
||||
|
||||
/*
|
||||
<lei:ContentDate>2015-01-18T20:30:11.854+01:00</lei:ContentDate>
|
||||
<lei:Originator>969500Q2MA9VBQ8BG884</lei:Originator>
|
||||
<lei:FileContent>LOU_FULL_PUBLISHED</lei:FileContent>
|
||||
<lei:DeltaStart>2015-01-17T08:30:11.000+01:00</lei:DeltaStart>
|
||||
<lei:RecordCount>20828</lei:RecordCount>
|
||||
</lei:LEIHeader>
|
||||
<lei:LEIRecords>
|
||||
<lei:LEIRecord>
|
||||
*
|
||||
|
||||
$count = count($node->children());
|
||||
$liste = $header->children();
|
||||
$first = $liste[0]; // Premier élément fils
|
||||
// Lecture de tous les paragraphe
|
||||
foreach($liste as $nom => $element){
|
||||
echo "Le nom $nom contient \"".$element."\"<br/>";
|
||||
}
|
||||
|
||||
|
||||
die();
|
||||
*/
|
||||
|
||||
$reader = new XMLReader();
|
||||
if (!$reader->open(REP_TEMP.$fichierXml))
|
||||
die("Failed to open : $fichierXml".EOL);
|
||||
|
||||
$assoc = xml2assoc($reader);
|
||||
$reader->close();
|
||||
unset($reader);
|
||||
|
||||
$header=$assoc['lei:LEIData'][0]['value']['lei:LEIHeader'][0]['value'];
|
||||
$tabInsertFichier=array(
|
||||
'LEIDataFile'=> $fichierXml,
|
||||
'OriginIso2'=> $pays,
|
||||
'ContentDate'=> $header['lei:ContentDate'][0]['value'],
|
||||
'Originator'=> $header['lei:Originator'][0]['value'],
|
||||
'FileContent'=> $header['lei:FileContent'][0]['value'],
|
||||
'DeltaStart'=> @$header['lei:DeltaStart'][0]['value'],
|
||||
'RecordCount'=> @$header['lei:RecordCount'][0]['value'],
|
||||
'NextVersion'=> @$header['lei:NextVersion'][0]['value'],
|
||||
'Extension'=> @$header['lei:Extension'][0]['value'],
|
||||
);
|
||||
unset($header);
|
||||
|
||||
$records=$assoc['lei:LEIData'][0]['value']['lei:LEIRecords'][0]['value']['lei:LEIRecord'];
|
||||
$nbNode=count($records);
|
||||
unset($assoc);
|
||||
echo memory_get_usage ().' octets'.EOL;
|
||||
print_r($tabInsertFichier);
|
||||
echo date('Y/m/d - H:i:s')." - Fin de la lecture 1 du fichier $fichierXml : $nbNode noeuds.".EOL;
|
||||
foreach ($records as $i=>$record) {
|
||||
$record=$record['value'];
|
||||
|
||||
$lei=$record['lei:LEI'][0]['value'];
|
||||
$entity=$record['lei:Entity'][0]['value'];
|
||||
$legalName=utf8_decode($entity['lei:LegalName'][0]['value']);
|
||||
$registration=$record['lei:Registration'][0]['value'];
|
||||
$extension=@$record['lei:Extension'][0]['value'];
|
||||
|
||||
|
||||
$tabInsert=array( 'LEI'=> $lei,
|
||||
|
||||
'LegalName'=> $legalName,
|
||||
'OtherName'=> @utf8_decode($entity['lei:OtherEntityNames'][0]['value']['lei:OtherEntityName'][0]['value']),
|
||||
'OtherNameType'=> @$entity['lei:OtherEntityNames'][0]['value']['lei:OtherEntityName'][0]['@type'],
|
||||
|
||||
'LegalAddress1'=> utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line1'][0]['value']),
|
||||
'LegalAddress2'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line2'][0]['value']),
|
||||
'LegalAddress3'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line3'][0]['value']),
|
||||
'LegalAddress4'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Line4'][0]['value']),
|
||||
'LegalAddressCity'=> utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:City'][0]['value']),
|
||||
'LegalAddressRegion'=> @utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Region'][0]['value']),
|
||||
'LegalAddressCountry'=> utf8_decode($entity['lei:LegalAddress'][0]['value']['lei:Country'][0]['value']),
|
||||
'LegalAddressPostalCode'=> @$entity['lei:LegalAddress'][0]['value']['lei:PostalCode'][0]['value'],
|
||||
|
||||
'HeadAddress1'=> utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line1'][0]['value']),
|
||||
'HeadAddress2'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line2'][0]['value']),
|
||||
'HeadAddress3'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line3'][0]['value']),
|
||||
'HeadAddress4'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Line4'][0]['value']),
|
||||
'HeadAddressCity'=> utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:City'][0]['value']),
|
||||
'HeadAddressRegion'=> @utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Region'][0]['value']),
|
||||
'HeadAddressCountry'=> utf8_decode($entity['lei:HeadquartersAddress'][0]['value']['lei:Country'][0]['value']),
|
||||
'HeadAddressPostalCode'=> @$entity['lei:HeadquartersAddress'][0]['value']['lei:PostalCode'][0]['value'],
|
||||
|
||||
'BusinessRegisterEntityID'=> @$entity['lei:BusinessRegisterEntityID'][0]['value'],
|
||||
'LegalJurisdiction'=> @$entity['lei:LegalJurisdiction'][0]['value'],
|
||||
'LegalForm'=> @utf8_decode($entity['lei:LegalForm'][0]['value']),
|
||||
'AssociatedEntityName'=> @$entity['lei:AssociatedEntity'][0]['value']['lei:AssociatedEntityName'][0]['value'],
|
||||
'AssociatedEntityLEI'=> @$entity['lei:AssociatedEntity'][0]['value']['lei:AssociatedLEI'][0]['value'],
|
||||
'AssociatedEntityType'=> @$entity['lei:AssociatedEntity'][0]['value']['@type'],
|
||||
'EntityStatus'=> $entity['lei:EntityStatus'][0]['value'],
|
||||
'EntityExpirationDate'=> @$entity['EntityExpirationDate'][0]['value'],
|
||||
'EntityExpirationReason'=> @$entity['EntityExpirationReason'][0]['value'],
|
||||
'SuccessorEntityName'=> @$entity['lei:SuccessorEntity'][0]['value']['lei:SuccessorEntityName'][0]['value'],
|
||||
'SuccessorEntityLEI'=> @$entity['lei:SuccessorEntity'][0]['value']['lei:SuccessorLEI'][0]['value'],
|
||||
'SuccessorEntityType'=> @$entity['lei:SuccessorEntity'][0]['value']['@type'],
|
||||
'EntityNextVersion'=> @$entity['lei:NextVersion'][0]['value'],
|
||||
|
||||
|
||||
'InitialRegistrationDate'=> $registration['lei:InitialRegistrationDate'][0]['value'],
|
||||
'LastUpdateDate'=> $registration['lei:LastUpdateDate'][0]['value'],
|
||||
'RegistrationStatus'=> $registration['lei:RegistrationStatus'][0]['value'],
|
||||
'NextRenewalDate'=> $registration['lei:NextRenewalDate'][0]['value'],
|
||||
'ManagingLOU'=> $registration['lei:ManagingLOU'][0]['value'],
|
||||
'ValidationSources'=> @$registration['lei:ValidationSources'][0]['value'],
|
||||
'RegistrationNextVersion'=> @$registration['lei:NextVersion'][0]['value'],
|
||||
|
||||
'NextVersion'=> @$record['lei:NextVersion'][0]['value'],
|
||||
|
||||
'FundNumber'=> @$extension['leifr:FundNumber'][0]['value'],
|
||||
'FundManagerBusinessRegisterID'=> @$extension['leifr:FundManagerBusinessRegisterID'][0]['value'],
|
||||
'siren'=> @$extension['leifr:SIREN'][0]['value'],
|
||||
'NACEClassCode'=> @$extension['leifr:EconomicActivity'][0]['value']['leifr:NACEClassCode'][0]['value'],
|
||||
'SousClasseNAF'=> @$extension['leifr:EconomicActivity'][0]['value']['leifr:SousClasseNAF'][0]['value'],
|
||||
'LegalFormCodification'=> @$extension['leifr:LegalFormCodification'][0]['value'],
|
||||
'dateInsert'=> $tabInsertFichier['ContentDate'],
|
||||
);
|
||||
|
||||
$ret=$iDb->insert('bourse_lei', $tabInsert, false);
|
||||
//echo mysql_error().EOL;
|
||||
if (!$ret) {
|
||||
//echo mysql_errno().' : '.mysql_error().EOL;
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update('bourse_lei', $tabInsert, "LEI='$lei'", false);
|
||||
echo date('Y/m/d - H:i:s')." - $i/$nbNode : Update $lei\t$legalName".EOL;
|
||||
}
|
||||
} else
|
||||
date('Y/m/d - H:i:s')." - $i/$nbNode : INSERT $lei\t$legalName".EOL;
|
||||
}
|
||||
die();
|
||||
|
||||
/*
|
||||
$xml_string=file_get_contents(REP_TEMP.$fichierXml);
|
||||
$xml = simplexml_load_string($xml_string);
|
||||
|
||||
//$sxml = simplexml_load_file(REP_TEMP.$fichierXml);
|
||||
|
||||
print_r($xml);
|
||||
die();
|
||||
|
||||
|
||||
foreach($sxml as $node) {
|
||||
$lei = htmlspecialchars((string)$node->{'lei:LEI'}, ENT_QUOTES);
|
||||
$leiEnt= htmlspecialchars((string)$node->{'lei:Entity'} , ENT_QUOTES);
|
||||
|
||||
echo "$lei\t$leiEnt".EOL;
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
|
||||
$assoc = xml2assoc($reader);
|
||||
$reader->close();
|
||||
unset($reader);
|
||||
|
||||
$nbNode=count($assoc[0]['val'][1]['val']);
|
||||
echo memory_get_usage ().' octets'.EOL;
|
||||
echo date('Y/m/d - H:i:s')." - Fin de la lecture 1 du fichier $fichierXml : $nbNode noeuds.".EOL;
|
||||
|
||||
foreach($assoc[0]['val'][1]['val'] as $i=>$record) {
|
||||
//print_r($record);
|
||||
$newRecord=convertArray($record);
|
||||
print_r($newRecord);
|
||||
}
|
||||
//print_r($assoc);
|
||||
die();
|
||||
|
||||
|
||||
|
||||
// create a new object
|
||||
$parser = new SimpleLargeXMLParser();
|
||||
// load the XML
|
||||
$parser->loadXML(REP_TEMP.$fichierXml);
|
||||
|
||||
|
||||
//$array = $parser->parseXML("//myFirstNode/color-palettes/color[@type='hex']"); // get all colors in hex format
|
||||
//$array = $parser->parseXML("//myFirstNode/first-100-numbers/number[@n>'50']"); // get all numbers bigger then 50
|
||||
//$array = $parser->parseXML("//myFirstNode/searchengines"); // get all search engines
|
||||
//$array = $parser->parseXML("//myFirstNode"); // get all XML file
|
||||
$array = $parser->parseXML(); // get all XML file - faster if you specify the first node
|
||||
|
||||
|
||||
// in case you also need the attibutes (with values) you need to pass the 2rd parameter as true
|
||||
// the array structure will change in this case
|
||||
//$array = $parser->parseXML("//myFirstNode/color-palettes/color[@type='hex']", true); // get all colors in hex format
|
||||
//$array = $parser->parseXML("//myFirstNode/first-100-numbers/number[@n>'50']", true); // get all numbers bigger then 50
|
||||
//$array = $parser->parseXML("//myFirstNode/searchengines", true); // get all search engines
|
||||
//$array = $parser->parseXML("//myFirstNode", true); // get all XML file
|
||||
|
||||
|
||||
// in case you have special XML files (like RSS or Atom feeds) you need to register the namespaces
|
||||
//$parser->registerNamespace("atom", "http://www.w3.org/2005/Atom"); // register the namespace
|
||||
//$array = $parser->parseXML("//atom:feed/atom:entry"); //
|
||||
|
||||
echo memory_get_usage ().' octets'.EOL;
|
||||
echo date('Y/m/d - H:i:s')." - Fin de la lecture 2 du fichier $fichierXml : $nbNode noeuds.".EOL;
|
||||
|
||||
|
||||
//print "<pre>";
|
||||
print_r($array);
|
||||
//print "</pre>";
|
||||
|
||||
die();
|
||||
|
||||
foreach ($assoc[0]['childs'][1]['childs'] as $i=>$record) {
|
||||
print_r($record);
|
||||
}
|
||||
//print_r($assoc);
|
||||
die();
|
||||
|
||||
/*
|
||||
while($reader->read()) {
|
||||
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'lei:LEIHeader') {
|
||||
$address = $reader->getAttribute('address');
|
||||
$lattitude = $reader->getAttribute('lat');
|
||||
$longitude = $reader->getAttribute('lng');
|
||||
}
|
||||
|
||||
$reader->close();
|
||||
*/
|
||||
$nbNode=0;
|
||||
$tabNode=array();
|
||||
|
||||
while($reader->read())
|
||||
{
|
||||
if ($reader->name === 'lei:LEIHeader') {
|
||||
//parse column node to into $columns array
|
||||
echo "Header".EOL;
|
||||
}
|
||||
|
||||
if($reader->nodeType == XMLReader::ELEMENT) $nodeName = $reader->name;
|
||||
if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA)
|
||||
{
|
||||
/*
|
||||
<lei:LEIHeader>
|
||||
<lei:ContentDate>2015-01-15T20:30:13.455+01:00</lei:ContentDate>
|
||||
<lei:Originator>969500Q2MA9VBQ8BG884</lei:Originator>
|
||||
<lei:FileContent>LOU_FULL_PUBLISHED</lei:FileContent>
|
||||
<lei:DeltaStart>2015-01-14T08:30:13.000+01:00</lei:DeltaStart>
|
||||
<lei:RecordCount>20801</lei:RecordCount>
|
||||
</lei:LEIHeader>
|
||||
*/
|
||||
$tabNode[$nodeName]=array(
|
||||
'value'=>$reader->value,
|
||||
'nbAttribute'=>$reader->attributeCount,
|
||||
);
|
||||
$attributeCount ;
|
||||
/* if ($nodeName == 'LEI') {
|
||||
$id = $reader->value;
|
||||
echo $reader->readString().EOL;
|
||||
die();
|
||||
}
|
||||
if ($nodeName == 'LegalName') $tab =
|
||||
if ($nodeName == 'AssociatedEntityName') $title = $reader->value;
|
||||
/* if ($nodeName == 'author') $author = $reader->value;
|
||||
if ($nodeName == 'isbn') $isbn = $reader->value;
|
||||
if ($nodeName == 'image') $image = $reader->value;
|
||||
if ($nodeName == 'ean') $ean = $reader->value;
|
||||
if ($nodeName == 'published') $published = $reader->value;
|
||||
if ($nodeName == 'publisher') $publisher = $reader->value;
|
||||
if ($nodeName == 'pages') $pages = $reader->value;
|
||||
if ($nodeName == 'price') $price = $reader->value;
|
||||
if ($nodeName == 'description') $description = $reader->value;
|
||||
if ($nodeName == 'status') $status = $reader->value;*
|
||||
$ean = '';*/
|
||||
}
|
||||
//echo "$id\t$url\t$title".EOL;
|
||||
|
||||
if($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'lei:LEIRecord')
|
||||
{
|
||||
//echo "Node $nbNode:".EOL;
|
||||
$tabNodes[$nbNode]=$tabNode;
|
||||
|
||||
$nbNode++;
|
||||
$tabNode=array();
|
||||
}
|
||||
}
|
||||
$reader->close();
|
||||
|
||||
echo date('Y/m/d - H:i:s')." - Fin de la lecture du fichier $fichierXml : $nbNode noeuds.".EOL;
|
||||
|
||||
print_r($tabNodes);
|
||||
//$nbNode
|
||||
|
||||
die();
|
||||
|
||||
$xmLei = simplexml_load_file(REP_TEMP.$fichierXml);
|
||||
echo file_get_contents(REP_TEMP.$fichierXml);
|
||||
die();
|
||||
|
||||
//echo memory_get_peak_usage();
|
||||
print_r($xmLei);
|
||||
echo memory_get_usage ().' octets'.EOL;
|
||||
|
||||
die();
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
echo date('Y/m/d - H:i:s')." - Fin du script...".EOL;
|
||||
|
||||
function xml2array($xml, $name)
|
||||
{
|
||||
print "<NOEUD>".EOL;
|
||||
|
||||
$tree = null;
|
||||
print("I'm inside " . $name . EOL);
|
||||
|
||||
while($xml->read())
|
||||
{
|
||||
if($xml->nodeType == XMLReader::END_ELEMENT)
|
||||
{
|
||||
print "</NOEUD 2>".EOL;
|
||||
return $tree;
|
||||
}
|
||||
|
||||
else if($xml->nodeType == XMLReader::ELEMENT)
|
||||
{
|
||||
$node = array();
|
||||
|
||||
print("Adding " . $xml->name .EOL);
|
||||
//$node['tag'] = $xml->name;
|
||||
//$node[$xml->name]='';
|
||||
if($xml->hasAttributes) {
|
||||
$attributes = array();
|
||||
while($xml->moveToNextAttribute())
|
||||
{
|
||||
print("Adding attr " . $xml->name ." = " . $xml->value . EOL);
|
||||
$attributes[$xml->name] = $xml->value;
|
||||
}
|
||||
$node['attr'] = $attributes;
|
||||
}
|
||||
|
||||
if(!$xml->isEmptyElement)
|
||||
{
|
||||
$childs = xml2array($xml, $xml->name);
|
||||
if (count($childs)<=1)// && !is_array($childs[0]))
|
||||
$node[$xml->name] = $childs[0];
|
||||
else
|
||||
$node[$xml->name] = $childs;
|
||||
}
|
||||
|
||||
print($node[$xml->name]. " added".EOL);
|
||||
$tree[] = $node;
|
||||
}
|
||||
|
||||
else if($xml->nodeType == XMLReader::TEXT)
|
||||
{
|
||||
$tree[]= $xml->value;
|
||||
/*
|
||||
$node = array();
|
||||
$node['text'] = $xml->value;
|
||||
$tree[] = $node;*/
|
||||
print "text added = " . $xml->value .EOL;
|
||||
}
|
||||
}
|
||||
|
||||
print "returning " . count($tree) . " childs".EOL;
|
||||
print "</NOEUD 1>".EOL;
|
||||
|
||||
return $tree;
|
||||
}
|
||||
/*
|
||||
function xml2assoc(&$xml) {
|
||||
$assoc = NULL;
|
||||
$n = 0;
|
||||
while($xml->read()){
|
||||
if($xml->nodeType == XMLReader::END_ELEMENT) break;
|
||||
if($xml->nodeType == XMLReader::ELEMENT and !$xml->isEmptyElement){
|
||||
$assoc[$n]['name'] = $xml->name;
|
||||
if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value;
|
||||
$assoc[$n]['val'] = xml2assoc($xml);
|
||||
$n++;
|
||||
}
|
||||
else if($xml->isEmptyElement){
|
||||
$assoc[$n]['name'] = $xml->name;
|
||||
if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value;
|
||||
$assoc[$n]['val'] = "";
|
||||
$n++;
|
||||
}
|
||||
else if($xml->nodeType == XMLReader::TEXT) $assoc = $xml->value;
|
||||
}
|
||||
return $assoc;
|
||||
}
|
||||
*/
|
||||
|
||||
class SimpleLargeXMLParser {
|
||||
|
||||
/**
|
||||
* DOMDocument
|
||||
*
|
||||
* @var DOMDocument
|
||||
*/
|
||||
protected $XMLDoc;
|
||||
|
||||
/**
|
||||
* DOMXPath
|
||||
*
|
||||
* @var DOMXPath
|
||||
*/
|
||||
protected $XPath;
|
||||
|
||||
/**
|
||||
* Namespaces to register for XPath
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $namespaces = array();
|
||||
|
||||
|
||||
public function __construct() {
|
||||
|
||||
$this->XMLDoc = new DOMDocument();
|
||||
$this->XMLDoc->xmlStandalone = true;
|
||||
$this->XMLDoc->preserveWhiteSpace = false;
|
||||
}
|
||||
|
||||
public function registerNamespace ($prefix, $namspaceURI) {
|
||||
|
||||
$this->XPath->registerNamespace($prefix, $namspaceURI);
|
||||
}
|
||||
|
||||
public function loadXML ($source) {
|
||||
|
||||
$load = $this->XMLDoc->Load($source);
|
||||
$this->XPath = new DOMXPath($this->XMLDoc);
|
||||
|
||||
return $load;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse an XML
|
||||
*
|
||||
* @param string $source
|
||||
* @param string $query
|
||||
* @param bool $getAttributes
|
||||
* @return array
|
||||
*/
|
||||
public function parseXML ($query = false, $getAttributes = false) {
|
||||
|
||||
$return = array();
|
||||
|
||||
if ($query == false || $query == "//") { // no query defined - get the root
|
||||
$query = "*";
|
||||
}
|
||||
$components = $this->XPath->query($query);
|
||||
if ($components instanceof DOMNodeList) {
|
||||
foreach ($components as $component) {
|
||||
if ($component instanceof DOMElement) {
|
||||
$return[] = self::getChildern($component, $getAttributes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the childrens of a DOM node as array or as a string if the node does not have childrens
|
||||
*
|
||||
* @param DOMElement $node
|
||||
* @param bool $getAttributes
|
||||
* @return array / string
|
||||
*/
|
||||
protected static function getChildern (DOMElement $node, $getAttributes) {
|
||||
|
||||
$getAttributes = (bool)$getAttributes;
|
||||
|
||||
if ($node->hasChildNodes()) {
|
||||
$return = array();
|
||||
foreach ($node->childNodes as $n) {
|
||||
if ($n instanceof DOMText) {
|
||||
|
||||
if ($getAttributes === true) {
|
||||
$value = $node->nodeValue;
|
||||
$attributes = array();
|
||||
foreach ($node->attributes as $attrNode) {
|
||||
$attributes[$attrNode->name] = $attrNode->value;
|
||||
}
|
||||
$return[$node->nodeName] = array('value'=>$value, 'attributes'=>$attributes);
|
||||
} else {
|
||||
$return = $node->nodeValue;
|
||||
}
|
||||
|
||||
} elseif ($n instanceof DOMElement) {
|
||||
if ($getAttributes === true) {
|
||||
$value = self::getChildern($n, $getAttributes);
|
||||
$attributes = array();
|
||||
foreach ($n->attributes as $attrNode) {
|
||||
$attributes[$attrNode->name] = $attrNode->value;
|
||||
}
|
||||
$return[$n->nodeName][] = array('value'=>$value, 'attributes'=>$attributes);
|
||||
} else {
|
||||
$return[$n->nodeName][] = self::getChildern($n, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
} else {
|
||||
return $node->nodeValue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
@ -209,6 +209,8 @@ for($i=0; $i<1000; $i++) {
|
||||
while (true) {
|
||||
$url="http://api.bing.net/json.aspx?AppId=$appId&Version=2.2&Market=$cultureInfo&Query=$query&Sources=$source&Image.Count=$numResults&Image.Offset=$offset&JsonType=raw";//&Adult=On";
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
print_r($page);
|
||||
die();//Mentions légales L’annonceur est l’éditeur de ce site. PagesJaunes est le prestataire technique.
|
||||
$json=$page['body'];
|
||||
$tabJson=json_decode($json, true);
|
||||
$tabJson=$tabJson['SearchResponse'];
|
||||
|
@ -22,13 +22,14 @@ Options:
|
||||
-b Mise à jour des marques issues des PDF
|
||||
-s Mise à jour intelligente des siren
|
||||
-a Découpage des adresses postales non encore découpées
|
||||
-t Decoupage des fichiers images
|
||||
|
||||
(*): Valeur par défaut !
|
||||
";
|
||||
$iMarque=new MMarques();
|
||||
$iInsee=new MInsee();
|
||||
|
||||
$modeDebug=$force=$max=$annee=$majNum=$majNom=$majObj=$getPdf=$getMBopi=$majSiren=$majAdresses=$majDate=false;
|
||||
$modeDebug=$force=$max=$annee=$majNum=$majNom=$majObj=$getPdf=$getMBopi=$majSiren=$majAdresses=$majDate=$majImages=false;
|
||||
$nbMajSiren=$nbMajSiren2=$nbMajAdr=0;
|
||||
|
||||
$tabMarques=array();
|
||||
@ -55,6 +56,7 @@ if ($_SERVER['argc']>1)
|
||||
case 'b': $getMBopi=true; break;
|
||||
case 's': $majSiren=true; break;
|
||||
case 'a': $majAdresses=true; break;
|
||||
case 't': $majImages=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
@ -94,7 +96,7 @@ if ($getPdf) {
|
||||
//$lastAnnee=2011;
|
||||
for ($annee=$lastAnnee; $annee<=date('Y'); $annee++) {
|
||||
if ($annee==date('Y')) {
|
||||
$numDeb=1;//$lastMois;
|
||||
$numDeb=$numFin;
|
||||
$numFin=date('W');
|
||||
//echo 'A'.EOL;
|
||||
} elseif ($numFin==52 && $annee+1==date('Y')) {
|
||||
@ -248,6 +250,62 @@ if ($majAdresses) {
|
||||
echo date ('Y/m/d - H:i:s')." - $nbMajAdr adresses ont été mis à jour sur $nbLots.".EOL;
|
||||
}
|
||||
|
||||
if ($majImages) {
|
||||
$nbLots=$iDb->select('marques', "id, nomMarque, numeroMarque, dateDepot, YEAR(dateDepot) AS annee, dateDepot*1 AS dateDepotYMD, dateUpdate",
|
||||
"urlImage<>'' AND fileName=''", false, MYSQL_ASSOC, true);
|
||||
$iDb2=new WDb('bopi');
|
||||
$tabExt=array('gif','png','jpg','jpeg','bmp','pcx');
|
||||
$i=0;
|
||||
while ($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$id=$tabTmp['id'];
|
||||
$nom=$tabTmp['nomMarque'];
|
||||
$dateDepot=$tabTmp['dateDepot'];
|
||||
$dateDepotYMD=$tabTmp['dateDepotYMD'];
|
||||
$annee=$tabTmp['annee'];
|
||||
$num=$tabTmp['numeroMarque'];
|
||||
$dateUpdate=$tabTmp['dateUpdate'];
|
||||
|
||||
$filename=DOC_WEB_LOCAL."marques/$num";
|
||||
$dossierCible=DOC_WEB_LOCAL."marques/$annee/$dateDepotYMD/";
|
||||
$ext='';
|
||||
|
||||
echo "$i/$nbLots : $id, $num, $nom, $dateDepot";
|
||||
$tabUpdate=array();
|
||||
|
||||
foreach ($tabExt as $ext) {
|
||||
$fileNameLong=$filename.".$ext";
|
||||
if (file_exists($fileNameLong)) {
|
||||
$fileName=basename($fileNameLong);
|
||||
$tabUpdate=array('fileName'=>$fileName, 'dateUpdate'=>$dateUpdate);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($tabUpdate)>0) {
|
||||
@mkdir(DOC_WEB_LOCAL."marques/$annee");
|
||||
@mkdir($dossierCible);
|
||||
@copy($fileNameLong,$dossierCible.$fileName);
|
||||
echo ", $fileName";
|
||||
//@mkdir(DOC_WEB_LOCAL."marques/old");
|
||||
@move($fileNameLong,DOC_WEB_LOCAL."marques/old/$fileName");
|
||||
|
||||
if (!@$iDb2->update('marques', $tabUpdate, "id=$id", false))
|
||||
echo "\tERREUR SQL !!!".EOL;
|
||||
else {
|
||||
$nbMajAdr++;
|
||||
echo "\tok".EOL;
|
||||
}
|
||||
} else {
|
||||
$res=$iMarque->getListeMarques($num, '', '', '', true);
|
||||
|
||||
echo "\tFICHIER INEXISTANT $res !!!".EOL;
|
||||
//die();
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - $nbMajAdr adresses ont été mis à jour sur $nbLots.".EOL;
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
$repriseIdTxt=false;
|
||||
|
151
batch/getQualigaz.php
Normal file
151
batch/getQualigaz.php
Normal file
@ -0,0 +1,151 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
$modeDebug=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des tribunaux compétents pour les codes insee des communes depuis le site du ministère de la justice.
|
||||
/**@todo : Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!**/
|
||||
|
||||
Options :
|
||||
-d Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
/** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
|
||||
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
|
||||
**
|
||||
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
|
||||
**/
|
||||
|
||||
$iDb=new WDB('sdv1');
|
||||
$table='qualigaz';
|
||||
$urlBase='http://www.qualifelec.fr/recherche/fiche.php?idadh=';
|
||||
|
||||
$tabZones=array('codeQE'=>' <b>Code QE n°</b>(?:.*) (\d+)</td>',
|
||||
//'urlImg'=>'<td align="center" height="133"><img src="(.*)"></td>',
|
||||
//http://www.qualifelec.fr/recherche/fiche.php?idadh=9011&PHPSESSID=7cqetmc0e54f3th3lhhr4e3e86buikbe
|
||||
// Traiter logo et catégorie + activité déclaré
|
||||
'raiSoc'=>' <b>Raison Sociale</b>(?:.*) (.*)</td>',
|
||||
'adresse'=>' <b>Adresse</b>(?:.*)<tr bordercolor="#2652A0">(?:.*)<td width="50%" height="25"> (.*)</td>',
|
||||
'chef'=>' <b>Chef(?:.*)entreprise</b></font></td>(?:.*)</td>(?:.*)<td width="50%" height="25"> (.*)</td>',
|
||||
'cp'=>' <b>Code(?:.*)Postal</b>(?:.*)<td width="50%" height="25"> (\d\d\d\d\d)</td>',
|
||||
'ville'=>' <b>Ville</b>(?:.*)<td width="50%" height="25"> (\D+)</td>',
|
||||
'tel'=>' <b>Téléphone</b>(?:.*) (\d\d\d\d\d\d\d\d\d\d)</td>',
|
||||
'fax'=>' <b>Fax</b>(?:.*) (?:\d\d\d\d\d\d\d\d\d\d)</td>(?:.*) (\d\d\d\d\d\d\d\d\d\d)</td>',
|
||||
'mail'=>' <b>E-mail</b>(?:.*) <a href="mailto:(.*)">',
|
||||
'web'=>' <b>Site(?:.*)Internet</b>(?:.*) <a href="(.*)" target="blank">',
|
||||
'fj'=>' <b>Forme(?:.*)juridique</b>(?:.*)<td width="30%" height="25"> (.*)</td>',
|
||||
'siret'=>' <b>SIREN(?:.*)<td width="40%" height="25"> (\d+)</td>',
|
||||
'naf'=>' <b>Code(?:.*)NAF</b>(?:.*)<td width="30%" height="25" bordercolor="#2652A0"> (.*)</td>',
|
||||
'qualifs[qualifUrl,qualifCode,qualifLib]'=>'<tr bordercolor="#2652A0">(?:.*)<td width="20%" height="25"><a href="(.*)" target="parent"> (.*)</a></td>(?:.*)<td width="85%" height="25"> (.*)</td>(?:.*)</tr>',
|
||||
|
||||
);
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL;
|
||||
|
||||
$ret=$iDb->select('qualifelec', 'MAX(id)', '1', false);
|
||||
$iDeb=$ret[0][0];
|
||||
$nbVides=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Dernier id entreprise '$table' = $iDeb".EOL;
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
//http://www.qualifelec.fr/recherche/fiche.php?idadh=8148&PHPSESSID=i1jgdorhdighojasq5otfpc1v67drkqi
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
$ret=$iDb->select($table, 'raiSoc', "id=$i", false);
|
||||
if (@$ret[0][0]<>'') continue;
|
||||
|
||||
$url=$urlBase.$i;
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$i;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
|
||||
$nbVides++;
|
||||
if ($nbVides<20) continue;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
$nbVides=0;
|
||||
|
||||
unset($tabInsert['qualifs']);
|
||||
|
||||
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
|
||||
$urlLogo='http://www.qualifelec.fr/';
|
||||
die($tabInsert['urlImg']);
|
||||
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
|
||||
$extension=substr(strrchr($urlLogo,'.'),1);
|
||||
if (!file_exists("/home/data/logos/$siren.$extension")) {
|
||||
$referer='';
|
||||
$tDeb=microtime(true);
|
||||
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
|
||||
$duree=round(microtime(true)-$tDeb,3);
|
||||
$body=$page['body'];
|
||||
$taille=round(strlen($body)/1024,1);
|
||||
file_put_contents("/home/data/logos/$siren.$extension",$body);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tabInsert['urlImg']);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
?>
|
206
batch/getRSS.php
206
batch/getRSS.php
@ -14,10 +14,41 @@ include_once(FWK_PATH.'common/curl.php');
|
||||
$iDb=new WDB('presse');
|
||||
$iDb2=new WDB('sdv1');
|
||||
$iRss=new atomRss();
|
||||
$cours=false;
|
||||
$cours=$doInvestir=$doBoursier=$doPQR=$modeVerbose=$doReprise=false;
|
||||
$heureExec=date('Hi')*1;
|
||||
|
||||
$lstRegex=$iDb->select('pqr_filtres', "id, nomFiltre, motsClefs", '1');
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Collecte des flux RSS.
|
||||
|
||||
Options :
|
||||
-b Traiter les flux RSSS Isin de Boursier
|
||||
-p Traiter la PQR
|
||||
-v Mode verbeux
|
||||
";
|
||||
// -i Traiter les flux RSSS Isin de Investir
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']>1)
|
||||
{
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
//case 'i': $doInvestir=true; break;
|
||||
case 'b': $doBoursier=true; break;
|
||||
case 'p': $doPQR=true; break;
|
||||
case 'v': $modeVerbose=true; break;
|
||||
case 'r': $doReprise=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$doInvestir && !$doBoursier) $doPQR=true;
|
||||
|
||||
$lstRegex=$iDb->select('pqr_filtres', "id, nomFiltre, motsClefs", 'actif=1 AND dateSuppr=0');
|
||||
foreach ($lstRegex as $iReg=>$tReg)
|
||||
$tabRegEx[]=array( 'id' => $tReg['id'],
|
||||
'nom' => $tReg['nomFiltre'],
|
||||
@ -25,50 +56,119 @@ foreach ($lstRegex as $iReg=>$tReg)
|
||||
);
|
||||
$nbFiltres=count($tabRegEx);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Nom de règles de filtrages : ".$nbFiltres.EOL;
|
||||
/*print_r($tabRegEx);
|
||||
die();
|
||||
*/
|
||||
if ($heureExec>=2000 && $heureExec<2030) {
|
||||
echo date ('Y/m/d - H:i:s')." - Nombre de règles de filtrages : ".$nbFiltres.EOL;
|
||||
//print_r($tabRegEx);
|
||||
//die();
|
||||
|
||||
/*if ($doInvestir) { //$heureExec>=2000 && $heureExec<2030) {
|
||||
$lstRss=$iDb2->select('bourse_isin', "11 as id, CONCAT('http://www.investir.fr/RSS/RSS.php?codeISIN=',code_isin,'&type=infos-conseils') AS url, code_isin, 'horaire' AS frequence", "code_isin<>'' GROUP BY code_isin");
|
||||
$cours=true;
|
||||
} elseif ($heureExec>=2100 && $heureExec<2130) {
|
||||
$lstRss=$iDb2->select('bourse_isin', "18 as id, CONCAT('http://www.boursier.com/syndication/rss/news/',code_isin,'/FR') AS url, code_isin, 'horaire' AS frequence", "code_isin<>'' GROUP BY code_isin");
|
||||
$typeFlux='ISIN Investir';
|
||||
} else*/if ($doBoursier) { //heureExec>=2100 && $heureExec<2130) {
|
||||
$lstRss=$iDb2->select('bourse_isin', "18 as id, CONCAT('http://www.boursier.com/syndication/rss/news/',code_isin,'/',SUBSTRING(code_isin,1,2)) AS url, code_isin, 'quotidien' AS frequence, 0 AS fluxFiltre, TIMESTAMPDIFF(HOUR,dateDwlFluxRss,NOW()) AS nbHeures", "code_isin<>'' GROUP BY code_isin");
|
||||
$cours=true;
|
||||
} else
|
||||
$lstRss=$iDb->select('pqr_rss', "id, url, titreRss, siteWeb, description, dateFluxRss, dateDwl, '' as code_isin, frequence", 'actif=1');
|
||||
$typeFlux='ISIN Boursier';
|
||||
} elseif ($doReprise) {
|
||||
$iNb=10000;
|
||||
$iAnn=0;
|
||||
for($iDeb=$iAnn;$iDeb<1467569;$iDeb+=$iNb) {
|
||||
$nbArticles=$iDb->select( 'pqr_articles_old',
|
||||
'id, idRss, idArticle, titre, isin, lien, description, dateRss, article, dateInsert',
|
||||
"id>802425 LIMIT $iDeb, $iNb", false, MYSQL_ASSOC, true);
|
||||
while($tabArticle=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$iAnn++;
|
||||
$id=$tabArticle['id'];
|
||||
$inserted=false;
|
||||
$isin=trim($tabArticle['isin']);
|
||||
foreach ($tabRegEx as $iReg=>$tReg) {
|
||||
$regEx=$tReg['mots'];
|
||||
$regId=$tReg['id'];
|
||||
$regNom=$tReg['nom'];
|
||||
$titre=$tabArticle['titre'];
|
||||
$description=$tabArticle['description'];
|
||||
$article=$tabArticle['article'];
|
||||
if (preg_match("/$regEx/Uis", $titre.' '.$description.' '.$article) || $isin<>'') {
|
||||
$tabInsert=$tabArticle;
|
||||
$tabInsert['idFiltre']=$regId;
|
||||
$iDb->insert('pqr_articles',$tabInsert,false);
|
||||
echo date ('Y/m/d - H:i:s')." - Cycle $iDeb - $iAnn: INSERTION de l'article $id (règle n°$regId - $regNom)...".EOL;
|
||||
$inserted=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$inserted) echo date ('Y/m/d - H:i:s')." - Cycle $iDeb - $iAnn : On ignore l'article $id !".EOL;
|
||||
}
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
} else {
|
||||
$lstRss=$iDb->select('pqr_rss', "id, url, titreRss, siteWeb, description, dateFluxRss, dateDwl, '' as code_isin, frequence, fluxFiltre,
|
||||
dernierCodeRetour, dateFluxRss, dateUpdate, TIMESTAMPDIFF(HOUR,dateDwl,NOW()) AS nbHeures", 'actif=1');
|
||||
$typeFlux='PQR';
|
||||
}
|
||||
|
||||
shuffle($lstRss);
|
||||
$nbFlux=count($lstRss);
|
||||
echo date ('Y/m/d - H:i:s')." - Nombre de flux '$typeFlux' à traiter : ".$nbFlux.EOL;
|
||||
|
||||
foreach ($lstRss as $iFlux=>$tabFlux) {
|
||||
$urlRss=$tabFlux['url'];
|
||||
$idRss=$tabFlux['id'];
|
||||
$isin=$tabFlux['code_isin'];
|
||||
$horaire=$tabFlux['frequence'];
|
||||
//echo "Je charge le flux $urlRss\n";
|
||||
$nbHeures=$tabFlux['nbHeures'];
|
||||
if ($nbHeures=='') $nbHeures=999;
|
||||
$fluxFiltre=$tabFlux['fluxFiltre'];
|
||||
|
||||
if ($idRss<>11 && $idRss<>18 && $horaire=='quotidien' && $heureExec>800) {
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : $urlRss - Flux QUOTIDIEN ignoré !".EOL;
|
||||
continue;
|
||||
}/* else
|
||||
if ($idRss<>11 && $idRss<>18) {
|
||||
if ($horaire=='horaire' && $nbHeures<2) { echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Flux HORAIRE déjà traité il y a $nbHeures h !".EOL; continue; }
|
||||
if ($horaire=='quotidien' && $nbHeures<24) { echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Flux QUOTIDIEN déjà traité il y a $nbHeures h !".EOL; continue; }
|
||||
if ($horaire=='hebdo' && $nbHeures<168) { echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Flux HEBDO déjà traité il y a $nbHeures h !".EOL; continue; }
|
||||
if ($horaire=='mensuel' && $nbHeures<720) { echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Flux MENSUEL déjà traité il y a $nbHeures h. !".EOL; continue; }
|
||||
} elseif ($nbHeures<36) { echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Flux BOURSIER déjà traité il y a $nbHeures h !".EOL; continue; }
|
||||
|
||||
/* else
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : $urlRss - $idRss, $horaire,$heureExec".EOL;
|
||||
*/
|
||||
if ($idRss==0 || $idRss==18) randsleep(1,2);
|
||||
if ($idRss==11 || $idRss==18) randsleep(1,2);
|
||||
|
||||
$tabFeed=@$iRss->loadRss($urlRss);
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : $urlRss - Code Retour HTTP : ".$iRss->codeErreurHttp.EOL;
|
||||
$nbArticles=count($tabFeed);
|
||||
$nbInsert=0;
|
||||
$dateRssMax=0;
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Code Retour HTTP : ".$iRss->codeErreurHttp.EOL;
|
||||
if (count($tabFeed)>0) {
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : $urlRss - Nombre d'articles : $nbArticles".EOL;
|
||||
|
||||
//print_r($tabFeed);
|
||||
foreach ($tabFeed as $iFeed=>$tabArticle) {
|
||||
$dateRss=date("YmdHis",strtotime($tabArticle['updated']));
|
||||
$dateRss8=substr($dateRss,0,8);
|
||||
$inserted=false;
|
||||
if ($dateRss>$dateRssMax) $dateRssMax=$dateRss;
|
||||
if ($tabArticle['type']==0 && !$cours) {
|
||||
$tabUpdate=array( 'titreRss'=>trim(utf8_decode($tabArticle['title'])),
|
||||
'siteWeb'=>trim($tabArticle['link']),
|
||||
'description'=>trim(utf8_decode($tabArticle['description'])),
|
||||
'dateFluxRss'=>$dateRss,
|
||||
'dateDwl'=>date('YmdHis'));
|
||||
'dateDwl'=>date('YmdHis'),
|
||||
'dernierCodeRetour'=>$iRss->codeErreurHttp,
|
||||
'dernierNbArticles'=>$nbArticles,);
|
||||
// echo mysql_error();
|
||||
if($iDb->update('pqr_rss',$tabUpdate,"id=$idRss"))
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : Mise à jour des informations du flux $urlRss".EOL;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : ERREUR lors de la mise à jour des informations du flux $urlRss".EOL;
|
||||
} elseif ($tabArticle['type']==0 && $cours) {
|
||||
$tabUpdate=array( 'dateFluxRss'=>$dateRss,
|
||||
'dateDwlFluxRss'=>date('YmdHis'),
|
||||
'dernierCodeRetour'=>$iRss->codeErreurHttp,
|
||||
'dernierNbArticles'=>$nbArticles,);
|
||||
if($iDb2->update('bourse_isin',$tabUpdate,"code_isin='$isin'"))
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : Mise à jour des informations du flux $urlRss".EOL;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : ERREUR lors de la mise à jour des informations du flux $urlRss".EOL;
|
||||
}
|
||||
elseif ($tabArticle['type']==1) {
|
||||
$urlArticle=trim($tabArticle['link']);
|
||||
@ -85,7 +185,10 @@ foreach ($lstRss as $iFlux=>$tabFlux) {
|
||||
$page=getUrl($urlArticle);
|
||||
$article=$page['body'];
|
||||
|
||||
if (preg_match("/$regEx/Uis", $titre.' '.$description.' '.$article)) {
|
||||
if (preg_match("/$regEx/Uis", $titre.' '.$description.' '.$article) // L'article match avec le filtre
|
||||
|| $fluxFiltre>0 || $idRss==11 || $idRss==18) { // Les articles du flux doivet être stockés dans leur intégralité
|
||||
if ($fluxFiltre>0) $regId=$fluxFiltre;
|
||||
elseif ($idRss==11 || $idRss==18) $regId=0;
|
||||
$tabInsert=array('titre'=>$titre,
|
||||
'lien'=>trim(utf8_decode($urlArticle)),
|
||||
'description'=>$description,
|
||||
@ -93,42 +196,65 @@ foreach ($lstRss as $iFlux=>$tabFlux) {
|
||||
'dateRss'=>$dateRss,
|
||||
'idArticle'=>$idArticle,
|
||||
'isin'=>$isin,
|
||||
'idRss'=>$idRss);
|
||||
$id=$iDb->insert('pqr_articles',$tabInsert);
|
||||
'idRss'=>$idRss,
|
||||
'idFiltre'=>$regId,);
|
||||
$id=$iDb->insert('pqr_articles',$tabInsert,false);
|
||||
if ($id) {
|
||||
$nbInsert++;
|
||||
@$tabArtInsert[$regId]++;
|
||||
//if($iDb->update('pqr_articles',$tabUpdate,'id='.$id))
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : Insertion de l'article n°$id".EOL;
|
||||
} elseif (mysql_errno()<>1062)
|
||||
die(mysql_errno().': '.mysql_error());
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : AJOUT de l'article $iFeed/$nbArticles en date du $dateRss8 (id=$id, règle n°$regId $regNom) - $titre".EOL;
|
||||
$inserted=true;
|
||||
break;
|
||||
} elseif (mysql_errno()==1062) {
|
||||
$inserted=true;
|
||||
if ($modeVerbose) echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : Article déjà en base $iFeed/$nbArticles en date du $dateRss8 (id=$id, règle n°$regId $regNom) - $titre".EOL;
|
||||
break;
|
||||
}
|
||||
elseif (mysql_errno()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : ERREUR lors de l'ajout de l'article $iFeed/$nbArticles en date du $dateRss8 (id=$id, règle n°$regId $regNom) - $titre".EOL;
|
||||
die(mysql_errno().': '.mysql_error());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (!$inserted) {
|
||||
print_r($tabInsert);
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : Rejet de l'article $iFeed/$nbArticles en date du $dateRss8 - $titre".EOL;
|
||||
//die(mysql_errno().': '.mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$cours) {
|
||||
$tabUpdate=array('dernierArticleDate'=>$dateRssMax,
|
||||
'dernierNbArticlesI'=>$nbInsert);
|
||||
$iDb->update('pqr_rss',$tabUpdate,"id=$idRss");
|
||||
} else {
|
||||
//
|
||||
echo date ('Y/m/d - H:i:s')." - Feed #$iFlux : $urlRss - Code Retour HTTP : ".$iRss->codeErreurHttp.EOL;
|
||||
$tabUpdate=array('dernierCodeRetour'=>$iRss->codeErreurHttp);
|
||||
$tabUpdate=array('dernierArticleDate'=>$dateRssMax,);
|
||||
$iDb2->update('bourse_isin',$tabUpdate,"code_isin='$isin'");
|
||||
}
|
||||
echo mysql_error();
|
||||
} else {
|
||||
if (!$cours) {
|
||||
$tabUpdate=array('dernierCodeRetour'=>$iRss->codeErreurHttp,
|
||||
'dernierNbArticles'=>$nbArticles);
|
||||
if($iDb->update('pqr_rss',$tabUpdate,"id=$idRss"))
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux : Mise à jour des informations du flux $urlRss".EOL;
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : Mise à jour des informations du flux $urlRss".EOL;
|
||||
} else {
|
||||
$tabUpdate=array('dernierCodeRetour'=>$iRss->codeErreurHttp,
|
||||
'dernierNbArticles'=>$nbArticles);
|
||||
if($iDb2->update('bourse_isin',$tabUpdate,"code_isin='$isin'"))
|
||||
echo date ('Y/m/d - H:i:s')." - Feed $horaire #$iFlux/$nbFlux : Mise à jour des informations du flux $urlRss".EOL;
|
||||
}
|
||||
echo mysql_error();
|
||||
}
|
||||
//<channel><title>Economie - Le Monde.fr</title><link>http://www.lemonde.fr</link><description>Toute l'actualité au moment de la connexion</description><language>en</language><copyright>Copyright Le Monde.fr</copyright><pubDate>Thu, 05 Feb 2009 11:51:14 GMT</pubDate><lastBuildDate>Thu, 05 Feb 2009 11:51:14 GMT</lastBuildDate><ttl>30</ttl><image><title>Economie - Le Monde.fr</title><url>http://medias.lemonde.fr/mmpub/img/lgo/lemondefr_rss.gif</url><link>http://www.lemonde.fr</link></image>
|
||||
}
|
||||
print_r($tabArtInsert);
|
||||
echo date('Y/m/d - H:i:s') ." - FIN du script.".EOL;
|
||||
|
||||
die();
|
||||
|
||||
/*
|
||||
INSERT INTO `presse`.`` (
|
||||
`id` ,
|
||||
`url` ,
|
||||
`dateInsert`
|
||||
)
|
||||
VALUES (
|
||||
NULL , 'http://www.lemondeinformatique.fr/flux-rss/ssii/page-1.html', ''
|
||||
);
|
||||
|
||||
*/die();
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux Hugin...".EOL;
|
||||
$ret=ftp_mget(HUGIN_FTP_URL, HUGIN_FTP_USER, HUGIN_FTP_PASS, '*.xml', HUGIN_LOCAL_DIR, true);
|
||||
|
282
batch/getRcLuxembourg.php
Normal file
282
batch/getRcLuxembourg.php
Normal file
@ -0,0 +1,282 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
$modeDebug=$modeDetail=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des listes des sociétés de gestion agrées par l'AMF
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-d Remplir les fiches détaillées
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'd': $modeDetail=true; break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDB('tmp');
|
||||
$table='rcMonaco';
|
||||
$referer='https://www.rcsl.lu/';
|
||||
$urlBase='https://www.rcsl.lu';
|
||||
$page=getUrl($urlBase, '', '', '', false);
|
||||
$referer=$urlBase;
|
||||
$body=$page['body'];
|
||||
|
||||
if (preg_match('/window\.onload=window\.location\.href="(.*)";/', $body, $matches)) {
|
||||
$url=$urlBase.$matches[1];
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
print_r($page);
|
||||
die();
|
||||
}
|
||||
print_r($body);
|
||||
die();
|
||||
|
||||
/*$urlDetailS='http://www.rci.gouv.mc/ficheSGratuit.jsp?rc=';
|
||||
$urlDetailPP='http://www.rci.gouv.mc/fichePPGratuit.jsp?rc=';
|
||||
*/
|
||||
$tabZonesS=array('codeRCI'=>'<b>Numéro RCI :</b>(.*)<br>',
|
||||
'etat'=>'<b>Etat :</b>(.*)<br>',
|
||||
'forme'=>'<b>Structure :</b>(.*)<br>',
|
||||
'rs'=>'<b>Raison sociale :</b>(.*)<br>',
|
||||
'activite'=>'<b>Activité :</b>(.*)<br>(?:\s+)</div>',
|
||||
'etab'=>'<h1 class="titre2">(.*)</h1>',
|
||||
'etabType'=>'<h1 class="titre3">(.*)</h1><br>',
|
||||
'etabEns'=>'<h1 class="titre4">(.*)</h1>',
|
||||
'ensAdr1'=>'<td><b>Adresse :</b></td>(?:.*)<td>(.*)<br>(?:.*)<br>(?:.*)<br>(?:.*)</td>',
|
||||
'ensAdr2'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(.*)<br>(?:.*)<br>(?:.*)</td>',
|
||||
'ensAdr3'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(?:.*)<br>(.*)<br>(?:.*)</td>',
|
||||
'ensAdr4'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(?:.*)<br>(?:.*)<br>(.*)</td>',
|
||||
);
|
||||
$tabZonesPP=array('codeRCI'=>'<b>Numéro RCI :</b>(.*)<br>',
|
||||
'etat'=>'<b>Etat :</b>(.*)<br>',
|
||||
'forme'=>'<b>Structure :</b>(.*)<br>',
|
||||
'rs'=>'<b>Commerce exercé sous le nom :</b>(.*)<br>',
|
||||
'formePP'=>'<h1 class="titre2">Etat-civil du déclarant</h1>(?:.*)<h1 class="titre3">(.*)</h1><br>',
|
||||
'nom'=>'<b>Nom :</b>(.*)<br>',
|
||||
'prenom'=>'<b>Prénom :</b>(.*)<br>',
|
||||
'nomJF'=>'<b>Nom de jeune fille :</b>(.*)<br>',
|
||||
'activite'=>'<b>Activité de l\'établissement :</b>(.*)<br>(?:\s+)</div>',
|
||||
'etab'=>'</DIV>(?:.*)<h1 class="titre2">(.*)</h1>(?:.*)<div',
|
||||
'etabType'=>'<h1 class="titre3">(.*)</h1><br>',
|
||||
'etabEns'=>'<h1 class="titre4">(.*)</h1>',
|
||||
'ensAdr1'=>'<td><b>Adresse :</b></td>(?:.*)<td>(.*)<br>(?:.*)<br>(?:.*)<br>(?:.*)</td>',
|
||||
'ensAdr2'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(.*)<br>(?:.*)<br>(?:.*)</td>',
|
||||
'ensAdr3'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(?:.*)<br>(.*)<br>(?:.*)</td>',
|
||||
'ensAdr4'=>'<td><b>Adresse :</b></td>(?:.*)<td>(?:.*)<br>(?:.*)<br>(?:.*)<br>(.*)</td>',
|
||||
);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL;
|
||||
//$letIni=file_get_contents (REP_TEMP.$table);
|
||||
//$letIni='AVK';
|
||||
|
||||
if ($modeDetail) {
|
||||
$ret=$iDb->select($table, 'id,codeRCI,PmPP', "activite IS NULL /*AND PmPP='PP'*/ ORDER BY dateInsert DESC", false);
|
||||
$nbLet=count($ret);
|
||||
foreach ($ret as $tFiche) {
|
||||
@$nbDone++;
|
||||
$id=$tFiche['id'];
|
||||
$rci=$tFiche['codeRCI'];
|
||||
$ppS=$tFiche['PmPP'];
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RCI Monaco '$rci' ($id) - '";
|
||||
//echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
if ($ppS=='S') $urlFiche=$urlDetailS.$rci;
|
||||
elseif ($ppS=='PP') $urlFiche=$urlDetailPP.$rci;
|
||||
else die("Type '$ppS' inconnu !".EOL);
|
||||
$page=getUrl($urlFiche, '', '', $referer, false);
|
||||
$body=$page['body'];
|
||||
if ($ppS=='S') $tabZones=$tabZonesS;
|
||||
elseif ($ppS=='PP') $tabZones=$tabZonesPP;
|
||||
$tabUpdate=html2array($body, $tabZones);
|
||||
if (strpos($tabUpdate['ensAdr4'],'Pour de plus amples informations')>0) $tabUpdate['ensAdr4']='';
|
||||
$iDb->update($table, $tabUpdate, "id=$id");
|
||||
echo $tabUpdate['rs']."'".EOL;
|
||||
if ($modeDebug) randsleep(1,2);//randsleep(7,21);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
die();
|
||||
}
|
||||
$tabSerialised=@file_get_contents(REP_TEMP.$table);
|
||||
if (!$tabSerialised) {
|
||||
if (!$nbLet)
|
||||
//$letIni='AAA';
|
||||
for ($l1=65; $l1<91; $l1++) {
|
||||
//if ($letIni) $l1=ord(substr($letIni,0,1));
|
||||
$L1=chr($l1);
|
||||
for ($l2=65; $l2<91; $l2++) {
|
||||
//if ($letIni) $l2=ord(substr($letIni,1,1));
|
||||
$L2=chr($l2);
|
||||
for ($l3=65; $l3<91; $l3++) {
|
||||
//if ($letIni) $l3=ord(substr($letIni,2,1));
|
||||
$letIni=false;
|
||||
$L3=chr($l3);
|
||||
$let=''.$L1.$L2.$L3;
|
||||
$tabLet[]=$let;
|
||||
}
|
||||
}
|
||||
}
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
} else
|
||||
$tabLet=unserialize($tabSerialised);
|
||||
|
||||
$nbLet=count($tabLet);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il reste $nbLet requêtes à traiter...".EOL;
|
||||
$nbDone=0;
|
||||
foreach ($tabLet as $j=>$let) {
|
||||
$nbDone++;
|
||||
$page=getUrl($urlBase.$let, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RC Monaco '$let' ...";
|
||||
if (preg_match_all('/<a href="\.\/fiche(PP|S)Gratuit\.jsp\?rc=(.*)">(.*)<\/a>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) {
|
||||
foreach($matches[2] as $i=>$numRCI) {
|
||||
$tabEntrep=array('codeRCI'=>trim($numRCI),
|
||||
'PmPP'=>trim($matches[1][$i]),
|
||||
'forme'=>trim($matches[4][$i]),
|
||||
'rs'=>trim($matches[5][$i]),
|
||||
'etabEns'=>trim($matches[6][$i]),
|
||||
'etat'=>trim($matches[7][$i]),
|
||||
'dateInsert'=>date('YmdHis'));
|
||||
@$iDb->insert($table, $tabEntrep);
|
||||
//print_r($tabEntrep);
|
||||
}
|
||||
$i++;
|
||||
echo "$i entreprise(s)";
|
||||
} else
|
||||
echo "Pas d'entreprise";
|
||||
echo EOL;
|
||||
unset($tabLet[$j]);
|
||||
|
||||
file_put_contents(REP_TEMP.$table, serialize(array_unique($tabLet)));
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
die();
|
||||
echo count($tabLet);
|
||||
//serialize
|
||||
print_r($tabLet);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
print_r($tabHtml);
|
||||
|
||||
die();
|
||||
|
||||
|
||||
$ret=$iDb->select($table, 'agrementNum', '1', false);
|
||||
foreach ($ret as $tAgrNum) {
|
||||
$agrNum=$tAgrNum['agrementNum'];
|
||||
echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
}
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
$url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15";
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
print_r($page);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$i;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
|
||||
$nbVides++;
|
||||
if ($nbVides<20) continue;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
$nbVides=0;
|
||||
|
||||
unset($tabInsert['qualifs']);
|
||||
|
||||
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
|
||||
$urlLogo='http://www.qualifelec.fr/';
|
||||
die($tabInsert['urlImg']);
|
||||
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
|
||||
$extension=substr(strrchr($urlLogo,'.'),1);
|
||||
if (!file_exists("/home/data/logos/$siren.$extension")) {
|
||||
$referer='';
|
||||
$tDeb=microtime(true);
|
||||
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
|
||||
$duree=round(microtime(true)-$tDeb,3);
|
||||
$body=$page['body'];
|
||||
$taille=round(strlen($body)/1024,1);
|
||||
file_put_contents("/home/data/logos/$siren.$extension",$body);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tabInsert['urlImg']);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
?>
|
345
batch/getRcMonaco.php
Normal file
345
batch/getRcMonaco.php
Normal file
@ -0,0 +1,345 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
$modeDebug=$modeDetail=$modeRCI=$modeAnnee=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Mise à jour des listes des sociétés de gestion agrées par l'AMF
|
||||
|
||||
Options :
|
||||
-v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles)
|
||||
-d Remplir les fiches détaillées
|
||||
-r=13S00000 Traiter ce numéro de RCI
|
||||
-a=13S Traiter tous les numéro RCI de type S de l'année 2013
|
||||
|
||||
";/* -i:XXXXX Reprendre au code commune Insee XXXXX
|
||||
|
||||
";*/
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'd': $modeDetail=true; break;
|
||||
case 'r': $modeRCI=trim(substr($argv[$i],3,strlen($argv[$i])-1)); break;
|
||||
case 'r': $modeAnnee=trim(substr($argv[$i],3,strlen($argv[$i])-1)); break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$iDb=new WDB('tmp');
|
||||
$table='rcMonaco';
|
||||
//$urlBase='http://www.amf-france.org/bio/rech_SG.aspx';
|
||||
$referer='http://www.rci.gouv.mc/rc/index.jsp';
|
||||
$urlRecherche='http://www.rci.gouv.mc/rc/resultatRecherche';
|
||||
// http://www.rci.gouv.mc/rc/resultatRechercheGratuit.jsp?mille=13&fj=S&rc=06184
|
||||
$urlDetailS='http://www.rci.gouv.mc/rc/ficheSGratuit.jsp?rc=';
|
||||
$urlDetailPP='http://www.rci.gouv.mc/rc/fichePPGratuit.jsp?rc=';
|
||||
|
||||
$tabZonesS=array('codeRCI'=>'<dt>Num..?ro RCI</dt><dd>(.*)</dd>',
|
||||
'etat'=>'<dt>..?tat</dt><dd>(.*)</dd>',
|
||||
'forme'=>'<dt>Structure</dt><dd>(.*)</dd>', //
|
||||
'rs'=>'<dt>Raison sociale</dt><dd>(.*)</dd>', //
|
||||
'activite'=>'<dt>Activit..?</dt><dd>(.*)</dd>', //
|
||||
'etab'=>'<div class="recap">\s+<h3>(.*)</h3>\s+<dl>',
|
||||
'etabType'=>'<dt>Type d\'..?tablissement</dt><dd>(.*)</dd>',
|
||||
'etabEns'=>'<dt>Enseigne de l\'..?tablissement</dt><dd>(.*)</dd>',
|
||||
'ensAdr1'=>'<dt>Adresse</dt><dd>(.*)<br>(?:.*)<br>(?:.*)<br>(?:.*)</dd>',
|
||||
'ensAdr2'=>'<dt>Adresse</dt><dd>(?:.*)<br>(.*)<br>(?:.*)<br>(?:.*)</dd>',
|
||||
'ensAdr3'=>'<dt>Adresse</dt><dd>(?:.*)<br>(?:.*)<br>(.*)<br>(?:.*)</dd>',
|
||||
'ensAdr4'=>'<dt>Adresse</dt><dd>(?:.*)<br>(?:.*)<br>(?:.*)<br>(.*)</dd>',
|
||||
);
|
||||
$tabZonesPP=array('codeRCI'=>'<dt>Num..?ro RCI</dt><dd>(.*)</dd>',
|
||||
'etat'=>'<dt>..?tat</dt><dd>(.*)</dd>',
|
||||
'forme'=>'<dt>Structure</dt><dd>(.*)</dd>', //
|
||||
'rs'=>'<dt>Commerce exerc..? sous le nom</dt><dd>(.*)</dd>', //
|
||||
'formePP'=>'<dt>Fonction</dt><dd>(.*)</dd>', // ??
|
||||
'nom'=>'<dt>Nom</dt><dd>(.*)</dd>',
|
||||
'prenom'=>'<dt>Pr..?nom</dt><dd>(.*)</dd>',
|
||||
'nomJF'=>'<b>Nom de jeune fille :</b>(.*)<br>',
|
||||
'activite'=>'<dt>Activit..? de l\'..?tablissement</dt><dd>(.*)</dd>',
|
||||
'etab'=>'<div class="recap">\s+<h3>(.*)</h3>\s+<dl>',
|
||||
'etabType'=>'<dt>Type d\'..?tablissement</dt><dd>(.*)</dd>',
|
||||
'etabEns'=>'<dt>Enseigne de l\'..?tablissement</dt><dd>(.*)</dd>',
|
||||
'ensAdr1'=>'<dt>Adresse</dt><dd>(.*)<br>(?:.*)<br>(?:.*)<br>(?:.*)</dd>',
|
||||
'ensAdr2'=>'<dt>Adresse</dt><dd>(?:.*)<br>(.*)<br>(?:.*)<br>(?:.*)</dd>',
|
||||
'ensAdr3'=>'<dt>Adresse</dt><dd>(?:.*)<br>(?:.*)<br>(.*)<br>(?:.*)</dd>',
|
||||
'ensAdr4'=>'<dt>Adresse</dt><dd>(?:.*)<br>(?:.*)<br>(?:.*)<br>(.*)</dd>',
|
||||
);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL;
|
||||
//$letIni=file_get_contents (REP_TEMP.$table);
|
||||
//$letIni='AVK';
|
||||
|
||||
if (!$modeDetail || $modeRCI) {
|
||||
|
||||
if (!$modeRCI) {
|
||||
$tabSerialised=@file_get_contents(REP_TEMP.$table);
|
||||
if (!$tabSerialised) {
|
||||
if (!$nbLet)
|
||||
//$letIni='AAA';
|
||||
for ($l1=65; $l1<91; $l1++) {
|
||||
//if ($letIni) $l1=ord(substr($letIni,0,1));
|
||||
$L1=chr($l1);
|
||||
for ($l2=65; $l2<91; $l2++) {
|
||||
//if ($letIni) $l2=ord(substr($letIni,1,1));
|
||||
$L2=chr($l2);
|
||||
for ($l3=65; $l3<91; $l3++) {
|
||||
//if ($letIni) $l3=ord(substr($letIni,2,1));
|
||||
$letIni=false;
|
||||
$L3=chr($l3);
|
||||
$let=''.$L1.$L2.$L3;
|
||||
$tabLet[]=$let;
|
||||
}
|
||||
}
|
||||
}
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
} else
|
||||
$tabLet=unserialize($tabSerialised);
|
||||
|
||||
$nbLet=count($tabLet);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il reste $nbLet requêtes à traiter...".EOL;
|
||||
} elseif ($modeRCI) {
|
||||
$an=substr($modeRCI,0,2);
|
||||
//if ($an*1<1 || $an>99999) die("Erreur : N° RCI '$modeRCI' incorrect !");
|
||||
$lettre=strtoupper(substr($modeRCI,2,1));
|
||||
if ($lettre<>'S' && $lettre<>'P') die("Erreur : N° RCI '$modeRCI' incorrect !");
|
||||
$numRC=substr($modeRCI,3,5);
|
||||
if ($numRC<1 || $numRC>99999) die("Erreur : N° RCI '$modeRCI' incorrect !");
|
||||
$tabLet=array(0=>$modeRCI);
|
||||
$nbLet=2;
|
||||
} /*elseif ($modeAnnee) {
|
||||
$lettre=strtoupper(substr($modeRCI,2,1));
|
||||
}
|
||||
$ret=$iDb->select($table, 'max(numInsRCI) as maxRCI', "SUBSTRING(PmPP,1,1)='$modeAnnee'anneeRcodeRCI='$modeRCI'", false);
|
||||
)*/
|
||||
$nbDone=0;
|
||||
foreach ($tabLet as $j=>$let) {
|
||||
$nbDone++;
|
||||
if ($modeRCI) { $url=$urlRecherche."Gratuit.jsp?mille=$an&fj=$lettre&rc=$numRC"; $typeRech='RCI'; }
|
||||
//else { $url=$urlRecherche.'RSEGratuit.jsp?rse='.$let; $typeRech='RSE'; }
|
||||
else { $url=$urlRecherche."NomGratuit.jsp?nom=$let&prenom="; $typeRech='NOM'; }
|
||||
//resultatRechercheNomGratuit
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
//print_r($page);
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RC Monaco '$let' ...";
|
||||
$nbTrouve=0;
|
||||
if ($typeRech=='RSE' && preg_match_all('/<a href="\.\/fiche(PP|S)Gratuit\.jsp\?rc=(.*)">(.*)<\/a>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) {
|
||||
foreach($matches[2] as $i=>$numRCI) {
|
||||
$tabEntrep=array( 'codeRCI'=>trim($numRCI),
|
||||
'anneeRCI'=>substr(trim($numRCI),0,2),
|
||||
'numInsRCI'=>substr(trim($numRCI),3,5),
|
||||
'PmPP'=>trim($matches[1][$i]),
|
||||
//'nomPrenom'=>trim($matches[4][$i]),
|
||||
'forme'=>trim($matches[4][$i]),
|
||||
'rs'=>trim($matches[5][$i]),
|
||||
'etabEns'=>trim($matches[6][$i]),
|
||||
'etat'=>trim($matches[7][$i]),
|
||||
'dateInsert'=>date('YmdHis'));
|
||||
if (!$iDb->insert($table, $tabEntrep)) {
|
||||
unset($tabEntrep['dateInsert']);
|
||||
$iDb->update($table, $tabEntrep, "codeRCI='$numRCI'");
|
||||
}
|
||||
}
|
||||
$nbTrouve=$i+1;
|
||||
} elseif ($typeRech=='NOM' && preg_match_all('/<a href="\.\/fiche(PP|S)Gratuit\.jsp\?rc=(.*)">(.*)<\/a>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<td>(.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) {
|
||||
foreach($matches[2] as $i=>$numRCI) {
|
||||
$tabEntrep=array( 'codeRCI'=>trim($numRCI),
|
||||
'anneeRCI'=>substr(trim($numRCI),0,2),
|
||||
'numInsRCI'=>substr(trim($numRCI),3,5),
|
||||
'PmPP'=>trim($matches[1][$i]),
|
||||
'nomPrenom'=>trim($matches[4][$i]),
|
||||
'nomJF'=>trim($matches[5][$i]),
|
||||
'forme'=>trim($matches[6][$i]),
|
||||
'rs'=>trim($matches[7][$i]),
|
||||
'etabEns'=>trim($matches[8][$i]),
|
||||
'etat'=>trim($matches[9][$i]),
|
||||
'dateInsert'=>date('YmdHis'));
|
||||
// print_r($tabEntrep);
|
||||
// die();
|
||||
if (!$iDb->insert($table, $tabEntrep)) {
|
||||
unset($tabEntrep['dateInsert']);
|
||||
if (!$iDb->update($table, $tabEntrep, "codeRCI='$numRCI'")) {
|
||||
echo mysql_error().EOL;
|
||||
print_r($tabEntrep);
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
||||
$nbTrouve=$i+1;
|
||||
}
|
||||
if ($nbTrouve>0) echo "$nbTrouve entreprise(s)";
|
||||
else {
|
||||
echo "Pas d'entreprise";
|
||||
//if ($modeDebug) print_r($page);
|
||||
}
|
||||
echo EOL;
|
||||
if (!$modeRCI) {
|
||||
unset($tabLet[$j]);
|
||||
|
||||
file_put_contents(REP_TEMP.$table, serialize(array_unique($tabLet)));
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($modeDetail || $modeRCI || $modeAnnee) {
|
||||
if ($modeRCI)
|
||||
$ret=$iDb->select($table, 'id,codeRCI,PmPP', "codeRCI='$modeRCI'", false);
|
||||
//elseif ($modeAnnee)
|
||||
// $ret=$iDb->select($table, 'id,codeRCI,PmPP', "anneeRcodeRCI='$modeRCI'", false);
|
||||
else
|
||||
$ret=$iDb->select($table, 'id,codeRCI,PmPP', "activite IS NULL OR etat='' /*AND PmPP='PP'*/ ORDER BY dateInsert DESC", false);
|
||||
$nbLet=count($ret);
|
||||
foreach ($ret as $tFiche) {
|
||||
@$nbDone++;
|
||||
$id=$tFiche['id'];
|
||||
$rci=$tFiche['codeRCI'];
|
||||
$ppS=$tFiche['PmPP'];
|
||||
echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RCI Monaco '$rci' ($id) - '";
|
||||
//echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
if ($ppS=='S') $urlFiche=$urlDetailS.$rci;
|
||||
elseif ($ppS=='PP') $urlFiche=$urlDetailPP.$rci;
|
||||
else die("Type '$ppS' inconnu !".EOL);
|
||||
$page=getUrl($urlFiche, '', '', $referer, false);
|
||||
//print_r($page);
|
||||
$body=$page['body'];
|
||||
if ($ppS=='S') $tabZones=$tabZonesS;
|
||||
elseif ($ppS=='PP') $tabZones=$tabZonesPP;
|
||||
$tabUpdate=html2array($body, $tabZones);
|
||||
if (@strpos($tabUpdate['ensAdr4'],'Pour de plus amples informations')>0) $tabUpdate['ensAdr4']='';
|
||||
$tabUpdate['anneeRCI']=substr($rci,0,2);
|
||||
$tabUpdate['numInsRCI']=substr($rci,3,5);
|
||||
$iDb->update($table, $tabUpdate, "id=$id");
|
||||
echo $tabUpdate['rs']."'".EOL;
|
||||
if (!$modeRCI) {
|
||||
if ($modeDebug) randsleep(1,2);//randsleep(7,21);
|
||||
else {
|
||||
randsleep(60,120);
|
||||
if (date('H')>19) die();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
shuffle($tabLet);
|
||||
file_put_contents (REP_TEMP.$table, serialize($tabLet));
|
||||
die();
|
||||
echo count($tabLet);
|
||||
//serialize
|
||||
print_r($tabLet);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
print_r($tabHtml);
|
||||
|
||||
die();
|
||||
|
||||
|
||||
$ret=$iDb->select($table, 'agrementNum', '1', false);
|
||||
foreach ($ret as $tAgrNum) {
|
||||
$agrNum=$tAgrNum['agrementNum'];
|
||||
echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL;
|
||||
}
|
||||
|
||||
for($i=$iDeb;;$i++) {
|
||||
$tabInsert=array('id'=>$i);
|
||||
|
||||
$url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15";
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
print_r($page);
|
||||
die();
|
||||
|
||||
$tabHtml=html2array($body, $tabZones);
|
||||
|
||||
foreach ($tabHtml as $zone=>$data) {
|
||||
if (is_array($data)) {
|
||||
foreach ($data as $j=>$tabInsert2) {
|
||||
$tabInsert2['id']=$i;
|
||||
$tabInsert2['num']=$j;
|
||||
$tabInsert2['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table.$zone, $tabInsert2, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert2['dateInsert']);
|
||||
$iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false);
|
||||
} else {
|
||||
print_r($tabInsert2);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
$tabInsert[$zone]=$data;
|
||||
}
|
||||
if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') {
|
||||
$nbVides++;
|
||||
if ($nbVides<20) continue;
|
||||
else {
|
||||
echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
$nbVides=0;
|
||||
|
||||
unset($tabInsert['qualifs']);
|
||||
|
||||
if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') {
|
||||
$urlLogo='http://www.qualifelec.fr/';
|
||||
die($tabInsert['urlImg']);
|
||||
if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') {
|
||||
$extension=substr(strrchr($urlLogo,'.'),1);
|
||||
if (!file_exists("/home/data/logos/$siren.$extension")) {
|
||||
$referer='';
|
||||
$tDeb=microtime(true);
|
||||
$page=getUrl($urlLogo, '', '', $referer, false, '', '', 60);
|
||||
$duree=round(microtime(true)-$tDeb,3);
|
||||
$body=$page['body'];
|
||||
$taille=round(strlen($body)/1024,1);
|
||||
file_put_contents("/home/data/logos/$siren.$extension",$body);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tabInsert['urlImg']);
|
||||
$tabInsert['dateInsert']=date('YmdHis');
|
||||
if (!$iDb->insert($table, $tabInsert, false)) {
|
||||
if (mysql_errno()==1062) {
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDb->update($table, $tabInsert, "id=$i", false);
|
||||
} else {
|
||||
print_r($tabInsert);
|
||||
die(mysql_error());
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
$nb=count($tabInsert);
|
||||
$nb2=@count($tabInsert2);
|
||||
echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL;
|
||||
|
||||
if ($modeDebug) randsleep(1,2);
|
||||
else randsleep(7,21);
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
?>
|
743
batch/getRecme.php
Normal file
743
batch/getRecme.php
Normal file
@ -0,0 +1,743 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
$tabTetesRecme=array(
|
||||
'2006 187300017',
|
||||
'2006 187300017',
|
||||
'2006 301374963',
|
||||
'2006 302097191',
|
||||
'2006 302421193',
|
||||
'2006 302977145',
|
||||
'2006 306771494',
|
||||
'2006 313320244',
|
||||
'2006 313402455',
|
||||
'2006 313643793',
|
||||
'2006 315065292',
|
||||
'2006 318186756',
|
||||
'2006 321777021',
|
||||
'2006 326094471',
|
||||
'2006 326817442',
|
||||
'2006 326981156',
|
||||
'2006 329297097',
|
||||
'2006 330715368',
|
||||
'2006 331057471',
|
||||
'2006 331596270',
|
||||
'2006 332737220',
|
||||
'2006 349250027',
|
||||
'2006 352751143',
|
||||
'2006 352973622',
|
||||
'2006 356000000',
|
||||
'2006 381856723',
|
||||
'2006 381984921',
|
||||
'2006 385290309',
|
||||
'2006 388202533',
|
||||
'2006 390199669',
|
||||
'2006 391406956',
|
||||
'2006 391718970',
|
||||
'2006 412280737',
|
||||
'2006 421671587',
|
||||
'2006 428822852',
|
||||
'2006 432766947',
|
||||
'2006 440546018',
|
||||
'2006 441133808',
|
||||
'2006 451930051',
|
||||
'2006 483790069',
|
||||
'2006 485389811',
|
||||
'2006 488203696',
|
||||
'2006 490946886',
|
||||
'2006 491041794',
|
||||
'2006 542008677',
|
||||
'2006 542085907',
|
||||
'2006 542089750',
|
||||
'2006 542094354',
|
||||
'2006 542107651',
|
||||
'2006 552016628',
|
||||
'2006 552017303',
|
||||
'2006 552049447',
|
||||
'2006 552081317',
|
||||
'2006 572104891',
|
||||
'2006 582056149',
|
||||
'2006 582056511',
|
||||
'2006 588502310',
|
||||
'2006 602001786',
|
||||
'2006 602019903',
|
||||
'2006 642006589',
|
||||
'2006 642036941',
|
||||
'2006 662006543',
|
||||
'2006 662012491',
|
||||
'2006 662043116',
|
||||
'2006 672049020',
|
||||
'2006 692039514',
|
||||
'2006 692041585',
|
||||
'2006 712013432',
|
||||
'2006 712032143',
|
||||
'2006 775558489',
|
||||
'2006 775604853',
|
||||
'2006 775641418',
|
||||
'2006 775663438',
|
||||
'2006 775665599',
|
||||
'2006 775665607',
|
||||
'2006 775665912',
|
||||
'2006 775685019',
|
||||
'2006 775688229',
|
||||
'2006 775700198',
|
||||
'2006 775701253',
|
||||
'2006 775722879',
|
||||
'2006 776056467',
|
||||
'2006 781804141',
|
||||
'2006 783595036',
|
||||
'2006 784276180',
|
||||
'2006 784301111',
|
||||
'2006 784396079',
|
||||
'2006 784804593',
|
||||
'2006 788058030',
|
||||
'2006 946751641',
|
||||
'2006 962504049',
|
||||
'2007 180089013',
|
||||
'2007 187300017',
|
||||
'2007 301374963',
|
||||
'2007 302097191',
|
||||
'2007 302421193',
|
||||
'2007 302977145',
|
||||
'2007 304992993',
|
||||
'2007 306771494',
|
||||
'2007 313320244',
|
||||
'2007 313402455',
|
||||
'2007 313643793',
|
||||
'2007 315065292',
|
||||
'2007 318186756',
|
||||
'2007 321777021',
|
||||
'2007 326094471',
|
||||
'2007 326817442',
|
||||
'2007 326981156',
|
||||
'2007 329297097',
|
||||
'2007 330715368',
|
||||
'2007 331057471',
|
||||
'2007 331596270',
|
||||
'2007 332737220',
|
||||
'2007 349250027',
|
||||
'2007 352751143',
|
||||
'2007 352973622',
|
||||
'2007 356000000',
|
||||
'2007 381856723',
|
||||
'2007 381984921',
|
||||
'2007 385290309',
|
||||
'2007 388202533',
|
||||
'2007 390199669',
|
||||
'2007 391406956',
|
||||
'2007 391718970',
|
||||
'2007 412280737',
|
||||
'2007 421671587',
|
||||
'2007 428684963',
|
||||
'2007 428822852',
|
||||
'2007 432766947',
|
||||
'2007 440546018',
|
||||
'2007 441133808',
|
||||
'2007 451930051',
|
||||
'2007 483790069',
|
||||
'2007 485389811',
|
||||
'2007 488203696',
|
||||
'2007 490946886',
|
||||
'2007 491041794',
|
||||
'2007 542008677',
|
||||
'2007 542085907',
|
||||
'2007 542089750',
|
||||
'2007 542094354',
|
||||
'2007 542107651',
|
||||
'2007 552016628',
|
||||
'2007 552017303',
|
||||
'2007 552049447',
|
||||
'2007 552081317',
|
||||
'2007 572104891',
|
||||
'2007 582056149',
|
||||
'2007 582056511',
|
||||
'2007 588502310',
|
||||
'2007 602001786',
|
||||
'2007 602019903',
|
||||
'2007 642006589',
|
||||
'2007 642036941',
|
||||
'2007 662006543',
|
||||
'2007 662043116',
|
||||
'2007 672049020',
|
||||
'2007 692039514',
|
||||
'2007 692041585',
|
||||
'2007 712013432',
|
||||
'2007 712032143',
|
||||
'2007 775558489',
|
||||
'2007 775604853',
|
||||
'2007 775641418',
|
||||
'2007 775663438',
|
||||
'2007 775665599',
|
||||
'2007 775665607',
|
||||
'2007 775665912',
|
||||
'2007 775685019',
|
||||
'2007 775688229',
|
||||
'2007 775700198',
|
||||
'2007 775701253',
|
||||
'2007 775722879',
|
||||
'2007 776056467',
|
||||
'2007 781804141',
|
||||
'2007 783595036',
|
||||
'2007 784276180',
|
||||
'2007 784301111',
|
||||
'2007 784396079',
|
||||
'2007 784804593',
|
||||
'2007 788058030',
|
||||
'2007 946751641',
|
||||
'2007 962504049',
|
||||
'2008 187300017',
|
||||
'2008 301374963',
|
||||
'2008 302097191',
|
||||
'2008 302421193',
|
||||
'2008 302977145',
|
||||
'2008 304992993',
|
||||
'2008 306771494',
|
||||
'2008 313320244',
|
||||
'2008 313402455',
|
||||
'2008 313643793',
|
||||
'2008 315065292',
|
||||
'2008 318186756',
|
||||
'2008 321777021',
|
||||
'2008 326094471',
|
||||
'2008 326817442',
|
||||
'2008 326981156',
|
||||
'2008 329297097',
|
||||
'2008 330715368',
|
||||
'2008 331057471',
|
||||
'2008 331596270',
|
||||
'2008 332737220',
|
||||
'2008 349250027',
|
||||
'2008 352751143',
|
||||
'2008 352973622',
|
||||
'2008 356000000',
|
||||
'2008 381856723',
|
||||
'2008 381984921',
|
||||
'2008 385290309',
|
||||
'2008 388202533',
|
||||
'2008 390199669',
|
||||
'2008 391406956',
|
||||
'2008 391718970',
|
||||
'2008 412280737',
|
||||
'2008 421671587',
|
||||
'2008 428684963',
|
||||
'2008 428822852',
|
||||
'2008 432766947',
|
||||
'2008 440546018',
|
||||
'2008 441133808',
|
||||
'2008 451930051',
|
||||
'2008 483790069',
|
||||
'2008 485389811',
|
||||
'2008 488203696',
|
||||
'2008 490946886',
|
||||
'2008 491041794',
|
||||
'2008 493292403',
|
||||
'2008 493425136',
|
||||
'2008 501524029',
|
||||
'2008 542008677',
|
||||
'2008 542085907',
|
||||
'2008 542089750',
|
||||
'2008 542094354',
|
||||
'2008 552016628',
|
||||
'2008 552017303',
|
||||
'2008 552049447',
|
||||
'2008 552081317',
|
||||
'2008 572104891',
|
||||
'2008 582056149',
|
||||
'2008 582056511',
|
||||
'2008 588502310',
|
||||
'2008 602001786',
|
||||
'2008 642006589',
|
||||
'2008 642036941',
|
||||
'2008 662006543',
|
||||
'2008 662043116',
|
||||
'2008 672049020',
|
||||
'2008 692039514',
|
||||
'2008 692041585',
|
||||
'2008 712013432',
|
||||
'2008 712032143',
|
||||
'2008 775558489',
|
||||
'2008 775604853',
|
||||
'2008 775641418',
|
||||
'2008 775663438',
|
||||
'2008 775665599',
|
||||
'2008 775665607',
|
||||
'2008 775665912',
|
||||
'2008 775685019',
|
||||
'2008 775688229',
|
||||
'2008 775700198',
|
||||
'2008 775701253',
|
||||
'2008 775722879',
|
||||
'2008 776056467',
|
||||
'2008 781804141',
|
||||
'2008 783595036',
|
||||
'2008 784276180',
|
||||
'2008 784301111',
|
||||
'2008 784396079',
|
||||
'2008 784804593',
|
||||
'2008 788058030',
|
||||
'2008 946751641',
|
||||
'2008 962504049',
|
||||
'2009 160020012',
|
||||
'2009 180036147',
|
||||
'2009 187300017',
|
||||
'2009 301374963',
|
||||
'2009 302097191',
|
||||
'2009 302421193',
|
||||
'2009 302977145',
|
||||
'2009 304992993',
|
||||
'2009 313320244',
|
||||
'2009 313402455',
|
||||
'2009 315065292',
|
||||
'2009 318186756',
|
||||
'2009 321777021',
|
||||
'2009 326094471',
|
||||
'2009 326817442',
|
||||
'2009 330715368',
|
||||
'2009 331596270',
|
||||
'2009 332737220',
|
||||
'2009 349250027',
|
||||
'2009 352751143',
|
||||
'2009 352973622',
|
||||
'2009 356000000',
|
||||
'2009 381856723',
|
||||
'2009 381984921',
|
||||
'2009 385290309',
|
||||
'2009 388202533',
|
||||
'2009 390199669',
|
||||
'2009 391406956',
|
||||
'2009 391718970',
|
||||
'2009 412280737',
|
||||
'2009 421671587',
|
||||
'2009 428684963',
|
||||
'2009 428822852',
|
||||
'2009 432766947',
|
||||
'2009 440546018',
|
||||
'2009 441133808',
|
||||
'2009 451930051',
|
||||
'2009 483790069',
|
||||
'2009 485389811',
|
||||
'2009 487607202',
|
||||
'2009 493292403',
|
||||
'2009 493425136',
|
||||
'2009 493479489',
|
||||
'2009 501524029',
|
||||
'2009 507542652',
|
||||
'2009 542008677',
|
||||
'2009 542085907',
|
||||
'2009 542089750',
|
||||
'2009 542094354',
|
||||
'2009 552016628',
|
||||
'2009 552017303',
|
||||
'2009 552049447',
|
||||
'2009 552081317',
|
||||
'2009 572104891',
|
||||
'2009 582056149',
|
||||
'2009 582056511',
|
||||
'2009 588502310',
|
||||
'2009 602001786',
|
||||
'2009 642006589',
|
||||
'2009 642036941',
|
||||
'2009 662006543',
|
||||
'2009 662043116',
|
||||
'2009 672049020',
|
||||
'2009 692039514',
|
||||
'2009 692041585',
|
||||
'2009 712013432',
|
||||
'2009 712032143',
|
||||
'2009 775558489',
|
||||
'2009 775604853',
|
||||
'2009 775641418',
|
||||
'2009 775663438',
|
||||
'2009 775665599',
|
||||
'2009 775665607',
|
||||
'2009 775665912',
|
||||
'2009 775685019',
|
||||
'2009 775688229',
|
||||
'2009 775700198',
|
||||
'2009 775701253',
|
||||
'2009 775722879',
|
||||
'2009 776056467',
|
||||
'2009 781804141',
|
||||
'2009 783595036',
|
||||
'2009 784276180',
|
||||
'2009 784301111',
|
||||
'2009 784396079',
|
||||
'2009 784804593',
|
||||
'2009 788058030',
|
||||
'2009 946751641',
|
||||
'2009 962504049',
|
||||
'2010 160020012',
|
||||
'2010 180020034',
|
||||
'2010 180036147',
|
||||
'2010 301374963',
|
||||
'2010 302097191',
|
||||
'2010 302421193',
|
||||
'2010 302977145',
|
||||
'2010 303091086',
|
||||
'2010 304992993',
|
||||
'2010 313320244',
|
||||
'2010 313402455',
|
||||
'2010 315065292',
|
||||
'2010 318186756',
|
||||
'2010 326094471',
|
||||
'2010 326817442',
|
||||
'2010 330715368',
|
||||
'2010 331596270',
|
||||
'2010 332737220',
|
||||
'2010 349250027',
|
||||
'2010 352751143',
|
||||
'2010 352973622',
|
||||
'2010 356000000',
|
||||
'2010 381856723',
|
||||
'2010 381984921',
|
||||
'2010 385290309',
|
||||
'2010 388202533',
|
||||
'2010 390199669',
|
||||
'2010 391406956',
|
||||
'2010 391718970',
|
||||
'2010 391790961',
|
||||
'2010 412280737',
|
||||
'2010 421671587',
|
||||
'2010 428684963',
|
||||
'2010 428822852',
|
||||
'2010 432766947',
|
||||
'2010 440546018',
|
||||
'2010 441133808',
|
||||
'2010 451930051',
|
||||
'2010 483790069',
|
||||
'2010 484360250',
|
||||
'2010 485389811',
|
||||
'2010 487607202',
|
||||
'2010 493292403',
|
||||
'2010 493425136',
|
||||
'2010 493479489',
|
||||
'2010 501524029',
|
||||
'2010 507542652',
|
||||
'2010 508364155',
|
||||
'2010 542008677',
|
||||
'2010 542085907',
|
||||
'2010 542089750',
|
||||
'2010 542094354',
|
||||
'2010 552016628',
|
||||
'2010 552017303',
|
||||
'2010 552049447',
|
||||
'2010 552081317',
|
||||
'2010 572104891',
|
||||
'2010 582056149',
|
||||
'2010 582056511',
|
||||
'2010 588502310',
|
||||
'2010 602001786',
|
||||
'2010 642006589',
|
||||
'2010 642036941',
|
||||
'2010 662006543',
|
||||
'2010 662043116',
|
||||
'2010 672049020',
|
||||
'2010 692039514',
|
||||
'2010 692041585',
|
||||
'2010 712013432',
|
||||
'2010 712032143',
|
||||
'2010 775558489',
|
||||
'2010 775604853',
|
||||
'2010 775641418',
|
||||
'2010 775663438',
|
||||
'2010 775665599',
|
||||
'2010 775665607',
|
||||
'2010 775665912',
|
||||
'2010 775685019',
|
||||
'2010 775688229',
|
||||
'2010 775700198',
|
||||
'2010 775701253',
|
||||
'2010 775722879',
|
||||
'2010 775729155',
|
||||
'2010 776056467',
|
||||
'2010 781804141',
|
||||
'2010 783595036',
|
||||
'2010 784276180',
|
||||
'2010 784301111',
|
||||
'2010 784396079',
|
||||
'2010 784804593',
|
||||
'2010 788058030',
|
||||
'2010 946751641',
|
||||
'2010 962504049',
|
||||
'2011 160020012',
|
||||
'2011 180020034',
|
||||
'2011 180036147',
|
||||
'2011 301374963',
|
||||
'2011 302097191',
|
||||
'2011 302421193',
|
||||
'2011 302977145',
|
||||
'2011 304992993',
|
||||
'2011 313320244',
|
||||
'2011 313402455',
|
||||
'2011 315065292',
|
||||
'2011 318186756',
|
||||
'2011 326094471',
|
||||
'2011 326817442',
|
||||
'2011 330715368',
|
||||
'2011 331596270',
|
||||
'2011 349250027',
|
||||
'2011 352751143',
|
||||
'2011 352973622',
|
||||
'2011 356000000',
|
||||
'2011 381856723',
|
||||
'2011 381984921',
|
||||
'2011 385290309',
|
||||
'2011 388202533',
|
||||
'2011 390199669',
|
||||
'2011 391406956',
|
||||
'2011 391718970',
|
||||
'2011 391790961',
|
||||
'2011 412280737',
|
||||
'2011 421671587',
|
||||
'2011 428684963',
|
||||
'2011 428822852',
|
||||
'2011 432766947',
|
||||
'2011 440546018',
|
||||
'2011 441133808',
|
||||
'2011 451930051',
|
||||
'2011 483790069',
|
||||
'2011 485389811',
|
||||
'2011 487607202',
|
||||
'2011 493292403',
|
||||
'2011 493425136',
|
||||
'2011 493479489',
|
||||
'2011 501524029',
|
||||
'2011 507542652',
|
||||
'2011 508364155',
|
||||
'2011 519587851',
|
||||
'2011 527946537',
|
||||
'2011 542085907',
|
||||
'2011 542089750',
|
||||
'2011 542094354',
|
||||
'2011 552016628',
|
||||
'2011 552017303',
|
||||
'2011 552049447',
|
||||
'2011 552081317',
|
||||
'2011 572104891',
|
||||
'2011 582056511',
|
||||
'2011 588502310',
|
||||
'2011 642006589',
|
||||
'2011 642036941',
|
||||
'2011 662043116',
|
||||
'2011 672049020',
|
||||
'2011 692039514',
|
||||
'2011 692041585',
|
||||
'2011 712013432',
|
||||
'2011 712032143',
|
||||
'2011 775558489',
|
||||
'2011 775604853',
|
||||
'2011 775663438',
|
||||
'2011 775665599',
|
||||
'2011 775665607',
|
||||
'2011 775665912',
|
||||
'2011 775685019',
|
||||
'2011 775688229',
|
||||
'2011 775700198',
|
||||
'2011 775701253',
|
||||
'2011 775722879',
|
||||
'2011 775729155',
|
||||
'2011 776056467',
|
||||
'2011 781804141',
|
||||
'2011 783595036',
|
||||
'2011 784276180',
|
||||
'2011 784301111',
|
||||
'2011 784396079',
|
||||
'2011 784804593',
|
||||
'2011 788058030',
|
||||
'2011 946751641',
|
||||
'2011 962504049',
|
||||
);
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/dbf_class.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$urlBase='http://www.insee.fr';
|
||||
$db_name='insee';
|
||||
$db_table='insee_tabRecme';
|
||||
$j=0;
|
||||
$nbRecme=999; // Récupération de tous les RECME
|
||||
$modeDebug=false;
|
||||
$fichier_csv=array();
|
||||
$separator=',';
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [FICHIERS]
|
||||
Récupération du RECME (Répertoire des Entreprises Contrôlées Majoritairement par l'État).
|
||||
|
||||
Options :
|
||||
-d Récupération du dernier RECME sur le site de l'INSEE
|
||||
-t Récupération de tous les derniers RECME sur le site de l'INSEE
|
||||
-v Mode bavard
|
||||
|
||||
";
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $nbRecme=1; break;
|
||||
case 't': $nbRecme=999; break;
|
||||
case 'v': $modeDebug=true; break;
|
||||
default: die($strInfoScript); break;//'Option '. $argv[$i] . " inconnue !".EOL);
|
||||
}
|
||||
} else {
|
||||
$fichier_csv[$j]=$argv[$i];
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
|
||||
if (count($fichier_csv)==0) {
|
||||
|
||||
/*$tabZones=array('url1'=>"<ul class=\"liens\"><li><a href=\"(detail.asp?ref_id=ir-recme$annee.*)\">(?:.*)</a></li>",
|
||||
'url2'=>"<li><a href=\"(detail.asp?ref_id=ir-recme$annee.*)\">Le répertoire des entreprises contrôlées majoritairement par l'État (RECME)</a></li>",
|
||||
);
|
||||
*/
|
||||
echo date ('Y/m/d - H:i:s')." - Recherche du dernier RECME...".EOL;
|
||||
for($annee=date('Y')-2; $annee>2005; $annee--) {
|
||||
$url=$urlBase."/fr/themes/detail.asp?ref_id=ir-recme$annee&page=irweb/recme$annee/dd/recme$annee".'_repertoire.htm';
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
|
||||
if (!preg_match_all('/<tr><td class="num">T(\d\d\d\d)<\/td>\s+<td class=apnum>Le Recme (\d\d\d\d)<\/td>\s+<td class="vm"><a href="(.*\.dbf)" title=\'Té(?:.*)au format dBase \'><img class="tele" alt=\'Té(?:.*)gif"><\/a>/Uim', $body, $matches)) {
|
||||
echo date ('Y/m/d - H:i:s')." - Pas de RECME pour l'année $annee !".EOL;
|
||||
randsleep(7,21);
|
||||
continue;
|
||||
} else
|
||||
echo date ('Y/m/d - H:i:s')." - Le dernier RECME disponible est celui de l'année $annee.".EOL;
|
||||
|
||||
randsleep(7,21);
|
||||
|
||||
foreach($matches[2] as $i=>$millesime)
|
||||
$tabUrlRecme[$millesime]=$urlBase.$matches[3][$i];
|
||||
|
||||
foreach($tabUrlRecme as $millesime=>$url) {
|
||||
$nbTent=1;
|
||||
while(1) {
|
||||
echo date ('Y/m/d - H:i:s')." - Téléchargement du RECME de l'année $millesime...".EOL;
|
||||
if ($modeDebug && $nbTent<=1) echo date ('Y/m/d - H:i:s')." - URL='$url'".EOL;
|
||||
$page=getUrl($url, '', '', $referer, false);
|
||||
if ($page['code']<>404) break;
|
||||
$nbTent++;
|
||||
echo date ('Y/m/d - H:i:s')." - Attente avant la prochaine tentative de téléchargement n°$nbTent du RECME de l'année $millesime...".EOL;
|
||||
randsleep(7,21);
|
||||
}
|
||||
if ($nbTent==1) randsleep(7,21);
|
||||
|
||||
$body=$page['body'];
|
||||
$len=strlen($body);
|
||||
$fichierDbf=REP_TEMP.'RECME_'.$millesime.'.dbf';
|
||||
$fichierCsv=REP_TEMP.'RECME_'.$millesime.'.csv';
|
||||
if (file_put_contents($fichierDbf, $body)) {
|
||||
echo date ('Y/m/d - H:i:s')." - Récupération du RECME $millesime au format DBF : $len octets".EOL;
|
||||
@unlink($fichierCsv);
|
||||
@system ('dbf2csv --header '.$fichierDbf.' --outfile='.$fichierCsv);
|
||||
if (!file_exists($fichierCsv)) die("Erreur lors de la conversion du fichier DBF en CSV".EOL);
|
||||
$nbLignes=count(file($fichierCsv));
|
||||
echo date ('Y/m/d - H:i:s')." - Conversion du RECME $millesime au format CSV : $nbLignes lignes".EOL;
|
||||
$fichier_csv[]=$fichierCsv;
|
||||
} else
|
||||
die("Erreur lors de l'écriture du fichier DBF en local".EOL);
|
||||
|
||||
}
|
||||
// print_r($matches);
|
||||
// print_r($tabUrlRecme);
|
||||
|
||||
if (count($tabUrlRecme)>=10) break;
|
||||
}
|
||||
}
|
||||
|
||||
//die();
|
||||
|
||||
$iDb=new WDB($db_name);
|
||||
|
||||
for ($nbFichiers=0; isset($fichier_csv[$nbFichiers]); $nbFichiers++) {
|
||||
|
||||
$nbLignes=0;
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $fichier_csv[$nbFichiers] ."...".EOL;
|
||||
$anneeRecme=substr($fichier_csv[$nbFichiers],-8);
|
||||
$anneeRecme=substr($anneeRecme,0,4)*1;
|
||||
|
||||
$fp = fopen($fichier_csv[$nbFichiers], 'r');
|
||||
while (($data = fgetcsv($fp, 3000, $separator)) !== FALSE) {
|
||||
$nbLignes++;
|
||||
|
||||
if ($nbLignes==1) {
|
||||
// L'entête contient la structure du fichier
|
||||
// On compte le nombre de colonnes du fichier
|
||||
$nbColonnes=count($data);
|
||||
//$sql="CREATE TABLE IF NOT EXISTS `$nom_table` (";
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
//$sql.='`'.$data[$i].'` LONGTEXT,';
|
||||
$tabTailles[$i]=0;
|
||||
$champ[$i]=$data[$i];
|
||||
}
|
||||
/* $sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
|
||||
$sql.=") ENGINE = MYISAM COMMENT = '$comment'";
|
||||
if ($dropBefore)
|
||||
$iDb->query("DROP TABLE IF EXISTS `$nom_table`");
|
||||
if ($iDb->query($sql))
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la table $nom_table OK...".EOL;
|
||||
else {
|
||||
echo $iDb->getLastError().EOL;
|
||||
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $nom_table !".EOL."Requête SQL = $sql".EOL);
|
||||
}*/
|
||||
continue;
|
||||
}
|
||||
|
||||
$tabDataToInsert=array();
|
||||
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
|
||||
if (strlen($data[$i])>$tabTailles[$i])
|
||||
$tabTailles[$i]=strlen($data[$i]);
|
||||
}
|
||||
$cp=$ville=$dep=$reg=$ape='';
|
||||
$lienDirect=0;
|
||||
$siren=@trim($tabDataToInsert['N'])*1;
|
||||
if ($siren==0) $siren=@trim($tabDataToInsert['SIREN'])*1;
|
||||
|
||||
$dep=@trim($tabDataToInsert['D']);
|
||||
if ($dep=='') $dep=@trim($tabDataToInsert['DEPARTEMEN']);
|
||||
$reg=@trim($tabDataToInsert['R']);
|
||||
if ($reg=='') $reg=@trim($tabDataToInsert['REGION']);
|
||||
$ape=@trim($tabDataToInsert['APE']);
|
||||
if ($ape=='') $ape=@trim($tabDataToInsert['APE_REV2']);
|
||||
|
||||
$cpVille=@trim($tabDataToInsert['COMMUNE']);
|
||||
if ($cpVille=='') $cpVille=@trim($tabDataToInsert['CODE_POSTA']);
|
||||
if(preg_match('/^(\d+)\s(.*)$/Ui', $cpVille, $matches)) {
|
||||
$cp=$matches[1];
|
||||
$ville=$matches[2];
|
||||
} else
|
||||
$ville=$cpVille;
|
||||
if (in_array("$anneeRecme $siren", $tabTetesRecme)) $lienDirect=1;
|
||||
$tabInsert=array( 'siren' => $siren,
|
||||
'raisonSociale' => trim($tabDataToInsert['RAISON_SOC']),
|
||||
'adresse' => trim($tabDataToInsert['ADRESSE']),
|
||||
'cp' => $cp,
|
||||
'commune' => $ville,
|
||||
'dept' => $dep,
|
||||
'region' => $reg,
|
||||
'cj' => trim($tabDataToInsert['CJ']),
|
||||
'ape' => $ape,
|
||||
'annee' => $anneeRecme,
|
||||
'lienDirect' => $lienDirect,
|
||||
);
|
||||
|
||||
/*print_r($tabInsert);
|
||||
die();
|
||||
*/
|
||||
if ($iDb->insert($db_table, $tabInsert, false))
|
||||
if (!$iDb->update($db_table, $tabInsert, "annee=$anneeRecme AND siren=$siren", false))
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR à la MAJ de la ligne n°$i : ". implode(';', $data) ." !".EOL;
|
||||
//unset($tabDataToInsert);
|
||||
}
|
||||
fclose ($fp);
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL;
|
||||
|
||||
?>
|
728
batch/getRefSNA.php
Normal file
728
batch/getRefSNA.php
Normal file
@ -0,0 +1,728 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/ftp.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
/*
|
||||
Serveur FTP :
|
||||
Votre identifiant :
|
||||
Votre mot de passe : 5h-P,z5(*/
|
||||
|
||||
define('AMABIS_FTP_URL', 'ftp.amabis.com');
|
||||
define('AMABIS_FTP_USER', 'refgeo_pack_H');
|
||||
define('AMABIS_FTP_PASS', '5h-P,z5(');
|
||||
define('AMABIS_FTP_REMOTE_DIR', '*.gz');
|
||||
define('AMABIS_LOCAL_DIR', '/home/data/amabis/');
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option> FICHIERS...
|
||||
Chargement des fichiers référentiels SNA via Amabis.
|
||||
|
||||
Options :
|
||||
-d Mode debug (Verbosité au maximum)
|
||||
-j Ne pas récupérer les derniers fichiers sur le FTP de l'Insee
|
||||
-u Forcer la mise à jour la table identite de l'insee
|
||||
-s=20080430 Réappliquer les évènements depuis cette date
|
||||
|
||||
";
|
||||
$iDb=new WDB('villes');
|
||||
//$iInsee=new MInsee();
|
||||
|
||||
$modeDebug=$dateReprise=false;
|
||||
$ftpStep=true;
|
||||
$updateInsee=false;
|
||||
$tabFichier=array();
|
||||
|
||||
$nomFichierCharges=array();
|
||||
$nbLignesCharges=$nbSiretInvalidesCharges=0;
|
||||
|
||||
//Initialistation des variables
|
||||
$argv=$_SERVER['argv'];
|
||||
//if ($_SERVER['argc']==1) die("Non géré pour l'instant : chargera les derniers fichiers EVEN non chargés !".EOL);
|
||||
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $modeDebug=true; break;
|
||||
case 'j': $ftpStep=false; break;
|
||||
case 'u': $updateInsee=true; break;
|
||||
case 's': $dateReprise=substr($argv[$i],3,8); break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
} else $tabFichier[]=$argv[$i];
|
||||
}
|
||||
/*
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des évènements INSEE".EOL;
|
||||
|
||||
$db_table='cedexa';
|
||||
if ($ftpStep) {
|
||||
/* Récupération des flux FTP *
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération des flux FTP de l'INSEE...".EOL;
|
||||
$ret=ftp_mget(AMABIS_FTP_URL, AMABIS_FTP_USER, AMABIS_FTP_PASS, AMABIS_FTP_REMOTE_DIR, AMABIS_LOCAL_DIR, true);
|
||||
if ($ret===false)
|
||||
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des flux INSEE en FTP incorrecte !".EOL);
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux INSEE en FTP ($ret fichiers récupérés).".EOL;
|
||||
}
|
||||
/** Liste des fichiers quotidiens de l'Insee
|
||||
**
|
||||
|
||||
$dh = opendir(AMABIS_LOCAL_DIR);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, -7)=='.txt.gz')
|
||||
$tabFichier[] = $filename;
|
||||
}
|
||||
*/
|
||||
//$tabToIdentite=array();
|
||||
/** Chargement des fichiers si nécessaire
|
||||
**/
|
||||
for ($i=0; isset($tabFichier[$i]); $i++)
|
||||
{
|
||||
$nomFichier =$tabFichier[$i];
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier".EOL;
|
||||
|
||||
$fp=fopen($nomFichier, 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter '".$nomFichier."'".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
$nbLignes=0; // Nombre de ligne du fichier
|
||||
while (!feof($fp))
|
||||
{
|
||||
$a = fgets($fp, 1024);
|
||||
if ($nbLignes==0) {
|
||||
|
||||
/*19/02/2012©LA POSTE HEXAPOSTE COMPLET 32
|
||||
19/02/2012©LA POSTE HEXAPOSTE COMPLET 38
|
||||
21/07/2014©LA POSTE HEXAVIA MISE A JOUR 38
|
||||
19/02/2012©LA POSTE HEXACLE COMPLET
|
||||
P19/02/2012©LA POSTE HEXALIGNE3 COMPLET 38
|
||||
P19/02/2012©LA POSTE HEXALIGNE3 COMPLET 32
|
||||
019-02-2012CEDEXA COMPLET 38
|
||||
019-02-2012CEDEXA COMPLET 32
|
||||
|
||||
0000019-02-2012ROUDIS2000 COMPLET 38
|
||||
0000019-02-2012ROUDIS2000 COMPLET 32
|
||||
*/
|
||||
if (strpos($a, 'HEXAPOSTE')) { $produit='HEXAPOSTE'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,0,10)); }
|
||||
elseif (strpos($a, 'HEXAVIA')) { $produit='HEXAVIA'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,0,10)); }
|
||||
elseif (strpos($a, 'HEXACLE')) { $produit='HEXACLE'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,0,10)); }
|
||||
elseif (strpos($a, 'HEXALIGNE3')) { $produit='HEXALIGNE3'; $dateFlux=WDate::dateT('d/m/Y','Y-m-d', substr($a,1,10)); }
|
||||
elseif (strpos($a, 'CEDEXA')) { $produit='CEDEXA'; $dateFlux=WDate::dateT('d-m-Y','Y-m-d', substr($a,1,10)); }
|
||||
elseif (strpos($a, 'ROUDIS2000')) { $produit='ROUDIS'; $dateFlux=WDate::dateT('d-m-Y','Y-m-d', substr($a,5,10)); }
|
||||
|
||||
if (strpos($a, 'COMPLET')) { $stock=1; $libStock='STOCK';}
|
||||
elseif (strpos($a, 'MISE A JOUR')) {$stock=0; $libStock='Mise à jour';}
|
||||
|
||||
if (strpos($a, ' 32 ')) $norme=32;
|
||||
elseif (strpos($a, ' 38 ')) $norme=38;
|
||||
}
|
||||
$nbLignes++;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - $libStock $produit en norme $norme en date du $dateFlux ($nbLignes lignes à traiter)".EOL;
|
||||
$nbLignesTot=$nbLignes++;
|
||||
$nbLignes=0;
|
||||
$nbInsert=$nbUpdate=$nbErreurs=array();
|
||||
rewind($fp);
|
||||
|
||||
// On ignore la ligne 1
|
||||
$a = fgets($fp, 1024);
|
||||
|
||||
while (!feof($fp))
|
||||
{
|
||||
$nbLignes++;
|
||||
$a = trim(fgets($fp, 1024));
|
||||
if ($produit=='HEXAVIA') {
|
||||
$codeLigne = strtoupper(substr($a, 0, 1));
|
||||
@$nbInput[$codeLigne]++;
|
||||
$k1=$k2=false;
|
||||
if ($norme==32) $tabUpdate=array('dateMaj32'=>$dateFlux);
|
||||
else $tabUpdate=array('dateMaj38'=>$dateFlux);
|
||||
if ($codeLigne=='L') {
|
||||
$table='hexaviaVilles';
|
||||
$tabUpdate['idAdr56'] =$k1=trim(substr($a, 1, 6));
|
||||
$tabUpdate['codeInseeCom'] =trim(substr($a, 7, 5));
|
||||
$strWhere="idAdr56='$k1'";
|
||||
if ($norme==32) {
|
||||
$tabUpdate['libCom32'] =trim(substr($a, 28,32));
|
||||
$tabUpdate['codeInseeGlobal'] =trim(substr($a, 60, 5));
|
||||
$tabUpdate['indPluridis'] =trim(substr($a, 65, 1));
|
||||
$tabUpdate['libLigne5n32'] =trim(substr($a, 66,32));
|
||||
$tabUpdate['indRoudis'] =trim(substr($a, 98, 1));
|
||||
$tabUpdate['codePostal'] =trim(substr($a, 99, 5));
|
||||
$tabUpdate['libLigne6n32'] =trim(substr($a,104,26));
|
||||
$tabUpdate['codeInseePre'] =trim(substr($a,130, 5));
|
||||
$tabUpdate['codeMaj32'] =trim(substr($a,135, 1));
|
||||
} elseif ($norme==38) {
|
||||
$tabUpdate['libCom38'] =trim(substr($a, 28,38));
|
||||
$tabUpdate['codeInseeGlobal'] =trim(substr($a, 66, 5));
|
||||
$tabUpdate['indPluridis'] =trim(substr($a, 71, 1));
|
||||
$tabUpdate['libLigne5n38'] =trim(substr($a, 72,38));
|
||||
$tabUpdate['indRoudis'] =trim(substr($a,110, 1));
|
||||
$tabUpdate['codePostal'] =trim(substr($a,111, 5));
|
||||
$tabUpdate['libLigne6n38'] =trim(substr($a,116,32));
|
||||
$tabUpdate['codeInseePre'] =trim(substr($a,148, 5));
|
||||
$tabUpdate['codeMaj38'] =trim(substr($a,153, 1));
|
||||
}
|
||||
} elseif ($codeLigne=='V') {
|
||||
$table='hexaviaVoies';
|
||||
$tabUpdate['idAdr56'] =$k1=trim(substr($a, 1, 6));
|
||||
$tabUpdate['codeInseeCom'] =trim(substr($a, 7, 5));
|
||||
$tabUpdate['codeVoie'] =$k2=trim(substr($a, 12, 8));
|
||||
$tabUpdate['derElemVoie'] =trim(substr($a, 40,20));
|
||||
$strWhere="idAdr56='$k1' AND codeVoie='$k2'";
|
||||
if ($norme==32) {
|
||||
$tabUpdate['libVoie32'] =trim(substr($a, 60,27));
|
||||
$tabUpdate['typeVoie'] =trim(substr($a, 87, 4));
|
||||
$tabUpdate['descLibVoie'] =trim(substr($a, 91,10));
|
||||
$tabUpdate['indStand32'] =trim(substr($a,101, 1));
|
||||
$tabUpdate['indScind'] =trim(substr($a,102, 1));
|
||||
$tabUpdate['indHomo'] =trim(substr($a,103, 1));
|
||||
$tabUpdate['codePostal'] =trim(substr($a,104, 5));
|
||||
$tabUpdate['numImpMin'] =trim(substr($a,109, 4));
|
||||
$tabUpdate['numImpMinExt'] =trim(substr($a,113, 1));
|
||||
$tabUpdate['numImpMax'] =trim(substr($a,115, 4));
|
||||
$tabUpdate['numImpMaxExt'] =trim(substr($a,120, 1));
|
||||
$tabUpdate['numPairMin'] =trim(substr($a,121, 4));
|
||||
$tabUpdate['numPairMinExt'] =trim(substr($a,125, 1));
|
||||
$tabUpdate['numPairMax'] =trim(substr($a,127, 4));
|
||||
$tabUpdate['numPairMaxExt'] =trim(substr($a,131, 1));
|
||||
$tabUpdate['codeRoudis'] =trim(substr($a,132, 5));
|
||||
$tabUpdate['codeMaj32'] =trim(substr($a,142, 1));
|
||||
} elseif ($norme==38) {
|
||||
$tabUpdate['libVoie38'] =trim(substr($a, 60,32));
|
||||
$tabUpdate['typeVoie'] =trim(substr($a, 92, 4));
|
||||
if ($tabUpdate['typeVoie']=='') unset($tabUpdate['typeVoie']);
|
||||
$tabUpdate['descLibVoie'] =trim(substr($a, 96,10));
|
||||
$tabUpdate['indStand38'] =trim(substr($a,106, 1));
|
||||
$tabUpdate['indScind'] =trim(substr($a,107, 1));
|
||||
$tabUpdate['indHomo'] =trim(substr($a,108, 1));
|
||||
$tabUpdate['codePostal'] =trim(substr($a,109, 5));
|
||||
$tabUpdate['numImpMin'] =trim(substr($a,114, 4));
|
||||
$tabUpdate['numImpMinExt'] =trim(substr($a,118, 1));
|
||||
$tabUpdate['numImpMax'] =trim(substr($a,120, 4));
|
||||
$tabUpdate['numImpMaxExt'] =trim(substr($a,124, 1));
|
||||
$tabUpdate['numPairMin'] =trim(substr($a,126, 4));
|
||||
$tabUpdate['numPairMinExt'] =trim(substr($a,130, 1));
|
||||
$tabUpdate['numPairMax'] =trim(substr($a,132, 4));
|
||||
$tabUpdate['numPairMaxExt'] =trim(substr($a,136, 1));
|
||||
$tabUpdate['codeRoudis'] =trim(substr($a,137, 5));
|
||||
$tabUpdate['codeMaj38'] =trim(substr($a,147, 1));
|
||||
}
|
||||
} elseif ($codeLigne=='W') {
|
||||
$table='hexaviaSyno';
|
||||
$tabUpdate['codeInseeCom'] =trim(substr($a, 7, 5));
|
||||
$tabUpdate['codeVoie'] =$k1=trim(substr($a, 12, 8));
|
||||
$tabUpdate['codeVoieSyno'] =$k2=trim(substr($a, 20, 8));
|
||||
$tabUpdate['derElemVoie'] =trim(substr($a, 40,20));
|
||||
$strWhere="codeVoie='$k1' AND codeVoieSyno='$k2'";
|
||||
if ($norme==32) {
|
||||
$tabUpdate['libVoieSyn32'] =trim(substr($a, 60,27));
|
||||
$tabUpdate['typeVoieSyn'] =trim(substr($a, 87, 4));
|
||||
$tabUpdate['descLibVoieSyn'] =trim(substr($a, 91,10));
|
||||
$tabUpdate['indStand32'] =trim(substr($a,101, 1));
|
||||
$tabUpdate['codeMaj32'] =trim(substr($a,107, 1));
|
||||
$tabUpdate['typeAppel'] =trim(substr($a,108, 1));
|
||||
} elseif ($norme==38) {
|
||||
$tabUpdate['libVoieSyn38'] =trim(substr($a, 60,32));
|
||||
$tabUpdate['typeVoieSyn'] =trim(substr($a, 92, 4));
|
||||
if ($tabUpdate['typeVoieSyn']=='') unset($tabUpdate['typeVoieSyn']);
|
||||
$tabUpdate['descLibVoieSyn'] =trim(substr($a, 96,10));
|
||||
$tabUpdate['indStand38'] =trim(substr($a,106, 1));
|
||||
$tabUpdate['codeMaj38'] =trim(substr($a,112, 1));
|
||||
$tabUpdate['typeAppel'] =trim(substr($a,113, 1));
|
||||
}
|
||||
}
|
||||
|
||||
$ret=$iDb->select($table, "COUNT(*) AS nbRec", $strWhere, false, MYSQL_ASSOC);
|
||||
if ($ret[0]['nbRec']>0) {
|
||||
$ret=$iDb->update($table, $tabUpdate, $strWhere, false);
|
||||
@$nbUpdate[$table]++;
|
||||
} else {
|
||||
$tabUpdate['dateInsert']=date('YmdHis');
|
||||
$ret=$iDb->insert($table, $tabUpdate, false);
|
||||
@$nbInsert[$table]++;
|
||||
if ($ret===false) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR n°". mysql_errno()." à l'insertion : ".mysql_error().'!'.EOL;
|
||||
@$nbErreurs[$table]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($nbLignes%100000==0) {
|
||||
//echo date ('Y/m/d - H:i:s')." - Fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot : $nbInsert ajouts, $nbUpdate MAJ et $nbErreurs erreurs).".EOL;
|
||||
foreach ($nbInsert as $key=>$nb)
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot : $key $nb ajouts, ".@(1*$nbUpdate[$key]).' MAJ et '.@(1*$nbErreurs[$key]).' erreurs).'.EOL;
|
||||
}
|
||||
}
|
||||
|
||||
print_r($nbInput[$codeLigne]);
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement du fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot lignes traitées)".EOL;
|
||||
echo date ('Y/m/d - H:i:s')." - $libStock $produit en norme $norme ($dateFlux)".EOL;
|
||||
foreach ($nbInsert as $key=>$nb)
|
||||
echo date ('Y/m/d - H:i:s')." - Fichier n°$i, $nomFichier ($nbLignes/$nbLignesTot : $key : $nb ajouts, ".@(1*$nbUpdate[$key]).' MAJ et '.@(1*$nbErreurs[$key]).' erreurs.'.EOL;
|
||||
|
||||
die();
|
||||
gzclose($fp);
|
||||
echo date ('Y/m/d - H:i:s')." - Le fichier n°$i, $nomFichier vient d'être chargé.".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siret invalides !".EOL;
|
||||
$nomFichierCharges[]=$nomFichier;
|
||||
$nbLignesCharges=$nbLignes;
|
||||
$nbSiretInvalidesCharges=$nbSiretInvalides;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - Au total : $nbLignes lignes traitées dont $nbSiretInvalides siret invalides !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Chargement des évènements terminé";
|
||||
die();
|
||||
|
||||
/**********************************************************************************************************************************
|
||||
* MISE A JOUR DE LA TABLE IDENTITE
|
||||
**********************************************************************************************************************************/
|
||||
|
||||
if ($updateInsee) {
|
||||
echo ', début de mise à jour de la table identite.'.EOL;
|
||||
|
||||
$fieldsR='insSIREN, insNIC, insEVE, insDATEVE, insTYPETAB, insORIGINE, insDESTINAT, insTRAN, insNICTRAN, insL1_NOMEN, insNOMEN, insL2_COMP, insENSEIGNE, insSIGLE, insSIEGE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insLIBCOM, insCODPOS, insL3_CADR, insL5_DISP, insAUXILT, insSAISONAT, insCJ, insCIVILITE, insDCRET, insDCREN, insAPEN700, insAPET700, insNBETEXPL, insTEFEN, insCODEVOIE, insDEPCOM, insTEL, insEFENCENT, insTEFET, insEFETCENT, insL7_ETRG, insAPRM, insACTIVNAT, insORIGINE, insMODET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insMODEN, insPRODPART, insEXPLEN, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insDAPEN, dirNom, dirNomUsage, dirPrenom, insDATEMAJ';
|
||||
// on lit R pour mettre à jour W
|
||||
$fieldsW='SIREN, NIC, IDENTITE_PRE, ACTIF, NOM, NOM2, ENSEIGNE, SIGLE, SIEGE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, AUXILT, SAISONAT, CJ, CIVILITE, DCRET, DCREN, APE_ENT, APE_ETAB, NBETAB, TEFF_ENT, TCA, CODEVOIE, ADR_DEP, ADR_COM, TEL, EFF_ENT, TEFF_ET, EFF_ET, PAYS, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, DAPET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, DEFEN, MONOREG, REGIMP, MONOACT, DAPEN, DIR_FCT, DIR_IDEN, DATE_MAJ';
|
||||
if (!$dateReprise)//$tabToIdentite
|
||||
sort($tabToIdentite);
|
||||
else
|
||||
$tabToIdentite=array($dateReprise);
|
||||
|
||||
foreach ($tabToIdentite as $idFlux) {
|
||||
//$idFlux='20080114';
|
||||
|
||||
if (!$dateReprise) {
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du chargement du flux $idFlux...".EOL;
|
||||
$ret=$iDbR->select('insee_even', $fieldsR, "idFlux=$idFlux ORDER BY idFlux ASC, insSIREN ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s') . " - Chargement du flux $idFlux : $ret lignes à mettre à jour...".EOL;
|
||||
} else {
|
||||
echo date ('Y/m/d - H:i:s') . " - Chargement des flux quotidiens depuis $idFlux...".EOL;
|
||||
$ret=$iDbR->select('insee_even', $fieldsR, "idFlux>=$idFlux ORDER BY idFlux ASC, insSIREN ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
|
||||
// $ret=$iDbR->select('insee_even', $fieldsR, "idFlux>=$idFlux AND LENGTH(insL2_COMP)>30 ORDER BY idFlux ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
|
||||
|
||||
/* $ret=$iDbR->select('insee_even', $fieldsR, "insSIREN IN (100800002,987310505) AND idFlux IN (20040426, 20080114) ORDER BY idFlux ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);*/
|
||||
echo date ('Y/m/d - H:i:s') . " - $ret lignes à mettre à jour...".EOL;
|
||||
}
|
||||
$k=$nbInsert=$nbUpdate=$nbDBl=0;
|
||||
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
|
||||
$k++;
|
||||
$siren=$ligne['insSIREN'];
|
||||
$nic =$ligne['insNIC'];
|
||||
$ret2=$iDbW->select('identite', $fieldsW, "SIREN=$siren AND NIC=$nic");
|
||||
$cpt=count($ret2);
|
||||
if ($cpt>0) $etab=$ret2[0];
|
||||
else $etab=array('IDENTITE_PRE'=>'',
|
||||
'NOM'=>'',
|
||||
'ENSEIGNE'=>'',
|
||||
'SIGLE'=>'');
|
||||
|
||||
$cj1=substr($ligne['insCJ'],0,1)*1;
|
||||
if ($cj1==1) {
|
||||
$arrDir=array( 'DIR_FCT'=>'PP',
|
||||
'DIR_IDEN'=> strtoupper(trim($ligne['dirNom'])).' '.
|
||||
ucwords(strtolower(trim($ligne['dirPrenom']))));
|
||||
} else
|
||||
$arrDir=array();
|
||||
|
||||
$even=trim($ligne['insEVE'])*1;
|
||||
$typEtab=trim($ligne['insTYPETAB'])*1;
|
||||
if ($even==0) {
|
||||
switch(''.trim($ligne['insEVE'])) {
|
||||
case 'MPF':
|
||||
case 'MNP':
|
||||
case 'MSA':
|
||||
case 'MAS':
|
||||
case 'MAC':
|
||||
case 'M00':
|
||||
case '00': $even=780; break;
|
||||
case 'M0C':
|
||||
case 'CC': $even=110; break; // Création d'une entreprise
|
||||
case 'M0F':
|
||||
case 'FF': $even=410; break; // Fermeture de l'entreprise
|
||||
case 'OC': $even=130; break; // Création d'un établissement
|
||||
case 'RC': $even=120; break; // Réactivation d'une entreprise par création d'un établissement
|
||||
case 'M0R':
|
||||
case 'RR': $even=120; break; // Réactivation d'une entreprise par réactivation d'un établissement
|
||||
case 'OA': $even=145; break; // Activation économique d'un étab par adjonction de moyens de production
|
||||
case 'OD': $even=430; break; // Désactivation économique d'un étab par suppression de moyens de prod.
|
||||
case 'OF': $even=430; break; // Fermeture d'un établissement
|
||||
case 'TC': $even=510; $typEtab=11; break; // Création de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
|
||||
case 'TR': $even=510; $typEtab=11; break;
|
||||
case 'T0': $even=510; $typEtab=11; break;
|
||||
case 'TA': $even=510; $typEtab=11; break;
|
||||
case 'TF': $even=510; $typEtab=10; break; // Fermeture d'un établissement dans le cadre d'un transfert
|
||||
case 'TD': $even=510; $typEtab=10; break; // Désactivation économique d'un établissement (ordinaire devient singulier) par suppression de moyens de production dans le cadre d'un transfert
|
||||
default:
|
||||
if (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='C') $even=130;
|
||||
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='A') $even=145;
|
||||
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='D') $even=430;
|
||||
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='F') $even=430;
|
||||
elseif (''.substr(trim($ligne['insEVE']),0,1).''==0 && substr(trim($ligne['insEVE']),1,1)=='R') $even=120;
|
||||
else echo ("Erreur code sur Siren $siren $nic : code Even=\"".trim($ligne['insEVE']).'"'.EOL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//$even=780
|
||||
|
||||
$origine=trim($ligne['insORIGINE']);
|
||||
$destinat=trim($ligne['insDESTINAT']);
|
||||
$dateFerEN=$dateFerET=-1; // Rar défaut, on n'y touche pas
|
||||
|
||||
switch ($even) {
|
||||
case 110: // Création ou réactivation Création d'une entreprise
|
||||
case 120: // Réactivation d'une entreprise
|
||||
case 125: // Réactivation d'une entreprise suite à une mise à jour du répertoire
|
||||
case 130: // Création d'un établissement
|
||||
case 145: // Reprise d'activité dans un établissement suite à une mise à jour du répertoire
|
||||
|
||||
switch ($typEtab) {
|
||||
case 15: // Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique
|
||||
case 23: // Établissement fermé (hors transfert)
|
||||
case 25: // Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
break;
|
||||
default:
|
||||
$dateFerET=$dateFerEN=0;
|
||||
$actif=1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 400: // Suppression d'un double
|
||||
//$dateFerET=$dateFerEN=0;
|
||||
$actif=-1;
|
||||
continue; // On ignore les suppressions de doublons
|
||||
break;
|
||||
case 410: // Cessation juridique de l'entreprise
|
||||
case 420: // Absence d'activité de l'entreprise (cessation économique de l.entreprise)
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$dateFerEN=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
/** @todo, il faudrait fermer tous les étabs **/
|
||||
break;
|
||||
case 425: // Absence d'activité d'une entreprise suite à une mise à jour au répertoire
|
||||
case 430: // Fermeture d'un établissement
|
||||
case 435: // Fermeture d'un établissement suite à une mise à jour au répertoire
|
||||
switch ($typEtab) {
|
||||
case 13: // Siège fermé (hors transfert)
|
||||
case 15: // Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique
|
||||
case 23: // Établissement fermé (hors transfert)
|
||||
case 25: // Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
break;
|
||||
case 14: // Siège modifié (hors transfert) : modification de l'activité principale avec activation économique
|
||||
case 16: // Siège modifié (hors transfert) : modification de l'APE de l'établissement
|
||||
case 17: // Siège modifié (hors transfert) : modification de l'identification de l'établissement
|
||||
case 19: // Siège modifié (hors transfert) : autre modification de l'établissement
|
||||
case 24: // Établissement modifié (hors transfert) : modification de l'activité principale avec activation économique
|
||||
$dateFerET=$dateFerEN=0;
|
||||
$actif=1;
|
||||
break;
|
||||
default:
|
||||
$actif=-1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 510: // Création de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
|
||||
case 520: // Création de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert
|
||||
case 530: // Modification de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
|
||||
case 540: // Modification de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert
|
||||
switch ($typEtab) {
|
||||
case 9: // Siège après transfert non créé
|
||||
case 8: // Siège avant transfert non fermé
|
||||
case 11: // Siège après transfert créé
|
||||
case 12: // Siège créé (hors transfert)
|
||||
case 14: // Siège modifié (hors transfert) : modification de l'activité principale avec activation économique
|
||||
case 21: // Établissement après transfert créé
|
||||
case 22: // Établissement créé (hors transfert)
|
||||
case 24: // Établissement modifié (hors transfert) : modification de l'activité principale avec activation économique
|
||||
case 30: // Établissement avant transfert non fermé
|
||||
case 31: // Établissement après transfert non créé
|
||||
//echo "case even=$even, typeEtab=$typEtab\n";
|
||||
$dateFerET=$dateFerEN=0;
|
||||
$actif=1;
|
||||
break;
|
||||
case 10: // Siège avant transfert fermé
|
||||
case 13: // Siège fermé (hors transfert)
|
||||
case 15: // Siège modifié (hors transfert) : modification de l'activité principale avec désactivation économique
|
||||
case 20: // Établissement avant transfert fermé
|
||||
case 23: // Établissement fermé (hors transfert)
|
||||
case 25: // Établissement modifié (hors transfert) : modification de l'activité principale avec désactivation économique
|
||||
case 32: // Établissement supprimé
|
||||
//echo "case even=$even, typeEtab=$typEtab\n";
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
break;
|
||||
default:
|
||||
$actif=-1;
|
||||
break;
|
||||
/*
|
||||
Que fait on pour ces codes ?
|
||||
16 Siège modifié (hors transfert) : modification de l'activité principale de l'établissement
|
||||
17 Siège modifié (hors transfert) : modification de l'identification de l'établissement
|
||||
19 Siège modifié (hors transfert) : autre modification de l'établissement
|
||||
26 Établissement modifié (hors transfert) : autre modification de l'activité principale de l'établissement
|
||||
27 Établissement modifié (hors transfert) : modification de l'identification de l'établissement
|
||||
29 Établissement modifié (hors transfert) : modification d.une autre variable de l'établissement*/
|
||||
}
|
||||
break;
|
||||
case 610: // Modification d'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production
|
||||
case 640: // Modification d'activité au niveau de l'établissement associée à une activation économique par adjonction de moyens de production
|
||||
$actif=1;
|
||||
break;
|
||||
case 620: // Modification d'activité au niveau du SIREN associé à une désactivation économique par suppression de moyens de production
|
||||
case 621: // Modification d'activité du SIREN associé à une désactivation économique par suppression de moyens de production suite à une correction d'erreur
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$dateFerEN=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
break;
|
||||
case 650: // Modification d'activité au niveau de l'établissement associée à une désactivation économique par suppression de moyens de production
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
break;
|
||||
//case 781:
|
||||
case 795: // SIREN non diffusible
|
||||
$actif=1;
|
||||
break;
|
||||
default:
|
||||
$actif=-1;
|
||||
/*631 Autre modification d'activité du SIREN associé
|
||||
661 Autre modification d'activité au niveau de l'établissement
|
||||
|
||||
710 Modification de l'identification du SIREN
|
||||
711 Modification de l'identification du SIREN suite à correction d'erreur
|
||||
720 Modification de l'adresse ou de l'identification de l'établissement
|
||||
780 Autre modification entraînant la mise à jour d'au moins une variable du répertoire
|
||||
781 Autre modification entraînant la mise à jour d'au moins une variable du répertoire suite à correction d'erreur*/
|
||||
}
|
||||
|
||||
//echo "$k : [$siren $nic\t$even\t$destinat\t$typEtab\t$origine\t($actif)]".EOL;
|
||||
|
||||
/** Si on n'a pas pu déterminé l'état actif ou inactif, on test si la variable DESTINAT est renseignée !
|
||||
**/
|
||||
if ($actif==-1 && (trim($ligne['insEVE'])=='MPF' || trim($ligne['insEVE'])=='MNP')) {
|
||||
// Etablisement présumé fermé mais on laisse actif juridiquement
|
||||
$actif=-1;
|
||||
}
|
||||
elseif ($actif==-1 && ( $destinat*1==3 || // Vendu
|
||||
$destinat=='B' || // Fermé
|
||||
$destinat=='C' || // Supprimé
|
||||
$destinat=='D' || // Mise en location-gérance de la totalité du fonds
|
||||
$destinat=='F' || // Cessation d'activité (pour les liasses agricoles)
|
||||
$destinat=='I' || // Transmission au conjoint (pour les liasses agricoles)
|
||||
$destinat=='J' || // Cession (pour les liasses agricoles)
|
||||
$destinat=='G' ) ) // Mise en location-gérance de la totalité des terres et des bâtiments agricoles (pour les liasses agricoles)
|
||||
{
|
||||
$dateFerET=$ligne['insDATEVE'];
|
||||
$actif=0;
|
||||
}
|
||||
elseif ($actif==-1 && ( $destinat*1==7 || // Maintien d'activité, l'établissement devient siège
|
||||
$destinat*1==8 || // Maintien d'activité, l'établissement devient principal
|
||||
$destinat=='A' || // Maintien d'activité, l'établissement devient secondaire
|
||||
$destinat=='E' || // Mise en location-gérance d'une partie du fonds
|
||||
$destinat=='VP' || // suppression partielle d'activité par vente
|
||||
$destinat=='DP' || // suppression partielle d'activité par disparition
|
||||
$destinat=='RP' || // suppression partielle d'activité par reprise par le propriétaire
|
||||
$destinat=='H') ) // Mise en location-gérance d'une partie des terres et des bâtiments agricoles (pour les liasses agricoles)
|
||||
{
|
||||
$actif=1;
|
||||
}
|
||||
else {
|
||||
if ($modeDebug)
|
||||
echo "$k : $siren $nic\t$even\t$destinat\t$typEtab\t$origine\t($actif)".EOL;
|
||||
}
|
||||
/*
|
||||
9 Autre
|
||||
NR Non renseigné
|
||||
*/
|
||||
|
||||
if ($actif==-1) $arrActif=array();
|
||||
else $arrActif=array('ACTIF'=>$actif);
|
||||
|
||||
if ($dateFerET<>-1) $arrActif=array_merge($arrActif, array('dateFerET'=>$dateFerET));
|
||||
|
||||
if ($dateFerEN<>-1) $arrActif=array_merge($arrActif, array('dateFerEN'=>$dateFerEN));
|
||||
|
||||
/** Zone Identité précédente
|
||||
** contenant tous les anciens nom, sigle et/ou enseigne concaténés
|
||||
** n'ai jamais affiché mais sert pour l'indexation au niveau de la recherche
|
||||
** On ne se sert pas de $tabEve['insMENSEIGNE'] =substr($a,543,1);//Indicateur de mise à jour de l'enseigne de l'établissement
|
||||
** $tabEve['insMNOMEN']=substr($a,658,1);//Indicateur de mise à jour du nom ou de la raison sociale
|
||||
** $tabEve['insMSIGLE']=substr($a,659,1);//Indicateur de mise à jour du sigle
|
||||
**/
|
||||
$identite_pre=trim($etab['IDENTITE_PRE']);
|
||||
$nomEntrep=trim(strtr($ligne['insNOMEN'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||||
$nomEntrepEnBase=substr(trim(strtr($etab['NOM'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°'))),0,38);
|
||||
if ($nomEntrepEnBase<>$nomEntrep && $nomEntrepEnBase<>'') {
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $siren $nic - NOM En base : / MAJ : $nomEntrepEnBase".EOL;
|
||||
if (strlen($identite_pre)==0)
|
||||
$identite_pre=$nomEntrepEnBase;
|
||||
else
|
||||
$identite_pre.=','.$nomEntrepEnBase;
|
||||
}
|
||||
|
||||
$nomEtab=trim(strtr($ligne['insENSEIGNE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||||
$nomEtabEnBase=trim(strtr($etab['ENSEIGNE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||||
if ($nomEtabEnBase<>$nomEtab && $nomEtabEnBase<>'') {
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $siren $nic - ENSEIGNE En base : / MAJ : $nomEtabEnBase".EOL;
|
||||
if (strlen($identite_pre)==0)
|
||||
$identite_pre=$nomEtabEnBase;
|
||||
else
|
||||
$identite_pre.=','.$nomEtabEnBase;
|
||||
}
|
||||
|
||||
$sigEntrep=trim(strtr($ligne['insSIGLE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||||
$sigEntrepEnBase=trim(strtr($etab['SIGLE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||||
if ($sigEntrepEnBase<>$sigEntrep && $sigEntrepEnBase<>'') {
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $siren $nic - SIGLE En base : / MAJ : $sigEntrepEnBase".EOL;
|
||||
if (strlen($identite_pre)==0)
|
||||
$identite_pre=$sigEntrepEnBase;
|
||||
else
|
||||
$identite_pre.=','.$sigEntrepEnBase;
|
||||
}
|
||||
|
||||
$arrBase=array( 'NOM'=> trim($ligne['insNOMEN']), // Raison Sociale de l'entreprise
|
||||
'NOM2'=> trim($ligne['insL2_COMP']), // Enseigne de l'établissement ou sigle de l'entreprise ou enfin, nom commercial (Intermarché)
|
||||
'ENSEIGNE'=> trim($ligne['insENSEIGNE']), // Nom de l'établissement ou enseigne
|
||||
'SIGLE'=> trim($ligne['insSIGLE']), // Sigle
|
||||
'SIEGE'=> $ligne['insSIEGE'], // Siège
|
||||
'IDENTITE_PRE'=>$identite_pre,
|
||||
|
||||
'ADR_NUMVOIE'=> trim($ligne['insNUMVOIE']), // N° dans la voie
|
||||
'ADR_BTQ'=> trim($ligne['insINDREP']), // BTQ
|
||||
'ADR_TYPVOIE'=> trim($ligne['insTYPVOIE']), // Type de voie
|
||||
'ADR_LIBVOIE'=> trim($ligne['insLIBVOIE']), // Lib Voie
|
||||
'ADR_CP'=> trim($ligne['insCODPOS']), // Code Postal
|
||||
'ADR_LIBCOM'=> trim($ligne['insLIBCOM']), // Commune
|
||||
'ADR_COMP'=> trim($ligne['insL3_CADR']), // Complément d'adresse
|
||||
'ADR_DISTSP'=> trim($ligne['insL5_DISP']), // Distribution Spéciale
|
||||
|
||||
'AUXILT'=> trim($ligne['insAUXILT']), //
|
||||
'SAISONAT'=> $ligne['insSAISONAT'], //
|
||||
'CJ'=> trim($ligne['insCJ']),
|
||||
'CIVILITE'=> trim($ligne['insCIVILITE']), // Sexe 0=Entrep, 1=Homme, 2=Femme
|
||||
'DCRET'=> trim($ligne['insDCRET']), // Date de création de l'établissemennt
|
||||
'DCREN'=> trim($ligne['insDCREN']), // Date de création de l'entreprise
|
||||
|
||||
'APE_ENT'=> trim($ligne['insAPEN700']), // Code NAF de l'entreprise (cf. table APE)
|
||||
'APE_ETAB'=> trim($ligne['insAPET700']), // Code NAF de l'établissement (cf. table APE)
|
||||
|
||||
'NBETAB'=> trim($ligne['insNBETEXPL']), // Nombre d'établissement de l'entreprise
|
||||
'TEFF_ENT'=> trim($ligne['insTEFEN']), // Tr Eff Entrep
|
||||
// 'TCA'=> trim($ligne['insTCA']), // Tr CA
|
||||
'CODEVOIE'=> trim($ligne['insCODEVOIE']), // Ce RIVOLI
|
||||
'ADR_DEP'=> trim(substr($ligne['insDEPCOM'],0,2))*1,
|
||||
'ADR_COM'=> trim(substr($ligne['insDEPCOM'],2,3))*1,
|
||||
'EFF_ENT'=> trim($ligne['insEFENCENT']), // Eff Entrep
|
||||
'TEFF_ET'=> trim($ligne['insTEFET']), // Tr Eff Etablissement
|
||||
'EFF_ET'=> trim($ligne['insEFETCENT']), // Eff Etablissement
|
||||
|
||||
'PAYS'=> trim($ligne['insL7_ETRG']), // Pays si différent de france
|
||||
'APRM'=> trim($ligne['insAPRM']), // Répertoire Métier
|
||||
'ACTIVNAT'=> trim($ligne['insACTIVNAT']),
|
||||
'ORIGINE'=> trim($ligne['insORIGINE']),
|
||||
'MODET'=> trim($ligne['insMODET']),
|
||||
'EXPLET'=> trim($ligne['insEXPLET']),
|
||||
'DAPET'=> trim($ligne['insDAPET']),
|
||||
'LIEUACT'=> trim($ligne['insLIEUACT']),
|
||||
'ACTISURF'=> trim($ligne['insACTISURF']),
|
||||
'DEFET'=> trim($ligne['insDEFET']),
|
||||
'MODEN'=> trim($ligne['insMODEN']),
|
||||
'PRODPART'=> trim($ligne['insPRODPART']),
|
||||
'EXPLEN'=> trim($ligne['insEXPLEN']),
|
||||
'DEFEN'=> trim($ligne['insDEFEN']),
|
||||
'MONOREG'=> trim($ligne['insMONOREG']),
|
||||
'REGIMP'=> trim($ligne['insREGIMP']),
|
||||
'MONOACT'=> trim($ligne['insMONOACT']),
|
||||
'DAPEN'=> trim($ligne['insDAPEN']),
|
||||
|
||||
'DATE_MAJ'=> substr(''.$ligne['insDATEMAJ'].'',0,8),
|
||||
);
|
||||
|
||||
if ($cpt==0) {
|
||||
/**
|
||||
** On ajoute la fiche de l'établissement
|
||||
**/
|
||||
$arrTel=array( 'TEL'=> trim($ligne['insTEL'])); // Téléphone de l'établissement
|
||||
|
||||
$tabInsert=array( 'SIREN'=> $ligne['insSIREN'],
|
||||
'NIC'=> $ligne['insNIC'],
|
||||
);
|
||||
$tabInsert=array_merge($tabInsert, $arrTel, $arrDir, $arrBase, $arrActif);
|
||||
|
||||
// echo date ('Y/m/d - H:i:s')." - Siret $siren $nic en cours d'ajout".EOL;
|
||||
$retInsert=$iDbW->insert('identite', $tabInsert, true);
|
||||
if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error());
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic ajouté".EOL;
|
||||
$nbInsert++;
|
||||
} else {
|
||||
/**
|
||||
** On modifie la fiche de l'établissement
|
||||
**/
|
||||
$tel=trim($ret2[0]['TEL']);
|
||||
if (trim($ligne['insTEL'])<>'' && $tel=='')
|
||||
$arrTel=array( 'TEL'=> trim($ligne['insTEL'])); // Téléphone de l'établissement
|
||||
else
|
||||
$arrTel=array();
|
||||
|
||||
$tabUpdate=array_merge($arrTel, $arrDir, $arrBase, $arrActif);
|
||||
$retUpdate=$iDbW->update('identite', $tabUpdate, "SIREN=$siren AND NIC=$nic", false);
|
||||
if (!$retUpdate) die('Erreur lors de MAJ Mysql n°'. mysql_errno() .' : '.mysql_error());
|
||||
//if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic modifié".EOL;
|
||||
$nbUpdate++;
|
||||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt fiche(s) modifiée(s)".EOL;
|
||||
|
||||
if ($cpt>1) {
|
||||
//die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL);
|
||||
$tabSirenDoubles[]=$siren;// RAF
|
||||
$fp=fopen('doublons.txt', 'a');
|
||||
fwrite($fp, "$siren $nic : $cpt lignes\n");
|
||||
fclose($fp);
|
||||
//print_r($ret2);
|
||||
echo date ('Y/m/d - H:i:s')." - Doublons sur $siren $nic : $cpt lignes".EOL;
|
||||
$nbDBl++;
|
||||
}
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du chargement du flux $idFlux : $k lignes traités ($nbInsert ajouts, $nbUpdate maj et $nbDBl doublons).".EOL;
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin de la mise à jour de la table identité".EOL;
|
||||
} else echo ', la table identite n\'est pas mise à jour !'.EOL;
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des évènements INSEE".EOL;
|
||||
$message="Fichier évènements '".implode(',', $nomFichierCharges)."' :
|
||||
- $nbLignesCharges lignes traitées,
|
||||
- $nbSiretInvalidesCharges siret invalides,
|
||||
- $nbErreurs erreurs lors des insertions.
|
||||
";
|
||||
if ($updateInsee) {
|
||||
$message.="
|
||||
Table identité :
|
||||
- $nbInsert créations,
|
||||
- $nbUpdate mises à jour
|
||||
";
|
||||
}
|
||||
$message.=EOL;
|
||||
|
||||
/** Ajout du fichier info de l'INSEE **/
|
||||
foreach ($nomFichierCharges as $nomFichier) {
|
||||
$message.="Informations INSEE pour '$nomFichier' :".EOL;
|
||||
$message.=file_get_contents(AMABIS_LOCAL_DIR.str_replace('*','', AMABIS_FTP_REMOTE_DIR).str_replace('EVE.DJ','EVE.NJ',$nomFichier)).EOL;
|
||||
$message.=EOL;
|
||||
}
|
||||
|
||||
sendMail('webmaster@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Fin du traitement de chargement INSEE', $message);
|
||||
|
||||
die();
|
||||
|
||||
?>
|
55
batch/getSIC.php
Normal file
55
batch/getSIC.php
Normal file
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
/*include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
*/
|
||||
|
||||
$body=file_get_contents ('/root/sic/sic.txt');
|
||||
|
||||
if (preg_match_all('/<p style="(?:.*)">SIC code (.*)\: <b>(.*)<\/b>(?:.*)<td class="d1">Nace<\/td><td class="d2">(.*)<\/td>/Uis',$body,$matches)) {
|
||||
foreach ($matches[1] as $i=>$sic_code) {
|
||||
$sic_lib=$matches[2][$i];
|
||||
$nace_code=$matches[3][$i];
|
||||
echo "$sic_code\t$sic_lib\t$nace_code".EOL;
|
||||
}
|
||||
//print_r($matches);
|
||||
die();
|
||||
}
|
||||
|
||||
die();
|
||||
|
||||
echo simpleWhois('indiscore', 'fr', true);
|
||||
die();
|
||||
$tab = array( 'toto.com',
|
||||
'momo.com',
|
||||
'yoyo.fr',
|
||||
'65qs4df56q4qsdqsd.com',
|
||||
'koko.net',
|
||||
'zozo.net',
|
||||
'soso.net',
|
||||
'qoqo.net',
|
||||
'qs56d4qs56d4qs65d4qs564.net',
|
||||
'xoxo.net',
|
||||
'coco.com',
|
||||
'hoho.fr',
|
||||
'nono.net',
|
||||
'dodo.com',
|
||||
);
|
||||
// Récupération des résultats
|
||||
$output = false;
|
||||
// Exécution
|
||||
if($tab){
|
||||
foreach($tab as $host){
|
||||
list($domain, $tdl) = split(".", $host, 2); // le 2 permet de s'arreter après le 1er point ce qui permet d'avoir des extenssion du type .com.fr
|
||||
$output[$host] = simpleWhois($domain, $tdl);
|
||||
}
|
||||
}
|
||||
// Affichage "brut" des données traitées
|
||||
if($output){
|
||||
print_r($output);
|
||||
}
|
||||
?>
|
1314
batch/getSem.php
Normal file
1314
batch/getSem.php
Normal file
File diff suppressed because it is too large
Load Diff
1314
batch/getSem2.php
Normal file
1314
batch/getSem2.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -10,7 +10,7 @@ include_once(FWK_PATH.'mail/sendMail.php');
|
||||
include_once(FWK_PATH.'map/ShapeFile.inc.php');
|
||||
|
||||
//$shp = new ShapeFile("us.shp"); // along this file the class will use file.shx and file.dbf
|
||||
$shp = new ShapeFile("cours.shp"); // along this file the class will use file.shx and file.dbf
|
||||
$shp = new ShapeFile("/var/www/batch/shape/RPG_2012_006.shx"); // along this file the class will use file.shx and file.dbf
|
||||
|
||||
// Let's see all the records:
|
||||
var_dump ($shp) ;
|
||||
|
@ -16,7 +16,22 @@ Options :
|
||||
";
|
||||
|
||||
$mInsee=new MInsee();
|
||||
$tabSrc=array( 'adm'=>array('lib'=>'Administrations',
|
||||
$tabSrc=array( 'pjms'=>array('lib'=>'PagesJaunesMS',
|
||||
'db'=>'tmp',
|
||||
'table'=>'pjms201505',
|
||||
'zones'=>"seq AS id, SUBSTRING(siret,1,9) AS siren, SUBSTRING(siret,10,5) AS nic, '' AS poste, '' AS mail, '' AS web,
|
||||
20150630 AS dateInsert,
|
||||
0 AS dateUpdate,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax,
|
||||
rubrique_pro AS an8",
|
||||
'where'=>"siret>100000000 AND (tel<>'' OR fax<>'' OR rubrique_pro<>'')",
|
||||
'go'=>0,
|
||||
'idSrc'=>118),
|
||||
/** @todo : Ne charger les données PJMS qu'après avoir mis le fichier sur le serveur,
|
||||
* /var/www/batch/loadCSV.php -s=/t -d=tmp -t=pjms -e 2014101000948_Scores_et_Decisions.csv
|
||||
**/
|
||||
'adm'=>array('lib'=>'Administrations',
|
||||
'db'=>'jo',
|
||||
'table'=>'boamp_detail',
|
||||
'zones'=>"id, siren, nic, poste, email AS mail, web, DATE(dateInsert)*1 AS dateInsert, dateUpdate,
|
||||
@ -41,6 +56,13 @@ $tabSrc=array( 'adm'=>array('lib'=>'Administrations',
|
||||
'where'=>"siren>1000 AND nic>9 AND recupTel=0 AND (Assoc_Mail<>'' OR Assoc_Web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>3),
|
||||
'assocpt'=>array('lib'=>'Comptes Associations',
|
||||
'db'=>'jo',
|
||||
'table'=>'asso_bilans',
|
||||
'zones'=>"id, siren, NULL AS nic, '' AS poste, siteWeb AS web, DATE(dateInsert)*1 AS dateInsert, dateUpdate",
|
||||
'where'=>"siren>1000 AND recupTel=0 AND (siteWeb LIKE '%@%' OR siteWeb LIKE '%http%' OR siteWeb LIKE '%www%' OR siteWeb LIKE '%.fr' OR siteWeb LIKE '%.org' OR siteWeb LIKE '%.com')",
|
||||
'go'=>1,
|
||||
'idSrc'=>3),
|
||||
'mand'=>array('lib'=>'Mandataires',
|
||||
'db'=>'jo',
|
||||
'table'=>'tabMandataires',
|
||||
@ -139,11 +161,63 @@ $tabSrc=array( 'adm'=>array('lib'=>'Administrations',
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"SIRET>1000 AND recupTel=0 AND (Tel<>'' OR Fax<>'')",
|
||||
'go'=>1,
|
||||
'go'=>0,
|
||||
'idSrc'=>210),
|
||||
'cncc'=>array('lib'=>'CNCC',
|
||||
'db'=>'sdv1',
|
||||
'table'=>'tabCNCC',
|
||||
'zones'=>"id, siren, nic, '' AS poste, mail, web, dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(Fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>100 AND nic>9 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>300),
|
||||
'amf_mairies'=>array('lib'=>'AMFM',
|
||||
'db'=>'jo',
|
||||
'table'=>'villes',
|
||||
'zones'=>"id, siren, nic, '' AS poste, '' AS mail, web, dateMajAMF AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>100 AND nic>9 AND recupTel=0 AND (tel<>'' OR fax<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>400),
|
||||
'banatic'=>array('lib'=>'Banatic',
|
||||
'db'=>'insee',
|
||||
'table'=>'banatic_coor',
|
||||
'zones'=>"id, sirenGrp AS siren, NULL AS nic, '' AS poste, mail, web, dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"sirenGrp>100 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>52),
|
||||
'infos_entrep'=>array('lib'=>'InfosEntrep',
|
||||
'db'=>'jo',
|
||||
'table'=>'infos_entrep',
|
||||
'zones'=>"id, siren, nic, '' AS poste, mail, web, dateUpdate AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(tel,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(fax,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"siren>1000 AND recupTel=0 AND (tel<>'' OR fax<>'' OR mail<>'' OR web<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>175),
|
||||
|
||||
'crmScores'=>array('lib'=>'CRM Scores',
|
||||
'db'=>'sugarcrm',
|
||||
'table'=>'accounts',
|
||||
'zones'=>"id, ticker_symbol AS siren, NULL AS nic, '' AS poste, email1 AS mail, website AS web, IF(date_modified>date_entered, date_modified, date_entered) AS dateInsert,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(phone_office,'-',''),' ',''),',',''),'.','') AS tel,
|
||||
REPLACE(REPLACE(REPLACE(REPLACE(phone_alternate,'-',''),' ',''),',',''),'.','') AS fax",
|
||||
'where'=>"ticker_symbol>1000 AND recupTel=0 AND (phone_office<>'' OR phone_alternate<>'' OR email1<>'' OR website<>'')",
|
||||
'go'=>1,
|
||||
'idSrc'=>252),
|
||||
/*
|
||||
`id` , `billing_address_street` , `billing_address_city` , `billing_address_state` , `billing_address_postalcode` ,
|
||||
`phone_office` , `phone_alternate` , `email1` , `email2` , `website` , `ticker_symbol` , `shipping_address_street` ,
|
||||
`shipping_address_city` , `shipping_address_state` , `shipping_address_postalcode` , `date_entered` , `date_modified` , `modified_user_id` , `deleted`
|
||||
FROM `accounts`
|
||||
ORDER BY `accounts`.`date_modified` ASC
|
||||
*/
|
||||
);
|
||||
$tabZones=array('tel', 'fax', 'mob', 'mail', 'web');
|
||||
$tabZones=array('tel', 'fax', 'mob', 'mail', 'web', 'an8');
|
||||
$verbose=$noMail=false;
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
@ -220,28 +294,48 @@ foreach ($tabSrc as $src=>$tabSrcDet) {
|
||||
//continue;
|
||||
if ($iDb2->insert('telephonie', array( 'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'dateProvPartenaire'=>$tabTel['dateInsert'],
|
||||
'dateProvPartenaire'=>str_replace('-','',$tabTel['dateInsert']),
|
||||
'typeTel'=>$zone,
|
||||
'actif'=>1,
|
||||
'infoTel'=>$infoTel,
|
||||
'telephone'=>$tel,
|
||||
'partenaire'=>$tabSrcDet['idSrc'])) || $iDb2->getLastErrorNum()==1062) {
|
||||
if ($iDb2->getLastErrorNum()<>1062) @$nbInsert[$zone]++;
|
||||
if ($iDb2->getLastErrorNum()<>1062) {
|
||||
@$nbInsert[$zone]++;
|
||||
@$nbInsertSrc[$zone][$src]++;
|
||||
}
|
||||
elseif ($iDb2->getLastErrorNum()==1062) {
|
||||
$ret2=$iDb2->select('telephonie', 'nbConf', "siren=$siren AND nic=$nic AND typeTel='$zone' AND infoTel='$infoTel' AND telephone=$tel", false, MYSQL_ASSOC);
|
||||
$nbConf=($ret2[0]['nbConf']*1)+1;
|
||||
$iDb2->update('telephonie', array( 'dateConfPartenaire'=>str_replace('-','',$tabTel['dateInsert']),
|
||||
'partenaireConf'=>$tabSrcDet['idSrc'],
|
||||
'nbConf'=>$nbConf), "siren=$siren AND nic=$nic AND typeTel='$zone' AND infoTel='$infoTel' AND telephone=$tel", false);
|
||||
@$nbUpdateSrc[$zone][$src]++;
|
||||
@$nbUpdate[$zone]++;
|
||||
}
|
||||
@$nbTot[$zone]++;
|
||||
$tabUpdate=array('recupTel'=>1);
|
||||
if (isset($tabTel['dateUpdate'])) $tabUpdate['dateUpdate']=$tabTel['dateUpdate'];
|
||||
$iDb->update($tabSrcDet['table'], $tabUpdate, "id=".$tabTel['id']);
|
||||
$iDb->update($tabSrcDet['table'], $tabUpdate, "id='".$tabTel['id']."'");
|
||||
} else die($iDb2->getLastError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print_r($nbInsert);
|
||||
print_r($nbUpdate);
|
||||
print_r($nbTot);
|
||||
if (!$noMail) {
|
||||
$message=date('Y/m/d - H:i:s') ." - Fin de la récupération des Tel, Fax, Mel et Web issus des différentes sources :".EOL;
|
||||
foreach ($tabZones as $zone)
|
||||
$message.=" Nombre de nouveaux '$zone' = ".@$nbInsert[$zone].' ajouts / '.@$nbTot[$zone].' lignes'.EOL;
|
||||
$message.=" Nombre de nouveaux '$zone' = ".@$nbInsert[$zone].' ajouts et '.@$nbUpdate[$zone].' MAJ / '.@$nbTot[$zone].' lignes'.EOL;
|
||||
$message.=EOL;
|
||||
foreach ($tabZones as $zone) {
|
||||
foreach ($tabSrc as $src=>$tabSrcDet) {
|
||||
$nbTotTmp=@$nbInsertSrc[$zone][$src]+@$nbUpdateSrc[$zone][$src];
|
||||
if ($nbTotTmp>0) $message.=" Source '".sprintf("%-20s", $tabSrcDet['lib']."'")." nb. nouveaux '$zone' = ".@$nbInsertSrc[$zone][$src].' ajouts et '.@$nbUpdateSrc[$zone][$src].' MAJ / '.@$nbTotTmp.' lignes'.EOL;
|
||||
}
|
||||
}
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,support@scores-decisions.com', "Récupération des Tel, Fax, Mel et Web", $message);
|
||||
}
|
||||
|
||||
@ -327,7 +421,7 @@ foreach ($tabSrc as $src=>$tabSrcDet) {
|
||||
'telephone'=>$tel,
|
||||
'partenaire'=>$tabSrcDet['idSrc'])) || $iDb2->getLastErrorNum()==1062) {
|
||||
@$nbInsert[$zone]++;
|
||||
$iDb->update($tabSrcDet['table'], array('recupTel'=>1), "id=".$tabTel['id']);
|
||||
$iDb->update($tabSrcDet['table'], array('recupTel'=>1), "id='".$tabTel['id']."'");
|
||||
} else die($iDb2->getLastError());
|
||||
}
|
||||
}
|
||||
@ -352,7 +446,7 @@ while ($tabTel=$iDbSel->fetch(MYSQL_ASSOC)) {
|
||||
if ($telPrev=='' && $tel<>'') $tabUpdate['TEL']=$tel;
|
||||
if ($faxPrev=='' && $fax<>'') $tabUpdate['FAX']=$fax;
|
||||
if (count($tabUpdate)>0) {
|
||||
$iDbMaj->update('identite',$tabUpdate, "id=$id");
|
||||
$iDbMaj->update('identite',$tabUpdate, "id='$id'");
|
||||
echo date ('Y/m/d - H:i:s')." - Siren $siren, Tel $tel, Fax $fax : Mise à jour OK".EOL;
|
||||
$nbAvecMaj++;
|
||||
}
|
||||
|
1091
batch/giantMonitoring.php
Normal file
1091
batch/giantMonitoring.php
Normal file
File diff suppressed because it is too large
Load Diff
378
batch/listeFranchises.php
Normal file
378
batch/listeFranchises.php
Normal file
@ -0,0 +1,378 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
if (!defined('VERSION_FICHIER_IDENTITE'))
|
||||
define('VERSION_FICHIER_IDENTITE','0106');
|
||||
|
||||
/**
|
||||
* @todo
|
||||
* 2. Pouvoir faire du multiligne avec : 106 Libell� du P�rim�tre de la vente
|
||||
* 5. JugesCommissaires � int�grer correctement
|
||||
*/
|
||||
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(INCLUDE_PATH.'conversion/bilAltares.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$optionEOL=EOL;
|
||||
$stock=$dateDebut=$idClientTodo=false;
|
||||
$dateDebutCmd=false;
|
||||
$iInsee=new MInsee();
|
||||
|
||||
|
||||
$iDb=new WDB('jo');
|
||||
$iDb2=new WDB('sdv1');
|
||||
$iBodacc=new MBodacc();
|
||||
$iRncs=new MRncs();
|
||||
|
||||
/*
|
||||
$tabZonesToCheck=array('Nom','Enseigne','Sigle');
|
||||
$tabTmp=$iDb->select('sirenage_clients','id, refClient, nom, siren, sirenValide, sirenExiste, nic, nicValide, nicExiste, enseigne, adresse1, adresse2, adresse3, cp, ville',"idClient=173 AND idFlux=46 AND siren>1000 AND sirenValide=0 AND sirenExiste=1", false, MYSQL_ASSOC);
|
||||
//$tabTmp=$iDb->select('sirenage_clients','id, refClient, nom, siren, sirenValide, sirenExiste, nic, nicValide, nicExiste, enseigne, adresse1, adresse2, adresse3, cp, ville',"idClient=173 AND idFlux=45 AND siren>1000 AND sirenValide=0 AND sirenExiste=1", false, MYSQL_ASSOC);
|
||||
$nbTotal=count($tabTmp);
|
||||
foreach($tabTmp as $i=>$tabSirenage) {
|
||||
//print_r($tabSirenage);
|
||||
//die();
|
||||
$siren=$tabSirenage['siren'];
|
||||
$nic=$tabSirenage['nic'];
|
||||
$nom=$tabSirenage['nom'];
|
||||
$id=$tabSirenage['id'];
|
||||
$cp=$tabSirenage['cp'];
|
||||
|
||||
$sirenValide=$nicValide=0;
|
||||
$sirenExiste=$nicExiste=0;
|
||||
if ($iInsee->valideSiren($siren, $nic)) {
|
||||
$sirenValide=1;
|
||||
$nicValide=1;
|
||||
if ($siren>1000) $tabIdI=$iInsee->getIdentiteLight($siren, $nic);
|
||||
} elseif ($iInsee->valideSiren($siren)) {
|
||||
$sirenValide=1;
|
||||
if ($siren>1000) $tabIdI=$iInsee->getIdentiteLight($siren);
|
||||
}
|
||||
|
||||
if ($siren>1000 && $siren==$tabIdI['Siren']) $sirenExiste=1;
|
||||
if ($nic>9 && $nic==$tabIdI['Nic']) $nicExiste=1;
|
||||
|
||||
$resirener=false;
|
||||
if ($sirenExiste /*&& $nicExiste*) {
|
||||
|
||||
$raisonSociale =trim(strtoupper(trimAccent(strtr($nom, array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', 'Pseudonyme'=>'', "'"=>'', ':'=>'',' N� '=>' ',' N�e '=>' ','/ACHE/'=>' ','Pr�c�dent propri�taire'=>' ')))));
|
||||
$raisonSociale=strtr($raisonSociale, array('SOCIETE EN LIQUIDATION'=>'', 'EN LIQUIDATION'=>'', 'SOCIETE A RESPONSABILITE LIMITEE'=>'SARL','DENOMINATION'=>'', 'SUCCESSION'=>''));
|
||||
$len =strlen($raisonSociale);
|
||||
$tabMots=preg_split('/ +/', $raisonSociale);
|
||||
$mots=count($tabMots);
|
||||
|
||||
foreach($tabZonesToCheck as $zone) {
|
||||
$raisonSocialeI=trim(strtoupper(strtr(trimAccent($tabIdI[$zone]), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>''))));
|
||||
$levI=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI));
|
||||
$delI=$levI/$len;
|
||||
$lenI=strlen($raisonSocialeI);
|
||||
$tabMotsI=preg_split('/ +/', $raisonSocialeI);
|
||||
$motsI=count(array_diff($tabMots,$tabMotsI));
|
||||
$diffI=$motsI/$mots;
|
||||
//die();
|
||||
if ($delI<0.5 && $diffI<=0.5) {
|
||||
echo "$zone '".$tabIdI[$zone]."' identique à $raisonSociale".EOL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($delI<0.5 && $diffI<=0.5 && substr($cp,0,2)==$tabIdI['Dept']) {
|
||||
$nic=$tabIdI['Nic'];
|
||||
$nicValide=$nicExiste=1;
|
||||
$tabUpdate=array( //'siren' => $siren,
|
||||
'nic' => $nic,
|
||||
'sirenValide' => $sirenValide,
|
||||
//'sirenExiste' => $sirenExiste,
|
||||
'nicValide' => $nicValide,
|
||||
'nicExiste' => $nicExiste,
|
||||
);
|
||||
//print_r($tabUpdate);
|
||||
//die();
|
||||
$iDb->update('sirenage_clients', $tabUpdate,"id=$id");
|
||||
echo mysql_error();
|
||||
$iDb->delete('bodacc_sirenage', "idTable='sirenage_clients' AND idAnn=$id");
|
||||
echo mysql_error();
|
||||
//print_r($tabSirenage);
|
||||
echo "$i/$nbTotal : siren $siren - AJOUT DU NIC $nic.".EOL;
|
||||
//print_r($tabUpdate);
|
||||
//die();
|
||||
if ($i%1000==0)
|
||||
echo "$i/$nbTotal : $nbSirenValide siren valides dont $nbSirenExiste existants".EOL;
|
||||
}
|
||||
continue;
|
||||
|
||||
echo "$delI >=0.5 ? && $diffI >0.5 ?".EOL;
|
||||
print_r($tabIdI);
|
||||
die();
|
||||
|
||||
if ($delI>=0.5 && $diffI>0.5) {
|
||||
|
||||
$tabIdR=$iRncs->getInfosEntrep($siren);
|
||||
if (@$tabIdR['raisonSociale']=='') {
|
||||
$resirener=true;
|
||||
}
|
||||
else {
|
||||
$raisonSocialeR=trim(strtoupper(strtr(trimAccent($tabIdR['raisonSociale']), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>''))));
|
||||
$levR=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeR));
|
||||
$delR=$levR/$len;
|
||||
$tabMotsR=preg_split('/ +/', $raisonSocialeR);
|
||||
$motsR=count(array_diff($tabMots,$tabMotsR));
|
||||
$diffR=$motsR/$mots;
|
||||
if ($delR>0.5 && $diffR>0.5)
|
||||
$resirener=true;
|
||||
}
|
||||
}
|
||||
if ($resirener) {
|
||||
$nbSirenAvalider++;
|
||||
$sirenValide=0;
|
||||
$nicValide=0;
|
||||
}
|
||||
}
|
||||
if ($sirenValide) $nbSirenValide++;
|
||||
if ($sirenExiste) $nbSirenExiste++;
|
||||
if ($nicValide) $nbNicValide++;
|
||||
if (nicExiste) $nbNicExiste++;
|
||||
|
||||
|
||||
$tabUpdate=array( 'siren' => $siren,
|
||||
'nic' => $nic,
|
||||
'sirenValide' => $sirenValide,
|
||||
'sirenExiste' => $sirenExiste,
|
||||
'nicValide' => $nicValide,
|
||||
'nicExiste' => $nicExiste,
|
||||
);
|
||||
//print_r($tabInsert);
|
||||
//die();
|
||||
$iDb->update('sirenage_clients', $tabUpdate,"id=$id");
|
||||
//print_r($tabUpdate);
|
||||
//die();
|
||||
if ($i%1000==0)
|
||||
echo "$i/$nbTotal : $nbSirenValide siren valides dont $nbSirenExiste existants".EOL;
|
||||
|
||||
}
|
||||
die();
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
$len =strlen($raisonSociale);
|
||||
$tabMots=preg_split('/ +/', $raisonSociale);
|
||||
$mots=count($tabMots);
|
||||
$levI=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI));
|
||||
$delI=$levI/$len;
|
||||
$lenI=strlen($raisonSocialeI);
|
||||
$tabMotsI=preg_split('/ +/', $raisonSocialeI);
|
||||
$motsI=count(array_diff($tabMots,$tabMotsI));
|
||||
$diffI=$motsI/$mots;
|
||||
|
||||
echo "$raisonSociale\t$raisonSocialeI\t$delI >=0.5 ?\t$diffI >0.5?".EOL;
|
||||
die();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*
|
||||
*
|
||||
* SELECT `siren` , `nic` , `codePostal` , `codePostalSiege` , `typeEven`
|
||||
FROM `bodacc_detail`
|
||||
WHERE `id` >=18000000
|
||||
AND `Bodacc_Date_Parution` >= '2013-06-01'
|
||||
AND `Rubrique` = CONVERT( _utf8 'radiations'
|
||||
USING latin1 )
|
||||
COLLATE latin1_swedish_ci
|
||||
LIMIT 0 , 30
|
||||
|
||||
*/
|
||||
/*
|
||||
$tabLignes=file('/root/sql/cegedimCPradiations.csv');
|
||||
foreach($tabLignes as $ligne) {
|
||||
$tabLigne=explode("\t", $ligne);
|
||||
$siren=$tabLigne[0];
|
||||
if ($siren<1000) continue;
|
||||
$nic=$tabLigne[1];
|
||||
$cp=$tabLigne[2];
|
||||
$cpSiege=$tabLigne[3];
|
||||
$ann=$tabLigne[5];
|
||||
if (preg_match('/Adresse du si.ge social \:(.*)\s+(\d\d\d\d\d)\s+/Ui', $ann, $matches))
|
||||
$cpSiege=$matches[2];
|
||||
echo "$siren\t$nic\t";
|
||||
if ($cp>$cpSiege) echo $sp.EOL;
|
||||
else echo $cpSiege.EOL;
|
||||
|
||||
/*
|
||||
print_r($tabLigne);
|
||||
die();
|
||||
$siren=$tabLigne[0];
|
||||
if ($siren<1000) continue;
|
||||
$ref=$tabLigne[2];
|
||||
$cp=trim($tabLigne[3]);
|
||||
|
||||
$tabId=@$iInsee->getIdentiteLight($siren);
|
||||
|
||||
$siege=$tabId['Siege'];
|
||||
$nic=$tabId['Nic'];
|
||||
$cpLu=$tabId['CP'];
|
||||
|
||||
if ($cp<>$cpLu) $nic=0;
|
||||
echo "$siren\t$nic\t$ref\t$cp\t$cpLu".EOL;
|
||||
//if (@$tabId['actif']==0) $typeJuge='';
|
||||
//print_r($tabId);
|
||||
|
||||
//print_r($tabLigne);
|
||||
//die();
|
||||
**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$tabLignes=file('/root/sql/SICLIrecherchenic20130924.csv');
|
||||
$nbLignes=count($tabLignes);
|
||||
foreach($tabLignes as $iLigne=>$ligne) {
|
||||
$tabLigne=explode(",", $ligne);
|
||||
$siren=$tabLigne[0];
|
||||
if ($siren<1000) continue;
|
||||
$nic='';
|
||||
$ref=$tabLigne[2];
|
||||
$cp=trim($tabLigne[3]);
|
||||
$dep=substr($cp,0,2);
|
||||
if ($dep>95) $dep=substr($cp,0,3);
|
||||
|
||||
$tabRep=@$iInsee->getEtablissements($siren, $nic, $deb=0, $nbRep=20, $maxRep=200, $dep);
|
||||
if ($tabRep['nbReponses']==1) {
|
||||
$tabId=$tabRep['reponses'][0];
|
||||
$siege=$tabId['Siege'];
|
||||
$nic=$tabId['Nic'];
|
||||
$cpLu=$tabId['CP'];
|
||||
$actif=$tabId['Actif'];
|
||||
$ok=1;
|
||||
} elseif ($tabRep['nbReponses']>1) {
|
||||
$ok=0;
|
||||
foreach ($tabRep['reponses'] as $iRep=>$tabId) {
|
||||
$siege=$tabId['Siege'];
|
||||
$nic=$tabId['Nic'];
|
||||
$cpLu=$tabId['CP'];
|
||||
$actif=$tabId['Actif'];
|
||||
if ($cp==$cpLu) {
|
||||
$ok=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($nic*1<>0 && $ok) echo "$iLigne/$nbLignes\t$siren\t$nic\t$ref\t$cp\t$cpLu".EOL;
|
||||
}
|
||||
die();
|
||||
**/
|
||||
|
||||
|
||||
|
||||
$repIn='/root/franchise/';
|
||||
$fichierIn=false;
|
||||
$dh = opendir($repIn);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
if ($filename<>'.' && $filename<>'..' && substr($filename, -5)=='.html') {
|
||||
$fichierIn = $filename;
|
||||
$tabTmp=explode('-', $fichierIn);
|
||||
$idIn=str_replace('.html','',end($tabTmp));
|
||||
$htmlIn=file_get_contents($repIn.$fichierIn);
|
||||
|
||||
//echo $fichierIn.' ('.strlen($htmlIn)." octets pour l'id $idIn)".EOL;
|
||||
|
||||
$enseigne=$secteurNom=$secteurLien=$activiteNom=$activiteLien=$rs=$adresse='';
|
||||
|
||||
if (preg_match('/<h1>Franchise \: (.*)<\/h1>/Uis', $htmlIn, $matches))
|
||||
$enseigne=trim(strip_tags($matches[1]));
|
||||
|
||||
if (preg_match('/Toute l\'actualité du secteur <a href=\'(.*)\'>(.*)<\/a>/Uis', $htmlIn, $matches)) {
|
||||
$secteurLien=trim($matches[1]);
|
||||
$secteurNom =trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/Toute l\'actualit� de l\'activit� <a href=\'(.*)\'>(.*)<\/a>/Uis', $htmlIn, $matches)) {
|
||||
$activiteLien=trim($matches[1]);
|
||||
$activiteNom =trim($matches[2]);
|
||||
}
|
||||
|
||||
if (preg_match('/Contact<\/a><\/td>(?:.*)<div style="padding\: 14px;"><h1 style=\'color\: #c50c1f;\'>(.*)<\/h1>(.*)<\/p><\/div>/Uis', $htmlIn, $matches)) {
|
||||
$rs=trim($matches[1]);
|
||||
$adresse=trim($matches[2]);
|
||||
if (strlen($rs)>1000 || strlen($adresse)>1000) {
|
||||
if (preg_match('/<td onclick="location\.href=\'(http\:\/\/www\.franchise\-magazine\.com\/franchise\/(?:.*)\/contact\.html)\'"/Uis', $htmlIn, $matches)) {
|
||||
$url=$matches[1];
|
||||
$tabTmp=explode("'", $url);
|
||||
$url=end($tabTmp);
|
||||
//die($url);
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
if (preg_match('/Contact<\/a><\/td>(?:.*)<div style="padding\: 14px;"><h1 style=\'color\: #c50c1f;\'>(.*)<\/h1>(.*)<\/p><\/div>/Uis', $body, $matches)) {
|
||||
$rs=trim($matches[1]);
|
||||
$adresse=trim($matches[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "$fichierIn\t$idIn\t$enseigne\t$secteurNom\t";
|
||||
$tabUpdate=array( 'secteurFmag'=>$secteurNom);
|
||||
if ($iDb2->update('franchiseurs', $tabUpdate,"idFmag=$idIn", false))
|
||||
echo 'OK'.EOL;
|
||||
else
|
||||
echo 'K.O. !!!'.EOL;
|
||||
echo mysql_error();
|
||||
//echo "$fichierIn\t$idIn\t$enseigne\t$secteurNom\t$secteurLien\t$activiteNom\t$activiteLien\t$rs\t$adresse".EOL;
|
||||
}
|
||||
}
|
||||
die();
|
||||
/*
|
||||
foreach ($tabLignes as $i=>$ligne) {
|
||||
$ecrireLignePre=false;
|
||||
$typeLigne=substr($ligne, 0, 3)*1;
|
||||
$siren=$ref=$typeJuge=$dateJuge='';
|
||||
switch ($typeLigne) {
|
||||
case 100: // Structure Bodacc
|
||||
/*Identit� du vendeur Rubrique Siren acheteur Raison Sociale Adresse du fonds *
|
||||
$ligne100++;
|
||||
$siren = substr($ligne, 13, 9 ); // Siren de l'entreprise concern�e par l'an
|
||||
*/
|
||||
?>
|
@ -18,7 +18,7 @@ error_reporting(E_ALL ^ E_NOTICE);
|
||||
$dateJourFormat=substr(DATETIME,0,4).'-'.substr(DATETIME,4,2).'-'.substr(DATETIME,6,2);
|
||||
$db_name=$db_table='';
|
||||
$j=0;
|
||||
$dropBefore=false;
|
||||
$dropBefore=$utf8_decode=false;
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) die('Usage : '.basename($argv[0]). " [OPTION]... FICHIER
|
||||
@ -34,6 +34,7 @@ pour les options de formes courtes.
|
||||
-d=nom_bdd Nom de la base de données
|
||||
-t=nom_table Nom de la table
|
||||
-e Détruire la table si elle existe déjà
|
||||
-8 Conversion UTF8 vers ISO...
|
||||
|
||||
(*): Valeurs par défaut !
|
||||
");
|
||||
@ -45,6 +46,7 @@ pour les options de formes courtes.
|
||||
case 'd': $db_name=substr($argv[$i],3); break;
|
||||
case 't': $db_table=substr($argv[$i],3); break;
|
||||
case 'e': $dropBefore=true; break;
|
||||
case '8': $utf8_decode=true; break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !".EOL);
|
||||
}
|
||||
} else {
|
||||
@ -158,7 +160,12 @@ pour les options de formes courtes.
|
||||
$usage=$tabM[1];
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, array('NOM'=>$nom, 'PRENOM'=>$prenom, 'NUSAGE'=>$usage));
|
||||
} else*/
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
|
||||
if ($utf8_decode)
|
||||
$tabInsertTmp=array($champ[$i]=>utf8_decode($data[$i]));
|
||||
else
|
||||
$tabInsertTmp=array($champ[$i]=>$data[$i]);
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, $tabInsertTmp);
|
||||
//$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
|
||||
if (strlen($data[$i])>$tabTailles[$i])
|
||||
$tabTailles[$i]=strlen($data[$i]);
|
||||
}
|
||||
|
138
batch/loadDbf.php
Normal file
138
batch/loadDbf.php
Normal file
@ -0,0 +1,138 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
include_once(FWK_PATH.'common/curl.php');
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(FWK_PATH.'common/dbf_class.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$db_name=$db_table='';
|
||||
$j=0;
|
||||
$dropBefore=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] FICHIER
|
||||
Charge un fichier dbf.
|
||||
|
||||
Options :
|
||||
-d=nom_bdd Nom de la base de données
|
||||
-t=nom_table Nom de la table
|
||||
-e Détruire la table si elle existe déjà
|
||||
|
||||
(*): Valeurs par défaut !
|
||||
";
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $db_name=substr($argv[$i],3); break;
|
||||
case 't': $db_table=substr($argv[$i],3); break;
|
||||
case 'e': $dropBefore=true; break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !".EOL);
|
||||
}
|
||||
} else {
|
||||
$fichier_csv[$j]=$argv[$i];
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($db_name=='') die("Base de données non communiquée !".EOL);
|
||||
|
||||
for ($nbFichiers=0; isset($fichier_csv[$nbFichiers]); $nbFichiers++) {
|
||||
if ($db_table=='')
|
||||
$nom_table=str_replace('.csv', '', str_replace('.txt', '', basename($fichier_csv[$nbFichiers])));
|
||||
else
|
||||
$nom_table=$db_table;
|
||||
|
||||
$comment='Chargement de fichier CSV';
|
||||
|
||||
/*$fp=fopen($fichier_csv[$nbFichiers], 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Impossible d'ouvrir le fichier : ".$fichier_csv[$nbFichiers]." !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
||||
exit();
|
||||
}
|
||||
*/
|
||||
$nbLignes=0;
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $fichier_csv[$nbFichiers] ."...".EOL;
|
||||
|
||||
$dbf = @new dbf_class($fichier_csv[$nbFichiers]);
|
||||
$num_rec=$dbf->dbf_num_rec;
|
||||
$num_field=$dbf->dbf_num_field;
|
||||
die("$num_rec $num_field".EOL);
|
||||
for($i=0; $i<$num_rec; $i++) {
|
||||
$row = $dbf->getRow($i);
|
||||
for($j=0; $j<$num_field; $j++) {
|
||||
echo $row[$j].' ';
|
||||
}
|
||||
echo('<br>');
|
||||
die();
|
||||
}
|
||||
die();
|
||||
|
||||
while (($data = fgetcsv($fp, 3000, $separator)) !== FALSE) {
|
||||
$nbLignes++;
|
||||
|
||||
if ($nbLignes==1) {
|
||||
// L'entête contient la structure du fichier
|
||||
// On compte le nombre de colonnes du fichier
|
||||
$nbColonnes=count($data);
|
||||
$sql="CREATE TABLE IF NOT EXISTS `$nom_table` (";
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
$sql.='`'.$data[$i].'` LONGTEXT,';
|
||||
$tabTailles[$i]=0;
|
||||
$champ[$i]=$data[$i];
|
||||
}
|
||||
$sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule
|
||||
$sql.=") ENGINE = MYISAM COMMENT = '$comment'";
|
||||
if ($dropBefore)
|
||||
$iDb->query("DROP TABLE IF EXISTS `$nom_table`");
|
||||
if ($iDb->query($sql))
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la table $nom_table OK...".EOL;
|
||||
else {
|
||||
echo $iDb->getLastError().EOL;
|
||||
die(date ('Y/m/d - H:i:s')." - Impossible de créer la table $nom_table !".EOL."Requête SQL = $sql".EOL);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
$tabDataToInsert=array();
|
||||
|
||||
for($i=0; $i<$nbColonnes; $i++) {
|
||||
$tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i]));
|
||||
if (strlen($data[$i])>$tabTailles[$i])
|
||||
$tabTailles[$i]=strlen($data[$i]);
|
||||
}
|
||||
|
||||
//print_r($tabDataToInsert);
|
||||
$ret=$iDb->insert($nom_table, $tabDataToInsert);
|
||||
if ($ret!=1) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR à l'insertion de la ligne n°$i : ". implode(';', $data) ." !".EOL;
|
||||
}
|
||||
unset($tabDataToInsert);
|
||||
}
|
||||
fclose ($fp);
|
||||
|
||||
// On réduit la taille des colonnes au max de chaque champ
|
||||
for($i=0; $i<$nbColonnes; $i++)
|
||||
{
|
||||
//$tabTailles[$i]=strlen($data[$i]);
|
||||
if ($tabTailles[$i]<256) {
|
||||
$sql="ALTER TABLE `$nom_table` CHANGE `".$champ[$i]."` `".$champ[$i]."` VARCHAR(".$tabTailles[$i].") NULL DEFAULT NULL ";
|
||||
echo $sql;
|
||||
if ($iDb->query($sql))
|
||||
echo date ('Y/m/d - H:i:s')." - Taille du champ $i (". $champ[$i] .") passée à ". $tabTailles[$i] ."...".EOL;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - Impossible de modifier la taille du champ $i (". $champ[$i] .") à ". $tabTailles[$i] ." !".EOL;
|
||||
flush();
|
||||
}
|
||||
}
|
||||
echo 'Tailles max / champ:'.EOL;
|
||||
print_r($tabTailles);
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL;
|
||||
|
||||
?>
|
@ -9,7 +9,7 @@
|
||||
$heureDebut=NOW_FORMAT;
|
||||
$dateJour=TODAY;
|
||||
$dateJourFormat=TODAY_FORMAT;
|
||||
$dateMAJ=date('Ymt',mktime(0,0,0,date('m')-1,date('d'),date('Y')));
|
||||
$dateMAJ=date('Ymd',mktime(0,0,0,date('m')-1,1,date('Y')));
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||||
Chargement du/des fichier(s) DC en provenance de l'INSEE.
|
||||
@ -35,7 +35,7 @@ Options :
|
||||
case 'v': $modeDebug=true; break;
|
||||
case 'u': $majDirUniquement=true; break;
|
||||
case 'n': $pasMajDir=true; break;
|
||||
case 'm': $dateMAJ = date('Ymt',mktime(0,0,0,substr($argv[$i],5,2),1,substr($argv[$i],3,4))); break;
|
||||
case 'm': $dateMAJ = substr($argv[$i],3,6); break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
@ -55,6 +55,15 @@ Options :
|
||||
|
||||
$idFlux=substr($dateMAJ,0,6);
|
||||
|
||||
/** @todo Récupérer le fichier sur le site de l'INSEE :
|
||||
|
||||
$url='https://echanges.insee.fr/ihm/downloadListeFichiers';
|
||||
$user='49496793800056-brppc';
|
||||
$pass='r7z+2867';
|
||||
|
||||
**/
|
||||
|
||||
|
||||
if (!$majDirUniquement || $pasMajDir) {
|
||||
|
||||
for ($nbFichiers=0; isset($tabFichier[$nbFichiers]); $nbFichiers++)
|
||||
@ -69,6 +78,7 @@ if (!$majDirUniquement || $pasMajDir) {
|
||||
}
|
||||
//$idFlux=basename($nomFichier);
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier $nomFichier ($idFlux)...".EOL;
|
||||
//die();
|
||||
flush();
|
||||
$nbLignes=0;
|
||||
|
||||
@ -116,7 +126,7 @@ if (!$majDirUniquement || $pasMajDir) {
|
||||
);
|
||||
|
||||
$ret=$iDb->insert('insee_dc', $tabDataToInsert);
|
||||
if ($ret!=1 && $iDb->getLastErrorNum()<>1062) {
|
||||
if ($ret<1 && $iDb->getLastErrorNum()<>1062) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR à l'insertion de $nom $prenom !".EOL;
|
||||
echo date ('Y/m/d - H:i:s') . ' - Message SQL : '. $iDb->getLastError() . EOL;
|
||||
$nbErr++;
|
||||
@ -143,6 +153,20 @@ echo date ('Y/m/d - H:i:s') . " - Mise
|
||||
$iDb2=new WDB();
|
||||
$iDb3=new WDB();
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Création des tables temporaires...".EOL;
|
||||
if (!$iDb->query("DROP TABLE IF EXISTS tmp.tmpDir;"))
|
||||
die($iDb->getLastError());
|
||||
|
||||
if (!$iDb->query("CREATE TABLE IF NOT EXISTS tmp.tmpDir (
|
||||
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
|
||||
dateEven DATE NOT NULL,
|
||||
src ENUM('igfp','procol','dc') NOT NULL,
|
||||
srcId BIGINT(20) UNSIGNED NOT NULL,
|
||||
PRIMARY KEY (siren,src)
|
||||
) ENGINE=MEMORY;"))
|
||||
die($iDb->getLastError());
|
||||
|
||||
|
||||
for ($nivCinf=15;$nivCinf>10;$nivCinf=$nivCinf-4) {
|
||||
|
||||
if ($nivCinf==11)
|
||||
@ -150,13 +174,33 @@ for ($nivCinf=15;$nivCinf>10;$nivCinf=$nivCinf-4) {
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s')." - Recherche des dirigeants en Procol à mettre à jour...".EOL;
|
||||
|
||||
if ($nivCinf==11) $strNivCinf=" (typeEven LIKE '%1600%' OR typeEven LIKE '%1601%' OR typeEven LIKE '%1610%' OR typeEven LIKE '%1611%') ";
|
||||
else $strNivCinf=" Rubrique='procol' ";
|
||||
if ($nivCinf==11) {
|
||||
$strNivCinf=" (typeEven LIKE '%1600%' OR typeEven LIKE '%1601%' OR typeEven LIKE '%1610%' OR typeEven LIKE '%1611%') ";
|
||||
$nivCinfEnum='igfp';
|
||||
} else {
|
||||
$strNivCinf=" Rubrique='procol' ";
|
||||
$nivCinfEnum='procol';
|
||||
}
|
||||
|
||||
$nbDirDc=$iDb->select('rncs_dirigeants', 'id, siren, civilite, actif, fonction_lib, nom, prenom, naissance_nom, naissance_date, naissance_lieu',
|
||||
"siren IN (SELECT siren FROM bodacc_detail WHERE siren>1000 AND $strNivCinf )",
|
||||
if (!$iDb->query("INSERT IGNORE INTO tmp.tmpDir
|
||||
SELECT siren, IF(dateJugement<>'0000-00-00',IF(dateJugement<=NOW(),IF(dateJugement>'1980-01-01',dateJugement,Bodacc_Date_Parution),Bodacc_Date_Parution),Bodacc_Date_Parution) AS dateEven, '$nivCinfEnum' AS src, id AS srcId FROM jo.bodacc_detail WHERE siren>1000 AND $strNivCinf;"))
|
||||
die($iDb->getLastError());
|
||||
echo date ('Y/m/d - H:i:s')." - Données '$nivCinfEnum' temporaires chargées...".EOL;
|
||||
|
||||
// On ne traite que les dirigeants actifs
|
||||
$nbDirDc=$iDb->select('rncs_dirigeants d, rncs_entrep e', 'd.id, d.siren, d.civilite, d.actif, d.fonction_lib, d.nom, d.prenom, d.naissance_nom, d.naissance_date, d.naissance_lieu',
|
||||
"d.siren IN (SELECT DISTINCT siren FROM tmp.tmpDir WHERE siren>1000 AND src='$nivCinfEnum') AND d.actif=1 AND d.siren=e.siren AND e.actif=1",
|
||||
false, MYSQL_ASSOC, true);
|
||||
|
||||
// Traiter aussi les PP du RNCS
|
||||
/*
|
||||
SELECT *
|
||||
FROM `rncs_entrep`
|
||||
WHERE siren >1000
|
||||
AND actif =1
|
||||
AND nom <> ''
|
||||
AND prenom <> ''
|
||||
AND dateNaiss <> '0000-00-00'
|
||||
*/
|
||||
if ($nivCinf==11)
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbDirDc dirigeants en IG/FP à vérifier.".EOL;
|
||||
else
|
||||
@ -173,10 +217,10 @@ for ($nivCinf=15;$nivCinf>10;$nivCinf=$nivCinf-4) {
|
||||
$naissDateIGFP=trim($tabDirDC['naissance_date']);
|
||||
$naissLieuIGFP=strtoupper($tabDirDC['naissance_lieu']);
|
||||
|
||||
$tabTmp=$iDb3->select('bodacc_detail', 'id, dateParution', "siren>1000 AND siren=$sirenIGFP AND $strNivCinf ORDER BY dateParution DESC", false, MYSQL_ASSOC);
|
||||
$tabTmp=$iDb3->select('bodacc_detail', 'id, Bodacc_Date_Parution', "siren>1000 AND siren=$sirenIGFP AND $strNivCinf ORDER BY dateParution DESC", false, MYSQL_ASSOC);
|
||||
$tabTmp=$tabTmp[0];
|
||||
$idAnn=$tabTmp['id'];
|
||||
$dateParution=$tabTmp['dateParution'];
|
||||
$dateParution=$tabTmp['Bodacc_Date_Parution'];
|
||||
|
||||
if ($modeDebug && $nivCinf==11) echo date ('Y/m/d - H:i:s')." - $numDir/$nbDirDc IG/FP $sirenIGFP : $nomIGFP $prenomIGFP né(e) le $naissDateIGFP à $naissLieuIGFP".EOL;
|
||||
elseif ($modeDebug) echo date ('Y/m/d - H:i:s')." - $numDir/$nbDirDc Procol $sirenIGFP : $nomIGFP $prenomIGFP né(e) le $naissDateIGFP à $naissLieuIGFP".EOL;
|
||||
@ -199,9 +243,10 @@ for ($nivCinf=15;$nivCinf>10;$nivCinf=$nivCinf-4) {
|
||||
// On met à jour l'indicateur
|
||||
if ($idDir==$idDirIGFP) $cinf=$nivCinf;
|
||||
else $cinf=$nivCinf+1;
|
||||
if ($modeDebug && $nivCinf==11) echo date ('Y/m/d - H:i:s')." - $numDir/$nbDirDc IG/FP $sirenIGFP : Dirigeant n°$idDir trouvé $siren, $nom $prenom ($levPrenom) né(e) le $naissDate à $naissLieu ($levLieu)".EOL;
|
||||
elseif ($modeDebug) echo date ('Y/m/d - H:i:s')." - $numDir/$nbDirDc Procol $sirenIGFP : Dirigeant n°$idDir trouvé $siren, $nom $prenom ($levPrenom) né(e) le $naissDate à $naissLieu ($levLieu)".EOL;
|
||||
if($iDb2->update('rncs_dirigeants', array('cinf'=>$cinf/*, 'idInf'=>$idAnn*/), "id=$idDir"))
|
||||
if ($nivCinf==11) echo date ('Y/m/d - H:i:s')." - $numDir/$nbDirDc IG/FP $sirenIGFP : Dirigeant n°$idDir trouvé $siren, $nom $prenom ($levPrenom) né(e) le $naissDate à $naissLieu ($levLieu)".EOL;
|
||||
else echo date ('Y/m/d - H:i:s')." - $numDir/$nbDirDc Procol $sirenIGFP : Dirigeant n°$idDir trouvé $siren, $nom $prenom ($levPrenom) né(e) le $naissDate à $naissLieu ($levLieu)".EOL;
|
||||
//if($iDb2->update('rncs_dirigeants', array('cinf'=>$cinf, 'idInf'=>$idAnn), "id=$idDir"))
|
||||
if($iDb2->update('rncs_dirigeants', array('cinf'=>$cinf), "id=$idDir"))
|
||||
$nbUpdate++;
|
||||
else
|
||||
$nbUpdateErr++;
|
||||
@ -231,7 +276,7 @@ for ($nivCinf=15;$nivCinf>10;$nivCinf=$nivCinf-4) {
|
||||
$strIdFlux=" AND i.moisMaj='$idFlux' ";
|
||||
$strIdFlux='';
|
||||
|
||||
$nbDirDc=$iDb->select('insee_dc i, rncs_dirigeants d', 'd.id, d.siren, d.civilite, d.actif, d.fonction_lib, i.sexe, d.nom AS nomDir, d.naissance_nom AS nomNaissDir, d.prenom AS prenomDir, i.prenom AS prenomDC, d.naissance_date, i.comInsee, d.naissance_lieu, i.comLib, i.pays, i.moisMaj', "i.dateNaiss = d.naissance_date AND (i.nom = d.nom OR d.naissance_nom = i.nom) $strIdFlux", false, MYSQL_ASSOC, true);
|
||||
$nbDirDc=$iDb->select('insee_dc i, rncs_dirigeants d, rncs_entrep e', 'd.id, d.siren, d.civilite, d.actif, d.fonction_lib, i.sexe, d.nom AS nomDir, d.naissance_nom AS nomNaissDir, d.prenom AS prenomDir, i.prenom AS prenomDC, d.naissance_date, i.comInsee, d.naissance_lieu, i.comLib, i.pays, i.moisMaj', "i.dateNaiss=d.naissance_date AND (i.nom=d.nom OR d.naissance_nom=i.nom) AND d.actif=1 AND d.siren=e.siren AND e.actif=1 $strIdFlux", false, MYSQL_ASSOC, true);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Il y a $nbDirDc dirigeants DC à vérifier/mettre à jour...".EOL;
|
||||
$nbUpdate=$nbUpdateErr=$nbUpdateNo=0;
|
||||
|
@ -8,8 +8,14 @@ include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$dirOnly=$listOnly=false;
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option> <fichier>
|
||||
Chargement d'un fichier de mise sous surveillance d'un fichier Client (pour l'instant uniquement en annule/remplace).
|
||||
|
||||
Options :
|
||||
-l Liste des dossiers/clients traités
|
||||
-o=XXX Limiter au dossier/client XXX
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
@ -18,6 +24,12 @@ if ($_SERVER['argc']>1)
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'o':
|
||||
$dirOnly=substr($argv[$i],3);
|
||||
break;
|
||||
case 'l':
|
||||
$listOnly=true;
|
||||
break;
|
||||
case '-':
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !".EOL);
|
||||
@ -40,12 +52,22 @@ $dh = opendir($ftpDir);
|
||||
while (false !== ($filename = readdir($dh))) {
|
||||
/** On scan chaque répertoire FTP client à la recherche d'un fichier send.fmt
|
||||
**/
|
||||
if ($filename<>'.' && $filename<>'..' && is_dir($ftpDir.$filename) && file_exists($ftpDir.$filename."/send.fmt"))
|
||||
if ($filename<>'.' && $filename<>'..' && is_dir($ftpDir.$filename) && ( file_exists($ftpDir.$filename."/send.fmt") || file_exists($ftpDir.$filename."/send1.fmt") ||
|
||||
file_exists($ftpDir.$filename."/send2.fmt") || file_exists($ftpDir.$filename."/send3.fmt") ||
|
||||
file_exists($ftpDir.$filename."/send4.fmt") || file_exists($ftpDir.$filename."/send5.fmt") ||
|
||||
file_exists($ftpDir.$filename."/send6.fmt") || file_exists($ftpDir.$filename."/send7.fmt") ||
|
||||
file_exists($ftpDir.$filename."/send8.fmt") || file_exists($ftpDir.$filename."/send9.fmt") ))
|
||||
{
|
||||
if ($dirOnly && strpos($filename,$dirOnly)===false)
|
||||
continue;
|
||||
else
|
||||
$tabDir[] = $filename;
|
||||
}
|
||||
}
|
||||
sort($tabDir);
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Liste des répertoires avec un fichier send.fmt : ".implode(', ',$tabDir).EOL;
|
||||
if ($listOnly) die();
|
||||
|
||||
foreach ($tabDir as $nbDir=>$dirToCheck) /** On scan chaque répertoire send des FTP clients à la recherche de nouveaux fichiers **/
|
||||
{
|
||||
@ -56,27 +78,39 @@ foreach ($tabDir as $nbDir=>$dirToCheck) /** On scan chaque r
|
||||
$tabFichier[] = $filename;
|
||||
echo date ('Y/m/d - H:i:s')." - Le fichier $filename du client $dirToCheck est en cours de chargement !".EOL;
|
||||
}
|
||||
//echo $dh.EOL;
|
||||
}
|
||||
sort($tabFichier);
|
||||
|
||||
if (count($tabFichier)>0) {
|
||||
/** On lit le fichier send.fmt afin de savoir le traitement courant
|
||||
**/
|
||||
$tabFmt=parse_ini_file($ftpDir.$dirToCheck."/send.fmt", true);
|
||||
for( $iIni=0; $iIni<10; $iIni++) {
|
||||
if ($iIni==0) $strIni='';
|
||||
else $strIni=$iIni;
|
||||
if (!file_exists($ftpDir.$dirToCheck."/send$strIni.fmt"))
|
||||
// Pas de fichier Ini n° $iIni
|
||||
continue;
|
||||
|
||||
$tabFmt=parse_ini_file($ftpDir.$dirToCheck."/send$strIni.fmt", true);
|
||||
echo "Fichier INi lu :'send$strIni.fmt'".EOL;
|
||||
print_r($tabFmt);
|
||||
//die();
|
||||
if (!isset($tabFmt['Infos']) || !is_array($tabFmt['Infos']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La section [Infos] est incorrecte pour le client $dirToCheck !".EOL);
|
||||
$tabInfos=$tabFmt['Infos'];
|
||||
|
||||
if (!isset($tabInfos['idClient']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La variable 'idClient' n'est pas définie pour le client $dirToCheck !".EOL);
|
||||
$idClientDef='';
|
||||
if (isset($tabInfos['idClient']))
|
||||
//die(date ('Y/m/d - H:i:s')." - ERREUR : La variable 'idClient' n'est pas définie pour le client $dirToCheck !".EOL);
|
||||
$idClientDef=$tabInfos['idClient'];
|
||||
|
||||
if (!isset($tabInfos['format']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La variable 'format' n'est pas définie pour le client $dirToCheck !".EOL);
|
||||
$format=$tabInfos['format'];
|
||||
if (strtolower($format)=='csv') {
|
||||
if (strtolower($format)=='csv')
|
||||
$format='csv';
|
||||
die('Format csv non géré !'.EOL);
|
||||
} elseif (strtolower($format)=='plat')
|
||||
elseif (strtolower($format)=='plat')
|
||||
$format='plat';
|
||||
elseif (strtolower($format)=='sdin')
|
||||
$format='sdin';
|
||||
@ -121,10 +155,26 @@ foreach ($tabDir as $nbDir=>$dirToCheck) /** On scan chaque r
|
||||
if (isset($tabInfos['mailClient']) && $tabInfos['mailClient']<>'')
|
||||
$mailClient=$tabInfos['mailClient'];
|
||||
|
||||
$racineFichier=false;
|
||||
if (isset($tabInfos['racineFichier']) && $tabInfos['racineFichier']<>'')
|
||||
$racineFichier=$tabInfos['racineFichier'];
|
||||
|
||||
$concatenerRef=false;
|
||||
if (isset($tabInfos['concatenerRef']) && ($tabInfos['concatenerRef']==true || $tabInfos['concatenerRef']*1==1))
|
||||
$concatenerRef=true;
|
||||
|
||||
// Liste des zones
|
||||
$tabZones=$tabFmt['Zones'];
|
||||
|
||||
foreach ($tabFichier as $numFic=>$fichier_csv) {
|
||||
|
||||
if ($racineFichier) {
|
||||
if (!preg_match('/'.$racineFichier.'.*/Ui', $fichier_csv)) {
|
||||
echo date ('Y/m/d - H:i:s')." - INFO : Fichier '$fichier_csv' n'ayant pas la racine '$racineFichier' !".EOL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$fp=fopen($ftpDir.$dirToCheck."/send/$fichier_csv", 'r');
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible d'ouvrir le fichier : ".$fichier_csv." !".EOL;
|
||||
@ -149,9 +199,10 @@ foreach ($tabDir as $nbDir=>$dirToCheck) /** On scan chaque r
|
||||
|
||||
$numLigne++;
|
||||
//$ligne, $format='sdin', $tabZones=array(), $idClientDef='') {
|
||||
$data=getLigneFormat($line, $format, $tabZones, $idClientDef, $dateFlux);
|
||||
$data=@getLigneFormat($line, $format, $tabZones, $idClientDef, $dateFlux);
|
||||
|
||||
//print_r($data); die();
|
||||
if (!isset($tabInfos['idClient']) && $idClientDef=='')
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La variable 'idClient' n'est pas définie pour le client $dirToCheck !".EOL);
|
||||
|
||||
$data['indTrt'] = 1;
|
||||
$idClient=$data['idClient'];
|
||||
@ -180,6 +231,9 @@ foreach ($tabDir as $nbDir=>$dirToCheck) /** On scan chaque r
|
||||
if (trim($data['siren'])=='') @$erreurSiren['vide']++;
|
||||
elseif (trim($data['siren'])*1==0) @$erreurSiren['zero']++;
|
||||
}
|
||||
|
||||
if ($concatenerRef) $data['ref']=$data['ref'].'-'.$data['refInfos'];
|
||||
|
||||
/** Ajout ou mise à jour de la référence **/
|
||||
$res=$iDbSurv->select('surveillances_listes', 'count(*)', "idClient='$idClient' AND ref='".$data['ref']."'");
|
||||
if (@$res[0][0] > 0) {
|
||||
@ -220,16 +274,19 @@ foreach ($tabDir as $nbDir=>$dirToCheck) /** On scan chaque r
|
||||
$mailInfo.="Attention, $nbReact ligne(s) ont été réactivées !".EOL;
|
||||
}
|
||||
}
|
||||
if ($mailClient) {
|
||||
$mailInfo.="$nbSirenValide SIREN sont valides et $nbSirenErreur invalides dont :".EOL;
|
||||
$mailInfo.=EOL."$nbSirenValide SIREN sont valides et $nbSirenErreur invalides dont :".EOL;
|
||||
$mailInfo.=print_r($erreurSiren,true).EOL;
|
||||
//
|
||||
|
||||
if ($mailClient)
|
||||
sendMail('production@scores-decisions.com', $mailClient, "Scores & Décisions - Chargement du stock en surveillance", "Résumé du traitement de chargement du stock pour $idClient,".EOL.EOL."Fichier de type $chargement ($frequence) horodatage $dateFlux contenant $numLigne ligne(s) :".EOL.$mailInfo);
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Scores & Décisions - Chargement du stock en surveillance", "Résumé du traitement de chargement du stock pour $idClient,".EOL.EOL."Fichier de type $chargement ($frequence) horodatage $dateFlux contenant $numLigne ligne(s) :".EOL.$mailInfo);
|
||||
}
|
||||
else
|
||||
sendMail('production@scores-decisions.com', 'suivi@scores-decisions.com', "Scores & Décisions - Chargement du stock en surveillance", "Résumé du traitement de chargement du stock pour $idClient,".EOL.EOL."Fichier de type $chargement ($frequence) horodatage $dateFlux contenant $numLigne ligne(s) :".EOL.$mailInfo);
|
||||
|
||||
if (!move($ftpDir.$dirToCheck."/send/$fichier_csv", "/home/data/clients/$dirToCheck/$fichier_csv"))
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fichier_csv dans client/$dirToCheck/ impossible !".EOL;
|
||||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fichier_csv dans clients/$dirToCheck/ impossible !".EOL;
|
||||
}
|
||||
} // Fin du foreach
|
||||
} else
|
||||
echo date ('Y/m/d - H:i:s')." - Aucun fichier a intégrer pour le client $dirToCheck.".EOL;
|
||||
}
|
||||
@ -238,6 +295,7 @@ echo date ('Y/m/d - H:i:s') . " - Fin du traitement.".EOL;
|
||||
|
||||
function getLigneFormat($line, $format='sdin', $tabZones=array(), $idClientDef='', $dateFluxDef='') {
|
||||
$data=array();
|
||||
global $idClientDef;
|
||||
|
||||
if ($format=='sdin') {
|
||||
$data['idClient'] = trim(substr($line, 27, 36)); // Identifiant Client
|
||||
@ -300,6 +358,61 @@ function getLigneFormat($line, $format='sdin', $tabZones=array(), $idClientDef='
|
||||
elseif ($dateFluxDef=='')
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'dateFlux' est incorrecte !".EOL);
|
||||
else $data['dateFlux']=$dateFluxDef;
|
||||
|
||||
} elseif ($format=='csv') {
|
||||
|
||||
$data['idClient']=trim($idClientDef);
|
||||
$tabLine=explode(',', $line);
|
||||
|
||||
// Zone idClient
|
||||
if (isset($tabZones['idClient']) && preg_match('/^z(\d*)$/', trim($tabZones['idClient']), $z))
|
||||
$idClientDef=$data['idClient']=trim($tabLine[$z[1]-1]);
|
||||
// elseif (!isset($tabZones['idClient']) && $idClientDef=='')
|
||||
// die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'idClient' est incorrecte !".EOL);
|
||||
|
||||
// Zone siren
|
||||
if (preg_match('/^z(\d*)$/', trim($tabZones['siren']), $z))
|
||||
$data['siren'] = trim($tabLine[$z[1]-1]);
|
||||
else
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'siren' est incorrecte !".EOL);
|
||||
|
||||
// Zone ref
|
||||
if (preg_match('/^z(\d*)$/', trim($tabZones['ref']), $z))
|
||||
$data['ref'] = trim($tabLine[$z[1]-1]);
|
||||
else
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'ref' est incorrecte !".EOL);
|
||||
|
||||
// Zone refInfos
|
||||
if (isset($tabZones['refInfos']) && preg_match('/^z(\d*)$/', trim($tabZones['refInfos']), $z))
|
||||
$data['refInfos'] = trim($tabLine[$z[1]-1]);
|
||||
elseif (isset($tabZones['refInfos']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'refInfos' est incorrecte !".EOL);
|
||||
|
||||
// Zone rs
|
||||
if (isset($tabZones['rs']) && preg_match('/^z(\d*)$/', trim($tabZones['rs']), $z))
|
||||
$data['rs'] = trim($tabLine[$z[1]-1]);
|
||||
elseif (isset($tabZones['rs']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'rs' est incorrecte !".EOL);
|
||||
|
||||
// Zone cp
|
||||
if (isset($tabZones['cp']) && preg_match('/^z(\d*)$/', trim($tabZones['cp']), $z))
|
||||
$data['cp'] = trim($tabLine[$z[1]-1]);
|
||||
elseif (isset($tabZones['cp']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'cp' est incorrecte !".EOL);
|
||||
|
||||
// Zone ville
|
||||
if (isset($tabZones['ville']) && preg_match('/^z(\d*)$/', trim($tabZones['ville']), $z))
|
||||
$data['ville'] = trim($tabLine[$z[1]-1]);
|
||||
elseif (isset($tabZones['ville']))
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'ville' est incorrecte !".EOL);
|
||||
|
||||
// Zone dateFlux
|
||||
if ($dateFluxDef=='' && preg_match('/^z(\d*)$/', trim($tabZones['dateFlux']), $z))
|
||||
$data['dateFlux']= trim($tabLine[$z[1]-1]);
|
||||
elseif ($dateFluxDef=='')
|
||||
die(date ('Y/m/d - H:i:s')." - ERREUR : La zone 'dateFlux' est incorrecte !".EOL);
|
||||
else $data['dateFlux']=$dateFluxDef;
|
||||
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
132
batch/majAbreviations.php
Normal file
132
batch/majAbreviations.php
Normal file
@ -0,0 +1,132 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
|
||||
function exporte($txt, $lon=false, $sep="\t") {
|
||||
if ($lon===false) $lon=strlen($txt);
|
||||
$txt=strtr(trim($txt),array('''=>"'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
|
||||
|
||||
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
|
||||
|
||||
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
|
||||
}
|
||||
|
||||
include_once(FWK_PATH.'common/chiffres.php');
|
||||
include_once(FWK_PATH.'common/dates.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTel.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMMap.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMScores.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMRnvp.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$iInsee=new MInsee();
|
||||
$iDbR=new WDb('historiques');
|
||||
$iDbW=new WDb('villes');
|
||||
$iRnvp=new MRnvp();
|
||||
$k=0;
|
||||
$tabAbbr=array('A','DU','D','DE','DES','L','LE','LES','LA','AU','AUX','UN','UNE','RUE','ST','STE','SUR','SOUS','MAIS','OU','ET','DONC','OR','NI','CAR');
|
||||
|
||||
//$ret=$iDbR->select('fichier_france_entiere_201409_D_1', 'SIREN, L1_NOMEN, NOMEN_LONG', "SIEGE=1 AND LENGTH(NOMEN_LONG)>38 /*AND SIREN<300000000*/", false, MYSQL_ASSOC, true);
|
||||
$ret=$iDbR->select('insee.insee_even', 'insSIREN AS SIREN, insL1_NOMEN AS L1_NOMEN, insNOMEN_LONG AS NOMEN_LONG', "insSIEGE=1 AND LENGTH(insNOMEN_LONG)>38 AND idFlux>='2014-10-01'", false, MYSQL_ASSOC, true);
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $ret raisons sociales à tester...".EOL;
|
||||
$tDeb=microtime(1);
|
||||
while($ligne=$iDbR->fetch(MYSQL_ASSOC)) {
|
||||
$k++;
|
||||
$siren=$ligne['SIREN'];
|
||||
$nomLongs=$ligne['NOMEN_LONG'];
|
||||
$nomCourt=$ligne['L1_NOMEN'];
|
||||
// On ignore les RS juste tronquées
|
||||
if (substr($nomLongs,0,38)==$nomCourt) continue;
|
||||
|
||||
//$nomCourt=preg_replace('/[^A-Z0-9%\'\"\-&\*\/\s]/','',trim(strtoupper($nomLong)));
|
||||
|
||||
$tabMotsCourt=split("[^[:alpha:]]+", $nomCourt);
|
||||
$tabMotsCourt=array_diff($tabMotsCourt, $tabAbbr);
|
||||
$tabMotsLongs=split("[^[:alpha:]]+", $nomLongs);
|
||||
$tabMotsLongs=array_diff($tabMotsLongs, $tabAbbr);
|
||||
|
||||
echo "$k/$ret - $siren $nomLongs ==> $nomCourt".EOL;
|
||||
//print_r($tabMotsLongs);
|
||||
foreach($tabMotsCourt as $iC=>$motC) {
|
||||
if (!isset($tabMotsCourt[$iC+1])) break; // Le dernier mot peut être tronqué alors on ignore !
|
||||
$trouve=0;
|
||||
$lenC=strlen($motC);
|
||||
if ($lenC<3) continue;
|
||||
echo "Mot Court : '$motC'";
|
||||
$tabInserts=array();
|
||||
foreach ($tabMotsLongs as $iL=>$motL) {
|
||||
$lenL=strlen($motL);
|
||||
if ($lenL<=3) continue;
|
||||
if ($iL>=$iC && $motC<>$motL && $lenL>$lenC && (substr($motC,0,$lenC)==substr($motL,0,$lenC) || substr($motC,0,6)==substr($motL,0,6))) {
|
||||
$trouve++;
|
||||
echo "= Mot Long : '$motL'".EOL;
|
||||
$tabInserts[]=array('abrCode'=>$motC,
|
||||
'abrLib'=>$motL,
|
||||
'abrType'=>'N',
|
||||
'abrOfficiel'=>0,
|
||||
'siren'=>$siren,
|
||||
'nomLong'=>$nomLongs,
|
||||
'nomCourt'=>$nomCourt,
|
||||
'dateInsert'=>date('YmdHis'),
|
||||
);
|
||||
}
|
||||
}
|
||||
if ($trouve==0) echo EOL;
|
||||
elseif ($trouve==1) {
|
||||
foreach ($tabInserts as $tabInsert) {
|
||||
if (!$iDbW->insert('tabAbreviations', $tabInsert, false)) {
|
||||
$abrCode2=addslashes($motC);
|
||||
$abrLib2 =addslashes($motL);
|
||||
$ret2=$iDbW->select('tabAbreviations', 'nbOcc', "abrCode='$abrCode2' AND abrLib='$abrLib2'", false);
|
||||
$tabInsert['nbOcc']=@$ret2[0]['nbOcc']*1+1;
|
||||
unset($tabInsert['dateInsert']);
|
||||
$iDbW->update('tabAbreviations', $tabInsert, "abrCode='$abrCode2' AND abrLib='$abrLib2'", false);
|
||||
}
|
||||
echo mysql_error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
continue;
|
||||
|
||||
$codeCommune=$ligne['ADR_DEP'].$ligne['ADR_COM'];
|
||||
$adrTypVoie=$ligne['ADR_TYPVOIE'];
|
||||
$adrLibVoie=$ligne['ADR_LIBVOIE'];
|
||||
$codeVoieI=$ligne['CODEVOIE'];
|
||||
// / 4271 1
|
||||
$libCom=$ligne['ADR_LIBCOM'];
|
||||
echo date ('Y/m/d - H:i:s') . " - $siren $nic\t$codeCommune\t$libCom\t$adrTypVoie\t$adrLibVoie\t$codeVoieI=";
|
||||
$tRDeb=microtime(1);
|
||||
$codeVoieC=$iInsee->getCodeVoieRivoli($codeCommune, $adrTypVoie, $adrLibVoie);
|
||||
echo $codeVoieC." ?\t";
|
||||
|
||||
$tNDeb=microtime(1);
|
||||
$dureeR+=$tNDeb-$tRDeb;
|
||||
|
||||
$tabAdrNorm=$iRnvp->normaliseAdresse($ligne['insL1_NOMEN'], $ligne['insL2_COMP'], $ligne['insL3_CADR'], $ligne['insL4_VOIE'], $ligne['insL5_DISP'], $ligne['insL6_POST'], $ligne['insL7_ETRG'], 38, false);
|
||||
$dureeN+=microtime(1)-$tNDeb;
|
||||
//print_r($tabAdrNorm);
|
||||
echo @$tabAdrNorm['HexaViaMat'].EOL;
|
||||
}
|
||||
$tFin=microtime(1);
|
||||
echo EOL."Durée Rivoli .......... =".round($dureeR,3).' secondes'.EOL;
|
||||
echo EOL."Durée Normalisation ... =".round($dureeN,3).' secondes'.EOL;
|
||||
echo EOL."Durée TOTALE .......... =".round($tFin-$tDeb,3).' secondes'.EOL;
|
||||
// print_r($iInsee->getIdentiteEntreprise(800046823,12));
|
||||
die();
|
||||
|
||||
|
||||
?>
|
@ -95,6 +95,4 @@ foreach($tabSiren as $i=>$siren) {
|
||||
|
||||
die();
|
||||
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des informations Greffes', $message);
|
||||
die();
|
||||
?>
|
2806
batch/majInseeSyracuse.php
Normal file
2806
batch/majInseeSyracuse.php
Normal file
File diff suppressed because it is too large
Load Diff
346
batch/majIntervenants.php
Normal file
346
batch/majIntervenants.php
Normal file
@ -0,0 +1,346 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
/*
|
||||
$raisonSociale="SCORES ET DECISIONS";
|
||||
$raisonSocialeI="SCORES & DECISIONS";
|
||||
|
||||
$tabMots=preg_split('/ +/', $raisonSociale);
|
||||
$tabMotsI=preg_split('/ +/', $raisonSocialeI);
|
||||
|
||||
$lev=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI));
|
||||
$len =strlen($raisonSociale);
|
||||
$delT=$lev/$len;
|
||||
|
||||
print_r(array_diff($tabMots,$tabMotsI));
|
||||
|
||||
die($delT);*/
|
||||
|
||||
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');
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Récupère en FTP les annonces BODACC A, B et C depuis le serveur des JO.
|
||||
|
||||
Options :
|
||||
-t:NOMFICHIER.TLS Nom du fichier local à ré-intégrer directement
|
||||
(prévoir l'UPDATE des annonces BODACC déjà en base lorsque nous serons en PROD)
|
||||
-j Ne se connecte pas au FTP des JO
|
||||
-A -B -C Chargement des annonces limités au BODACC A, B ou C
|
||||
".
|
||||
// -n:XXX Numéro du Bodacc
|
||||
// -d:JJ/MM/AAAA Rechargement des annonces BODACC depuis cette date
|
||||
// -f:JJ/MM/AAAA Rechargement des annonces BODACC jusqu'à cette date
|
||||
" -l Derniers BODACC non intégrés uniquement (*)
|
||||
-m Force la date d'insertion à celle de la récupération des fichiers Bodacc (cas d'un rechargement complet)
|
||||
-r (inopérant) Rechargement des annonces déjà en base
|
||||
-e EFFACEMENT DE TOUTES LES ANNONCES correspondantes déjà en base (et non mise à jour)
|
||||
-n Continuer au fichier suivant en cas d'erreur
|
||||
-s Ignorer la validation du Schéma XML
|
||||
-u Ne pas dézipper l'archive XML (en cas de XML incorrect, erreur du Bodacc)
|
||||
-w Mettre à jour les SIREN des Associations avec Waldec non sirenées
|
||||
-p Mettre à jour les SIREN des Marchés Publics non sirenées
|
||||
-d Retraitement à posteriori des codes évènements du Bodacc
|
||||
-i Ne pas poser de questions interactives.
|
||||
-v Mode verbeux
|
||||
|
||||
(*) Option par défaut si aucun argument n'est passé.
|
||||
";
|
||||
// ==> ATTENTION : faire cette opération en connaissance de cause car les liens entres annonces seront perdus !!!
|
||||
|
||||
$lastJO=$dateDebut=$dateFin=$dateDeb=$fichierTLS=$numBodaccIN=false;
|
||||
$tabBodaccF=array(); // Tableau des Bodacc à recharger
|
||||
$update=false; // Par défaut, si une annonce est déjà en base, on ne la met pas à jour !!!
|
||||
$erase=false; // Par déaut, on n'efface pas les annonces
|
||||
$ftpStep=true; // Par défaut, on se connecte au FTP des JO
|
||||
$forceDateInsertABodacc=false; // Par défaut, la date d'insertion des annonces n'est pas calée sur celle des fichiers Bodacc (en cas de réinitilaisation)
|
||||
$forceContinue=false; // Par défaut, on arrête au fichier courant en cas d'erreur
|
||||
$validateSchema=true; // Par défaut, on Valide le Schéma XML
|
||||
$unTaz=true; // Par défaut, on dézippe l'archive XML, sinon, on prend le .xml local (en cas de XML incorrect)
|
||||
$strMailInfo=''; // Coprs du mail d'information
|
||||
$copieWaldec=false; // Par défaut, on ne recopie pas les SIREN des Associations avec Waldec non sirenées
|
||||
$copieSirenBoamp=false; // Par défaut, on ne recopie pas les SIREN des LOTS BOAMP
|
||||
$doMajBodacc=false; // Par défaut, on ne retraite pas les annonces BODACC sauf si Bodacc chargé
|
||||
$noQuestion=false; // Par défaut, le script peut poser des questions interactives !
|
||||
$modeDebug=false; // Par défaut, ne pas être trop verbeux
|
||||
$nbInsertLots=$nbInsertAvis=0; // Nombre de lots et avis insérés BOAMP + MAPA
|
||||
$nbMtRecup=0; // Nombre de lots avec récupération/retraitement du montant
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $lastJO=true; // Fonctionnement normal du script, càd : on charge les derniers BODACC non encore intégrés
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'A':
|
||||
case 'a':
|
||||
$tabBodaccF[]='A';
|
||||
break;
|
||||
case 'B':
|
||||
case 'b':
|
||||
$tabBodaccF[]='B';
|
||||
break;
|
||||
case 'C':
|
||||
case 'c':
|
||||
$tabBodaccF[]='C';
|
||||
break;
|
||||
/*case 'd':
|
||||
$dateDebut=substr($argv[$i],3,10);
|
||||
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
|
||||
break;*/
|
||||
case 'e':
|
||||
$erase=true;
|
||||
break;
|
||||
case 'w':
|
||||
$copieWaldec=true;
|
||||
break;
|
||||
case 'p':
|
||||
$copieSirenBoamp=true;
|
||||
break;
|
||||
case 'd':
|
||||
$doMajBodacc=true;
|
||||
break;
|
||||
/*case 'f':
|
||||
$dateFin=substr($argv[$i],3,10);
|
||||
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
|
||||
break;*/
|
||||
case 'j':
|
||||
$ftpStep=false;
|
||||
break;
|
||||
case 'l':
|
||||
$lastJO=true;
|
||||
break;
|
||||
case 'm':
|
||||
$forceDateInsertABodacc=true;
|
||||
break;
|
||||
case 'n':
|
||||
//die('$forceContinue');
|
||||
$forceContinue=true;
|
||||
break;
|
||||
case 'r':
|
||||
$update=true;
|
||||
break;
|
||||
case 't':
|
||||
$fichierTLS=trim(substr($argv[$i],3));
|
||||
break;
|
||||
/*case 'n':
|
||||
$numBodaccIN=trim(substr($argv[$i],3));
|
||||
break;*/
|
||||
case 's':
|
||||
$validateSchema=false;
|
||||
break;
|
||||
case 'u':
|
||||
$unTaz=false;
|
||||
break;
|
||||
case 'i':
|
||||
$noQuestion=true;
|
||||
break;
|
||||
case 'v':
|
||||
$modeDebug=true;
|
||||
break;
|
||||
case '-':
|
||||
case '?':
|
||||
die($strInfoScript);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . ' inconnue !'.EOL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count($tabBodaccF)==0) $tabBodaccF=array('A','B','C','ASSO','BOMP A','BOMP B','BOMP C','MAPA','DEFENSE');
|
||||
$strBodacc=implode(', ', $tabBodaccF);
|
||||
$strDates='';
|
||||
|
||||
if ($lastJO==true) $strLast=' derniers';
|
||||
else $strLast='';
|
||||
/*else {
|
||||
$dateCour=$dateDeb;
|
||||
$strLast='';
|
||||
|
||||
if ($dateDebut==false || $dateFin==false)
|
||||
die($strInfoScript);
|
||||
else
|
||||
$strDates="du $dateDebut au $dateFin";
|
||||
}*/
|
||||
$iDb=new WDB();
|
||||
$iBodacc=new MBodacc();
|
||||
$iInsee=new MInsee();
|
||||
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Mise à jour des intervenants...".EOL;
|
||||
|
||||
$sirMand=$sirGrp=$rechGrpMand=$newMand=false;
|
||||
$sirGrp=true;
|
||||
|
||||
if ($newMand) {
|
||||
$nbAbsent=0;
|
||||
$tabTmp=$iDb->select('tabMandataires', "DISTINCT sirenMand", "sirenMand>1000 AND TYPE IN ('A','M')", false, MYSQL_ASSOC);
|
||||
$nbMand=count($tabTmp);
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $nbMand SIREN d'intervenants de type ADM/MAND connus.".EOL;
|
||||
$tabMand=array();
|
||||
foreach ($tabTmp as $iMand=>$mand) {
|
||||
$tabMand[]=$mand['sirenMand'];
|
||||
}
|
||||
$strSiren=implode(',',$tabMand);
|
||||
$tabTmp2=$iDb->select('etablissements_tmp', "siren,nic,actif,siege,raisonSociale,adr_num,adr_btq,adr_typeVoie,adr_libVoie,adr_comp,adr_cp,adr_ville, tel, fax", "siren IN ($strSiren) AND actif=1 ORDER BY siren ASC, nic ASC", false, MYSQL_ASSOC);
|
||||
$nbEtab=count($tabTmp2);
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $nbEtab SIRET d'intervenants dans l'INSEE...".EOL;
|
||||
$tabSirenMand=array();
|
||||
foreach ($tabTmp2 as $iE=>$etab) {
|
||||
$siren=$etab['siren'];
|
||||
$nic=$etab['nic'];
|
||||
$tabTmp=$iDb->select('tabMandataires', "sirenGrp, sirenMand, nicMand, Nom, Prenom, type, stagiaire, coursAppel, coursAppel2, tribunal, Statut", "sirenMand=$siren", false, MYSQL_ASSOC);
|
||||
$tM=$tabTmp[0];
|
||||
$tabSirenMand['_'.$siren]=array('sirenGrp'=>$tM['sirenGrp'],
|
||||
'Nom'=>$tM['Nom'],
|
||||
'Prenom'=>$tM['Prenom'],
|
||||
'type'=>$tM['type'],
|
||||
'coursAppel'=>$tM['coursAppel'],
|
||||
'coursAppel2'=>$tM['coursAppel2'],
|
||||
'tribunal'=>$tM['tribunal'],
|
||||
'Statut'=>$tM['Statut']);
|
||||
}
|
||||
foreach ($tabTmp2 as $iE=>$etab) {
|
||||
$siren=$etab['siren'];
|
||||
$nic=$etab['nic'];
|
||||
$tabTmp=$iDb->select('tabMandataires', "sirenGrp, sirenMand, nicMand, Nom, Prenom, type, stagiaire, coursAppel, coursAppel2, tribunal, Statut", "sirenMand=$siren AND nicMand=$nic", false, MYSQL_ASSOC);
|
||||
$mandExiste=count($tabTmp);
|
||||
if ($mandExiste==0) {
|
||||
$tabId=@$iInsee->getIdentiteEntreprise($siren, $nic);
|
||||
$tabInsert=array( 'sirenGrp'=> $tabSirenMand['_'.$siren]['sirenGrp'],
|
||||
'sirenMand'=> $siren,
|
||||
'nicMand'=> $nic,
|
||||
'Nom'=> $tabSirenMand['_'.$siren]['Nom'],
|
||||
'Prenom'=> $tabSirenMand['_'.$siren]['Prenom'],
|
||||
'type'=> $tabSirenMand['_'.$siren]['type'],
|
||||
'coursAppel'=> $tabSirenMand['_'.$siren]['coursAppel'],
|
||||
'coursAppel2'=> $tabSirenMand['_'.$siren]['coursAppel2'],
|
||||
'tribunal'=> $tabSirenMand['_'.$siren]['tribunal'],
|
||||
'Statut'=> $tabSirenMand['_'.$siren]['Statut'],
|
||||
'adresse'=> $tabId['Adresse'],
|
||||
'adresseComp'=> $etab['adr_comp'],
|
||||
'cp'=> $etab['adr_cp'],
|
||||
'ville'=> $etab['adr_ville'],
|
||||
'tel'=> $tabId['Tel'],
|
||||
'fax'=> $tabId['Fax'],
|
||||
'email'=> $tabId['Mail'],
|
||||
'web'=> $tabId['Web'],
|
||||
'dateInsert'=> date('YmdHis'));
|
||||
//print_r($tabId);
|
||||
print_r($tabInsert);
|
||||
$iDb->insert('tabMandataires', $tabInsert, false);
|
||||
echo mysql_error().EOL;
|
||||
$nbAbsent++;
|
||||
echo "$siren $nic : Mandataire absent de la base".EOL;
|
||||
}
|
||||
}
|
||||
echo date ('Y/m/d - H:i:s') . " - Il y a $nbAbsent/$nbEtab SIRET d'intervenants absents en base !".EOL;
|
||||
die();
|
||||
}
|
||||
if ($sirMand || $sirGrp || $rechGrpMand) {
|
||||
if ($sirMand)
|
||||
$tabTmp=$iDb->select('tabMandataires', "sirenMand, nicMand, id, sirenGrp, nicGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact",
|
||||
"sirenMand>100 AND nicMand=0 AND TYPE IN ('A','M') ORDER BY sirenMand ASC", false, MYSQL_ASSOC);
|
||||
elseif ($sirGrp)
|
||||
$tabTmp=$iDb->select('tabMandataires', "sirenMand, nicMand, id, sirenGrp, nicGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact",
|
||||
"sirenGrp>100 AND nicGrp=0 AND TYPE IN ('A','M') ORDER BY sirenGrp ASC", false, MYSQL_ASSOC);
|
||||
elseif ($rechGrpMand)
|
||||
$tabTmp=$iDb->select('tabMandataires', "sirenMand, nicMand, id, sirenGrp, nicGrp, Nom, Prenom, type, coursAppel, tribunal, Statut, adresse, adresseComp, cp, ville, tel, fax, email, web, contact",
|
||||
"sirenMand>100 AND sirenGrp=0 AND TYPE IN ('A','M') ORDER BY sirenMand ASC", false, MYSQL_ASSOC);
|
||||
// Rechercher une société civille à l'adresse
|
||||
$nbMand=count($tabTmp);
|
||||
foreach ($tabTmp as $iMand=>$mand) {
|
||||
$sirenMand=$mand['sirenMand'];
|
||||
$idMand=$mand['id'];
|
||||
$sirenGrp=$mand['sirenGrp'];
|
||||
print_r($mand);
|
||||
$cp1=$mand['cp'];
|
||||
$dep1=substr($cp1,0,2);
|
||||
$ville1=$mand['ville'];
|
||||
$adrNum1=$siren2=-1;
|
||||
if (preg_match('/\s(\d+)\D+/',' '.$mand['adresse'],$matches)) {
|
||||
$adrNum1=$matches[1];
|
||||
}
|
||||
echo "$iMand/$nbMand: $adrNum1".EOL;
|
||||
if ($sirMand) $siren2=$sirenMand;
|
||||
elseif ($sirGrp) $siren2=$sirenGrp;
|
||||
if ($siren2>-1)
|
||||
$tabTmp2=$iDb->select('etablissements_tmp', "siren,nic,actif,siege,raisonSociale,/*enseigne,sigle,identite_pre,marques*/adr_num,adr_btq,adr_typeVoie,adr_libVoie,adr_comp,adr_cp,adr_ville", "siren=$siren2 ORDER BY nic ASC", true, MYSQL_ASSOC);
|
||||
else {
|
||||
$tabTmp3=@$iInsee->rechercheEtab('', $mand['adresse'], $dep1, $ville1, '', '', 0, 200, 200, true, true);
|
||||
$tabTmp2=array();
|
||||
if ($tabTmp3['nbReponses']==0) continue;
|
||||
foreach (@$tabTmp3['reponses'] as $iR=>$tR) {
|
||||
if ( ($tR['FJ']>=6500 && $tR['FJ']<6600) ||
|
||||
$tR['FJ']==5370 ||
|
||||
$tR['FJ']==5385 ||
|
||||
$tR['FJ']==5470 ||
|
||||
$tR['FJ']==5485 ||
|
||||
$tR['FJ']==5570 ||
|
||||
$tR['FJ']==5585 ||
|
||||
$tR['FJ']==5670 ||
|
||||
$tR['FJ']==5685 ||
|
||||
$tR['FJ']==5770 ||
|
||||
$tR['FJ']==5785 ) {
|
||||
$tabTmp2[]=array( 'siren'=> $tR['Siren'],
|
||||
'nic'=> $tR['Nic'],
|
||||
'actif'=> $tR['Actif'],
|
||||
'siege'=> $tR['Siege'],
|
||||
'raisonSociale'=> $tR['Nom'],
|
||||
'adr_num'=> '',
|
||||
'adr_btq'=> '',
|
||||
'adr_typeVoie'=> '',
|
||||
'adr_libVoie'=> $tR['Adresse'],
|
||||
'adr_comp'=> $tR['Adresse2'],
|
||||
'adr_cp'=> $tR['CP'],
|
||||
'adr_ville'=> $tR['Ville'],
|
||||
);
|
||||
}
|
||||
}
|
||||
// if ($tabTmp3['nbReponses']>0) continue;//die();
|
||||
}
|
||||
$tabNic=array();
|
||||
foreach ($tabTmp2 as $iC=>$choix) {
|
||||
$siren2=$choix['siren'];
|
||||
$nic2=$choix['nic'];
|
||||
$tabNic[]=$nic2;
|
||||
$actif=$choix['actif'];
|
||||
$adr2=preg_replace('/s+/',' ', $choix['adr_num'].' '.$choix['adr_btq'].' '.$choix['adr_typeVoie'].' '.$choix['adr_libVoie'].' '.$choix['adr_comp'].', '.$choix['adr_cp'].' '.$choix['adr_ville']);
|
||||
if ($cp1==$choix['adr_cp'] && $adrNum1==$choix['adr_num'] ||
|
||||
$dep1=substr($choix['adr_cp'],0,2) && strpos($ville1,$choix['adr_ville'])===true) { $nicTrouve=$nic2; $strNicTrouv='***';}
|
||||
else $strNicTrouv='';
|
||||
if ($rechGrpMand) echo "$siren2";
|
||||
echo "$nic2 $strNicTrouv\t".$choix['raisonSociale']."\t$actif $adr2".EOL;
|
||||
}
|
||||
//continue;
|
||||
while(true){
|
||||
$iC2=$iC+1;
|
||||
if ($rechGrpMand) echo "Saisir le SIRET correspondant (0 pour ne rien saisir) parmis les $iC2 résultats ?".EOL;
|
||||
else echo "Saisir le NIC correspondant (0 pour ne rien saisir) parmis les $iC2 résultats ?".EOL;
|
||||
$saisie = trim(strtoupper(fgets(STDIN)))*1;
|
||||
if ($saisie<0) break;
|
||||
elseif ($saisie>100000000) {
|
||||
$iDb->update('tabMandataires', array('sirenGrp'=>substr($saisie,0,9), 'nicGrp'=>substr($saisie,9,5)), "id=$idMand", false);
|
||||
break;
|
||||
}
|
||||
elseif ($rechGrpMand) break;
|
||||
elseif ($saisie>9 || ($saisie==0 && $iC2==1) || ($saisie==0 && $iC2>1 && $nicTrouve>9)) {
|
||||
if ($saisie==0 && $iC2==1) $saisie=$nic2;
|
||||
elseif ($saisie==0 && $iC2>1 && $nicTrouve>9) $saisie=$nicTrouve;
|
||||
if ($sirGrp && in_array($saisie, $tabNic))
|
||||
$iDb->update('tabMandataires', array('nicGrp'=>$saisie), "id=$idMand", false);
|
||||
elseif ($sirMand && in_array($saisie, $tabNic))
|
||||
$iDb->update('tabMandataires', array('nicMand'=>$saisie), "id=$idMand", false);
|
||||
break;
|
||||
} elseif ($saisie==0) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
die();
|
||||
|
||||
?>
|
2102
batch/majLiens.php
2102
batch/majLiens.php
File diff suppressed because it is too large
Load Diff
@ -1,850 +0,0 @@
|
||||
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||||
<?php
|
||||
/** @todo Si MAJ en annule et remplace prévoir les manips SQL suivantes :
|
||||
** A. Création d'une table insee.tmp sans aucun index
|
||||
** B. A la fin du chargement construire les index
|
||||
** //ALTER TABLE insee ADD PRIMARY KEY (insSIREN, insNIC);
|
||||
** ALTER TABLE insee ADD INDEX (insSIREN, insNIC);
|
||||
** ALTER TABLE insee ADD FULLTEXT (insNOMEN);
|
||||
** ALTER TABLE insee ADD INDEX (insSIEGE);
|
||||
** ALTER TABLE insee ADD INDEX (insCODPOS);
|
||||
** ALTER TABLE insee ADD INDEX (insDEPET);
|
||||
** ALTER TABLE insee ADD INDEX (insAPET700);
|
||||
** ALTER TABLE insee ADD INDEX (insAPEN700);
|
||||
** ALTER TABLE insee ADD INDEX (insCJ);
|
||||
** --- ?
|
||||
** ALTER TABLE insee ADD FULLTEXT (insNOMET);
|
||||
** ALTER TABLE insee ADD FULLTEXT (insSIGLE);
|
||||
** ALTER TABLE insee ADD INDEX (insNOMEN);
|
||||
** ALTER TABLE insee ADD INDEX (insNOMET);
|
||||
** ALTER TABLE insee ADD INDEX (insSIGLE);
|
||||
** --- ?
|
||||
**
|
||||
** Si pas d'erreur :
|
||||
** 1. detruire insee
|
||||
** 2. Renommer insee.tmp en insee
|
||||
**/
|
||||
|
||||
global $tabSep;
|
||||
$tabSep=array('"', '|', '#', '+', '-', '=', '_', '/', '\'', '\\', '&', '.', ';', ',', '!', '?', ':', '*', '°', '(', ')', '[', ']', '{', '}');
|
||||
|
||||
global $tabInutils;
|
||||
$tabInutils=array('', 'la', 'le', 'du', 'les', 'aux', 'au', 'des', 'ma', 'mon', 'ton', 'tes', 'nos', 'vos', 'l', 'de', 'ta', 'a', 'et', 'on', 'en');
|
||||
|
||||
function specialCharToSpace($str) {
|
||||
$str=strtr( strtoupper($str),
|
||||
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿ',
|
||||
// strtoupper('aaaaaaaceeeeiiiionooooouuuuyy'));
|
||||
strtoupper('AAAAAAACEEEEIIIIONOOOOOUUUUYY'));
|
||||
$ret='';
|
||||
for ($i=0; $i<strlen($str); $i++) {
|
||||
if (ord($str[$i])>64 && ord($str[$i])<91)
|
||||
$ret.=$str[$i];
|
||||
else
|
||||
$ret.=' ';
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
function getTabWords($str) {
|
||||
global $tabInutils;
|
||||
// Découpe du champ NOMEN
|
||||
$tabMot=array();
|
||||
$tabRS=explode(' ', specialCharToSpace($str));
|
||||
$i=0;
|
||||
foreach($tabRS as $k => $mot) {
|
||||
// Si le mot courant n'est pas inutil, on le garde !
|
||||
if (!in_array(trimAccent($mot), $tabInutils))
|
||||
{
|
||||
$tabMot[$i]=$mot;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
return $tabMot;
|
||||
}
|
||||
/*
|
||||
include_once('/var/www/_includes/timer.php');
|
||||
include_once('/var/www/_includes/phonex.php');
|
||||
include_once('/var/www/_includes/soundex.php');
|
||||
function soundex2($str) {
|
||||
$soundex2 = new soundex2;
|
||||
$soundex2 -> build ($str);
|
||||
return $soundex2 -> sString;
|
||||
}
|
||||
*/
|
||||
|
||||
// $ret=mysql_query('ALTER TABLE `insee` RENAME `insee_'. date('Y-m-d') .'`;');
|
||||
// echo date ('Y/m/d - H:i:s')." - Sauvegarde de l'ancienne base INSEE\n";
|
||||
|
||||
|
||||
/*
|
||||
$ret=mysql_query('ALTER TABLE `insee_recherche` RENAME `insee_recherche_'. date('Y-m-d') .'`;');
|
||||
echo date ('Y/m/d - H:i:s')." - Sauvegarde de l'ancienne base de recherche INSEE\n";
|
||||
|
||||
$ret=mysql_query("CREATE TABLE IF NOT EXISTS insee_recherche (
|
||||
insSIREN varchar(9) NOT NULL default '',
|
||||
insNIC varchar(5) NOT NULL default '',
|
||||
motNOM varchar(24) default NULL,
|
||||
shxNOM varchar(4) default NULL,
|
||||
phxNOM bigint(12) default '0',
|
||||
motADR varchar(24) default NULL,
|
||||
shxADR varchar(4) default NULL,
|
||||
phxADR bigint(12) default '0',
|
||||
insNUMVOIE int(4) default NULL,
|
||||
insTYPVOIE char(3) default NULL,
|
||||
CodeInseeCommune varchar(5) default NULL,
|
||||
insLIBCOM varchar(26) default NULL,
|
||||
insSIEGE tinyint(1) NOT NULL default '0',
|
||||
insAPET700 varchar(4) default NULL,
|
||||
insAPET31 char(2) default NULL,
|
||||
insCJ varchar(4) default NULL,
|
||||
insAPEN700 varchar(4) default NULL,
|
||||
insAPEN31 char(2) default NULL,
|
||||
SPEACT char(1) default NULL,
|
||||
SORLJ_N char(1) default NULL,
|
||||
SOEVT char(2) default NULL,
|
||||
SOETEL varchar(10) default NULL,
|
||||
SOEFAX varchar(10) default NULL,
|
||||
SODTEN_D varchar(8) default NULL) TYPE=MyISAM COMMENT='Base INSEE de recherche';");
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la structure de la base de recherche INSEE sans les index\n";
|
||||
*/
|
||||
/*,
|
||||
KEY `insSIREN` (`insSIREN`,`insNIC`),
|
||||
KEY `insSIEGE` (`insSIEGE`),
|
||||
KEY `insCODPOS` (`insCODPOS`),
|
||||
KEY `insDEPET` (`insDEPET`),
|
||||
KEY `insAPET700` (`insAPET700`),
|
||||
KEY `insCJ` (`insCJ`),
|
||||
KEY `insAPEN700` (`insAPEN700`),
|
||||
KEY `insSIGLE` (`insSIGLE`),
|
||||
KEY `insNOMEN_2` (`insNOMEN`),
|
||||
KEY `insNOMET_2` (`insNOMET`),
|
||||
FULLTEXT KEY `insNOMEN` (`insNOMEN`),
|
||||
FULLTEXT KEY `insNOMET` (`insNOMET`),
|
||||
FULLTEXT KEY `insSIGLE_2` (`insSIGLE`)*/
|
||||
|
||||
/** On ne prend l'heure qu'une seule fois par script PHP et on initialise des constantes.
|
||||
*
|
||||
* DATETIME YmdHis
|
||||
* DATETIME_LOG Y-m-d H:i:s Date du jour pour les insertions en BDD
|
||||
* NOW His Heure d'exécution du script
|
||||
* NOW_FORMAT H:i:s Heure d'exécution du script
|
||||
* TODAY Ymd Année, Mois, Jour d'exécution du script
|
||||
* TODAY_FORMAT Y-m-d
|
||||
* TODAY_AFF d/m/Y
|
||||
*/
|
||||
|
||||
define ('TODAY', substr(DATETIME,0,8));
|
||||
define ('TODAY_FORMAT', substr(DATETIME,0,4).'-'.substr(DATETIME,4,2).'-'.substr(DATETIME,6,2));
|
||||
define ('NOW_FORMAT', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
set_time_limit(0);
|
||||
$heureDebut=NOW_FORMAT;
|
||||
$dateJour=TODAY;
|
||||
$dateJourFormat=TODAY_FORMAT;
|
||||
|
||||
echo date ('Y/m/d - H:i:s') . " - Début du traitement\r\n";
|
||||
flush();
|
||||
$db_name=$db_table='';
|
||||
|
||||
//Initialistation des variables
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']<3) die('Usage : '.basename($argv[0]). " [OPTION]... FICHIER(S)
|
||||
Charger un fichier au format Notice80 dans une base de données avec création de la table qui aura le nom du fichier chargé..
|
||||
|
||||
Options disponibles:
|
||||
-d=nom_bdd Nom de la base de données
|
||||
-t=nom_table Nom de la table
|
||||
|
||||
(*): Valeurs par défaut !
|
||||
");
|
||||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd': $db_name=substr($argv[$i],3); break;
|
||||
case 't': $db_table=substr($argv[$i],3); break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
} else {
|
||||
$fichier_csv[$j]=$argv[$i];
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
if ($db_name=='') die("Base de données non communiquée !\n");
|
||||
if ($db_table=='') die("Table non communiquée !\n");
|
||||
|
||||
$iDb=new WDB($db_name);
|
||||
|
||||
$sql="CREATE TABLE IF NOT EXISTS $db_table (
|
||||
insSIREN varchar(9) NOT NULL default '',
|
||||
insNIC varchar(5) NOT NULL default '',
|
||||
insNOMEN varchar(40) default NULL,
|
||||
insNOMET varchar(40) default NULL,
|
||||
insSIGLE varchar(20) default NULL,
|
||||
insCADR varchar(26) default NULL,
|
||||
insNUMVOIE varchar(4) default NULL,
|
||||
`insINDREP` char(1) default NULL,
|
||||
`insTYPVOIE` char(3) default NULL,
|
||||
`insLIBVOIE` varchar(26) default NULL,
|
||||
`insDISTSP` varchar(26) default NULL,
|
||||
`insACHPOSTE` varchar(32) default NULL,
|
||||
`insZR` varchar(11) default NULL,
|
||||
`insRPET` tinyint(2) NOT NULL default '0',
|
||||
`insDEPET` char(2) default NULL,
|
||||
`insARRONET` char(2) default NULL,
|
||||
`insCTONET` char(3) default NULL,
|
||||
`insCOMET` char(3) default NULL,
|
||||
`insLIBCOM` varchar(26) default NULL,
|
||||
`insDU` char(2) default NULL,
|
||||
`insTU` tinyint(1) NOT NULL default '0',
|
||||
`insU7U` char(2) default NULL,
|
||||
`insCODPOS` varchar(5) default NULL,
|
||||
`insILOT` varchar(8) default NULL,
|
||||
`insTCD` tinyint(2) NOT NULL default '0',
|
||||
`insZEMET` char(2) default NULL,
|
||||
`insCODEVOIE` varchar(5) default NULL,
|
||||
`insAPET700` varchar(4) default NULL,
|
||||
`insAPET31` char(2) default NULL,
|
||||
`insSIEGE` tinyint(1) NOT NULL default '0',
|
||||
`insTEFET` tinyint(2) NOT NULL default '0',
|
||||
`insEFETCENT` mediumint(6) default NULL,
|
||||
`insORIGINE` tinyint(1) NOT NULL default '0',
|
||||
`insDCRET` varchar(6) default NULL,
|
||||
`insMMINTRET` tinyint(2) NOT NULL default '0',
|
||||
`insNATURE` char(2) default NULL,
|
||||
`insSAISONAT` tinyint(1) NOT NULL default '0',
|
||||
`insMODET` tinyint(1) NOT NULL default '0',
|
||||
`insDAPET` varchar(4) default NULL,
|
||||
`insDEFET` varchar(4) default NULL,
|
||||
`insSINGT` tinyint(2) NOT NULL default '0',
|
||||
`insAUXILT` tinyint(1) NOT NULL default '0',
|
||||
`insEAEANT` varchar(4) default NULL,
|
||||
`insEAEAPET` varchar(4) default NULL,
|
||||
`insEAESEC1T` varchar(4) default NULL,
|
||||
`insEAESEC2T` varchar(4) default NULL,
|
||||
`insCJ` varchar(4) default NULL,
|
||||
`insTEFEN` tinyint(2) NOT NULL default '0',
|
||||
`insEFENCENT` mediumint(6) default NULL,
|
||||
`insAPEN700` varchar(4) default NULL,
|
||||
`insAPEN31` char(2) default NULL,
|
||||
`insAPRM` varchar(5) default NULL,
|
||||
`insTCA` tinyint(1) NOT NULL default '0',
|
||||
`insSEXE` enum('M','F','') NOT NULL default 'M',
|
||||
`insRECME` tinyint(1) NOT NULL default '0',
|
||||
`insDAPEN` varchar(4) default NULL,
|
||||
`insDEFEN` varchar(4) default NULL,
|
||||
`insDCREN` varchar(6) default NULL,
|
||||
`insMMINTREN` tinyint(2) NOT NULL default '0',
|
||||
`insMONOACT` tinyint(1) default NULL,
|
||||
`insMODEN` tinyint(1) NOT NULL default '0',
|
||||
`insORDIN` tinyint(1) NOT NULL default '0',
|
||||
`insEAEANN` varchar(4) default NULL,
|
||||
`insEAEAPEN` varchar(4) default NULL,
|
||||
`insEAESEC1N` varchar(4) default NULL,
|
||||
`insEAESEC2N` varchar(4) default NULL,
|
||||
`insEAESEC3N` varchar(4) default NULL,
|
||||
`insEAESEC4N` varchar(4) default NULL,
|
||||
`insNBTOA` SMALLINT(4) UNSIGNED NOT NULL default '0',
|
||||
`insTCAEXPOR` tinyint(1) NOT NULL default '0',
|
||||
`insREGIMP` char(2) default NULL,
|
||||
`insMONOREG` tinyint(1) default NULL,
|
||||
`insRPEN` tinyint(2) NOT NULL default '0',
|
||||
`insDEPCOMEN` varchar(5) default NULL,
|
||||
`insVMAJ` enum('C','E','I','F','S') NOT NULL default 'C',
|
||||
`insVMAJ1` tinyint(1) NOT NULL default '0',
|
||||
`insVMAJ2` tinyint(1) NOT NULL default '0',
|
||||
`insVMAJ3` tinyint(1) NOT NULL default '0',
|
||||
`SPEACT` char(1) default NULL,
|
||||
`SORLJ_N` char(1) default NULL,
|
||||
`SOEVT` char(2) default NULL,
|
||||
`SOROL` char(1) default NULL,
|
||||
`SODJL_D` varchar(8) default NULL,
|
||||
`SOEDRQ` char(3) default NULL,
|
||||
`SOEDRN_X` varchar(60) default NULL,
|
||||
`SOEDRD_D` varchar(8) default NULL,
|
||||
`SOEDRL_N` varchar(35) default NULL,
|
||||
`SORSNC` char(1) default NULL,
|
||||
`SORSNO` char(2) default NULL,
|
||||
`SOETEL` varchar(10) default NULL,
|
||||
`SOEFAX` varchar(10) default NULL,
|
||||
`SODTEN_D` varchar(8) default NULL) TYPE=MyISAM COMMENT='Base INSEE courante';";
|
||||
$ret=$iDb->query($sql, true);
|
||||
echo date ('Y/m/d - H:i:s')." - Création de la structure de la base '$db_table' sans les index\n";
|
||||
//echo "$sql\n";
|
||||
$tabFichDate=$fichier_csv;
|
||||
|
||||
$messageInsertion=$messageSuppression='';
|
||||
|
||||
for ($nbFichiers=0; isset($tabFichDate[$nbFichiers]); $nbFichiers++)
|
||||
{
|
||||
$tab_nom_date =explode('|', $tabFichDate[$nbFichiers]);
|
||||
$nomFichier =$tab_nom_date[0];
|
||||
$moisFichier ='200601';//$tab_nom_date[1];
|
||||
|
||||
$fp=fopen($nomFichier,"r");
|
||||
if (!$fp) {
|
||||
echo date ('Y/m/d - H:i:s')." - Impossible d'ouvrir le fichier n°$nbFichiers à traiter : ".$rep.$nomFichier." !\r\n";
|
||||
/* $tabDataToUpdate=array( 'NUM'=>$numScript,
|
||||
'DATE_JOUR'=>$dateJour,
|
||||
'HEURE_DEBUT'=>$heureDebut,
|
||||
'HEURE_FIN'=>$heureFin,
|
||||
'CODE_RETOUR'=>0,
|
||||
'NB_MAIL'=>1,
|
||||
'RESUME_EXEC'=>"Impossible d'ouvrir le fichier n°$nbFichiers à traiter : $nomFichier.");*/
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement\r\n";
|
||||
exit();
|
||||
}
|
||||
|
||||
$nbLignes=0;
|
||||
$vmajC=0;
|
||||
$vmajE=0;
|
||||
$vmajI=0;
|
||||
$vmajF=0;
|
||||
$vmajS=0;
|
||||
$totI=0;
|
||||
$totS=0;
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$nbFichiers=$nomFichier du mois de $moisFichier !\r\n";
|
||||
flush();
|
||||
|
||||
while (!feof($fp))
|
||||
{
|
||||
$nbLignes++;
|
||||
|
||||
$a = fgets($fp, 4096);
|
||||
unset($tabErreur); $nbErr=0;
|
||||
|
||||
$insSIREN =substr($a, 0, 9);
|
||||
$insNIC =substr($a, 9, 5);
|
||||
$insVMAJ =substr($a,447, 1);
|
||||
/* if ( $insVMAJ==' ' )
|
||||
$insVMAJ ='C';
|
||||
*/
|
||||
|
||||
if (!valideSiret($insSIREN.$insNIC)) {
|
||||
if (trim($a)=='')
|
||||
$insVMAJ='EOF';
|
||||
else
|
||||
$tabErreur[$nbErr++]="SIRET incorrect : $insSIREN.$insNIC";
|
||||
}
|
||||
|
||||
if ( $insVMAJ!='C' && $insVMAJ!='E' && $insVMAJ!='I' && $insVMAJ!='F' && $insVMAJ!='S' && $insVMAJ!='EOF' ) {
|
||||
if ( $insVMAJ!=' ' && $insVMAJ!=chr(0) ) {
|
||||
// echo date ('Y/m/d - H:i:s') . " - ATTENTION, ligne $nbLignes, forçage du code VMAJ à C car VMAJ='$insVMAJ' (Code ASCII=".ord($insVMAJ).") inexistant pour le siret $insSIREN $insNIC !!!\r\n";
|
||||
flush();
|
||||
}
|
||||
$insVMAJ='C';
|
||||
}
|
||||
|
||||
switch($insVMAJ)
|
||||
{
|
||||
case 'C':
|
||||
case 'F':
|
||||
case 'S':
|
||||
// Requêtes de création ou mise à jour
|
||||
// ***********************************
|
||||
$insNOMEN = trim( substr($a, 14,40) );
|
||||
|
||||
$insNOMET = trim( substr($a, 54,40) );
|
||||
|
||||
$insSIGLE = trim( substr($a, 94,20) );
|
||||
|
||||
$insCADR = trim( substr($a,114,26) );
|
||||
$insNUMVOIE = trim( substr($a,140, 4) );
|
||||
$insINDREP = trim( substr($a,144, 1) );
|
||||
$insTYPVOIE = trim( substr($a,145, 3) ); // Répertorié dans 1 tableau
|
||||
// if (!$insee->isTypeVoie($insTYPVOIE))
|
||||
// $tabErreur[$nbErr++]="TYPVOIE inconnu : '$insTYPVOIE'";
|
||||
$insLIBVOIE = trim( substr($a,148,26) );
|
||||
$insDISTSP = trim( substr($a,174,26) );
|
||||
$insACHPOSTE = trim( substr($a,200,32) );
|
||||
$insZR = trim( substr($a,232,11) );
|
||||
$insRPET = (int) substr($a,243, 2); // Répertorié dans 1 tableau
|
||||
// if ( trim($insee->getLibRegion($insRPET))=='' )
|
||||
// $tabErreur[$nbErr++]="RPET inconnue : '$insRPET' (Code ASCII=".ord(substr($a,243, 1))." & ".ord(substr($a,244, 1)).")";
|
||||
$insDEPET = substr($a,245, 2);
|
||||
$insARRONET = substr($a,247, 2);
|
||||
$insCTONET = substr($a,249, 3);
|
||||
$insCOMET = substr($a,252, 3);
|
||||
$insLIBCOM = trim( substr($a,255,26) );
|
||||
$insDU = substr($a,281, 2);
|
||||
$insTU = (int) substr($a,283, 1); // de 0 à 8
|
||||
// if ($insTU > 8)
|
||||
// $tabErreur[$nbErr++]="TU non comprise entre 0 et 8 : '$insTU' (Code ASCII=".ord(substr($a,283, 1)).")";
|
||||
$insU7U = substr($a,284, 2); // Champ UU de l'Insee
|
||||
$insCODPOS = substr($a,286, 5);
|
||||
$insILOT = trim( substr($a,291, 8)); // toujours vide car tarif spécial !
|
||||
$insTCD = (int) substr($a,299, 2);
|
||||
|
||||
$insZEMET = substr($a,301, 2);
|
||||
$insCODEVOIE = substr($a,303, 5);
|
||||
$insAPET700 = substr($a,308, 4);
|
||||
$insAPET31 = substr($a,312, 2);
|
||||
$insSIEGE = (int) substr($a,314, 1);
|
||||
$insTEFET = (int) substr($a,315, 2);
|
||||
$insEFETCENT = trim( substr($a,317, 6)); // Numérique
|
||||
if ( $insEFETCENT=='' )
|
||||
$insEFETCENT='NULL';
|
||||
elseif (!is_numeric($insEFETCENT)) {
|
||||
// if ( $insEFETCENT!='N' )
|
||||
// $tabErreur[$nbErr++]="EFETCENT non numérique : $insEFETCENT";
|
||||
$insEFETCENT='NULL';
|
||||
}
|
||||
else
|
||||
$insEFETCENT=(int)$insEFETCENT;
|
||||
$insORIGINE = (int) substr($a,323, 1); // de 0 à 8
|
||||
// if ($insORIGINE > 8)
|
||||
// $tabErreur[$nbErr++]="ORIGINE non comprise entre 0 et 8 : $insORIGINE";
|
||||
$insDCRET = substr($a,324, 6);
|
||||
$insMMINTRET = (int) substr($a,330, 2); // de 0 à 12
|
||||
// if ( $insMMINTRET < 0 || $insMMINTRET > 12 )
|
||||
// $tabErreur[$nbErr++]="MMINTRET non compris entre 0 et 12 : $insMMINTRET (Code ASCII=".ord(substr($a,330, 1))." & ".ord(substr($a,331, 1)).")";
|
||||
$insNATURE = (int) substr($a,332, 2); // Numérique définit dans 1 tableau//
|
||||
// if ( !$insee->isNature($insNATURE) )
|
||||
// $tabErreur[$nbErr++]="NATURE inconnue : $insNATURE (Code ASCII=".ord(substr($a,332, 1))." & ".ord(substr($a,333, 1)).")";
|
||||
$insSAISONAT = (int) substr($a,334, 1);
|
||||
$insMODET = (int) substr($a,335, 1); // de 0 à 3
|
||||
if ($insMODET > 3)
|
||||
$tabErreur[$nbErr++]="MODET différent de 0,1,2 ou 3 : $insMODET (Code ASCII=".ord(substr($a,335, 1)).")";
|
||||
$insDAPET = trim( substr($a,336, 4));
|
||||
$insDEFET = trim( substr($a,340, 4));
|
||||
$insSINGT = (int) substr($a,344, 2); // Numérique définit dans 1 tableau
|
||||
// if ( trim($insee->getLibSingularite($insSINGT))=='' )
|
||||
// $tabErreur[$nbErr++]="SINGT inconnue : $insSINGT (Code ASCII=".ord(substr($a,344, 1))." & ".ord(substr($a,345, 1)).")";
|
||||
$insAUXILT = (int) substr($a,346, 1); // 0, 1 ou 9
|
||||
// if ($insAUXILT > 1 && $insAUXILT < 9)
|
||||
// $tabErreur[$nbErr++]="AUXILT différent de 0, 1 ou 9 : $insAUXILT (Code ASCII=".ord(substr($a,346, 1)).")";
|
||||
$insEAEANT = trim( substr($a,347, 4));
|
||||
$insEAEAPET = trim( substr($a,351, 4));
|
||||
$insEAESEC1T = trim( substr($a,355, 4));
|
||||
$insEAESEC2T = trim( substr($a,359, 4));
|
||||
$insCJ = substr($a,363, 4);
|
||||
$insTEFEN = (int) substr($a,367, 2);
|
||||
$insEFENCENT = trim( substr($a,369, 6)); // Numérique
|
||||
if ( $insEFENCENT=='' )
|
||||
$insEFENCENT='NULL';
|
||||
elseif (!is_numeric($insEFENCENT)) {
|
||||
// if ( $insEFENCENT!='N' )
|
||||
// $tabErreur[$nbErr++]="EFENCENT non numérique : $insEFENCENT (Code ASCII=".ord($insEFENCENT).")";
|
||||
$insEFENCENT='NULL';
|
||||
}
|
||||
else
|
||||
$insEFENCENT=(int)$insEFENCENT;
|
||||
$insAPEN700 = substr($a,375, 4);
|
||||
$insAPEN31 = substr($a,379, 2);
|
||||
$insAPRM = trim( substr($a,381, 5));
|
||||
$insTCA = (int) substr($a,386, 1); // de 0 à 9
|
||||
$insSEXE = strtoupper( substr($a,387, 1)); // M, F ou blanc
|
||||
if ( $insSEXE!='M' && $insSEXE!='F' && $insSEXE!=' ' )
|
||||
// if ( $insSEXE!=chr(0) )
|
||||
// $tabErreur[$nbErr++]="SEXE inconnu : $insSEXE (Code ASCII=".ord($insVMAJ).")";
|
||||
// else
|
||||
$insSEXE=' ';
|
||||
$insRECME = (int) substr($a,388, 1); // 0 ou 1
|
||||
// if ( $insRECME > 1 )
|
||||
// $tabErreur[$nbErr++]="RECME différent de 0 ou 1 : $insRECME (Code ASCII=".ord(substr($a,388, 1)).")";
|
||||
$insDAPEN = trim( substr($a,389, 4));
|
||||
$insDEFEN = trim( substr($a,393, 4));
|
||||
$insDCREN = substr($a,397, 6);
|
||||
$insMMINTREN = (int) substr($a,403, 2); // de 0 à 12
|
||||
// if ( $insMMINTREN < 0 || $insMMINTREN > 12 )
|
||||
// $tabErreur[$nbErr++]="MMINTREN non compris entre 0 et 12 : $insMMINTREN (Code ASCII=".ord(substr($a,403, 1))." & ".ord(substr($a,404, 1)).")";
|
||||
$insMONOACT = trim( substr($a,405, 1)); // 0,1,2 ou NULL
|
||||
if ( $insMONOACT == '' )
|
||||
$insMONOACT = 'NULL';
|
||||
else {
|
||||
// if( $insMONOACT != '0' && $insMONOACT != '1' && $insMONOACT != '2' )
|
||||
// $tabErreur[$nbErr++]="MONOACT différent de 0,1,2 ou NULL : $insMONOACT (Code ASCII=".ord(substr($a,405, 1)).")";
|
||||
$insMONOACT=(int)$insMONOACT;
|
||||
}
|
||||
$insMODEN = (int) substr($a,406, 1); // 0,1,2 ou 3
|
||||
// if ($insMODEN > 3)
|
||||
// $tabErreur[$nbErr++]="MODEN différent de 0,1,2 ou 3 : $insMODEN (Code ASCII=".ord(substr($a,406, 1)).")";
|
||||
$insORDIN = (int) substr($a,407, 1); // 0 ou 1
|
||||
// if ($insORDIN > 1)
|
||||
// $tabErreur[$nbErr++]="ORDIN différent de 0 ou 1 : $insORDIN (Code ASCII=".ord(substr($a,407, 1)).")";
|
||||
$insEAEANN = trim( substr($a,408, 4));
|
||||
$insEAEAPEN = trim( substr($a,412, 4));
|
||||
$insEAESEC1N = trim( substr($a,416, 4));
|
||||
$insEAESEC2N = trim( substr($a,420, 4));
|
||||
$insEAESEC3N = trim( substr($a,424, 4));
|
||||
$insEAESEC4N = trim( substr($a,428, 4));
|
||||
$insNBTOA = (int) substr($a,432, 4); // de 0 à 9999
|
||||
$insTCAEXPOR = (int) substr($a,436, 1); // 0,1,2,3 ou 4
|
||||
// if ($insTCAEXPOR > 4)
|
||||
// $tabErreur[$nbErr++]="TCAEXPOR différent de 0,1,2,3 ou 4 : $insTCAEXPOR (Code ASCII=".ord(substr($a,436, 1)).")";
|
||||
$insREGIMP = substr($a,437, 2);
|
||||
$insMONOREG = trim( substr($a,439, 1)); // 0,1,2 ou NULL
|
||||
if ( $insMONOREG == '' )
|
||||
$insMONOREG = 'NULL';
|
||||
else {
|
||||
// if( $insMONOREG != '0' && $insMONOREG != '1' && $insMONOREG != '2' )
|
||||
// $tabErreur[$nbErr++]="MONOREG différent de 0,1,2 ou NULL : $insMONOREG (Code ASCII=".ord(substr($a,439, 1)).")";
|
||||
$insMONOREG=(int)$insMONOREG;
|
||||
}
|
||||
$insRPEN = (int) substr($a,440, 2);
|
||||
$insDEPCOMEN = substr($a,442, 5);
|
||||
// $insVMAJ = substr($a,447, 1);
|
||||
$insVMAJ1 = (int) substr($a,448, 1); // 0 ou 1
|
||||
// if ($insVMAJ1 > 1)
|
||||
// $tabErreur[$nbErr++]="VMAJ1 différent de 0 ou 1 : $insVMAJ1 (Code ASCII=".ord(substr($a,448, 1)).")";
|
||||
$insVMAJ2 = (int) substr($a,449, 1); // 0 ou 1
|
||||
// if ($insVMAJ2 > 1)
|
||||
// $tabErreur[$nbErr++]="VMAJ2 différent de 0 ou 1 : $insVMAJ2 (Code ASCII=".ord(substr($a,449, 1)).")";
|
||||
$insVMAJ3 = (int) substr($a,450, 1); // 0 ou 1
|
||||
// if ($insVMAJ3 > 1)
|
||||
// $tabErreur[$nbErr++]="VMAJ3 différent de 0 ou 1 : $insVMAJ3 (Code ASCII=".ord(substr($a,450, 1)).")";
|
||||
|
||||
$bilSPEACT = trim( substr($a,451, 1)); //
|
||||
$bilSORLJ_N = trim( substr($a,452, 1));
|
||||
$bilSOEVT = trim( substr($a,453, 2)); //
|
||||
$bilSOROL = trim( substr($a,455, 1)); //
|
||||
$bilSODJL_D = trim( substr($a,456, 8)); //
|
||||
$bilSOEDRQ = trim( substr($a,464, 3)); //
|
||||
$bilSOEDRN_X= trim( substr($a,467, 60)); //
|
||||
$bilSOEDRD_D= trim( substr($a,527, 8)); //
|
||||
$bilSOEDRL_N= trim( substr($a,535, 35)); //
|
||||
$bilSORSNC = trim( substr($a,570, 1)); //
|
||||
$bilSORSNO = trim( substr($a,571, 2)); //
|
||||
$bilSOETEL = trim( substr($a,573, 10)); //
|
||||
$bilSOEFAX = trim( substr($a,583, 10)); //
|
||||
$bilSODTEN_D= trim( substr($a,593, 8)); //
|
||||
// Traitement du NOM, Enseigne et sigle pour optimiser la recherche
|
||||
//$tabNOMEN=getTabWords($insNOMEN);
|
||||
//$tabNOMET=getTabWords($insNOMET);
|
||||
//$tabSIGLE=getTabWords($insSIGLE);
|
||||
/*$tabNOM=array_merge($tabNOMEN,
|
||||
$tabNOMET,
|
||||
$tabSIGLE);
|
||||
array_unique($tabNOM);
|
||||
$nbNOM=count($tabNOM);
|
||||
$nbLignesRec=$nbNOM;
|
||||
// Traitement des différents zones d'adresse pour optimiser la recherche
|
||||
$tabCADR=getTabWords($insCADR);
|
||||
$tabLIBVOIE=getTabWords($insLIBVOIE);
|
||||
$tabDISTSP=getTabWords($insDISTSP);
|
||||
$tabADR=array_merge($tabCADR,
|
||||
$tabLIBVOIE,
|
||||
$tabDISTSP);
|
||||
array_unique($tabADR);
|
||||
$nbADR=count($tabADR);
|
||||
|
||||
if ($nbADR>$nbLignesRec) $nbLignesRec=$nbADR;
|
||||
|
||||
$CodeInseeCommune=$insDEPET.$insCOMET;
|
||||
$insNUMVOIE=(int)$insNUMVOIE;
|
||||
*/
|
||||
|
||||
/*
|
||||
for ($i_rec=0; $i_rec<$nbLignesRec; $i_rec++) {
|
||||
$tabDataToInsertR=array('insSIREN' => $insSIREN,
|
||||
'insNIC' => $insNIC,
|
||||
'motNOM' => $tabNOM[$i_rec],
|
||||
'shxNOM' => soundex2($tabNOM[$i_rec]),
|
||||
'phxNOM' => phonex($tabNOM[$i_rec]),
|
||||
'motADR' => $tabADR[$i_rec],
|
||||
'shxADR' => soundex2($tabADR[$i_rec]),
|
||||
'phxADR' => phonex($tabADR[$i_rec]),
|
||||
'insNUMVOIE' => $insNUMVOIE,
|
||||
'insTYPVOIE' => $insTYPVOIE,
|
||||
'CodeInseeCommune'=> $CodeInseeCommune,
|
||||
'insLIBCOM' => $insLIBCOM,
|
||||
'insSIEGE' => $insSIEGE,
|
||||
'insAPET700' => $insAPET700,
|
||||
'insAPET31' => $insAPET31,
|
||||
'insCJ' => $insCJ,
|
||||
'insAPEN700' => $insAPEN700,
|
||||
'insAPEN31' => $insAPEN31,
|
||||
'SPEACT' => $bilSPEACT,
|
||||
'SORLJ_N' => $bilSORLJ_N,
|
||||
'SOEVT' => $bilSOEVT,
|
||||
'SOETEL' => $bilSOETEL,
|
||||
'SOEFAX' => $bilSOEFAX,
|
||||
'SODTEN_D' => $bilSODTEN_D );
|
||||
$ret=mysql_insert('insee_recherche', $tabDataToInsertR);
|
||||
}
|
||||
|
||||
**********/
|
||||
$tabDataToInsert=array(
|
||||
'insSIREN' => $insSIREN,
|
||||
'insNIC' => $insNIC,
|
||||
'insNOMEN' => $insNOMEN,
|
||||
'insNOMET' => $insNOMET,
|
||||
'insSIGLE' => $insSIGLE,
|
||||
'insCADR' => $insCADR,
|
||||
'insNUMVOIE' => $insNUMVOIE,
|
||||
'insINDREP' => $insINDREP,
|
||||
'insTYPVOIE' => $insTYPVOIE,
|
||||
'insLIBVOIE' => $insLIBVOIE,
|
||||
'insDISTSP' => $insDISTSP,
|
||||
'insACHPOSTE' => $insACHPOSTE,
|
||||
'insZR' => $insZR,
|
||||
'insRPET' => $insRPET,
|
||||
'insDEPET' => $insDEPET,
|
||||
'insARRONET' => $insARRONET,
|
||||
'insCTONET' => $insCTONET,
|
||||
'insCOMET' => $insCOMET,
|
||||
'insLIBCOM' => $insLIBCOM,
|
||||
'insDU' => $insDU,
|
||||
'insTU' => $insTU,
|
||||
'insU7U' => $insU7U,
|
||||
'insCODPOS' => $insCODPOS,
|
||||
'insILOT' => $insILOT,
|
||||
'insTCD' => $insTCD,
|
||||
'insZEMET' => $insZEMET,
|
||||
'insCODEVOIE' => $insCODEVOIE,
|
||||
'insAPET700' => $insAPET700,
|
||||
'insAPET31' => $insAPET31,
|
||||
'insSIEGE' => $insSIEGE,
|
||||
'insTEFET' => $insTEFET,
|
||||
'insEFETCENT' => $insEFETCENT,
|
||||
'insORIGINE' => $insORIGINE,
|
||||
'insDCRET' => $insDCRET,
|
||||
'insMMINTRET' => $insMMINTRET,
|
||||
'insNATURE' => $insNATURE,
|
||||
'insSAISONAT' => $insSAISONAT,
|
||||
'insMODET' => $insMODET,
|
||||
'insDAPET' => $insDAPET,
|
||||
'insDEFET' => $insDEFET,
|
||||
'insSINGT' => $insSINGT,
|
||||
'insAUXILT' => $insAUXILT,
|
||||
'insEAEANT' => $insEAEANT,
|
||||
'insEAEAPET' => $insEAEAPET,
|
||||
'insEAESEC1T' => $insEAESEC1T,
|
||||
'insEAESEC2T' => $insEAESEC2T,
|
||||
'insCJ' => $insCJ,
|
||||
'insTEFEN' => $insTEFEN,
|
||||
'insEFENCENT' => $insEFENCENT,
|
||||
'insAPEN700' => $insAPEN700,
|
||||
'insAPEN31' => $insAPEN31,
|
||||
'insAPRM' => $insAPRM,
|
||||
'insTCA' => $insTCA,
|
||||
'insSEXE' => $insSEXE,
|
||||
'insRECME' => $insRECME,
|
||||
'insDAPEN' => $insDAPEN,
|
||||
'insDEFEN' => $insDEFEN,
|
||||
'insDCREN' => $insDCREN,
|
||||
'insMMINTREN' => $insMMINTREN,
|
||||
'insMONOACT' => $insMONOACT,
|
||||
'insMODEN' => $insMODEN,
|
||||
'insORDIN' => $insORDIN,
|
||||
'insEAEANN' => $insEAEANN,
|
||||
'insEAEAPEN' => $insEAEAPEN,
|
||||
'insEAESEC1N' => $insEAESEC1N,
|
||||
'insEAESEC2N' => $insEAESEC2N,
|
||||
'insEAESEC3N' => $insEAESEC3N,
|
||||
'insEAESEC4N' => $insEAESEC4N,
|
||||
'insNBTOA' => $insNBTOA,
|
||||
'insTCAEXPOR' => $insTCAEXPOR,
|
||||
'insREGIMP' => $insREGIMP,
|
||||
'insMONOREG' => $insMONOREG,
|
||||
'insRPEN' => $insRPEN,
|
||||
'insDEPCOMEN' => $insDEPCOMEN,
|
||||
'insVMAJ' => $insVMAJ,
|
||||
'insVMAJ1' => $insVMAJ1,
|
||||
'insVMAJ2' => $insVMAJ2,
|
||||
'insVMAJ3' => $insVMAJ3,
|
||||
'SPEACT' => $bilSPEACT,
|
||||
'SORLJ_N' => $bilSORLJ_N,
|
||||
'SOEVT' => $bilSOEVT,
|
||||
'SOROL' => $bilSOROL,
|
||||
'SODJL_D' => $bilSODJL_D,
|
||||
'SOEDRQ' => $bilSOEDRQ,
|
||||
'SOEDRN_X' => $bilSOEDRN_X,
|
||||
'SOEDRD_D' => $bilSOEDRD_D,
|
||||
'SOEDRL_N' => $bilSOEDRL_N,
|
||||
'SORSNC' => $bilSORSNC,
|
||||
'SORSNO' => $bilSORSNO,
|
||||
'SOETEL' => $bilSOETEL,
|
||||
'SOEFAX' => $bilSOEFAX,
|
||||
'SODTEN_D' => $bilSODTEN_D,
|
||||
);
|
||||
$insVMAJ3 = (int) substr($a,450, 1);
|
||||
|
||||
switch($insVMAJ)
|
||||
{
|
||||
case 'S':
|
||||
// Annule et remplace le siège précédent
|
||||
// if ($iinsee->addHisto($insSIREN, $insNIC)) {
|
||||
// $iinsee->removeInsee($insSIREN, $insNIC);
|
||||
$vmajS++;
|
||||
// }
|
||||
// else {
|
||||
// echo date ('Y/m/d - H:i:s') . " - ERREUR d'historisation du siret $insSIREN $insNIC !\r\n";
|
||||
// flush();
|
||||
// }
|
||||
break;
|
||||
case 'C':
|
||||
// Entrée d'un SIRET - Immatriculation d'un nouvel établissement
|
||||
$vmajC++;
|
||||
break;
|
||||
case 'F':
|
||||
// Etat final d'un SIRET modifié (après mise à jour)
|
||||
// if ($iinsee->addHisto($insSIREN, $insNIC)) {
|
||||
// $iinsee->removeInsee($insSIREN, $insNIC);
|
||||
// }
|
||||
$vmajF++;
|
||||
break;
|
||||
}
|
||||
|
||||
// $resultat=array_merge($resultat, array('Bodacc_Annee_Parution'=>$annee, 'Tri_User_Saisie'=>$_SESSION['user']));
|
||||
|
||||
$ret=$iDb->insert($db_table, $tabDataToInsert);
|
||||
if ($ret!=1) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ERREUR à l'insertion du siret $insSIREN $insNIC : $ret !\r\n";
|
||||
flush();
|
||||
}
|
||||
|
||||
break;
|
||||
case 'E':
|
||||
case 'I':
|
||||
// Requête de suppression
|
||||
// **********************
|
||||
// if ($iinsee->addHisto($insSIREN, $insNIC))
|
||||
// $iinsee->removeInsee($insSIREN, $insNIC);
|
||||
// else {
|
||||
// echo date ('Y/m/d - H:i:s') . " - ERREUR d'historisation du siret $insSIREN $insNIC !\r\n";
|
||||
// flush();
|
||||
// }
|
||||
switch($insVMAJ)
|
||||
{
|
||||
case 'E': // Suppression d'un SIRET - Cessation d'activité d'un établissement
|
||||
$vmajE++;
|
||||
break;
|
||||
case 'I': // Etat initial d'un SIRET modifié (avant mise à jour)
|
||||
$vmajI++;
|
||||
break;
|
||||
}
|
||||
case 'EOF':
|
||||
break;
|
||||
}
|
||||
/* if ($tabErreur) {
|
||||
echo date ('Y/m/d - H:i:s') . " - ATTENTION, ligne $nbLignes, problèmes pour le siret $insSIREN $insNIC !!!\r\n";
|
||||
print_array($tabErreur,0,"txt");
|
||||
flush();
|
||||
}
|
||||
*/
|
||||
// if ($nbLignes%20==0) sleep(1);
|
||||
// print_array($tabDataToInsert,0,'txt');
|
||||
unset($tabDataToInsert);
|
||||
}
|
||||
fclose ($fp);
|
||||
|
||||
$strUpdate='';
|
||||
|
||||
for ($j=$nbFichiers+1; isset($tabFichDate[$j]); $j++)
|
||||
$strUpdate.=$tabFichDate[$j].';';
|
||||
$tabDataToUpdate=array( 'VALEUR'=>$strUpdate,
|
||||
'CLE'=>'INSEE_FICHIERS_MAJ');
|
||||
// $iparam->setParamValeur($tabDataToUpdate);
|
||||
|
||||
$totI=$vmajS+$vmajC+$vmajF;
|
||||
$totS=$vmajE+$vmajI;
|
||||
|
||||
$messageInsertion.="Résumé du traitement du fichier n°$nbFichiers=$nomFichier du mois de $moisFichier !\r\n\r\n";
|
||||
$messageInsertion.="Nombre de nouvelles insertion: ".$totI."\r\n";
|
||||
$messageInsertion.=" - dont Changement de siège: ".$vmajS."\r\n";
|
||||
$messageInsertion.=" - dont Entrée d'un SIRET - Immatriculation d'un nouvel établissement: ".$vmajC."\r\n";
|
||||
$messageInsertion.=" - dont Etat final d'un SIRET modifié (après mise à jour): ".$vmajF."\r\n";
|
||||
|
||||
$messageSuppression.="Nombre de suppression: ".$totS."\r\n";
|
||||
$messageSuppression.=" - dont Suppression d'un SIRET - Cessation d'activité d'un établissement: ".$vmajE."\r\n";
|
||||
$messageSuppression.=" - dont Etat initial d'un SIRET modifié (avant mise à jour): ".$vmajI."\r\n\r\n";
|
||||
|
||||
echo date ('Y/m/d - H:i:s') ." - Nombre de nouvelles insertion: ".$totI."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - | dont Changement de siège: ".$vmajS."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - | dont Entrée d'un SIRET ou Immatriculation d'un nouvel établissement: ".$vmajC."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - | dont Etat final d'un SIRET modifié (après mise à jour): ".$vmajF."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - Nombre de suppression: ".$totS."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - | dont Suppression d'un SIRET ou Cessation d'activité d'un établissement: ".$vmajE."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - | dont Etat initial d'un SIRET modifié (avant mise à jour): ".$vmajI."\r\n";
|
||||
echo date ('Y/m/d - H:i:s') ." - Fin du traitement du fichier n°$nbFichiers=$nomFichier du mois de $moisFichier !\r\n\r\n";
|
||||
flush();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Création des index de recherche...\n";
|
||||
/*
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`motNOM`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`shxNOM`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`phxNOM`);");
|
||||
echo date ('Y/m/d - H:i:s')." - Création des index de NOM ok\n";
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`motADR`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`shxADR`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`phxADR`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`insNUMVOIE`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`insTYPVOIE`);");
|
||||
$ret=mysql_query("ALTER TABLE `insee_recherche` ADD INDEX (`CodeInseeCommune`);");
|
||||
echo date ('Y/m/d - H:i:s')." - Création des index d'ADRESSE ok\n";
|
||||
*/
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX idxSiret(insSIREN, insNIC);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (insSIEGE);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (insAPET700);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (insAPET31);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (insCJ);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (insAPEN700);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (insAPEN31);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (SPEACT);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (SORLJ_N);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (SOEVT);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (SOETEL);");
|
||||
$ret=$iDb->query("ALTER TABLE $db_table ADD INDEX (SOEFAX);");
|
||||
|
||||
echo date ('Y/m/d - H:i:s')." - Création des index de recherche terminée !\n";
|
||||
|
||||
// Mise à jour de la table PARAM
|
||||
// -----------------------------
|
||||
// 3 - pour la fin d'exécution du traitement en cours
|
||||
$tabDataToUpdate=array('VALEUR'=>0,
|
||||
'CLE'=>'INSEE_MAJ_ENCOURS');
|
||||
// $iparam->setParamValeur($tabDataToUpdate);
|
||||
$heureFin=date('H:i:s');
|
||||
|
||||
$tabDataToUpdateTraitement=array('NUM'=>$numScript,
|
||||
'DATE_JOUR'=>$dateJour,
|
||||
'HEURE_DEBUT'=>$heureDebut,
|
||||
'HEURE_FIN'=>$heureFin,
|
||||
'CODE_RETOUR'=>1,
|
||||
'NB_MAIL'=>1,
|
||||
'RESUME_EXEC'=>"traitement achevé correctement");
|
||||
// $itraitement->setTraitement($tabDataToUpdateTraitement);
|
||||
|
||||
$tabDataMail= array('MAIL_OBJET'=>$sujetMail,
|
||||
'MAIL_CORPS'=>"Traitement correct: \r\n".$messageInsertion."\r\n ".$messageSuppression."\r\n");
|
||||
// $emailBatch=new EMailBatch($tabDataMail);
|
||||
// $emailBatch->mailBatica($numScript);
|
||||
echo date ('Y/m/d - H:i:s') . " - Fin correcte du traitement.\r\n";
|
||||
exit();
|
||||
|
||||
function ecrireFichier($fichier,$texte){
|
||||
$fp = fopen($fichier, "a");
|
||||
fwrite($fp, $texte."\r\n");
|
||||
fclose ($fp);
|
||||
}
|
||||
|
||||
function valideSiret($SIRET) {
|
||||
if (!is_numeric($SIRET))
|
||||
return false;
|
||||
|
||||
$somme=0;
|
||||
for ($i=0; $i<=12; $i+=2) { // Traitement PAIR
|
||||
$var_tmp=(string)(2*((integer)substr($SIRET,$i,1)));
|
||||
$som_tmp=0;
|
||||
for($j=0;$j<strlen($var_tmp);$j++)
|
||||
$som_tmp+=(integer)substr($var_tmp,$j,1);
|
||||
$somme+=$som_tmp;
|
||||
}
|
||||
for ($i=1; $i<=13; $i+=2) // Traitement IMPAIR
|
||||
$somme+=(integer)substr($SIRET,$i,1);
|
||||
|
||||
if ((integer)($somme/10)!=($somme/10))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
@ -1,259 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
$eol="\n";
|
||||
$dossierBocc='/root/download/jo/bocc';
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
$tmin=5;
|
||||
$tmax=30;
|
||||
$lastJO=true;
|
||||
$annee=$numJO=$debug=false;
|
||||
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère les annonces des Conventions Collectives sur le site des JO.
|
||||
|
||||
Sans aucun paramètre, récupération du dernier JO CC.
|
||||
Sinon:
|
||||
-a:YYYY Année entière à récupérer (1ère année possible = 2005)
|
||||
-j:YYYYNN Année en Numéro de publication dans l'année (1er possible 200501 pour 2005/0001)
|
||||
-l Dernier JO uniquement (*)
|
||||
-n:X Intervalle MIN en secondes entre 2 requêtes aux JO (défaut=$tmin)
|
||||
-i:X \" MAX \" \" \" \" \" \" (défaut=$tmax)
|
||||
-d Mode débug (Verbosité max et aucun délais entre 2 requêtes)
|
||||
";
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $lastJO=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'a':
|
||||
$annee=substr($argv[$i],3,4);
|
||||
$lastJO=false;
|
||||
break;
|
||||
case 'j':
|
||||
$numJO=substr($argv[$i],3,6);
|
||||
$lastJO=false;
|
||||
break;
|
||||
case 'n':
|
||||
$tmin=trim(substr($argv[$i],3))*1;
|
||||
if ($tmin<2) $tmin=2;
|
||||
break;
|
||||
case 'i':
|
||||
$tmax=trim(substr($argv[$i],3))*1;
|
||||
if ($tmax<2) $tmax=2;
|
||||
break;
|
||||
case 'l':
|
||||
$lastJO=true;
|
||||
break;
|
||||
case 'd':
|
||||
$debug=true;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') .' - DEBUT du script'. $eol;
|
||||
flush();
|
||||
|
||||
//randsleep($tmin, $tmax);
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('jo', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
|
||||
|
||||
/** Récupération de la dernière année de parution **/
|
||||
$page_num=0;
|
||||
while (true) {
|
||||
$referer='http://www.afdcc.com/fr/asso_annuaire.php?id_menu=1&id_ss_menu=4';
|
||||
$url='http://www.afdcc.com/fr/asso_annuaire_liste.php?id_menu=1&id_ss_menu=4&caractere=&rnom=&rsociete=&rape=&rdep=&page='.$page_num;
|
||||
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.afdcc.com');
|
||||
$body=$page['body'];
|
||||
$tabAdh=explode('<td valign="top" class="style_11" width="360"><a class="lien_09" href="', $body);
|
||||
|
||||
/** Boucle sur la liste des adhérents de la page
|
||||
**/
|
||||
for ($i=1; isset($tabAdh[$i]); $i++) {
|
||||
//if (!preg_match('/<td colspan="2" class="style_07" align="center">/i', $tabAdh[$i])) {
|
||||
$pos=strpos($tabAdh[$i], '">');
|
||||
$urlAdh=substr($tabAdh[$i],0,$pos);
|
||||
preg_match('/=&NADH=(.*)&PHPSESSID=/i', $urlAdh, $matches);
|
||||
$numAdh=$matches[1];
|
||||
$posFin=strpos($tabAdh[$i], '</a></td>');
|
||||
$nom=trim(substr($tabAdh[$i],$pos+2, $posFin-($pos+2)));
|
||||
preg_match('/<td valign="top" class="style_11" width="140" align="right">(.*)<\/td>/i', $tabAdh[$i], $matches);
|
||||
$tel=trim($matches[1]);
|
||||
preg_match('/<td valign="top" class="style_08" width="360"><a class="lien_07" href="mailto:(.*)">(.*)<\/a><\/td>/i', $tabAdh[$i], $matches);
|
||||
$mail=trim($matches[1]);
|
||||
echo date ('Y/m/d - H:i:s') ." - Page $page_num/92, adherent $i ($numAdh), $nom". $eol;
|
||||
|
||||
/* Récupération des informations sur l'adhérent */
|
||||
$url2='http://www.afdcc.com/fr/'.html_entity_decode($urlAdh);
|
||||
//die('je recherche : '.$url2);
|
||||
randsleep($tmin, $tmax);
|
||||
$page=getUrl($url2, '', '', $url, false, 'www.afdcc.com');
|
||||
$body=$page['body'];
|
||||
preg_match_all('/<td class="style_08" width="360" valign="top">(.*)<\/td>/Uis', $body, $matches);
|
||||
$tabTmp=$matches[1];
|
||||
$tabTmp2=explode('-', $tabTmp[0]);
|
||||
$naf=trim($tabTmp2[0]);
|
||||
unset($tabTmp2[0]);
|
||||
$entrep=trim(implode('-',$tabTmp2));
|
||||
$tabAdherents=array( //'url'=>$urlAdh,
|
||||
'num'=>$numAdh,
|
||||
'nom'=>$nom,
|
||||
'tel'=>$tel,
|
||||
'mail'=>$mail,
|
||||
'naf'=>$naf, // 518M - METTLER TOLEDO
|
||||
'entrep'=>$entrep,
|
||||
'fct'=>$tabTmp[1], // CREDIT MANAGER
|
||||
'adr1'=>$tabTmp[2], // 18/20 Av. de la Pépinière
|
||||
'adr2'=>$tabTmp[3],
|
||||
'cp'=>$tabTmp[4], // 78220
|
||||
'ville'=>$tabTmp[5],// VIROFLAY
|
||||
//'tel2'=>$tabTmp[6], // TEL: 01 30 97 13 21
|
||||
'fax'=>trim(str_replace('FAX:','', $tabTmp[7])), // FAX: 01 30 97 16 84
|
||||
'membre'=>preg_replace('/-(.*)/','', str_replace("\n",'',str_replace("\r",'', $tabTmp[8])))
|
||||
// MEMBRE ACTIF - 890801
|
||||
);
|
||||
|
||||
$fp=fopen('/root/download/jo/afdcc.csv','a');
|
||||
fwrite($fp, implode(';', $tabAdherents)."\n");
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
$page_num++;
|
||||
randsleep($tmin, $tmax);
|
||||
if ($page_num==93) break;
|
||||
}
|
||||
|
||||
print_r($tabAdherents);
|
||||
die();
|
||||
//<td colspan="2" class="style_07" align="center"> 1 - <a href="./asso_annuaire_liste.php?id_menu=13&id_ss_menu=&caractere=&rnom=&rsociete=&rape=&rdep=&page=1&PHPSESSID=81c09a8ac34bcd383fb6be2bb60e9210" class="lien_03">2</a> - <a href="./asso_annuaire_liste.php?id_menu=13&id_ss_menu=&caractere=&rnom=&rsociete=&rape=&rdep=&page=2&PHPSESSID=81c09a8ac34bcd383fb6be2bb60e9210" class="lien_03">3</a> <a href="asso_annuaire_liste.php?id_menu=13&id_ss_menu=&caractere=&rnom=&rsociete=&rape=&rdep=&page=1&PHPSESSID=81c09a8ac34bcd383fb6be2bb60e9210"><img src="images/fleche_apres.jpg" border="0" alt="Suivant" /></a> <a href="asso_annuaire_liste.php?id_menu=13&id_ss_menu=&caractere=&rnom=&rsociete=&rape=&rdep=&page=92&PHPSESSID=81c09a8ac34bcd383fb6be2bb60e9210"><img src="images/fleches_apres.jpg" border="0" alt="Dernière page" /></a></td>
|
||||
die();
|
||||
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
if ($debug) {
|
||||
echo date('Y/m/d - H:i:s') . ' - Cookie : '. trim($cookie) . $eol;
|
||||
$tmin=1;
|
||||
$tmax=2;
|
||||
}
|
||||
$derAnneeParution=@getTextInHtml($body, '<a calss="blue" href="#" onclick="submitBoccByYear(\'', 'ByYear(\'', '\')');
|
||||
if ($debug || $annee) {
|
||||
echo date('Y/m/d - H:i:s') . ' - Dernière année de parution = '. $derAnneeParution . $eol;
|
||||
if ($annee) {
|
||||
$derAnneeParution=$annee;
|
||||
echo date('Y/m/d - H:i:s') . ' - Année de parution demandée = '. $derAnneeParution . $eol;
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupération de la liste des JO CC de l'année **/
|
||||
randsleep($tmin, $tmax);
|
||||
$postData=array('yearSearch'=>$derAnneeParution, 'idcc'=>'');
|
||||
$page=getUrl($url, $cookie, $postData, $referer, false, 'www.journal-officiel.gouv.fr');
|
||||
$bodyL=$page['body'];
|
||||
$posFin=0;
|
||||
|
||||
while(true)
|
||||
{ // Boucle sur les JO CC de l'année
|
||||
|
||||
$strParution=getTextInHtml($bodyL, '<a href="#" class="blue" onclick="submitBoccByBulletin(\'', 'ByBulletin(\'', '</a>',0,0,1,1,&$posFin);
|
||||
|
||||
if (!preg_match('/(.*)\'\);">(.*) du (.*)/i', $strParution, $matches)) {
|
||||
if ($strParution=='') break; // On est arrivée à la fin de la liste des JO CC de l'année
|
||||
else die (date('Y/m/d - H:i:s') . ' - ERREUR : Expression régulière impossible sur '. $strParution . $eol);
|
||||
}
|
||||
|
||||
$idCC = $matches[1];
|
||||
$numCC = $matches[2];
|
||||
$numCC2= substr($numCC,0,4).substr($numCC,7,2); // 2005/0004 ==> 200504
|
||||
$dateCC= $matches[3];
|
||||
|
||||
if ($numJO) if ($numJO<>$numCC2) continue;
|
||||
|
||||
$dateCCdb=substr($dateCC,6,4).'-'.substr($dateCC,3,2).'-'.substr($dateCC,0,2);
|
||||
if ($debug) echo date('Y/m/d - H:i:s') . " - JO CC n°$numCC du $dateCC ($idCC)$eol";
|
||||
echo date('Y/m/d - H:i:s') . " - JO CC n°$numCC du $dateCC ($idCC)$eol";
|
||||
|
||||
randsleep($tmin, $tmax);
|
||||
$postData=array('yearSearchB'=>$derAnneeParution, 'bulletinSearch'=>$idCC);
|
||||
$page=getUrl($url, $cookie, $postData, $referer, false, 'www.journal-officiel.gouv.fr');
|
||||
$body=$page['body'];
|
||||
$ann=array();
|
||||
$ann['TRA']=@getTextInHtml($body, 'name="TRA">', 'colspan="3"', 'name="AGR">');
|
||||
$ann['AGR']=@getTextInHtml($body, 'name="AGR">', 'colspan="3"', '</td>');
|
||||
foreach($ann as $type=>$annonce) {
|
||||
$tab=explode('<a href="#" class="bleu" onclick="submitBocc', $annonce);
|
||||
$nbAnn=count($tab)-1;
|
||||
|
||||
$AnnDb=mysql_select('conv', 'count(*)', "Date_Parution='$dateCCdb' AND ministere='$type'");
|
||||
$nbAnnDb=$AnnDb[0][0];
|
||||
if ($nbAnnDb==$nbAnn) {
|
||||
echo date('Y/m/d - H:i:s') ." - Toutes les annonces du JOCC $type du $dateCC sont en base$eol";
|
||||
continue;
|
||||
}
|
||||
else echo date('Y/m/d - H:i:s') . " - JO CC $type n°$numCC du $dateCC : $nbAnn annonce(s)$eol";
|
||||
|
||||
for($j=1; isset($tab[$j]); $j++) {
|
||||
$idAnn=@getTextInHtml($tab[$j], 'ByAnnonce(', "'", "');");
|
||||
$urlAnn=str_replace('"','',trim(@getTextInHtml($tab[$j], 'href="', '="', 'target="')));
|
||||
$nomCC=utf8_decode(trim(strtr(html_entity_decode(@getTextInHtml($tab[$j], '<b>', '>', '</b>')), ':'.chr(160), ' ')));
|
||||
$infoCC=utf8_decode(trim(str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($tab[$j], '</b>', '>', '<br>')))));
|
||||
randsleep($tmin, $tmax);
|
||||
$pdf=file_get_contents('http://www.journal-officiel.gouv.fr'.$urlAnn);
|
||||
if (!$pdf) echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de téléchargement du PDF '. $urlAnn .
|
||||
" pour le JO CC n°$numCC du $dateCC, Annonce $type $j $idAnn : $nomCC.$eol";
|
||||
else {
|
||||
$fp=@fopen($dossierBocc.'/'.basename($urlAnn), 'w');
|
||||
if (!fwrite($fp, $pdf) || !$fp)
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($urlAnn) .
|
||||
" pour le JO CC n°$numCC du $dateCC, Annonce $type $j $idAnn : $nomCC.$eol";
|
||||
@fclose($fp);
|
||||
}
|
||||
exec('pdftohtml -q -noframes '.$dossierBocc.'/'.basename($urlAnn).' tmp.html');
|
||||
$html=str_replace('<META name="generator" content="pdftohtml 0.36">', '', file_get_contents('./tmp.html'));
|
||||
$txt=strip_tags($html);
|
||||
$numBrochure=trim(substr(str_replace('o','',@getTextInHtml(strtolower($txt), 'brochure', 'n', 'convention')),0,5));
|
||||
preg_match_all('/IDCC.*:.*([0-9]{1,4})/', $txt, $matches);
|
||||
$tabIdcc=array(); // IDCC : 1880
|
||||
foreach($matches[0] as $m=>$idcc) $tabIdcc[]=trim(strtr($idcc, 'IDCC:', ' '));
|
||||
$tabIdcc=array_unique($tabIdcc);
|
||||
echo date('Y/m/d - H:i:s') . " - JO CC n°$numCC du $dateCC, Annonce $type n°$j, Brochure n°$numBrochure ($idAnn) : ". substr($nomCC,0, 20).$eol;
|
||||
$tabAnn=array( 'annee' =>$derAnneeParution,
|
||||
'idCC' =>$idCC,
|
||||
'numCC' =>str_replace('/00','',$numCC),
|
||||
'numBrochure'=>$numBrochure,
|
||||
'listeCC'=>implode(';', $tabIdcc),
|
||||
'Date_Parution'=>$dateCCdb,
|
||||
'ministere'=>$type, // Remplacer par ministère
|
||||
'idAnnCC'=>$idAnn,
|
||||
'urlAnn'=>$urlAnn,
|
||||
'nomCC' =>$nomCC,
|
||||
'infoCC'=>$infoCC,
|
||||
'annonce'=>$html);
|
||||
if (mysql_insert('conv', $tabAnn))
|
||||
echo date('Y/m/d - H:i:s') .' - Annonce enregistrée avec succès dans la base !'. $eol;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
}
|
||||
if (!$annee) break;
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
|
||||
?>
|
@ -1,26 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
set_time_limit(3600);
|
||||
|
||||
/* création d'une nouvelle ressource CURL
|
||||
$ch = curl_init();
|
||||
// configuration de l'URL et d'autres options
|
||||
curl_setopt($ch, CURLOPT_URL, "http://www.otbm.com/");
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$str=curl_exec($ch);
|
||||
curl_close($ch);
|
||||
*/
|
||||
for ($i=0; $i<100/*157*/; $i++)
|
||||
{
|
||||
if ($i<10) $num='00'.$i;
|
||||
elseif ($i<100) $num='0' .$i;
|
||||
else $num=$i;
|
||||
|
||||
$balo = 'http://www.journal-officiel.gouv.fr/balo/'.$num.'_monte_final.PDF';
|
||||
if (!file_exists('/root/download/jo/balo/'.$num.'_monte_final.PDF')) {
|
||||
exec('cd /root/download/jo/balo ; wget '.$balo);
|
||||
echo date("Y/m/d - H:i:s") . " - Balo $num téléchargé.\n";
|
||||
} else echo date("Y/m/d - H:i:s") . " - Balo $num déjà téléchargé !\n";
|
||||
}
|
||||
?>
|
@ -1,198 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
$eol="\n";
|
||||
$repBalo='/root/download/jo/balo/'; // Avec slash final SVP !!!
|
||||
$repBaloComp='/root/download/jo/balo/full/'; // Avec slash final SVP !!!
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - DEBUT du script'. $eol;
|
||||
flush();
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
randsleep();
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('jo', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
|
||||
|
||||
function getInfosAnnonceBalo($annonceHtml) {
|
||||
$tabAnnBalo=array();
|
||||
//Société : <b>ARGAN</b><br/>
|
||||
$tabAnnBalo['Societe_Nom']=trim(str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml,'Société : <b>', '<b>', '</b>'))));
|
||||
//if ($tabAnnBalo['Societe_Nom']=='')
|
||||
// $tabAnnBalo['Societe_Nom']=str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml,'<p>BOAMF: <b>', '<b>', '</b>')));
|
||||
//<p>RCS : <b>393430608 </b>
|
||||
$tabAnnBalo['Societe_Rcs']=trim(@getTextInHtml($annonceHtml, '<p>RCS : <b>', '<b>', '</b>'));
|
||||
// Catégorie : <b><i> BULLETIN OFFICIEL DE L'AMF </i></b><br/>
|
||||
$tabAnnBalo['Categorie']=trim(str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, 'Catégorie : <b><i>', '<i>', '</i>'))));
|
||||
// N° d'affaire : <b>0712845</b><br />
|
||||
$tabAnnBalo['Num_Affaire']=@getTextInHtml($annonceHtml, 'N° d\'affaire : <b>', '<b>', '</b>');
|
||||
// Paru le : <b>08-08-2007</b> (Parution n°<b>95</b>) <br />
|
||||
$tmp=@getTextInHtml($annonceHtml, 'Paru le : <b>', '<b>', '</b>');
|
||||
$tabAnnBalo['Date_Parution']=substr($tmp,6,4).'-'.substr($tmp,3,2).'-'.substr($tmp,0,2);
|
||||
// (Parution n°<b>95</b>) <br />
|
||||
$tabAnnBalo['Num_Parution']=@getTextInHtml($annonceHtml, '(Parution n°<b>', '<b>', '</b>');
|
||||
/*<p>Annonce au format
|
||||
<a class="grisbleu" href="http://balo.journal-officiel.gouv.fr/html/2007/0808/200708080712646.htm" target="_blank"><b>HTML</b></a> ou
|
||||
<a class="grisbleu" href="https://balo.journal-officiel.gouv.fr/pdf/2007/0808/200708080712646.pdf" target="_blank"><b>PDF</b></a></p>*/
|
||||
$tabAnnBalo['Url_Annonce_Html']=str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<p>Annonce au format', 'href="', '" target="_blank"><b>HTML</b></a>')));
|
||||
$tabAnnBalo['Url_Annonce_Pdf']=str_replace('https://', 'http://', str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, 'target="_blank"><b>HTML</b></a> ou', 'href="', '" target="_blank"><b>PDF</b></a></p>'))));
|
||||
|
||||
return $tabAnnBalo;
|
||||
}
|
||||
$page=getUrl('http://www.journal-officiel.gouv.fr/balo/', '', '', 'http://www.journal-officiel.gouv.fr/jahia/Jahia/pid/1', false, 'www.journal-officiel.gouv.fr');
|
||||
$body=$page['body'];
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
echo date('Y/m/d - H:i:s') .' - Cookie = "'. trim($cookie) .'"' . $eol;
|
||||
$dateDerParution=@getTextInHtml($body, 'Dernière parution</A> <span style="font-size:10px">(', '10px">(', ')</span></P>');
|
||||
randsleep();
|
||||
|
||||
//echo date('Y/m/d - H:i:s') . ' - Dernière parution du BALO le '. $dateDerParution . ' !'. $eol;
|
||||
//print_r($page);
|
||||
//die();
|
||||
/*
|
||||
$page=getUrl('http://www.journal-officiel.gouv.fr/jahia/Jahia/balo', '', '', 'http://www.journal-officiel.gouv.fr/jahia/Jahia/pid/1', false, 'www.journal-officiel.gouv.fr');
|
||||
//print_r($page);
|
||||
//die();
|
||||
$body=$page['body'];
|
||||
//
|
||||
//echo $cookie;
|
||||
//$posFin=0;
|
||||
//$urlDerParution=getTextInHtml($body, 'appid=1315_38&appparams=http%3A%2F%2Fwww.journal-officiel.gouv.fr%2Fwebclipping_myjahiasite%2Fservlet%2Fwebclip%3Fjahia_url_web_clipping%3Dhttp%3A%2F%2Fbalo.journal-officiel.gouv.fr%2FListeResultBalo.asp', '<a href="', '" class="rouge" >> Dernière parution</a> <small>', true,false,true,true,&$posFin);
|
||||
$dateDerParution=getTextInHtml($body, '" class="rouge" >> Dernière parution</a> <small>', '<small>(', ')</small></p></td>');
|
||||
|
||||
*/
|
||||
$url='http://www.journal-officiel.gouv.fr/balo/index.php?ACTION=showLast';
|
||||
$page=getUrl($url, $cookie, '', 'http://www.journal-officiel.gouv.fr/balo/', false, 'www.journal-officiel.gouv.fr');
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
$ctx=@getTextInHtml($body, '<a href="index.php?ctx=', 'ctx=', '&page=');
|
||||
echo date('Y/m/d - H:i:s') .' - Clé Ctx = "'. $ctx .'"' . $eol;
|
||||
|
||||
$nbAnnonces=@getTextInHtml($body, '<h1>RÉSULTAT DE LA RECHERCHE :</h1>', '<strong>', 'annonce(s) correspondent');
|
||||
//$dateDerParution=@getTextInHtml($body, '<input type="hidden" name="BPA_D_D" value="', ' value="', '">');
|
||||
$nbPages=ceil($nbAnnonces/10);
|
||||
echo date('Y/m/d - H:i:s') .' - Derniere parution BALO le '. $dateDerParution .' de '. $nbAnnonces .' annonces ('. $nbPages .' pages)'. $eol;
|
||||
//die();
|
||||
// On recherche si nous n'avons pas déjà toutes ces annonces en base !
|
||||
$dateDb=substr($dateDerParution,6,4).'-'.substr($dateDerParution,3,2).'-'.substr($dateDerParution,0,2);
|
||||
$AnnDb=mysql_select('balo', 'count(*)', "Date_Parution='$dateDb'");
|
||||
$nbAnnDb=$AnnDb[0][0];
|
||||
|
||||
if ($nbAnnDb==$nbAnnonces) {
|
||||
echo date('Y/m/d - H:i:s') .' - Toutes les annonces du '. $dateDerParution .' sont en base !'. $eol;
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
die(); // Penser à supprimer le commentaire devant ce die() !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
}
|
||||
if ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
|
||||
$message=date('Y/m/d - H:i:s') .' - ERREUR : Il n\'y a que '. $nbAnnDb .' annonces en base sur les '. $nbAnnonces .' annonces présentes au JO BALO du '. $dateDerParution .' !'. $eol;
|
||||
echo $message;
|
||||
mail('buzuk@free.fr', 'JO BALO', $message);
|
||||
mail('ylenaour@scores-decisions.com', 'JO BALO', $message);
|
||||
mail('lenaoury@gmail.com', 'JO BALO', $message);
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
die();
|
||||
}
|
||||
|
||||
//<a href="index.php?ctx=eJyLz2FIK2KIL8tjSErMyWeIL2RQSEksSS1ILCotyczPS8svygVybQ0s9IHIyMDAnEshOb!oIL8IKKpfUpSaaqUUkl!gxAAAWLsXMA__&page=2">
|
||||
|
||||
$tabAnnonces=explode('<div class="hr"><hr/></div>', $page['body']);
|
||||
//print_r($tabAnnonces);
|
||||
//die();
|
||||
//$tabTmp =explode('<br clear="all" />', $tabAnnonces[0]);
|
||||
//$tabAnnonces[0]=$tabTmp[2];
|
||||
for ($j=1; $j<11 && isset($tabAnnonces[$j]); $j++)
|
||||
$tabAnnBalo[($j-1)]=$tabAnnonces[$j];
|
||||
randsleep();
|
||||
|
||||
for ($i=2; $i<=$nbPages; $i++)
|
||||
{
|
||||
/* $postData=array('original_method'=>'post',
|
||||
'data'=>1,
|
||||
'HI_PAGE'=>$i,
|
||||
'HI_COMPTEUR'=>$nbAnnonces,
|
||||
'BSA_SOCIETE_L'=>'',
|
||||
'BSA_RCS_NO'=>'',
|
||||
'BPA_D_D'=>$dateDerParution,
|
||||
'BPA_D_F'=>$dateDerParution,
|
||||
'BAN_BTA_C'=>'',
|
||||
'CB_SEARCH_MODE'=>0);*/
|
||||
$url='http://www.journal-officiel.gouv.fr/balo/index.php?ctx='.$ctx.'&page='.$i;
|
||||
$page=getUrl($url, $cookie, '', $referer, false, 'www.journal-officiel.gouv.fr');
|
||||
$referer=$url;
|
||||
//print_r($page);
|
||||
$tabAnnonces=explode('<div class="hr"><hr/></div>', $page['body']);
|
||||
//$tabTmp =explode('<br clear="all" />', $tabAnnonces[0]);
|
||||
//$tabAnnonces[0]=$tabTmp[2];
|
||||
/*for ($j=0; $j<25; $j++) {
|
||||
$k=$j+(25*($i-1));
|
||||
if ($k<$nbAnnonces)
|
||||
$tabAnnBalo[$k]=$tabAnnonces[$j];
|
||||
}*/
|
||||
for ($j=1; $j<11; $j++) {
|
||||
//$k=$j+(10*($i-1));
|
||||
$k=10*($i-1)+($j-1);
|
||||
if ($k<$nbAnnonces)
|
||||
$tabAnnBalo[$k]=$tabAnnonces[$j];
|
||||
}
|
||||
randsleep();
|
||||
}
|
||||
|
||||
//print_r($tabAnnBalo);
|
||||
//die();
|
||||
|
||||
for ($i=0; $i<$nbAnnonces; $i++){
|
||||
$infoAnnBalo=getInfosAnnonceBalo($tabAnnBalo[$i]);
|
||||
$anneeParution=substr($infoAnnBalo['Date_Parution'],0,4);
|
||||
echo date('Y/m/d - H:i:s') .' - Annonce n°'. $i .', Siren = '. $infoAnnBalo['Societe_Rcs'] .$eol;
|
||||
|
||||
$page=getUrl($infoAnnBalo['Url_Annonce_Html'], '', '', '', false, 'balo.journal-officiel.gouv.fr');
|
||||
//echo '<table border="1"><tr><td>'. $page['body'] .'</td></tr></table><hr/>';
|
||||
$infoAnnBalo['Annonce_Html']=$page['body'];
|
||||
randsleep();
|
||||
|
||||
$page=getUrl($infoAnnBalo['Url_Annonce_Pdf'], '', '', '', false, 'balo.journal-officiel.gouv.fr');
|
||||
//echo '<br>Fichier PDF ('. $page['code'] .'): '. $url_pdf . '<br/>';
|
||||
//print_r($page['header']);
|
||||
@mkdir($repBalo.$anneeParution);
|
||||
$fp=@fopen($repBalo.$anneeParution.'/'.basename($infoAnnBalo['Url_Annonce_Pdf']), 'w');
|
||||
if (!fwrite($fp, $page['body']) || !$fp)
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['Url_Annonce_Pdf']) .' pour le SIREN '. $infoAnnBalo['Societe_Rcs'] . $eol;
|
||||
@fclose($fp);
|
||||
$infoAnnBalo['Annonce_Pdf']='';//$page['body'];
|
||||
|
||||
randsleep();
|
||||
|
||||
if (mysql_insert('balo', $infoAnnBalo))
|
||||
echo date('Y/m/d - H:i:s') .' - Annonce enregistrée avec succès dans la base !'. $eol;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
|
||||
$numParution=$infoAnnBalo['Num_Parution'];
|
||||
}
|
||||
|
||||
/** Téléchargement du dernier balo complet en PDF
|
||||
**/
|
||||
$url = 'http://www.journal-officiel.gouv.fr/balo/'.sprintf("%03d", $numParution).'_monte_final.PDF';
|
||||
if (!file_exists($repBaloComp.$anneeParution.'_'.sprintf("%03d", $numParution).'_monte_final.PDF')) {
|
||||
randsleep();
|
||||
$page=getUrl($url, '', '', 'http://www.journal-officiel.gouv.fr/balo/', false, 'www.journal-officiel.gouv.fr');
|
||||
@mkdir($repBaloComp.$anneeParution);
|
||||
$fp=@fopen($repBaloComp.$anneeParution.'/'.$anneeParution.'_'.sprintf("%03d", $numParution).'_monte_final.PDF', 'w');
|
||||
if (!fwrite($fp, $page['body']) || !$fp)
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. $anneeParution.'_'.sprintf("%03d", $numParution).'_monte_final.PDF' .' du balo complet !' . $eol;
|
||||
@fclose($fp);
|
||||
echo date("Y/m/d - H:i:s") . ' - BALO complet n° '.sprintf("%03d", $numParution).'_monte_final.PDF téléchargé.'.$eol;
|
||||
} else
|
||||
echo date("Y/m/d - H:i:s") . ' - BALO complet n° '.sprintf("%03d", $numParution).'_monte_final.PDF déjà téléchargé.'.$eol;
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
|
||||
?>
|
@ -1,304 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
function htm2txt($str) {
|
||||
return trim(strip_tags( str_replace(chr(160), ' ',
|
||||
str_replace('œ', 'oe',
|
||||
str_replace('’', '\'', html_entity_decode($str, ENT_QUOTES))))));
|
||||
}
|
||||
|
||||
function getNextDate($dateCour) {
|
||||
$nextDate=date('Ymd', mktime(0, 0, 0, dateT('Ymd','m', $dateCour), dateT('Ymd','d', $dateCour)+7, dateT('Ymd','Y', $dateCour)));
|
||||
return $nextDate;
|
||||
}
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('jo', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
|
||||
|
||||
$tabCateg=array('06'=>'EMISSIONS ET COTATIONS - Valeurs françaises - Actions et parts',
|
||||
'09'=>'EMISSIONS ET COTATIONS - Valeurs françaises - Certificats d\'investissement',
|
||||
'10'=>'EMISSIONS ET COTATIONS - Valeurs françaises - Titres participatifs',
|
||||
'11'=>'EMISSIONS ET COTATIONS - Valeurs françaises - Bons, obligations et autres titres',
|
||||
'12'=>'EMISSIONS ET COTATIONS - Valeurs françaises - Bons d\'options sur titres et sur indices',
|
||||
'13'=>'EMISSIONS ET COTATIONS - Valeurs de la zone franc - Actions et parts',
|
||||
'14'=>'EMISSIONS ET COTATIONS - Valeurs de la zone franc - Bons et obligations',
|
||||
'15'=>'EMISSIONS ET COTATIONS - Valeurs européennes - Actions et parts',
|
||||
'16'=>'EMISSIONS ET COTATIONS - Organismes internationaux - Actions et parts',
|
||||
'17'=>'EMISSIONS ET COTATIONS - Organismes internationaux - Bons, obligations et autres titres',
|
||||
'19'=>'EMISSIONS ET COTATIONS - Valeurs étrangères - Actions et parts',
|
||||
'20'=>'EMISSIONS ET COTATIONS - Valeurs étrangères - Bons, obligations et autres titres',
|
||||
'21'=>'EMISSIONS ET COTATIONS - Valeurs étrangères - Bons d\'options sur titres et sur indices',
|
||||
'24'=>'CONVOCATIONS - Assemblées d\'actionnaires et de porteurs de parts',
|
||||
'26'=>'CONVOCATIONS - Assemblées de porteurs de certificats d\'investissement',
|
||||
'28'=>'CONVOCATIONS - Assemblées de porteurs de titres participatifs',
|
||||
'30'=>'CONVOCATIONS - Assemblées de porteurs de parts de fondateur',
|
||||
'33'=>'CONVOCATIONS - Assemblées d\'obligataires ou de porteurs de titres d\'emprunt',
|
||||
'36'=>'AUTRES OPERATIONS - Réduction de capital',
|
||||
'40'=>'AUTRES OPERATIONS - Regroupement d\'actions',
|
||||
'43'=>'AUTRES OPERATIONS - Offre de remboursement d\'obligations',
|
||||
'56'=>'AUTRES OPERATIONS - Décisions prises par des assemblées d\'obligataires et homologation de résolutions',
|
||||
'59'=>'AUTRES OPERATIONS - Désignation de teneur de comptes de titres nominatifs',
|
||||
'63'=>'AUTRES OPERATIONS - Fusions et scissions',
|
||||
'65'=>'AUTRES OPERATIONS - Liquidations',
|
||||
'74'=>'PUBLICATIONS PERIODIQUES - Sociétés commerciales et industrielles',
|
||||
'74B'=>'PUBLICATIONS PERIODIQUES - Sociétés commerciales et industrielles (comptes annuels)',
|
||||
'74C'=>'PUBLICATIONS PERIODIQUES - Sociétés commerciales et industrielles (Chiffres d\'affaires)',
|
||||
'74T'=>'PUBLICATIONS PERIODIQUES - Sociétés commerciales et industrielles (Tableaux d\'activités et résultats)',
|
||||
'79'=>'PUBLICATIONS PERIODIQUES - Entreprises d\'assurances et organismes de retraites',
|
||||
'82'=>'AVIS DIVERS',
|
||||
'85'=>'BULLETIN OFFICIEL DE L\'AMF');
|
||||
|
||||
function getInfosAnnonceBalo($annonceHtml) {
|
||||
$tabAnnBalo=array();
|
||||
|
||||
$tabAnnBalo['Societe_Nom']=trim(str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml,'<p>Société: <b>', '<b>', '</b>'))));
|
||||
if ($tabAnnBalo['Societe_Nom']=='')
|
||||
$tabAnnBalo['Societe_Nom']=str_replace(chr(160),' ',html_entity_decode(@getTextInHtml($annonceHtml,'<p>BOAMF: <b>', '<b>', '</b>')));
|
||||
$tabAnnBalo['Societe_Rcs']=@getTextInHtml($annonceHtml, ' RCS : <b><b>', '<b><b>', '</b>');
|
||||
$tabAnnBalo['Categorie']=str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<p> Catégorie : <b>', '<b>', '</b>')));
|
||||
$tabAnnBalo['Num_Affaire']=@getTextInHtml($annonceHtml, '<p> N° d\'affaire : <b>', '<b>', '</b>');
|
||||
$tmp=@getTextInHtml($annonceHtml, '<p>Paru le : <b>', '<b>', '</b>');
|
||||
$tabAnnBalo['Date_Parution']=substr($tmp,6,4).'-'.substr($tmp,3,2).'-'.substr($tmp,0,2);
|
||||
$tabAnnBalo['Num_Parution']=@getTextInHtml($annonceHtml, ' (parution n°<b>', '<b>', '</b>');
|
||||
$tabAnnBalo['Url_Annonce_Html']=str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, 'Annonce au format <a href="http://balo.journal-officiel.gouv.fr/Files/', 'href="', '" class="rouge" target="_blank" >HTML</a>')));
|
||||
$tabAnnBalo['Url_Annonce_Pdf']='http://balo.journal-officiel.gouv.fr'.@getTextInHtml($annonceHtml, ' onclick="ouvrirPDF(\'', 'ouvrirPDF(\'', '\');');
|
||||
|
||||
return $tabAnnBalo;
|
||||
}
|
||||
|
||||
$tempsMaxEntreRequetes=30;
|
||||
set_time_limit(0);
|
||||
$eol="\n";
|
||||
$lastJO=$dateDebut=$dateFin=false;
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $lastJO=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd':
|
||||
$dateDebut=substr($argv[$i],3,10);
|
||||
$dateDeb=dateT('d/m/Y', 'Ymd', $dateDebut);
|
||||
break;
|
||||
case 'f':
|
||||
$dateFin=substr($argv[$i],3,10);
|
||||
$dateF=dateT('d/m/Y', 'Ymd', $dateFin);
|
||||
break;
|
||||
case 'i':
|
||||
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
|
||||
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
|
||||
break;
|
||||
case 'l':
|
||||
$lastJO=true;
|
||||
break;
|
||||
case 's':
|
||||
$fichierSiren=substr($argv[$i],3);
|
||||
break;
|
||||
case 'c':
|
||||
$categorie=substr($argv[$i],3);
|
||||
break;
|
||||
case '-':
|
||||
die('Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère toutes les annonces BALO en fonction des critères sélectionné.
|
||||
|
||||
Sans aucun paramètre, récupération du dernier JO Association.
|
||||
Sinon:
|
||||
-d:JJ/MM/AAAA Date de début de publication
|
||||
-f:JJ/MM/AAAA Date de fin de publication
|
||||
-l Dernier JO Association uniquement (*)
|
||||
-i:XX Intervalle de temps entre chaque requête sur le site des JO (*)
|
||||
-s:SIREN_FILE Fichier de SIREN
|
||||
-c:XX Catégorie d'annonces
|
||||
|
||||
(*) : Par défaut, on récupère le dernier JO avec un intervalle de $tempsMaxEntreRequetes entre chaque requête.
|
||||
");
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($categorie<>'' && !isset($tabCateg[$categorie])) {
|
||||
echo ('Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère toutes les annonces BALO en fonction des critères sélectionné.");
|
||||
print_r($tabCateg);
|
||||
die("\nVeuillez choisir parmi une de ces catégorie !");
|
||||
}
|
||||
|
||||
if ($lastJO==true) $strLast=' dernier';
|
||||
else {
|
||||
$dateCour=$dateDeb;
|
||||
$strLast='';
|
||||
if ($dateDebut==false || $dateFin==false)
|
||||
die('Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère toutes les annonces BALO en fonction des critères sélectionné.
|
||||
|
||||
Sans aucun paramètre, récupération du dernier JO Association.
|
||||
Sinon:
|
||||
-d:JJ/MM/AAAA Date de début de publication
|
||||
-f:JJ/MM/AAAA Date de fin de publication
|
||||
-l Dernier JO Association uniquement (*)
|
||||
-i:XX Intervalle de temps entre chaque requête sur le site des JO (*)
|
||||
-s:SIREN_FILE Fichier de SIREN
|
||||
-c:XX Catégorie d'annonces
|
||||
|
||||
(*) : Par défaut, on récupère le dernier JO avec un intervalle de $tempsMaxEntreRequetes entre chaque requête.
|
||||
");
|
||||
else
|
||||
$strDates=" du $dateDebut au $dateFin";
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération du$strLast BALO $strDates".$eol;
|
||||
echo date('Y/m/d - H:i:s') .' - La durée maximum entre chaque requête est de '. $tempsMaxEntreRequetes .' secondes.'. $eol;
|
||||
flush();
|
||||
|
||||
if ($fichierSiren<>'')
|
||||
$tabSiren=file($fichierSiren);
|
||||
else
|
||||
$tabSiren=array(0=>'');
|
||||
|
||||
for ($key=0; isset($tabSiren[$key]); $key++) { // DEB Boucle Siren
|
||||
|
||||
$ligne=$tabSiren[$key];
|
||||
$siren=substr(trim($ligne), 0, 9);
|
||||
|
||||
$dateDeb=$dateDebut;//'01/01/2004';
|
||||
$dateFin=$dateFin;//'31/12/2004';
|
||||
$categorie=$categorie;
|
||||
|
||||
$postData=array('original_method'=>'post',
|
||||
'HI_PAGE'=>0,
|
||||
'HI_COMPTEUR'=>0,
|
||||
'BSA_SOCIETE_L'=>'',
|
||||
'BSA_RCS_NO'=>$siren,
|
||||
'BPA_D_D'=>$dateDeb, // Date de début
|
||||
'BPA_D_F'=>$dateFin, // Date de fin
|
||||
'BAN_BTA_C'=>$categorie, // Catégorie
|
||||
'CB_SEARCH_MODE'=>0,
|
||||
'x'=>49,
|
||||
'y'=>11);
|
||||
$strCookie='';//array('ASPSESSIONIDGQGQGGBF'=>'IPHFDKIBDIJJGLJOJMJNKLJB');
|
||||
$page=getUrl('http://www.journal-officiel.gouv.fr/jahia/Jahia/balo/cache/bypass?appid=1315_38&appparams=http%3A%2F%2Fwww.journal-officiel.gouv.fr%2Fwebclipping_myjahiasite%2Fservlet%2Fwebclip%3Fjahia_url_web_clipping%3Dhttp%3A%2F%2Fbalo.journal-officiel.gouv.fr%2FListeResultBalo.asp&resetAppSession=true#field_1315', $strCookie, $postData, 'http://balo.journal-officiel.gouv.fr/FormulaireBalo.asp', false, 'www.journal-officiel.gouv.fr');
|
||||
$body=$page['body'];
|
||||
|
||||
if (strpos($body, '<P align="center">L\'accès à la recherche est<BR>momentanément interrompu pour cause de maintenance.</P>')>0) {
|
||||
echo date('Y/m/d - H:i:s') .' - Le site du BALO est en maintenance !'. $eol;
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
die();
|
||||
}
|
||||
$nbAnnonces=@getTextInHtml($body, '<p> Résultat de la recherche : <b>', '<b>', 'annonce(s)</b></p>')*1;
|
||||
if (strpos($body, 'veuillez affiner votre recherche.</font>')>0) {
|
||||
$nbTotAnnonces=@getTextInHtml($body, 'CLASS="Normale">', '">', 'réponses');
|
||||
echo date('Y/m/d - H:i:s') .' - Le SIREN '. $siren .' a trop d\'annonces ('. $nbTotAnnonces .') !'. $eol;
|
||||
randsleep(0,$tempsMaxEntreRequetes);
|
||||
continue;
|
||||
}
|
||||
$nbPages=ceil($nbAnnonces/25);
|
||||
|
||||
// On recherche si nous n'avons pas déjà toutes ces annonces en base !
|
||||
$AnnDb=mysql_select('balo', 'count(*)', "Societe_Rcs='$siren'");
|
||||
$nbAnnDb=$AnnDb[0][0];
|
||||
|
||||
if ($nbAnnDb==$nbAnnonces) {
|
||||
echo date('Y/m/d - H:i:s') .' - Les '. $nbAnnonces .' annonces du SIREN '. $siren.' sont déjà en base !'. $eol;
|
||||
randsleep(0,$tempsMaxEntreRequetes);
|
||||
continue;
|
||||
} elseif ($nbAnnonces==0) {
|
||||
echo date('Y/m/d - H:i:s') .' - Il n\'y a aucune annonce à récupérer pour le SIREN '. $siren.' !'. $eol;
|
||||
randsleep(0,$tempsMaxEntreRequetes);
|
||||
continue;
|
||||
} else
|
||||
echo date('Y/m/d - H:i:s') .' - Récupération des '. $nbAnnonces .' annonces du SIREN '. $siren.'...'. $eol;
|
||||
|
||||
$tabAnnonces=explode('<div class="hr"><hr /></div>', $page['body']);
|
||||
$tabTmp =explode('<br clear="all" />', $tabAnnonces[0]);
|
||||
$tabAnnonces[0]=$tabTmp[2];
|
||||
for ($j=0; $j<25 && isset($tabAnnonces[$j]); $j++)
|
||||
$tabAnnBalo[$j]=$tabAnnonces[$j];
|
||||
randsleep(0, $tempsMaxEntreRequetes);
|
||||
|
||||
for ($i=2; $i<=$nbPages; $i++) { // DEBUT Boucle sur toutes les pages disponbiles
|
||||
$postData=array('original_method'=>'post',
|
||||
'data'=>'',
|
||||
'HI_PAGE'=>$i,
|
||||
'HI_COMPTEUR'=>$nbAnnonces,
|
||||
'BSA_SOCIETE_L'=>'',
|
||||
'BSA_RCS_NO'=>$siren,
|
||||
'BPA_D_D'=>$dateDeb,
|
||||
'BPA_D_F'=>$dateFin,
|
||||
'BAN_BTA_C'=>$categorie,
|
||||
'CB_SEARCH_MODE'=>0);
|
||||
$page=getUrl('http://www.journal-officiel.gouv.fr/jahia/Jahia/balo/cache/bypass?appid=1315_38&appparams=http%3A%2F%2Fwww.journal-officiel.gouv.fr%2Fwebclipping_myjahiasite%2Fservlet%2Fwebclip%3Fjahia_url_web_clipping%3Dhttp%3A%2F%2Fbalo.journal-officiel.gouv.fr%2FListeResultBalo.asp&resetAppSession=true#field_1315', '', $postData, 'http://balo.journal-officiel.gouv.fr/ListeResultBalo.asp', false, 'www.journal-officiel.gouv.fr');
|
||||
$tabAnnonces=explode('<div class="hr"><hr /></div>', $page['body']);
|
||||
$tabTmp =explode('<br clear="all" />', $tabAnnonces[0]);
|
||||
$tabAnnonces[0]=$tabTmp[2];
|
||||
for ($j=0; $j<25; $j++) {
|
||||
$k=$j+(25*($i-1));
|
||||
if ($k<$nbAnnonces)
|
||||
$tabAnnBalo[$k]=$tabAnnonces[$j];
|
||||
}
|
||||
|
||||
|
||||
flush();
|
||||
if ($i==2)
|
||||
echo date('Y/m/d - H:i:s') ." - Page $i/$nbPages";
|
||||
else
|
||||
echo ", $i/$nbPages";
|
||||
if ($i==$nbPages)
|
||||
echo '.'.$eol;
|
||||
|
||||
randsleep(2, $tempsMaxEntreRequetes);
|
||||
} // FIN Boucle sur toutes les pages disponbiles
|
||||
|
||||
//print_r($tabAnnBalo);
|
||||
//die();
|
||||
for ($i=0; $i<$nbAnnonces; $i++){
|
||||
$infoAnnBalo=getInfosAnnonceBalo($tabAnnBalo[$i]);
|
||||
// On recherche si nous n'avons pas déjà cette annonce en base !
|
||||
$AnnDb=mysql_select('balo', 'count(*)', "Societe_Rcs='".$infoAnnBalo['Societe_Rcs']."' AND Categorie='".addslashes($infoAnnBalo['Categorie'])."' AND Num_Affaire='".$infoAnnBalo['Num_Affaire']."' AND Date_Parution='".$infoAnnBalo['Date_Parution']."' AND Num_Parution='".$infoAnnBalo['Num_Parution']."'");
|
||||
$nbAnnDb=$AnnDb[0][0];
|
||||
$i2=$i+1;
|
||||
//echo date('Y/m/d - H:i:s') .' - Siren '. $infoAnnBalo['Societe_Rcs'] .", Annonce $i2/$nbAnnonces du ". $infoAnnBalo['Date_Parution'] .', Catégorie='.addslashes($infoAnnBalo['Categorie']).", No Affaire=".$infoAnnBalo['Num_Affaire'].", No Parution=".$infoAnnBalo['Num_Parution'].", $nbAnnDb annonce(s)".$eol;
|
||||
|
||||
if ($nbAnnDb==1) {
|
||||
echo date('Y/m/d - H:i:s') .' - Siren '. $infoAnnBalo['Societe_Rcs'] .", Annonce $i2/$nbAnnonces du ". $infoAnnBalo['Date_Parution'] .', déjà en base !'.$eol;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
echo date('Y/m/d - H:i:s') .' - Siren '. $infoAnnBalo['Societe_Rcs'] .", Annonce $i2/$nbAnnonces du ". $infoAnnBalo['Date_Parution'] .', enregistrement...'.$eol;
|
||||
|
||||
if ($infoAnnBalo['Url_Annonce_Html']!='') {
|
||||
$page=getUrl($infoAnnBalo['Url_Annonce_Html'], '', '', '', false, 'balo.journal-officiel.gouv.fr');
|
||||
$infoAnnBalo['Annonce_Html']=$page['body'];
|
||||
randsleep(0,$tempsMaxEntreRequetes);
|
||||
} else $infoAnnBalo['Annonce_Html']='';
|
||||
|
||||
if ($infoAnnBalo['Url_Annonce_Pdf']!='' && $infoAnnBalo['Url_Annonce_Pdf']!='http://balo.journal-officiel.gouv.fr'){
|
||||
$page=getUrl($infoAnnBalo['Url_Annonce_Pdf'], '', '', '', false, 'balo.journal-officiel.gouv.fr');
|
||||
$fp=@fopen('/root/download/jo/balo/'.basename($infoAnnBalo['Url_Annonce_Pdf']), 'w');
|
||||
if (!fwrite($fp, $page['body']) || !$fp)
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['Url_Annonce_Pdf']) .' pour le SIREN '. $infoAnnBalo['Societe_Rcs'] . $eol;
|
||||
@fclose($fp);
|
||||
$infoAnnBalo['Annonce_Pdf']='';//$page['body'];
|
||||
randsleep(0,$tempsMaxEntreRequetes);
|
||||
}
|
||||
|
||||
//$resultat=array_merge($resultat, array('Bodacc_Annee_Parution'=>$annee, 'Tri_User_Saisie'=>$_SESSION['user']));
|
||||
if (!mysql_insert('balo', $infoAnnBalo))
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
|
||||
//die();
|
||||
}
|
||||
|
||||
} // FIN Boucle Siren
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
|
||||
?>
|
@ -1,385 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
|
||||
$repImgDrapeaux='/var/www/site_extranet/www/img/drapeaux/';
|
||||
$tabJour=array(0=>'Dim', 1=>'Lun', 2=>'Mar', 3=>'Mer', 4=>'Jeu', 5=>'Ven', 6=>'Sam');
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
function htm2txt($str) {
|
||||
return trim(strip_tags( str_replace(chr(160), ' ',
|
||||
str_replace('œ', 'oe',
|
||||
str_replace('’', '\'', html_entity_decode($str, ENT_QUOTES))))));
|
||||
}
|
||||
function getPrevDate($dateCour, $nbJours=1) {
|
||||
$nextDate=date('Ymd', mktime(0, 0, 0, dateT('Ymd','m', $dateCour), dateT('Ymd','d', $dateCour)-$nbJours, dateT('Ymd','Y', $dateCour)));
|
||||
return $nextDate;
|
||||
}
|
||||
|
||||
$tmin=10;
|
||||
$tmax=60;
|
||||
set_time_limit(0);
|
||||
define('EOL', "\n");
|
||||
$pays=$history=false;
|
||||
$dateDeb=getPrevDate(date('Ymd'), rand(2,10));
|
||||
$dateF=getPrevDate(date('Ymd'));
|
||||
/*
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère les cours des devises par rapport à l'euro.
|
||||
|
||||
Sans aucun paramètre, récupère le dernier cours pour chaque devise par rapport à l'euro.
|
||||
Sinon:
|
||||
-d:JJ/MM/AAAA Date de début de période (*)
|
||||
-f:JJ/MM/AAAA Date de fin de période (*)
|
||||
-n:X Intervalle MIN en secondes entre les requêtes (défaut=$tmin)
|
||||
-i:X \" MAX \" \" \" \" \" (défaut=$tmax)
|
||||
-p Récupération de la dernière liste des pays (par défaut, une fois par mois, le 1er du mois)
|
||||
-h Récupération de l'historique complet
|
||||
-c=DEV Récupération limité à la devise passée en paramètre
|
||||
|
||||
* : par défaut, le programme récupère le dernier cour pour le jour précédent !
|
||||
";
|
||||
$tabCurrency=array();
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $dernierCour=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd':
|
||||
$dateDebut=substr($argv[$i],3,10);
|
||||
$dateDeb=dateT('d/m/Y', 'Ymd', $dateDebut);
|
||||
break;
|
||||
case 'f':
|
||||
$dateFin=substr($argv[$i],3,10);
|
||||
$dateF=dateT('d/m/Y', 'Ymd', $dateFin);
|
||||
break;
|
||||
case 'n':
|
||||
$tmin=trim(substr($argv[$i],3))*1;
|
||||
if ($min<0) $tmin=0;
|
||||
break;
|
||||
case 'i':
|
||||
$tmax=trim(substr($argv[$i],3))*1;
|
||||
if ($tmax<5) $tmax=2;
|
||||
break;
|
||||
case 'p':
|
||||
$pays=true;
|
||||
break;
|
||||
case 'h':
|
||||
$history=true;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default:
|
||||
die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$tabCurrency[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('sdv1', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). EOL;
|
||||
*/
|
||||
$tabSiren=file($argv[1]);
|
||||
foreach ($tabSiren as $ligne) {
|
||||
$siren=trim($ligne);
|
||||
$url= 'http://bilans.lesechos.fr/comptes/resultcontentComptes.php?motcle='.$siren.'&codpos=&to_do=rechBila&T_option=siren&checkdirigeant=undefined';
|
||||
$referer='http://bilans.lesechos.fr/pcentral.php';
|
||||
$page=getUrl($url, '', '', $referer, false, 'bilans.lesechos.fr');
|
||||
$body=$page['body'];
|
||||
if (preg_match('/"bildates"\:"(.*)"/Ui', $body, $matches)) $strDatesBil=$matches[1];
|
||||
if (preg_match('/"libcom"\:"(.*)"/Ui', $body, $matches)) $libCom=$matches[1];
|
||||
if (preg_match('/"siren"\:"(.*)"/Ui', $body, $matches)) $siren2=$matches[1];
|
||||
|
||||
if (preg_match('/"nomen"\:"(.*)"/Ui', $body, $matches)) $nomen=$matches[1];
|
||||
if (preg_match('/"apen700"\:"(.*)"/Ui', $body, $matches)) $apen700=$matches[1];
|
||||
if (preg_match('/"libapen700"\:"(.*)"/Ui', $body, $matches)) $libapen700=$matches[1];
|
||||
if (preg_match('/"codpos"\:"(.*)"/Ui', $body, $matches)) $codpos=$matches[1];
|
||||
if (preg_match('/"siret"\:"(.*)"/Ui', $body, $matches)) $siret=$matches[1];
|
||||
if (preg_match('/"tefen"\:"(.*)"/Ui', $body, $matches)) $tefen=$matches[1];
|
||||
|
||||
if(preg_match_all("/javascript\:montre\('(.*)','(.*)','(.*)'\)/Ui", $body, $matches)) {
|
||||
//print_r($matches);
|
||||
$siret=$matches[2][0];
|
||||
$tabAnnees=$matches[3];
|
||||
rsort($tabAnnees);
|
||||
}
|
||||
//echo "$siren;$siret;$strDatesBil;".implode(' ',$tabAnnees).";$nomen;$codpos;$libCom;$apen700;$libapen700;$tefen\n";
|
||||
$referer=$url;
|
||||
sleep(2);
|
||||
foreach($tabAnnees as $annees) {
|
||||
//http://bilans.lesechos.fr/comptes/visucontentComptes.php?typcmpt=tous&siren=48398177500016&millesime=2006S
|
||||
//$url="http://bilans.lesechos.fr/comptes/visucontentComptes.php?typcmpt=compte_annuel&siren=$siret&millesime=$annees";
|
||||
$url="http://bilans.lesechos.fr/comptes/visucontentComptes.php?typcmpt=tous&siren=$siret&millesime=$annees";
|
||||
|
||||
$page=getUrl($url, '', '', $referer, false, 'bilans.lesechos.fr');
|
||||
$body=$page['body'];
|
||||
//echo $body;
|
||||
|
||||
$tabBilan=array();
|
||||
$tabBilan['SIREN']=$siren;
|
||||
$tabBilan['DATE_FRAICHE_BILAN']=date('Ymd');
|
||||
$tabPostes=array();
|
||||
|
||||
switch (substr($annees,-1)) {
|
||||
case 'S': // Bilans réels simplifiés
|
||||
$tabBilan['TYPE_BILAN']='S';
|
||||
/*<td\r\nrowspan=\"1\"\r\ncolspan=\"1\"\r\nwidth=\"1%\"\r\n>120<\/td>
|
||||
<td\r\nrowspan=\"1\"\r\ncolspan=\"1\"\r\n align=\"center\"\r\n><div align=\"right\"><strong\r\n>3 000<\/strong><\/div>
|
||||
<td.r.nrowspan=."1.".r.ncolspan=."..".r.n(?:align=."center.".r.n|)width=."(?:.*)".r.n>(.*)<..td>
|
||||
*/
|
||||
if(preg_match_all('/<td.r.nrowspan=."1.".r.ncolspan=."..".r.n(?:align=."center.".r.n|)(?:width=."(?:.*)".r.n|)>(.*)<..td>/Ui', $body, $matches)) {
|
||||
foreach($matches[1] as $ligne) {
|
||||
$value=trim(str_replace(' ',' ', strip_tags(str_replace('\r\n','',$ligne))));
|
||||
if (substr($ligne, 0, 4)=='<div') {
|
||||
if ($j==0) $indice='';
|
||||
elseif ($j==1) $indice='a';
|
||||
else $indice='b';
|
||||
$value=trim(str_replace(' ', '', $value));
|
||||
if (substr($value, 0, 1)=='(')
|
||||
$tabPostes[$poste.$indice]=trim(strtr($value,'()',' '))*-1;
|
||||
else
|
||||
$tabPostes[$poste.$indice]=$value*1;
|
||||
if ($tabPostes[$poste.$indice]=='')
|
||||
unset($tabPostes[$poste.$indice]);
|
||||
elseif (!is_numeric($tabPostes[$poste.$indice]))
|
||||
unset($tabPostes[$poste.$indice]);
|
||||
$j++;
|
||||
} else {
|
||||
if (preg_match('/[A-Z0-9]{2,2}/i', trim(str_replace(' ',' ', $value)))) {
|
||||
$poste=$value;
|
||||
$j=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'C': // Bilans Consolidés
|
||||
$tabBilan['TYPE_BILAN']='C';
|
||||
/* rowspan=\"1\" colspan=\"1\" align=\"center\" width=\"1%\"> AB <\/td>\r\n \t\t
|
||||
<td rowspan=\"1\" colspan=\"1\" align=\"center\" width=\"12%\"><div align=\"right\"><strong><div align='right'> <\/div><\/strong><\/div><\/td>\r\n\t\t
|
||||
*/
|
||||
if(preg_match_all('/<td(?: rowspan=."1."| |)(?: colspan=.".."| |)(?: align=."center."| |)(?: width=."(?:.*)"| |)(?: align=."center."| |)>(.*)<..td>/Ui', $body, $matches)) {
|
||||
foreach($matches[1] as $ligne) {
|
||||
$value=trim(str_replace(' ',' ', str_replace('\r\n','', strip_tags($ligne))));
|
||||
if (substr($ligne, 0, 4)=='<div') {
|
||||
if ($j==0) $indice='';
|
||||
elseif ($j==1) $indice=1;
|
||||
else $indice=2;
|
||||
$value=trim(str_replace(' ', '', $value));
|
||||
if (substr($value, 0, 1)=='(')
|
||||
$tabPostes[$poste.$indice]=trim(strtr($value,'()',' '))*-1;
|
||||
else
|
||||
$tabPostes[$poste.$indice]=$value*1;
|
||||
if ($tabPostes[$poste.$indice]=='')
|
||||
unset($tabPostes[$poste.$indice]);
|
||||
elseif (!is_numeric($tabPostes[$poste.$indice]))
|
||||
unset($tabPostes[$poste.$indice]);
|
||||
$j++;
|
||||
} else {
|
||||
if (preg_match('/([A-Z0-9]{2,2}|064)/i', trim(str_replace(' ',' ', $value)))) {
|
||||
if ($value=='064')
|
||||
$poste='BR';
|
||||
else
|
||||
$poste=$value;
|
||||
$j=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: // Bilans réels normaux
|
||||
$tabBilan['TYPE_BILAN']='N';
|
||||
if(preg_match_all('/<td (?:width=."2.." |)align=."center.">(.*)<..td>/Ui', $body, $matches)) {
|
||||
foreach($matches[1] as $ligne) {
|
||||
$value=trim(str_replace(' ',' ', str_replace('\r\n','', strip_tags($ligne))));
|
||||
if (substr($ligne, 0, 4)=='<div') {
|
||||
if ($j==0) $indice='';
|
||||
elseif ($j==1) $indice=1;
|
||||
else $indice=2;
|
||||
$value=trim(str_replace(' ', '', $value));
|
||||
if (substr($value, 0, 1)=='(')
|
||||
$tabPostes[$poste.$indice]=trim(strtr($value,'()',' '))*-1;
|
||||
else
|
||||
$tabPostes[$poste.$indice]=$value*1;
|
||||
if ($tabPostes[$poste.$indice]=='')
|
||||
unset($tabPostes[$poste.$indice]);
|
||||
elseif (!is_numeric($tabPostes[$poste.$indice]))
|
||||
unset($tabPostes[$poste.$indice]);
|
||||
$j++;
|
||||
} else {
|
||||
if (preg_match('/[A-Z0-9]{2,2}/i', trim(str_replace(' ',' ', $value)))) {
|
||||
$poste=$value;
|
||||
$j=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (preg_match('/<td>Date de clôture : <b>(.*)<..b>/Ui', $body, $matches))
|
||||
$tabBilan['DATE_CLOTURE']=str_replace('\\','',$matches[1]);
|
||||
|
||||
if (preg_match_all('/<td>Durée de l\'exercice\* \: <b>(.*)mois<..b>/Ui', $body, $matches)) {
|
||||
foreach($matches[1] as $nbMois) {
|
||||
$nbMois=trim($nbMois)*1;
|
||||
if ($nbMois<>0) $tabBilan['DUREE_MOIS']=$nbMois;
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/<td>Unité monétaire : <b>(.*)<..b>/Ui', $body, $matches)) {
|
||||
if ($matches[1]=='euro') {
|
||||
$tabBilan['MONNAIE']='EUR';
|
||||
$tabBilan['MONNAIE_ORI']='EUR';
|
||||
$tabBilan['MONNAIE_LIV_UNITE']='U';
|
||||
}
|
||||
}
|
||||
|
||||
//<td>Durée de l'exercice* : <b>mois<\/b><\/td>\r\n <\/tr>\r\n
|
||||
$tabBilan['DATE_CLOTURE_PRE']='';
|
||||
$tabBilan['DUREE_MOIS_PRE']='';
|
||||
$tabBilan['POSTES']=$tabPostes;
|
||||
$strPostes='';
|
||||
foreach ($tabBilan['POSTES'] as $poste=>$valeur)
|
||||
$strPostes.="$poste=$valeur;";
|
||||
|
||||
$sql ="INSERT INTO bilans VALUES (". $tabBilan['SIREN'].", '".
|
||||
$tabBilan['DATE_FRAICHE_BILAN']."', '".
|
||||
dateT('d/m/Y','Ymd', $tabBilan['DATE_CLOTURE'])."', '".
|
||||
$tabBilan['DATE_CLOTURE_PRE']."', '".
|
||||
$tabBilan['DUREE_MOIS']."', '".
|
||||
$tabBilan['DUREE_MOIS_PRE']."', '".
|
||||
$tabBilan['MONNAIE']."', '".
|
||||
$tabBilan['TYPE_BILAN']."', '".
|
||||
$tabBilan['MONNAIE_ORI']."', '".
|
||||
$tabBilan['MONNAIE_LIV_UNITE']."', '".
|
||||
$strPostes."', 3, NOW() );\n";
|
||||
|
||||
echo $sql;
|
||||
sleep(2);
|
||||
}
|
||||
}
|
||||
die();
|
||||
/** Récupération de la liste des devises
|
||||
**/
|
||||
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour de la liste des devise !'. EOL);
|
||||
$crea=$maj=0;
|
||||
$tabDevisesSite=array();
|
||||
$url= 'http://fxtop.com/fr/historates.php3';
|
||||
$referer= '';
|
||||
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
|
||||
$body=$page['body'];
|
||||
$strTmp=@getTextInHtml($body, '<select name=C1 >', 'C1 >', '</select>');
|
||||
$tabTmp=preg_split('/<option (selected | )value="/i', $strTmp);
|
||||
foreach ($tabTmp as $i=>$strTmp) {
|
||||
$tabLigne=explode('">', $strTmp);
|
||||
if ($i==0) {
|
||||
if (trim($strTmp)<>'')
|
||||
die(date('Y/m/d - H:i:s') .' - ERREUR : La première ligne du tableau n\'est pas vide : "'.$strTmp.'" trouvé !'. EOL);
|
||||
continue;
|
||||
} else {
|
||||
$devise =trim($tabLigne[0]);
|
||||
$libDevPays=trim(strip_tags($tabLigne[1]));
|
||||
if ($devise<>'' && $devise<>'EUR') $tabDevisesSite[]=$devise;
|
||||
$tabUpdate=array( 'devIso'=>$devise,
|
||||
'devNomPays'=>$libDevPays,
|
||||
);
|
||||
if (!mysql_update('devise_liste', $tabUpdate, "devIso='$devise'", true)) {
|
||||
if (!mysql_insert('devise_liste', $tabUpdate)) {
|
||||
if (mysql_errno()<>1062)
|
||||
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
|
||||
} else {
|
||||
echo (date('Y/m/d - H:i:s') ." - Création de la devise $devise pour $libDevPays !". EOL);
|
||||
$crea++;
|
||||
}
|
||||
} else $maj++;
|
||||
}
|
||||
}
|
||||
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des devises : $crea création(s) / $maj MAJ.". EOL);
|
||||
|
||||
/** Récupération d'une devise ou de toutes les devises
|
||||
**/
|
||||
if ( !is_array($tabCurrency) || count($tabCurrency)==0 ) {
|
||||
//$tabDevises=mysql_select('tabPays', 'DISTINCT(devise) as dev', "devise<>'EUR' AND devise<>''");
|
||||
// AND devise NOT IN ('AED','AFA','XCD','ALL','AMD','ANG','AON')
|
||||
$tabDevises=array();
|
||||
shuffle($tabDevisesSite);
|
||||
foreach ($tabDevisesSite as $i=>$deviseSite)
|
||||
$tabDevises[]=array(0=>$deviseSite);
|
||||
unset($tabDevisesSite);
|
||||
} else {
|
||||
foreach ($tabCurrency as $currency) {
|
||||
if (in_array ($currency, $tabDevisesSite))
|
||||
$tabDevises[]=array(0=>$currency);
|
||||
else
|
||||
die(date('Y/m/d - H:i:s') ." - ERREUR : Devise '$currency' non gérée par le site distant !". EOL);
|
||||
}
|
||||
}
|
||||
/** Récupération de l'historique des cours ou du cours précédent
|
||||
**/
|
||||
if ($history) $dateDeb='19900101';
|
||||
$DD1=dateT('Ymd','d', $dateDeb);
|
||||
$MM1=dateT('Ymd','m', $dateDeb);
|
||||
$YYYY1=dateT('Ymd','Y', $dateDeb);
|
||||
$DD2=dateT('Ymd','d', $dateF);
|
||||
$MM2=dateT('Ymd','m', $dateF);
|
||||
$YYYY2=dateT('Ymd','Y', $dateF);
|
||||
|
||||
foreach ($tabDevises as $tabDevise) {
|
||||
$devise=$tabDevise[0];
|
||||
if ($dateDeb==$dateF)
|
||||
echo (date('Y/m/d - H:i:s') ." - Récupération du cour du $devise par rapport à l'euro pour le $DD1/$MM1/$YYYY1...". EOL);
|
||||
else
|
||||
echo (date('Y/m/d - H:i:s') ." - Récupération du cour du $devise par rapport à l'euro pour la période du $DD1/$MM1/$YYYY1 au $DD2/$MM2/$YYYY2...". EOL);
|
||||
$url= "http://fxtop.com/fr/historates.php3?C1=$devise&C2=EUR&DD1=$DD1&MM1=$MM1&YYYY1=$YYYY1&DD2=$DD2&MM2=$MM2&YYYY2=$YYYY2&btnOK=Chercher";
|
||||
$referer= 'http://fxtop.com/fr/historates.php3';
|
||||
randsleep($tmin, $tmax);
|
||||
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
|
||||
$body=$page['body'];
|
||||
|
||||
$strTmp=@getTextInHtml($body, '<BR><TABLE border=1><TR><TD><STRONG>Date</STRONG></TD><TD><STRONG>', '<STRONG>', '</TABLE>');
|
||||
$tabTmp=explode('</TD></TR><TR><TD>', $strTmp);
|
||||
$nbCours=0;
|
||||
foreach ($tabTmp as $i=>$strTmp) {
|
||||
$tabLigne=explode('</TD><TD>', $strTmp);
|
||||
if ($i==0) {
|
||||
// On vérifie que les noms de colonnes et les devises attendues sont les bonnes
|
||||
if (strip_tags($tabLigne[0])<>'Date')
|
||||
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Date" attendue mais "'.strip_tags($tabLigne[0]).'" trouvé !'. EOL);
|
||||
if (strip_tags($tabLigne[1])<>$devise.'/EUR')
|
||||
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "'.$devise.'/EUR" attendue mais "'.strip_tags($tabLigne[1]).'" trouvé !'. EOL);
|
||||
} else {
|
||||
$date=$tabLigne[0];
|
||||
if ($i==1) $dateMax=$date;
|
||||
$conv=$tabLigne[1];
|
||||
//echo "$devise;$date;$conv\n";
|
||||
$nbCours++;
|
||||
|
||||
$tabInsert=array( 'devise'=>$devise,
|
||||
'date'=>$date,
|
||||
'valeur'=>$conv,
|
||||
);
|
||||
if (!mysql_insert('devise_cours', $tabInsert))
|
||||
if (mysql_errno()<>1062)
|
||||
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
|
||||
}
|
||||
}
|
||||
$dateMin=$date;
|
||||
if ($nbCours==1)
|
||||
echo (date('Y/m/d - H:i:s') ." - Devise $devise : 1 valeur ($conv) du $dateMin au $dateMax...". EOL);
|
||||
else
|
||||
echo (date('Y/m/d - H:i:s') ." - Devise $devise : $nbCours valeurs du $dateMin au $dateMax...". EOL);
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
|
||||
?>
|
@ -1,192 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
$eol="\n";
|
||||
$dossierBocc='/root/download/jo/bocc';
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
$tmin=5;
|
||||
$tmax=30;
|
||||
$lastJO=true;
|
||||
$annee=$numJO=$debug=false;
|
||||
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère les annonces des Conventions Collectives sur le site des JO.
|
||||
|
||||
Sans aucun paramètre, récupération du dernier JO CC.
|
||||
Sinon:
|
||||
-a:YYYY Année entière à récupérer (1ère année possible = 2005)
|
||||
-j:YYYYNN Année en Numéro de publication dans l'année (1er possible 200501 pour 2005/0001)
|
||||
-l Dernier JO uniquement (*)
|
||||
-n:X Intervalle MIN en secondes entre 2 requêtes aux JO (défaut=$tmin)
|
||||
-i:X \" MAX \" \" \" \" \" \" (défaut=$tmax)
|
||||
-d Mode débug (Verbosité max et aucun délais entre 2 requêtes)
|
||||
";
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $lastJO=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'a':
|
||||
$annee=substr($argv[$i],3,4);
|
||||
$lastJO=false;
|
||||
break;
|
||||
case 'j':
|
||||
$numJO=substr($argv[$i],3,6);
|
||||
$lastJO=false;
|
||||
break;
|
||||
case 'n':
|
||||
$tmin=trim(substr($argv[$i],3))*1;
|
||||
if ($tmin<2) $tmin=2;
|
||||
break;
|
||||
case 'i':
|
||||
$tmax=trim(substr($argv[$i],3))*1;
|
||||
if ($tmax<2) $tmax=2;
|
||||
break;
|
||||
case 'l':
|
||||
$lastJO=true;
|
||||
break;
|
||||
case 'd':
|
||||
$debug=true;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') .' - DEBUT du script'. $eol;
|
||||
flush();
|
||||
|
||||
randsleep($tmin, $tmax);
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('jo', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
|
||||
|
||||
/** Récupération de la dernière année de parution **/
|
||||
$url=$referer='http://www.journal-officiel.gouv.fr/jahia/Jahia/pid/45';
|
||||
$page=getUrl($url, '', '', 'http://www.journal-officiel.gouv.fr/jahia/Jahia/pid/1', false, 'www.journal-officiel.gouv.fr');
|
||||
$body=$page['body'];
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
if ($debug) {
|
||||
echo date('Y/m/d - H:i:s') . ' - Cookie : '. trim($cookie) . $eol;
|
||||
$tmin=1;
|
||||
$tmax=2;
|
||||
}
|
||||
$derAnneeParution=@getTextInHtml($body, '<a calss="blue" href="#" onclick="submitBoccByYear(\'', 'ByYear(\'', '\')');
|
||||
if ($debug || $annee) {
|
||||
echo date('Y/m/d - H:i:s') . ' - Dernière année de parution = '. $derAnneeParution . $eol;
|
||||
if ($annee) {
|
||||
$derAnneeParution=$annee;
|
||||
echo date('Y/m/d - H:i:s') . ' - Année de parution demandée = '. $derAnneeParution . $eol;
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupération de la liste des JO CC de l'année **/
|
||||
randsleep($tmin, $tmax);
|
||||
$postData=array('yearSearch'=>$derAnneeParution, 'idcc'=>'');
|
||||
$page=getUrl($url, $cookie, $postData, $referer, false, 'www.journal-officiel.gouv.fr');
|
||||
$bodyL=$page['body'];
|
||||
$posFin=0;
|
||||
|
||||
while(true)
|
||||
{ // Boucle sur les JO CC de l'année
|
||||
|
||||
$strParution=getTextInHtml($bodyL, '<a href="#" class="blue" onclick="submitBoccByBulletin(\'', 'ByBulletin(\'', '</a>',0,0,1,1,&$posFin);
|
||||
|
||||
if (!preg_match('/(.*)\'\);">(.*) du (.*)/i', $strParution, $matches)) {
|
||||
if ($strParution=='') break; // On est arrivée à la fin de la liste des JO CC de l'année
|
||||
else die (date('Y/m/d - H:i:s') . ' - ERREUR : Expression régulière impossible sur '. $strParution . $eol);
|
||||
}
|
||||
|
||||
$idCC = $matches[1];
|
||||
$numCC = $matches[2];
|
||||
$numCC2= substr($numCC,0,4).substr($numCC,7,2); // 2005/0004 ==> 200504
|
||||
$dateCC= $matches[3];
|
||||
|
||||
if ($numJO) if ($numJO<>$numCC2) continue;
|
||||
|
||||
$dateCCdb=substr($dateCC,6,4).'-'.substr($dateCC,3,2).'-'.substr($dateCC,0,2);
|
||||
if ($debug) echo date('Y/m/d - H:i:s') . " - JO CC n°$numCC du $dateCC ($idCC)$eol";
|
||||
echo date('Y/m/d - H:i:s') . " - JO CC n°$numCC du $dateCC ($idCC)$eol";
|
||||
|
||||
randsleep($tmin, $tmax);
|
||||
$postData=array('yearSearchB'=>$derAnneeParution, 'bulletinSearch'=>$idCC);
|
||||
$page=getUrl($url, $cookie, $postData, $referer, false, 'www.journal-officiel.gouv.fr');
|
||||
$body=$page['body'];
|
||||
$ann=array();
|
||||
$ann['TRA']=@getTextInHtml($body, 'name="TRA">', 'colspan="3"', 'name="AGR">');
|
||||
$ann['AGR']=@getTextInHtml($body, 'name="AGR">', 'colspan="3"', '</td>');
|
||||
foreach($ann as $type=>$annonce) {
|
||||
$tab=explode('<a href="#" class="bleu" onclick="submitBocc', $annonce);
|
||||
$nbAnn=count($tab)-1;
|
||||
|
||||
$AnnDb=mysql_select('conv', 'count(*)', "Date_Parution='$dateCCdb' AND ministere='$type'");
|
||||
$nbAnnDb=$AnnDb[0][0];
|
||||
if ($nbAnnDb==$nbAnn) {
|
||||
echo date('Y/m/d - H:i:s') ." - Toutes les annonces du JOCC $type du $dateCC sont en base$eol";
|
||||
continue;
|
||||
}
|
||||
else echo date('Y/m/d - H:i:s') . " - JO CC $type n°$numCC du $dateCC : $nbAnn annonce(s)$eol";
|
||||
|
||||
for($j=1; isset($tab[$j]); $j++) {
|
||||
$idAnn=@getTextInHtml($tab[$j], 'ByAnnonce(', "'", "');");
|
||||
$urlAnn=str_replace('"','',trim(@getTextInHtml($tab[$j], 'href="', '="', 'target="')));
|
||||
$nomCC=utf8_decode(trim(strtr(html_entity_decode(@getTextInHtml($tab[$j], '<b>', '>', '</b>')), ':'.chr(160), ' ')));
|
||||
$infoCC=utf8_decode(trim(str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($tab[$j], '</b>', '>', '<br>')))));
|
||||
randsleep($tmin, $tmax);
|
||||
$pdf=file_get_contents('http://www.journal-officiel.gouv.fr'.$urlAnn);
|
||||
if (!$pdf) echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de téléchargement du PDF '. $urlAnn .
|
||||
" pour le JO CC n°$numCC du $dateCC, Annonce $type $j $idAnn : $nomCC.$eol";
|
||||
else {
|
||||
$fp=@fopen($dossierBocc.'/'.basename($urlAnn), 'w');
|
||||
if (!fwrite($fp, $pdf) || !$fp)
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($urlAnn) .
|
||||
" pour le JO CC n°$numCC du $dateCC, Annonce $type $j $idAnn : $nomCC.$eol";
|
||||
@fclose($fp);
|
||||
}
|
||||
exec('pdftohtml -q -noframes '.$dossierBocc.'/'.basename($urlAnn).' tmp.html');
|
||||
$html=str_replace('<META name="generator" content="pdftohtml 0.36">', '', file_get_contents('./tmp.html'));
|
||||
$txt=strip_tags($html);
|
||||
$numBrochure=trim(substr(str_replace('o','',@getTextInHtml(strtolower($txt), 'brochure', 'n', 'convention')),0,5));
|
||||
preg_match_all('/IDCC.*:.*([0-9]{1,4})/', $txt, $matches);
|
||||
$tabIdcc=array(); // IDCC : 1880
|
||||
foreach($matches[0] as $m=>$idcc) $tabIdcc[]=trim(strtr($idcc, 'IDCC:', ' '));
|
||||
$tabIdcc=array_unique($tabIdcc);
|
||||
echo date('Y/m/d - H:i:s') . " - JO CC n°$numCC du $dateCC, Annonce $type n°$j, Brochure n°$numBrochure ($idAnn) : ". substr($nomCC,0, 20).$eol;
|
||||
$tabAnn=array( 'annee' =>$derAnneeParution,
|
||||
'idCC' =>$idCC,
|
||||
'numCC' =>str_replace('/00','',$numCC),
|
||||
'numBrochure'=>$numBrochure,
|
||||
'listeCC'=>implode(';', $tabIdcc),
|
||||
'Date_Parution'=>$dateCCdb,
|
||||
'ministere'=>$type, // Remplacer par ministère
|
||||
'idAnnCC'=>$idAnn,
|
||||
'urlAnn'=>$urlAnn,
|
||||
'nomCC' =>$nomCC,
|
||||
'infoCC'=>$infoCC,
|
||||
'annonce'=>$html);
|
||||
if (mysql_insert('conv', $tabAnn))
|
||||
echo date('Y/m/d - H:i:s') .' - Annonce enregistrée avec succès dans la base !'. $eol;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
}
|
||||
if (!$annee) break;
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
|
||||
?>
|
@ -1,97 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
$tabInfosGlobal=array();
|
||||
function htm2txt($str) {
|
||||
return trim(strip_tags( str_replace(chr(160), ' ',
|
||||
str_replace('œ', 'oe',
|
||||
str_replace('’', '\'', html_entity_decode($str, ENT_QUOTES))))));
|
||||
}
|
||||
function getNextDate($dateCour) {
|
||||
$nextDate=date('Ymd', mktime(0, 0, 0, dateT('Ymd','m', $dateCour), dateT('Ymd','d', $dateCour)+7, dateT('Ymd','Y', $dateCour)));
|
||||
return $nextDate;
|
||||
}
|
||||
|
||||
$tempsMinEntreRequetes=5;
|
||||
$tempsMaxEntreRequetes=30;
|
||||
set_time_limit(0);
|
||||
$eol="\n";
|
||||
$lastJO=$dateDebut=$dateFin=$verif=false;
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Recupère les annonces Boamp sur le site des JO.
|
||||
|
||||
Sans aucun paramètre, récupération du dernier JO Association.
|
||||
Sinon:
|
||||
-d:JJ/MM/AAAA Date de début de publication
|
||||
-f:JJ/MM/AAAA Date de fin de publication
|
||||
-l Dernier JO Association uniquement (*)
|
||||
-n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes)
|
||||
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
|
||||
-v Vérifier que toutes les annonces du JO sont en base !
|
||||
";
|
||||
|
||||
$argv=$_SERVER['argv'];
|
||||
if ($_SERVER['argc']==1) $lastJO=true;
|
||||
else {
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'd':
|
||||
$dateDebut=substr($argv[$i],3,10);
|
||||
$dateDeb=dateT('d/m/Y', 'Ymd', $dateDebut);
|
||||
break;
|
||||
case 'f':
|
||||
$dateFin=substr($argv[$i],3,10);
|
||||
$dateF=dateT('d/m/Y', 'Ymd', $dateFin);
|
||||
break;
|
||||
case 'n':
|
||||
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
|
||||
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
|
||||
break;
|
||||
case 'i':
|
||||
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
|
||||
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
|
||||
break;
|
||||
case 'l':
|
||||
$lastJO=true;
|
||||
break;
|
||||
case 'v':
|
||||
$verif=true;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$an='09';
|
||||
|
||||
for ($i=1; $i<267000; $i++) {
|
||||
$referer='';
|
||||
$url='http://boamp.fr/index.php?action=pdfIdentifiant&dest=1&identifiant='.$an.'-'.$i;
|
||||
|
||||
if ( file_exists('./boamp/BOAMP-'.$an.'-'.$i.'.pdf')/* &&
|
||||
filesize('./boamp/BOAMP-'.$an.'-'.$i.'.pdf')>0*/)
|
||||
continue;
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - Récupération de BOAMP-'.$an.'-'.$i.'.pdf'. $eol;
|
||||
|
||||
$page=getUrl($url, '', '', $referer, false, 'boamp.fr');
|
||||
$body=$page['body'];
|
||||
$fp=fopen('./boamp/BOAMP-'.$an.'-'.$i.'.pdf', 'a');
|
||||
fwrite($fp, $body);
|
||||
fclose($fp);
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - Fichier récupéré BOAMP-'.$an.'-'.$i.'.pdf ('.round(filesize('./boamp/BOAMP-'.$an.'-'.$i.'.pdf')/1024).' ko)'. $eol;
|
||||
|
||||
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
?>
|
@ -1,137 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
$eol="\n";
|
||||
$dossierBopiMarques='/root/download/jo/bopi/marques';
|
||||
$dossierBopiBrevets='/root/download/jo/bopi/brevets';
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - DEBUT du script'. $eol;
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - BOPI MARQUES...'. $eol;
|
||||
|
||||
for ($i=1; $i<3; $i++)
|
||||
{
|
||||
$url="http://www.inpi.fr/fileadmin/mediatheque/BOPI/marques/2009/2009-11v$i.pdf";
|
||||
$nomBOPI=basename($url);
|
||||
|
||||
$page=getUrl($url, '', '', '', false);
|
||||
$body=$page['body'];
|
||||
die(print_r($page));
|
||||
|
||||
$fp=fopen($dossierBopiMarques.'/'.$nomBOPI, 'w');
|
||||
fwrite($fp, $body);
|
||||
fclose($fp);
|
||||
die();
|
||||
$numBopi = $matches[1];
|
||||
$dateBopi = $matches[2];
|
||||
$tailleBopi = $matches[3];
|
||||
echo date('Y/m/d - H:i:s') ." - Volume $i, Numéro $numBopi du $dateBopi, taille = $tailleBopi $eol";
|
||||
$nomBopiHtm=$numBopi.'v'.$i.'.pdf';
|
||||
if (file_exists("$dossierBopiMarques/$nomBopiHtm"))
|
||||
{
|
||||
$tailleLoc=round(filesize("$dossierBopiMarques/$nomBopiHtm")/(1024*1024), 2);
|
||||
echo date('Y/m/d - H:i:s') ." - Le BOPI Marques $nomBopiHtm a déjà été récupéré (taille = $tailleLoc) !$eol";
|
||||
continue;
|
||||
}
|
||||
sleep(5);
|
||||
echo date('Y/m/d - H:i:s') ." - Téléchargement du BOPI Marques $nomBopiHtm...$eol";
|
||||
$page=getUrl($url, $cookie, '', $referer, false, 'bopi-marque.inpi.fr');
|
||||
$body=$page['body'];
|
||||
$strTmp=$page['header']['Content-Disposition'];
|
||||
$tabTmp=explode('"', $strTmp);
|
||||
$nomBOPI=$tabTmp[1];
|
||||
echo date('Y/m/d - H:i:s') ." - BOPI Marques $nomBOPI téléchargé.".$eol;
|
||||
$fp=fopen($dossierBopiMarques.'/'.$nomBOPI, 'w');
|
||||
fwrite($fp, $body);
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - BOPI BREVETS...'. $eol;
|
||||
|
||||
$url='http://www.inpi.fr/front/content/ART_457_437.php';
|
||||
$page=getUrl($url, '', '', '', false, 'www.inpi.fr');
|
||||
$referer=$url;
|
||||
$tabTmp=explode(' ', @getTextInHtml($page['body'], '<STRONG>Dernier BOPI "brevets" n°', 'n°', '<BR></STRONG>'));
|
||||
$tmp=$tabTmp[0];
|
||||
$tabTmp=explode('/', $tmp);
|
||||
$annee =$tabTmp[0];
|
||||
$numBopi=$tabTmp[1];
|
||||
//die ("Année = $annee, NumBOPI = $numBopi $eol");
|
||||
if (!preg_match('/\/ressources\/documents\/bopi'.$annee.'\/'.$numBopi.$annee.'\/bopi'.$annee.$numBopi.'complet\.pdf/i', $page['body'], $matches)) {
|
||||
die (date('Y/m/d - H:i:s') .' - ERREUR2 : Expression régulière impossible sur '. $strTmp . $eol .
|
||||
date('Y/m/d - H:i:s') .' - FIN du script'.$eol );
|
||||
}
|
||||
$url = 'http://www.inpi.fr'.$matches[0];
|
||||
echo date('Y/m/d - H:i:s') ." - Téléchargement de $url...$eol";
|
||||
|
||||
$nomBopi='20'.$annee.'-'.$numBopi.'.pdf';
|
||||
if (file_exists("$dossierBopiBrevets/$nomBopi"))
|
||||
{
|
||||
$tailleLoc=round(filesize("$dossierBopiBrevets/$nomBopi")/(1024*1024), 2);
|
||||
echo date('Y/m/d - H:i:s') ." - Le BOPI Brevets $nomBopi a déjà été récupéré (taille = $tailleLoc) !$eol";
|
||||
die();
|
||||
}
|
||||
sleep(5);
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.inpi.fr');
|
||||
$body=$page['body'];
|
||||
echo date('Y/m/d - H:i:s') ." - BOPI Brevets $nomBopi téléchargé.".$eol;
|
||||
$fp=fopen($dossierBopiBrevets.'/'.$nomBopi, 'w');
|
||||
fwrite($fp, $body);
|
||||
fclose($fp);
|
||||
|
||||
echo date('Y/m/d - H:i:s') .' - FIN du script'. $eol;
|
||||
|
||||
die();
|
||||
|
||||
/** Récupération d'une année entière
|
||||
**/
|
||||
$annee=2007;
|
||||
for ($s=1; $s<53; $s++) {
|
||||
|
||||
if ($s<10) $s='0'.$s;
|
||||
|
||||
// On récupère le n° de session
|
||||
$referer='http://bopi-marque.inpi.fr/index.html';
|
||||
$page=getUrl($referer, '', '', '', false, 'bopi-marque.inpi.fr');
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
echo date('Y/m/d - H:i:s') ." - Cookie : ". trim($cookie) . $eol;
|
||||
randsleep(2,7);
|
||||
|
||||
for ($i=1; $i<3; $i++) {
|
||||
|
||||
// On initialise la page de récupération des pdf
|
||||
$post=array('a'=>$annee, 's'=>$s);
|
||||
$page=getUrl($referer, $cookie, $post, $referer, false, 'bopi-marque.inpi.fr');
|
||||
$url='http://bopi-marque.inpi.fr/pdf.html?pdf=s'.$i.'&format=bopi.pdf';
|
||||
$strTmp=@getTextInHtml($page['body'], 'href="pdf.html?pdf=s'.$i.'&format=bopi.pdf " target="_blank">', '_blank">', '</a>');
|
||||
if (!preg_match('/^BOPI (.*) du (.*) \(Volume '.$i.', taille (.*)\)$/i', $strTmp, $matches))
|
||||
die (date('Y/m/d - H:i:s') .' - ERREUR3 : Expression régulière impossible sur '. $strTmp . $eol .
|
||||
date('Y/m/d - H:i:s') .' - FIN du script'.$eol );
|
||||
$numBopi = $matches[1];
|
||||
$dateBopi = $matches[2];
|
||||
$tailleBopi = $matches[3];
|
||||
echo date('Y/m/d - H:i:s') ." - Volume $i, Numéro $numBopi du $dateBopi, taille = $tailleBopi $eol";
|
||||
$nomBopiHtm=$numBopi.'v'.$i.'.pdf';
|
||||
if (file_exists("$dossierBopiMarques/$nomBopiHtm"))
|
||||
{
|
||||
$tailleLoc=round(filesize("$dossierBopiMarques/$nomBopiHtm")/(1024*1024), 2);
|
||||
echo date('Y/m/d - H:i:s') ." - Le BOPI $nomBopiHtm a déjà été récupéré (taille = $tailleLoc) !$eol";
|
||||
continue;
|
||||
}
|
||||
sleep(5);
|
||||
echo date('Y/m/d - H:i:s') ." - Téléchargement du BOPI $nomBopiHtm...$eol";
|
||||
$page=getUrl($url, $cookie, '', $referer, false, 'bopi-marque.inpi.fr');
|
||||
$body=$page['body'];
|
||||
$strTmp=$page['header']['Content-Disposition'];
|
||||
$tabTmp=explode('"', $strTmp);
|
||||
$nomBOPI=$tabTmp[1];
|
||||
echo date('Y/m/d - H:i:s') ." - BOPI $nomBOPI téléchargé.".$eol;
|
||||
$fp=fopen($dossierBopiMarques.'/'.$nomBOPI, 'w');
|
||||
fwrite($fp, $body);
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,184 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
$eol="\n";
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
$tmin=5;
|
||||
$tmax=30;
|
||||
$debug=false;
|
||||
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION] NUMERO_BROCHURE [NUMERO_BROCHURE2 ...]
|
||||
Recupère la dernière Convention Collective de NUMERO_BROCHURE sur le site www.legifrance.fr.
|
||||
Si pas de numéro(s) en paramètre, récupèration des dernières conventions modifiées depuis la dernière synchro légifrance !
|
||||
|
||||
Liste des options:
|
||||
-n:X Intervalle MIN en secondes entre 2 requêtes aux JO (défaut=$tmin s)
|
||||
-i:X \" MAX \" \" \" \" \" \" (défaut=$tmax s)
|
||||
-d Mode débug (supprime les délais entre 2 requêtes et verbosité maximum)
|
||||
";
|
||||
$tabConv=array();
|
||||
$argv=$_SERVER['argv'];
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'n':
|
||||
$tmin=trim(substr($argv[$i],3))*1;
|
||||
if ($tmin<2) $tmin=2;
|
||||
break;
|
||||
case 'i':
|
||||
$tmax=trim(substr($argv[$i],3))*1;
|
||||
if ($tmax<2) $tmax=2;
|
||||
break;
|
||||
case 'd':
|
||||
$debug=true;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$tabConv[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
/** Récupération de la date de synchro de Légifrance avec le JO CC **/
|
||||
$referer='http://www.legifrance.com/WAspad/RechercheSimpleCoco.jsp';
|
||||
$page=getUrl('http://www.legifrance.gouv.fr/html/maj/maj_coco.htm', $cookie, '', $referer, false, 'www.legifrance.gouv.fr');
|
||||
$body=strip_tags($page['body']);
|
||||
//<b><font face="Arial" size="2">au 6 janvier 2007 (BO n° 2006/<span class="937291813-14092006">49</span>)</font></b>
|
||||
if (preg_match('/BO(?:.*)n(?:.*|)°(?:.*)([\d]{4,4})\/([\d]{2,2})/Uis', $body, $matches)) {
|
||||
/*<font face="Arial" size="2">au BO
|
||||
n° 2007/35</font></b> <font face="Arial" size="2">pour le Bulletin officiel des conventions collectives</font>
|
||||
*/
|
||||
$lastJOCCannee=$matches[1];
|
||||
$lastJOCCnum=(int)$matches[2]*1;
|
||||
if ($lastJOCCnum<10) $lastJOCC=$lastJOCCannee.'0'.$lastJOCCnum;
|
||||
else $lastJOCC=$lastJOCCannee.$lastJOCCnum;
|
||||
|
||||
echo date('Y/m/d - H:i:s') . ' - Dernier JO CC synchronisé avec Légifrance = '. $lastJOCC . $eol;
|
||||
}
|
||||
else die($body);
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('jo', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
|
||||
|
||||
/** Si pas de numéro de convention collective passée en paramètre, on récupère les dernières conventions à jour depuis la dernière synchro légifrance **/
|
||||
if (count($tabCon)==0) {//SELECT max(joCCmaj) FROM `conventions`
|
||||
$AnnDb=mysql_select('conventions', 'max(joCCmaj) as lastJOCCmaj', '1', true);
|
||||
$lastJOCCdb=$AnnDb[0]['lastJOCCmaj'];
|
||||
//$lastJOCCdb=200649;
|
||||
echo date('Y/m/d - H:i:s') . ' - Dernière synchronisation avec Légifrance = '. $lastJOCCdb . $eol;
|
||||
// On doit récupérer toutes les conventions collectives maj entre les 2 dates
|
||||
if ($lastJOCCdb<>$lastJOCC) {
|
||||
$AnnDb=mysql_select('conv', 'DISTINCT numBrochure', "numBrochure<>'' AND numCC BETWEEN $lastJOCCdb AND $lastJOCC", true);
|
||||
foreach ($AnnDb as $i=>$conv)
|
||||
$tabConv[$i]=$conv[0];
|
||||
echo date('Y/m/d - H:i:s') . ' - Il y a '. count($tabConv) .' conventions à mettre à jour !'. $eol;
|
||||
} else $tabConv=array();
|
||||
}
|
||||
|
||||
/** Boucle sur les conventions demandées
|
||||
**/
|
||||
foreach ($tabConv as $iconv=>$convention) {
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Début de la récupération de la CC n°$convention...$eol";
|
||||
flush();
|
||||
|
||||
/** Recherche de la convention **/
|
||||
$url='http://www.legifrance.com/WAspad/VisuSommaireCoco.jsp?lenum='.$convention;
|
||||
$referer='http://www.legifrance.com/WAspad/RechercheSimpleCoco.jsp';
|
||||
$page=getUrl($referer, '', '', '', false, 'www.legifrance.com');
|
||||
$body=$page['body'];
|
||||
$cookie=trim($page['header']['Set-Cookie']);
|
||||
if ($debug) { echo date('Y/m/d - H:i:s') . ' - Cookie : '. trim($cookie) . $eol;
|
||||
$tmin=1; $tmax=2;
|
||||
} else randsleep($tmin, $tmax);
|
||||
|
||||
/** On vérifie si en base la convention n'est pas à jour que ce présente sur légifrance **/
|
||||
$AnnDb=mysql_select('conventions', 'joCCmaj, dateUpdate', "numBrochure=$convention AND joCCmaj>$lastJOCC ORDER BY joCCmaj DESC LIMIT 0,1", true);
|
||||
$dateDb=$AnnDb[0]['dateUpdate'];
|
||||
$joCCDb=$AnnDb[0]['joCCmaj'];
|
||||
if (count($AnnDb)>0) {
|
||||
echo date('Y/m/d - H:i:s') ." - La convention n°$convention est à jour du JO CC $joCCDb !$eol";
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Récupération du nom et du périmètre de la convention */
|
||||
$postData=array('ks_num'=>$convention, 'ks_theme'=>'');
|
||||
$page=getUrl('http://www.legifrance.com/WAspad/RechercheSimpleCoco', $cookie, $postData, $referer, false, 'www.legifrance.com');
|
||||
$body=$page['body'];
|
||||
$strTmp=@getTextInHtml($body, '<a href="VisuSommaireCoco.jsp?lenum='.$convention.'">', '</a></b>', '</i><br>');
|
||||
$tabTmp=explode('</a><br>', $strTmp);
|
||||
$nomCC=trim(strip_tags($tabTmp[0]));
|
||||
$infoCC=trim(strip_tags($tabTmp[1]));
|
||||
echo date('Y/m/d - H:i:s') . " - Convention Collective $nomCC ($convention)$eol";
|
||||
die($body);
|
||||
|
||||
/** Sommaire de la CC **/
|
||||
if (!$debug) randsleep($tmin, $tmax);
|
||||
$urlSommaire='http://www.legifrance.com/WAspad/VisuSommaireCoco.jsp?lenum='.$convention;
|
||||
$page=getUrl($url, $cookie, '', 'http://www.legifrance.com/WAspad/RechercheSimpleCoco', false, 'www.legifrance.com');
|
||||
$bodySommaire=$page['body'];
|
||||
preg_match_all('/<a href="VisuCoco\.jsp\?nod=(.*)">(.*)<\/a>/i', $bodySommaire, $matches);
|
||||
$tabUrl=$matches[1];
|
||||
$tabTitre=$matches[2];
|
||||
$nbPages=count($tabUrl);
|
||||
|
||||
$bodySommaire='<b><font color="#336699" face="Arial">Brochure n° '.trim(@getTextInHtml($bodySommaire, '<b><font color="#336699" face="Arial">Brochure n°', 'n°', '<p align="right"><a href="RechercheSimpleCoco?ks_num='));
|
||||
|
||||
$htmlConv=preg_replace('/<a href="VisuCoco\.jsp\?nod=/i', '<a href="#titre', $bodySommaire).'<hr/><br/>';
|
||||
|
||||
foreach($tabUrl as $i=>$params)
|
||||
{
|
||||
if (!$debug) randsleep($tmin, $tmax);
|
||||
$url='http://www.legifrance.com/WAspad/VisuCoco.jsp?nod='.$params;
|
||||
$page=getUrl($url, $cookie, '', urlSommaire, false, 'www.legifrance.com');
|
||||
$body=@getTextInHtml($page['body'], 'nt</a></font> </div>', '</div>', '<div align="right"> <font face="Arial" size="2"><a href="VisuCoco.jsp');
|
||||
$htmlConv.='<a name="titre'.$params.'" />'. $body;
|
||||
|
||||
if ($i==0) echo date('Y/m/d - H:i:s') ." - Téléchargement des pages n°$i/$nbPages";
|
||||
else echo ", $i/$nbPages";
|
||||
flush();
|
||||
}
|
||||
echo $eol;
|
||||
|
||||
$taille=strlen($htmlConv);
|
||||
echo date('Y/m/d - H:i:s') ." - Convention n°$convention téléchargée : $nbPages pages ($taille)$eol";
|
||||
|
||||
$AnnDb=mysql_select('conventions', 'length(texte) as taille, dateInsert, joCCmaj, dateUpdate', "numBrochure=$convention ORDER BY joCCmaj DESC LIMIT 0,1");
|
||||
$tailleDb=$AnnDb[0]['taille'];
|
||||
$dateDb=$AnnDb[0]['dateUpdate'];
|
||||
$joCCDb=$AnnDb[0]['joCCmaj'];
|
||||
if ($tailleDb==$taille) {
|
||||
echo date('Y/m/d - H:i:s') ." - Cette version de la convention n°$convention est déjà en base !$eol";
|
||||
if ($joCCDb<=$lastJOCC) {
|
||||
echo date('Y/m/d - H:i:s') ." - Mise à jour de la date d'update pour cette convention.$eol";
|
||||
$tabUpdate=array('joCCmaj'=>$lastJOCC, 'dateUpdate'=>date('YmdHis'));
|
||||
if (!mysql_update('conventions', $tabUpdate, "numBrochure=$convention AND joCCmaj='$joCCDb'", true))
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . $eol;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
$tabInsert=array('numBrochure'=>$convention,
|
||||
'nomCC'=>$nomCC,
|
||||
'infoCC'=>$infoCC,
|
||||
'texte'=>$htmlConv,
|
||||
'joCCmaj'=>$lastJOCC);
|
||||
if (mysql_insert('conventions', $tabInsert))
|
||||
echo date('Y/m/d - H:i:s') .' - Convention enregistrée avec succès dans la base !'. $eol;
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . $eol;
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin de la récupération de la CC n°$convention.$eol";
|
||||
}
|
||||
?>
|
@ -1,70 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
set_time_limit(0);
|
||||
$eol="\n";
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
|
||||
if (!($con === false)) {
|
||||
if (mysql_select_db('insee', $con) === false)
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
|
||||
}
|
||||
else
|
||||
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
|
||||
|
||||
$tabInfosGlobal=array();
|
||||
function htm2txt($str) {
|
||||
return trim(strip_tags( str_replace(chr(160), ' ',
|
||||
str_replace('œ', 'oe',
|
||||
str_replace('’', '\'', html_entity_decode($str, ENT_QUOTES))))));
|
||||
}
|
||||
function getNextDate($dateCour) {
|
||||
$nextDate=date('Ymd', mktime(0, 0, 0, dateT('Ymd','m', $dateCour), dateT('Ymd','d', $dateCour)+7, dateT('Ymd','Y', $dateCour)));
|
||||
return $nextDate;
|
||||
}
|
||||
$referer='';
|
||||
$fp=fopen('conventionsCollectives.csv', 'w');
|
||||
fwrite($fp, "naf;trouvé;id Url CC;id CC;nom CC;info CC;editeur CC;nb page CC;isbn CC;date edition CC\n");
|
||||
$rep=mysql_select('tabNAF', 'codNaf700', "1", true);
|
||||
shuffle($rep);
|
||||
foreach($rep as $g=>$tabNaf)
|
||||
{
|
||||
$naf=$tabNaf[0];
|
||||
$postData=array('ape'=>$naf);
|
||||
$url='http://www.code-du-travail-fr.net/rechercheape.php';
|
||||
$page=getUrl($url, '', $postData, $referer, false, 'www.code-du-travail-fr.net');
|
||||
$headers=$page['header'];
|
||||
$code=$page['code'];// Code réponse Serveur
|
||||
$body=$page['body'];
|
||||
$tabTmp =explode('<hr><h5> <a href="./convention.php', $body);
|
||||
for($i=1; isset($tabTmp[$i]); $i++) {
|
||||
$strCon=trim(@getTextInHtml($tabTmp[$i], '?id=', '=', '</a></h5>'));
|
||||
if ($strCon=='') {
|
||||
echo "$naf;0;\n";
|
||||
break;
|
||||
}
|
||||
$tmp = explode('"', $strCon);
|
||||
$idUrl = $tmp[0];
|
||||
$idCC = trim(@getTextInHtml($strCon, '">', '>', '</a>'));
|
||||
$nomCC = strtr(trim(@getTextInHtml($strCon, ' class="convention">', '">', '<br />')),";\r\n",', ');
|
||||
$infCC = strtr(trim(@getTextInHtml($strCon, ' <br />[ ', '[', '] </a>')),";\r\n",', ');
|
||||
$url2='http://www.code-du-travail-fr.net/convention.php?id='.$idUrl;
|
||||
$page=getUrl($url2, '', '', $url, false, 'www.code-du-travail-fr.net');
|
||||
$body=$page['body'];
|
||||
$strCon=trim(@getTextInHtml($body, '<table width="100%" height="201" border="1" cellpadding="0" cellspacing="0" bordercolor="#003366">', '<tr>', '</TABLE>'));
|
||||
$ediCC = trim(strtr(@getTextInHtml($strCon, 'Editeur ', '</B>', '</div>'), ";\r\n", ', '));
|
||||
$nbpCC = trim(strtr(@getTextInHtml($strCon, 'Nb de pages :</font></B></div></TD>', '<B></B>', ' '),";\r\n", ', '));
|
||||
$isbnCC = trim(strtr(@getTextInHtml($strCon, 'ISBN ', ':', ' '), ";\r\n", ', '));
|
||||
$dtedCC = trim(strtr(@getTextInHtml($strCon, 'Date d\'édition : </font>', '(', ')'), ";\r\n", ', '));
|
||||
|
||||
fwrite($fp, "$naf;1;$idUrl;$idCC;$nomCC;$infCC;$ediCC;$nbpCC;$isbnCC;$dtedCC\n");
|
||||
echo ("$naf;1;$idUrl;$idCC;$nomCC;$infCC;$ediCC;$nbpCC;$isbnCC;$dtedCC\n");
|
||||
|
||||
$idUrl=$idCC=$nomCC=$infCC=$ediCC=$nbpCC=$isbnCC=$dtedCC='';
|
||||
randsleep(1,5);
|
||||
}
|
||||
}
|
||||
fclose($fp);
|
||||
?>
|
@ -1,66 +0,0 @@
|
||||
#!/usr/bin/php -q
|
||||
<?php
|
||||
$eol="\n";
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
include '/var/www/default/_includes/curl.php';
|
||||
include '/var/www/default/_includes/mysql.php';
|
||||
|
||||
$tmin=5;
|
||||
$tmax=30;
|
||||
$debug=false;
|
||||
/*
|
||||
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION] NUMERO_BROCHURE [NUMERO_BROCHURE2 ...]
|
||||
Recupère la dernière Convention Collective de NUMERO_BROCHURE sur le site www.legifrance.fr.
|
||||
Si pas de numéro(s) en paramètre, récupèration des dernières conventions modifiées depuis la dernière synchro légifrance !
|
||||
|
||||
Liste des options:
|
||||
-n:X Intervalle MIN en secondes entre 2 requêtes aux JO (défaut=$tmin s)
|
||||
-i:X \" MAX \" \" \" \" \" \" (défaut=$tmax s)
|
||||
-d Mode débug (supprime les délais entre 2 requêtes et verbosité maximum)
|
||||
";
|
||||
$tabConv=array();
|
||||
$argv=$_SERVER['argv'];
|
||||
for ($i=1; isset($argv[$i]); $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch (substr($argv[$i],1,1)) {
|
||||
case 'n':
|
||||
$tmin=trim(substr($argv[$i],3))*1;
|
||||
if ($tmin<2) $tmin=2;
|
||||
break;
|
||||
case 'i':
|
||||
$tmax=trim(substr($argv[$i],3))*1;
|
||||
if ($tmax<2) $tmax=2;
|
||||
break;
|
||||
case 'd':
|
||||
$debug=true;
|
||||
break;
|
||||
case '-':
|
||||
die($strInfoProg);
|
||||
break;
|
||||
default: die('Option '. $argv[$i] . " inconnue !\n");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$tabConv[]=$argv[$i];
|
||||
}
|
||||
}
|
||||
**/
|
||||
|
||||
/** Ligne d'entête **/
|
||||
echo "No Département;N° JAL;Nom Département;Nom JAL;Site Web;Email;Adresse;CP;Ville;Tel;Fax;Parution;Infos;\n";
|
||||
|
||||
for ($i=1; $i<21375; $i++)
|
||||
{
|
||||
$referer='http://www.google.fr/';
|
||||
$url='http://www.annuaire-decideur.com/smdl/2/imp_fiche.adml?SITE=440&S_REPSMDL=/smdl/2&s_f='.$i;
|
||||
//randsleep(2,7);
|
||||
$page=getUrl($url, '', '', $referer, false, 'www.annuaire-decideur.com');
|
||||
$body=$page['body'];
|
||||
print_r($page);
|
||||
die();
|
||||
}
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Fin du traitement".EOL;
|
||||
?>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user