Compare commits

...

No commits in common. "1.0" and "1.0.1" have entirely different histories.
1.0 ... 1.0.1

2346 changed files with 290127 additions and 289306 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,815 +0,0 @@
#!/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();
?>

View File

@ -1,207 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('BOAMP_LOCAL_DIR', '/home/data/boamp/Klekoon/1_FORMAT_ANCIEN/Fichiers/');
error_reporting(E_ALL & ~E_NOTICE);
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(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Calcul des ratios de toute la base entreprise S&D.
Options :
-t Calculer tous les ratios (*)
-i:XXX Reprendre à la ligne XXX
-c Mettre à jour le cache
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
$iDb=new WDB('boamp');
$iInsee=new MInsee();
$iBodacc=new MBodacc();
$modeDebug=false; // Mode débug
$questions=true; // Questions interactives autorisées
$tabFichier=$tabFichLigneCmd=array();
$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 '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichLigneCmd[]=$argv[$i];
}
if (count($tabFichLigneCmd)==0) {
$dh = opendir(BOAMP_LOCAL_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.PUB')
$tabFichier[] = $filename;
}
sort($tabFichier);
}
if (count($tabFichier)==0 && count($tabFichLigneCmd)==0) die(date ('Y/m/d - H:i:s') . " - Aucun fichier d'annonces BOAMP à traiter !".EOL);
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des annonces BOAMP...".EOL;
for ($iFic=0; isset($tabFichier[$iFic]); $iFic++)
{
$nomFichier=$tabFichier[$iFic];
echo date ('Y/m/d - H:i:s') . " - Lecture du fichier $nomFichier...".EOL;
$tabLignes=file(BOAMP_LOCAL_DIR.$nomFichier);
$tabAnnonces=array();
$iAnn=0;
$nextBalise='';
foreach ($tabLignes as $i=>$ligne) {
$nextBaliseLu=false;
$code=''.substr($ligne,0,2);
$texte=strtr(substr($ligne,2), '`„Œ$~', 'èéà@ç');
switch ($code) {
case '01':
$iAnn++;
$tabAnnonces[$iAnn]['annee']='20'.substr($texte,0,2);
$tabAnnonces[$iAnn]['numParution']=substr($texte,2,3);
if (substr($texte,5,1)=='1') $edition='A';
elseif (substr($texte,5,1)=='2') $edition='B';
elseif (substr($texte,5,1)=='3') $edition='C';
else die("Edition '$edition' inconnue !");
$tabAnnonces[$iAnn]['edition']=$edition;
$tabAnnonces[$iAnn]['dateParution']='20'.substr($texte,10,2).substr($texte,8,2).substr($texte,6,2);
$tabAnnonces[$iAnn]['numAnnonce']=substr($texte,12,4);
$tabAnnonces[$iAnn]['r2']=trim(substr($texte,16,3));
$tabAnnonces[$iAnn]['dept']=trim(substr($texte,19,3));
$tabAnnonces[$iAnn]['rubrique']=substr($texte,22,3);
$tabAnnonces[$iAnn]['nojo']=substr($texte,25,10);
$tabAnnonces[$iAnn]['numAnnB']=substr($texte,35,4);
$tabAnnonces[$iAnn]['texte']=$tabAnnonces[$iAnn]['balises']='';
break;
case '05':
switch (trim($texte)) {
case 'Nom et adresse officiels du pouvoir':
case 'adjudicateur:':
$nextBalise='infoOrgNom';
break;
case "à l'attention de":
$nextBalise='infoOrgDest';
break;
case 'Mode de passation:':
case 'Procédure de passation:':
$nextBalise='infoPassation';
break;
case "Critères d'attribution:":
$nextBalise='infoAttribution';
break;
case "Référence d'identification du marché":
case "qui figure dans l'appel d'offres:":
$nextBalise='infoIdenMarche';
break;
case "Annonce no":
case "B.O.A.M.P.":
$nextBalise='infoAnnonceNo';
break;
case "Date d'envoi de l'avis à la":
case 'publication:':
$nextBalise='infoPublication';
break;
default:
$nextBalise='';
break;
}
break;
case '15':
switch (trim($texte)) {
case 'Objet :':
case 'Objet du marché:':
$nextBalise='objet';
break;
}
break;
case '16':
$tabAnnonces[$iAnn]['objetMarche'].=trim($texte).' ';
break;
case '10':
if ($nextBalise<>'') {
$nextBaliseLu=true;
$tabAnnonces[$iAnn]['_'.$nextBalise].=trim($texte).' ';
}
else
$tabAnnonces[$iAnn]['code'.$code].=trim($texte).' ';
break;
case '17':
case '30':
case '35':
break;
case '28':
$tabAnnonces[$iAnn]['code28'].=trim($texte).' ';
break;
case '44':
$tabAnnonces[$iAnn]['naf'].=trim($texte).' ';
break;
case '20':
$tabAnnonces[$iAnn]['classes'].=preg_replace('/00$/','', trim($texte)).' ';
break;
case '25':
$tabAnnonces[$iAnn]['motDesc'].=trim($texte).' ';
break;
case '41':
$tabAnnonces[$iAnn]['numAnnonce41']=trim($texte);
break;
case '42':
$tabAnnonces[$iAnn]['dateParution42']=trim($texte);
break;
default:
die("Code '$code' inconnu : ".$texte);
}
if ($code<>'01') $tabAnnonces[$iAnn]['texte'].=$texte;
$tabAnnonces[$iAnn]['balises'].="<b$code>".trim($texte)."</b$code>".EOL;
if ($code<>'05' && !$nextBaliseLu) $nextBalise='';
}
echo date ('Y/m/d - H:i:s') . " - Chargement des $iAnn annonces du fichier $nomFichier...".EOL;
/** Insertion de l'annonce en base
**/
foreach ($tabAnnonces as $i=>$tabAnnonce) {
if (preg_match('/(.*)((?:[0-9]{1,4},? | rue | place | boulevard | avenue )(?:.*)(?:[0-9]{5,5} )(?:.*))/Ui', $tabAnnonce['_infoOrgNom'], $matches)) {
$tabAnnonce['nom']=trim($matches[1]);
$tabAnnonce['adresse']=trim($matches[2]);
} else {
$tabAnnonce['nom']=trim($tabAnnonce['_infoOrgNom']);
$tabAnnonce['adresse']=trim($tabAnnonce['_infoOrgDest']);
}
$ret=$iDb->insert('avis', $tabAnnonce);
//$ret=$iDb->insert('bodacc_detail', $tabAnnC);
if (!$ret && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno().
" : Insertion des informations 'autres' du BODACC sur le siren ".$sirenParticipation." en base impossible (annonce $idAnnRet) !".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
//print_r($tabAnnC);
//print_r($tabData);
die();
}
}
echo date ('Y/m/d - H:i:s') . " - Les $i annonces du fichier $nomFichier ont été chargées.".EOL;
}
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des annonces BOAMP...".EOL;
?>

View File

@ -1,315 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL & ~E_NOTICE);
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(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(FWK_PATH.'mail/sendMail.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Calcul des ratios de toute la base entreprise S&D.
Options :
-t Calculer tous les ratios (*)
-i:XXX Reprendre à la ligne XXX
-c Mettre à jour le cache
-d:SSAAMMJJhhiiss Forcer la date de dernière MAJ à ...
-m:SSAA Recalculer tous les ratios de l'année SSAA
-r:XXX,YYY,... Limiter le calcul au ratios suivant : séparateur virgule
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
$iDeb=0;
$updateCache=$millesime=$ratio=$modeVerbose=false;
$tabRatiosToCalc=array();
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 't':
break;
case 'i':
$iDeb=substr($argv[$i],3)*1;
break;
case 'd':
$dateDeb=substr($argv[$i],3)*1;
break;
case 'm':
$millesime=substr($argv[$i],3)*1;
break;
case 'r':
$ratio=true;
$tabRatiosToCalc=explode(',',substr($argv[$i],3));
break;
case 'v':
$modeVerbose=true;
break;
case 'c':
$updateCache=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
}
}
//$iDbI=new WDB('insee');
$iDb=new WDB('jo');
$iDb2=new WDB('jo');
$iInsee=new MInsee();
if ($updateCache) {
include_once(INCLUDE_PATH.'scores/classMRatios.php');
if (genereCacheRatios())
echo date('Y/m/d - H:i:s') ." - Le cache des ratios a été généré avec succès !".EOL;
else
echo date('Y/m/d - H:i:s') ." - Erreur lors de la génération du cache des ratios !".EOL;
die();
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de calcul des ratios...".EOL;
$tabLast=$iDb->select( 'ratios_formules',
'max(dateUpdate) AS lastUpdate, max(dateInsert) AS lastInsert',
'1');
$lastUpdate=$tabLast[0]['lastInsert'];
if ($tabLast[0]['lastUpdate']>$lastUpdate) $lastUpdate=$tabLast[0]['lastUpdate'];
/** On vérifie la présence du cache de calcul des ratios **/
if (!file_exists(INCLUDE_PATH.'tmp/configMRatios.php'))
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'existe pas !".EOL);
/** On vérifie qu'il n'y a pas de nouvelles formules à mettre dans le cache de calcul des ratios **/
elseif (strtr($lastUpdate, array(':'=>'','-'=>'', ' '=>''))>date('YmdHis',filectime(INCLUDE_PATH.'tmp/configMRatios.php'))) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR FATALE, le cache ratio n'est pas à jour !", date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !");
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !".EOL);
}
/** On vérifie que le programme de MAJ du cache n'a pas été modifié **/
elseif (date('YmdHis',filectime(INCLUDE_PATH.'scores/classMRatios.php'))>date('YmdHis',filectime(INCLUDE_PATH.'tmp/configMRatios.php'))) // Le fichier de cache est déprécié
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (programme modifié). Relancer à l'option -c !".EOL);
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
echo date('Y/m/d - H:i:s') ." - Formules de calcul des ratios déjà en cache.".EOL;
/** Recherche de la dernière mise à jour des ratios secteurs **/
$tabLast=$iDb->select( 'ratios_secteurs',
'max(dateUpdate) AS lastUpdate, max(dateInsert) AS lastInsert',
'1');
$lastUpdate=$tabLast[0]['lastInsert'];
if ($tabLast[0]['lastUpdate']>$lastUpdate) $lastUpdate=$tabLast[0]['lastUpdate'];
if ($dateDeb>20000101123000) $lastUpdate=$dateDeb;
$lastDateUpdate=strtr($lastUpdate,array(' '=>'',':'=>'','-'=>''));
echo(date('Y/m/d - H:i:s') ." - La dernière mise à jour des ratios secteurs date du $lastUpdate...".EOL);
$nbRows=$iDb->select( 'ratios_tmp', 'siren, lastUpdate', "1", false, MYSQL_ASSOC, true);
if ($nbRows>0) {
$modeSuite=true;
echo date('Y/m/d - H:i:s') ." - Il reste $nbRows entreprises pour lesquels il faut mettre à jour les ratios secteurs...".EOL;
} else {
/** On met en table temporaire les siren en cas de plantage du script **/
$modeSuite=false;
if ($millesime) {
// Liste des derniers Bilans insérés depuis le dernier calcul des ratios
$nbRows=$iDb->select( 'bilans', 'DISTINCT siren', "siren>100 AND dateExercice BETWEEN $milles"."0101 AND $millesime"."1231 AND typeBilan IN ('N','S','',' ','A','B') ORDER BY dateInsert DESC", false, MYSQL_ASSOC, true);
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises avec des bilans millésimes $millesime pour calcul des ratios secteurs...".EOL;
//die();
} else {
// Date du dernier bilan inseré
$tabLast=$iDb->select( 'bilans',
'MAX(dateInsert) AS lastDateInsert',
"siren>100 AND dateInsert>='$lastUpdate' AND typeBilan IN ('N','S','',' ','A','B') ORDER BY dateInsert DESC");
$lastDateBilan=strtr($tabLast[0]['lastDateInsert'],array(' '=>'',':'=>'','-'=>''));
echo(date('Y/m/d - H:i:s') ." - Le dernier bilan inséré en base date du $lastDateBilan...".EOL);
// Liste des derniers Bilans insérés depuis le dernier calcul des ratios
$nbRows=$iDb->select( 'bilans', 'DISTINCT siren', "siren>100 AND dateInsert>='$lastUpdate' AND typeBilan IN ('N','',' ','A','B') ORDER BY dateInsert DESC", false, MYSQL_ASSOC, true);
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises avec nouveaux bilans pour calcul des ratios secteurs...".EOL;
}
$iDb2->query('DROP TABLE IF EXISTS ratios_tmp;');
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la création de la table temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
$strSQL="CREATE TABLE IF NOT EXISTS ratios_tmp (
siren int(9) unsigned zerofill NOT NULL,
lastUpdate bigint(14) unsigned zerofill NOT NULL COMMENT 'Date de dernière mise à jour de la table ratio',
lastBilan bigint(14) unsigned zerofill NOT NULL COMMENT 'Dernier bilan enregistré dans la table bilan',
millesime year(4) unsigned NULL DEFAULT NULL COMMENT 'Paramètre millesime si défini',
PRIMARY KEY(siren)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='TABLE TEMPORAIRE - Liste des bilans dont il faut calculer les ratios';";
$iDb2->query($strSQL);
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la création de la table temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
if (!$millesime) $millesimeDb='NULL'; else $millesimeDb=$millesime;
$iDb2->insert('ratios_tmp', array( 'siren' =>$entrep['siren'],
'lastUpdate'=>$lastDateUpdate, // Date de dernière mise à jour de la table ratio
'lastBilan' =>$lastDateBilan, // Dernier bilan enregistré dans la table bilan
'millesime' =>$millesimeDb)); // On enregistre le paramètre millesime
}
echo date('Y/m/d - H:i:s') ." - Les éléments ont été mis en table temporaire en cas de reprise sur erreur !".EOL;
$nbRows=$iDb->select( 'ratios_tmp', 'siren, lastUpdate, lastBilan, millesime', "1", false, MYSQL_ASSOC, true);
}
$k=0; // Compteur d'entreprises
$b=0; // Compteur total de bilans
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
if ($modeSuite && $k==0) $lastDateUpdate=$entrep['lastUpdate'];
$millesime=$entrep['millesime'];
$k++;
if ($k<$iDeb) continue;
$siren=$entrep['siren'];
if ($siren<100) continue;
// else echo "$siren\n";
$naf4=$naf5='';
unset($mBil);
$mBil=new MBilans($siren);
/** Récupération des informations Identitaires **/
$tabIdentite=@$iInsee->getIdentiteLight($siren);
$naf=$tabIdentite['NafEnt'];
$nafLib=$tabIdentite['NafEntLib'];
$efftr=$tabIdentite['Effectif'];
$fj=$tabIdentite['FJ'];
/** On Recherche le dernier Bilan mis à jour **/
$tabBilans=$mBil->listeBilans();
$nbBilansTot=count($tabBilans);
$tabBilans2=array();
foreach ($tabBilans as $mil=>$infosBilan) {
/** On vérifie s'il n'y a pas de Bilan vide **/
if ($infosBilan['dureeExercice']==0) {
if ($modeVerbose) {
print_r($infosBilan);
echo date('Y/m/d - H:i:s') ." - Erreur : Bilans vide en base pour le siren $siren !".EOL;
}
$iDb2->delete('ratios_tmp', "siren=$siren");
continue(2);
}
/** On ne garde que les Bilans dont la date de provenance est > à la date de dernière Mise à jour
** car les ratios secteurs des autres bilans on déjà été calculés ! **/
if ($millesime && $infosBilan['millesime']==$millesime) {
//echo "APRES ### $siren : $nbBilansTot bilans, $millesime = ".$infosBilan['millesime'].EOL;
$tabBilans2[$mil]=$infosBilan;
}
elseif (!$millesime && $infosBilan['dateInsert']>=$lastDateUpdate)
$tabBilans2[$mil]=$infosBilan;
/*else
echo "DALLE ### $siren : $nbBilansTot bilans, $millesime = ".$infosBilan['millesime']." ### QUE DALLE !!!!".EOL;*/
}
$nbBilans=count($tabBilans2);
$tabBilan=$tabBil=array();
if ($nbBilans==0) {
if ($modeVerbose) {
print_r($tabBilans2);
echo date('Y/m/d - H:i:s') ." - Erreur : Aucun nouveau bilan en base pour le siren $siren sur les $nbBilansTot bilans !".EOL;
print_r($tabBilans);
}
$iDb2->delete('ratios_tmp', "siren=$siren");
continue;
}
$tabRatios=@calculRatios($tabBilans2, $tabIdentite, false, 999);
if (strlen($naf)>4) $naf5=$naf; else $naf4=$naf;
if ($tabBilan[0]['CONSOLIDE']=='A') $naf4='ASSU';
elseif ($tabBilan[0]['CONSOLIDE']=='B') $naf4='BANQ';
if ($modeVerbose && ($naf4=='ASSU' || $naf4=='BANQ')) {
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Calcul des ratios : Attention bilan de e", "Siren $siren, bilan $naf4".EOL.print_r($tabBilans));
echo "Bilan '$naf4' pour le siren $siren et l'année $annee !".EOL;
}
foreach ($tabFormules as $f=>$formule) {
foreach ($tabRatios as $i=>$R) {
$id=$formule['id'];
// Si on demande seulement le calcul d'un ratio alors on vérifie le numéro du ratio
if ($ratio && !in_array($id, $tabRatiosToCalc)) continue;
if ($f==0) $b++;
// Si on n'est pas une banque/assurance, on ne calcul pas les ratios 700 à 799
if ($naf4<>'ASSU' && $naf4<>'BANQ' && $id>=700 && $id<800)
continue;
$annee=substr($tabBilan[$i]['DATE_CLOTURE'],0,4);
// Si on demande seulement le calcul d'un millésime alors on vérifie la date du bilan
if ($millesime && $annee<>$millesime) continue;
if ($R[$id]==='NS' || $R[$id]===false ) {
if ($modeVebose) echo "Le ratio n°$id est non significatif (".$R[$id].") pour le siren $siren et l'année $annee !".EOL;
continue;
}
/** Si c'est un ratio EUR, on le passe en K€ **/
if ($formule['unite']=='EUR') $mt=$R[$id]/1000;
else $mt=$R[$id];
/** On vérifie les bornes MIN et MAX **/
if ($formule['min']<>'' && $mt<$formule['min']) {
if ($modeVerbose) echo "Ratio n°$id, borne Mini non nulle (".$formule['min'].") et le montant est inférieur : $mt<".$formule['min']." pour le siren $siren et l'année $annee".EOL;
continue;
} elseif ($formule['max']<>'' && $mt>$formule['max']) {
if ($modeVerbose) echo "Ratio n°$id, borne Maxi non nulle (".$formule['max'].") et le montant est supérieur : $mt>".$formule['max']." pour le siren $siren et l'année $annee".EOL;
continue;
} //else
//echo "Ratio n°$id compris entre bornes ".$formule['min']." < $mt < ".$formule['max']." pour le siren $siren et l'année $annee".EOL;
/** Lecture des chiffres existants dans la table ratios_secteurs **/
$tabTmp=$iDb2->select( 'ratios_secteurs',
'montant, nombre, id, naf4, naf5, annee',
"id=$id AND naf4='$naf4' AND naf5='$naf5' AND annee=$annee",
false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
$mt2=$mt+$tabTmp[0]['montant'];
$nb2=$tabTmp[0]['nombre'] + 1;
} else {
$mt2=$mt;
$nb2=1;
}
$tabUpdate=array( 'montant' => $mt2,
'nombre' => $nb2,
);
if (!$iDb2->update('ratios_secteurs', $tabUpdate, "id=$id AND naf4='$naf4' AND naf5='$naf5' AND annee=$annee") || $iDb2->getAffectedRows()==0 ) { // getAffectedRows ajouté le 14 mai 2009
$tabInsert=array_merge($tabUpdate, array( 'id'=>$id,
'naf4'=>$naf4,
'naf5'=>$naf5,
'annee'=>$annee,
'dateInsert'=>$lastDateBilan,
));
if (!$iDb2->insert('ratios_secteurs', $tabInsert) && mysql_errno()<>1062) {
$pct=round(($k/$nbRows)*100,2);
echo date('Y/m/d - H:i:s') ." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
echo date('Y/m/d - H:i:s') .' - ERREUR SQL n°'.mysql_errno().' : '.mysql_error().EOL;
die();
}
}
if ($k%1000==0 && $f==0 && $i==0) {
$pct=round(($k/$nbRows)*100,2);
echo date('Y/m/d - H:i:s') ." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
}
}
}
$iDb2->delete('ratios_tmp', "siren=$siren");
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la suppression des informations temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
}
echo date('Y/m/d - H:i:s') ." - Les ratios ont été mis à jour ; suppression des informations temporaires.".EOL;
$iDb2->query('DROP TABLE IF EXISTS jo.ratios_tmp;');
die(date('Y/m/d - H:i:s') ." - Fin du programme.".EOL);
?>

View File

@ -1,112 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL & ~E_NOTICE);
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(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Calcul des ratios de toute la base entreprise S&D.
Options :
-t Calculer tous les ratios (*)
-i:XXX Reprendre à la ligne XXX
-c Mettre à jour le cache
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
$iDeb=0;
$updateCache=false;
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 't':
break;
case 'i':
$iDeb=substr($argv[$i],3)*1;
break;
case 'c':
$updateCache=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
}
}
//$iDbI=new WDB('insee');
$iDb=new WDB('jo');
$iDb2=new WDB('jo');
$iInsee=new MInsee();
$limit=1000000;
$iFin=504;//2/*504*/;
$tabFormule=$tabSecteursMt=$tabSecteursNb=array();
$tabFormules=$iDb->select( 'ratios_formules',
'id, libelle, formule, unite, commentaires, deleted, borneMin, borneMax',
'deleted=0');
foreach ($tabFormules as $i=>$formule) {
$id=$formule['id']*1;
//$tabFormule['f'.$id]['libelle']=$formule['libelle'];
$tabFormule['f'.$id]['unite']=$formule['unite'];
$tabFormule['f'.$id]['min']=$formule['borneMin'];
$tabFormule['f'.$id]['max']=$formule['borneMax'];
}
echo date('Y/m/d - H:i:s') ." - Formules mises en mémoire ...".EOL;
//print_r($tabFormule);die();
for ($iDeb=0; $iDeb<=$iFin*$limit; $iDeb+=$limit) {
$nbRows=$iDb->select( 'ratios_test2', 'siren, id, naf4, naf5, millesime, montant', "1 LIMIT $iDeb,$limit", false, MYSQL_ASSOC, true);
$iDebAff=$iDeb/$limit;
echo date('Y/m/d - H:i:s') ." - Tranche de ratios n°$iDebAff/$iFin...".EOL;
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
if ($tabFormule['f'.$entrep['id']]['unite']=='EUR') $mt=$entrep['montant']/1000;
else $mt=$entrep['montant'];
if ($tabFormule['f'.$entrep['id']]['min']!==NULL && $mt<$tabFormule['f'.$entrep['id']]['min']) {
//echo 'Borne Mini non nulle ('.$tabFormule['f'.$entrep['id']]['min'].") et le montant est inférieur : $mt<".$tabFormule['f'.$entrep['id']]['min']."!\n";
continue;
} elseif ($tabFormule['f'.$entrep['id']]['max']!==NULL && $mt>$tabFormule['f'.$entrep['id']]['max']) {
//echo 'Borne Maxi non nulle ('.$tabFormule['f'.$entrep['id']]['max'].") et le montant est supéreiur : $mt>".$tabFormule['f'.$entrep['id']]['max']."!\n";
continue;
} /*else
echo 'Ratio compris entre bornes '.$tabFormule['f'.$entrep['id']]['min']." < $mt < ".$tabFormule['f'.$entrep['id']]['max'].".\n";
*/
$tabSecteursMt[$entrep['id'].'-'.$entrep['naf4'].'-'.$entrep['naf5'].'-'.$entrep['millesime']]+=$mt;
$tabSecteursNb[$entrep['id'].'-'.$entrep['naf4'].'-'.$entrep['naf5'].'-'.$entrep['millesime']]++;
}
}
echo date('Y/m/d - H:i:s') ." - Insertion en base des ".count($tabSecteursMt)." ratios secteurs...".EOL;
$dateInsert=date('YmdHis');
foreach ($tabSecteursMt as $cleSecteur=>$mt) {
$tmp=explode('-', $cleSecteur);
$tabInsert=array( 'id' => $tmp[0],
'naf4' => $tmp[1],
'naf5' => $tmp[2],
'annee' => $tmp[3],
'montant' => $mt,
'nombre' => $tabSecteursNb[$cleSecteur],
'dateInsert'=> $dateInsert,
);
if (!$iDb->insert('ratios_secteurs', $tabInsert)) {
echo date('Y/m/d - H:i:s') ." - Erreur MySQL N°".mysql_errno().' : '.mysql_error().EOL;
print_r($tabInsert);
}
}
echo date('Y/m/d - H:i:s') ." - Fin de l'insertion en base des ratios.".EOL;
die();
?>

View File

@ -1,151 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL & ~E_NOTICE);
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.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.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.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(FWK_PATH.'mail/sendMail.php');
include_once(INCLUDE_PATH.'scores/classMRegression.php');
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Calcul des redevances INSEE pour un mois donné.
Options :
-v Mode debug (Verbosité au maximum)
-m:SSAAMM Forcer le mois de calcul des redevances à SSAAMM (sinon mois précedent)
-c:XXX Limiter au client XXX
-t Table de test
";
$tableRdv='inseeRdv';
$argv=$_SERVER['argv'];
//$iDb=new WDB('jo');
$iDb=new WDB('sdv1');
$iDb2=new WDB('sdv1');
$tabUser=array();
$modeDebug=$idClient=false;
$dateMAJ=date('Ymt',mktime(0,0,0,date('m')-1,date('d'),date('Y')));
$strMailInfo='';
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 'c': $idClient = substr($argv[$i],3)*1; break;
case 'm': $dateMAJ = date('Ymt',mktime(0,0,0,substr($argv[$i],7,2),1,substr($argv[$i],3,4))); break;
case 't': $tableRdv='inseeRdv2'; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
$moisEnCours=substr($dateMAJ,0,6);
$dateDEB=substr($moisEnCours,0,6).'01';
/** Liste des clients **/
if ($idClient) $strClient=" AND id=".$idClient;
else $strClient='';
$tabTmp=$iDb->select('clients', 'id, nom', "1 $strClient", false, MYSQL_ASSOC);
$tabClient=array();
foreach ($tabTmp as $tabTmp2) {
$tabClient[$tabTmp2['id']]=$tabTmp2['nom'];
}
$nbClients=count($tabClient);
/** Liste des utilisateurs **/
if ($idClient) $strClient=" AND idClient=".$idClient;
else $strClient='';
$tabTmp=$iDb->select('utilisateurs', "login, idClient", "1 $strClient", false, MYSQL_ASSOC);
$tabUser=array();
foreach ($tabTmp as $tabTmp2) {
$tabUser['_'.$tabTmp2['login']]=$tabTmp2['idClient'];
}
$nbUsers=count($tabUser);
/** Calcul des redevances en niveau 1 : Navéa (Extranet/WS) **/
$iClient=0;
foreach ($tabClient as $idClient=>$nomClient) {
$iClient++;
echo date('Y/m/d H:i:s')." - Client $iClient/$nbClients - Calcul des redevances type 1 pour '".$tabClient[$idClient]. "' en $moisEnCours : ";
$tabLogs=$iDb->select( 'logs',
'siren, nic/*, date(dateHeure) AS jour*/',
"idClient=$idClient AND page='identite' AND test=0 AND actifInsee IN(0,1) AND source=2 AND dateHeure BETWEEN $dateDEB AND $dateMAJ GROUP BY siren, nic/*, jour*/", false, MYSQL_ASSOC);
$nbSiret=count($tabLogs);
echo "$nbSiret siret".EOL;
$tabInsert=array('idClient'=>$idClient,
'nomClient'=>$tabClient[$idClient],
'mois'=>$moisEnCours,
'produit'=>1,
'nbSiret'=>$nbSiret,
);
if (!$iDb2->insert($tableRdv, $tabInsert, false))
$iDb2->update($tableRdv, $tabInsert, "idClient=$idClient AND mois=$moisEnCours AND produit=1", false);
}
/** Calcul des redevances en niveau 2 : Odéa (Ciblage, sortie prévue en 2012) **/
/** Calcul des redevances en niveau 3 : Sirenages Clients et enrichissement (Depuis Aout 2010) **/
$iClient=0;
foreach ($tabClient as $idClient=>$nomClient) {
$iClient++;
echo date('Y/m/d H:i:s')." - Client $iClient/$nbClients - Calcul des redevances type 3 pour '".$tabClient[$idClient]. "' en $moisEnCours : ";
$tabLogs=$iDb->select( 'jo.sirenage_clients',
'siren, nic, date(dateHeure) AS jour',
"idClient=$idClient AND siren>1000 AND nic>9 AND dateUpdate BETWEEN $dateDEB AND $dateMAJ GROUP BY siren, nic, jour", false, MYSQL_ASSOC);
$nbSiret=count($tabLogs);
echo "$nbSiret siret".EOL;
$tabInsert=array('idClient'=>$idClient,
'nomClient'=>$tabClient[$idClient],
'mois'=>$moisEnCours,
'produit'=>3,
'nbSiret'=>$nbSiret,
);
if (!$iDb2->insert($tableRdv, $tabInsert, false))
$iDb2->update($tableRdv, $tabInsert, "idClient=$idClient AND mois=$moisEnCours AND produit=3", false);
}
/** Calcul des redevances en niveau 4 : Surveillances Insee (Depuis Janvier 2011) **/
$iClient=0;
foreach ($tabClient as $idClient=>$nomClient) {
$iClient++;
echo date('Y/m/d H:i:s')." - Client $iClient/$nbClients - Calcul des redevances type 4 pour '".$tabClient[$idClient]. "' en $moisEnCours : ";
$tabLogs=$iDb->select( 'jo.surveillances_site s, sdv1.utilisateurs u, sdv1.clients c',
's.siren, s.nic, s.dateAjout',
"s.siren>1000 AND s.source='insee' AND s.login=u.login AND u.idClient=$idClient AND u.idClient=c.id and c.test='Non' AND u.typeCompte='PROD' AND s.dateAjout BETWEEN $dateDEB AND $dateMAJ GROUP BY s.siren, s.nic, s.dateAjout", false, MYSQL_ASSOC);
$nbSiret=count($tabLogs);
echo "$nbSiret siret".EOL;
$tabInsert=array('idClient'=>$idClient,
'nomClient'=>$tabClient[$idClient],
'mois'=>$moisEnCours,
'produit'=>4,
'nbSiret'=>$nbSiret,
);
if (!$iDb2->insert($tableRdv, $tabInsert, false))
$iDb2->update($tableRdv, $tabInsert, "idClient=$idClient AND mois=$moisEnCours AND produit=4", false);
}
/** Calcul des redevances en niveau 5 : INEXISTANT **/
die();
?>

View File

@ -1,341 +0,0 @@
#!/usr/bin/php -c/var/www/ws/batch/config/php_batch_sd.ini
<?php
$tDeb=microtime(true);
$dateJour=date('Y-m-d');
function wsLog($service, $siret='', $ref='') {
/* if (strlen($siret)==14) {
$siren=substr($siret,0,9);
$nic=substr($siret,9,5);
} elseif (strlen($siret)==9) {
$siren=$siret;
$nic='';
}
global $iDbCrm, $tabInfoUser;
$tabInsert=array( 'login'=>$tabInfoUser['login'],
'page'=>$service,
'siren'=>$siren,
'nic'=>$nic,
'params'=>$ref);
$rep=$iDbCrm->insert('logs', $tabInsert);
*/
}
error_reporting(E_ALL & ~E_NOTICE);
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.'insee/classMSirene.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'partenaires/classMLiens.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.'partenaires/classMMap.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
include_once(INCLUDE_PATH.'scores/classMScores.php');
include_once(FWK_PATH.'mail/sendMail.php');
$nbExercices=2;
$sqlEncours=$modeDebug=$periAncien=$listeDeclencheur=$forceDeclencheur=false;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Scorer toute la base entreprise S&D.
Options :
-t Calculer tous les scores (*)
-v Mode bavard ou debug
-r Recalculer tous les scores avec indiscore>0 et un encours à 0 !
-a Calculer tous les anciens ou nouveaux scores
-l Lister les déclencheurs existants pour le recalcul des scores
-d:XXX Lancer le calcul des scores pour le déclencheur XXX
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 'a':
$periAncien=true;
break;
case 't':
break;
case 'l':
$listeDeclencheur=true;
break;
case 'd':
$forceDeclencheur=strtolower(substr($argv[$i],3));
break;
case 'r':
$sqlEncours=true;
break;
case 'v':
$modeDebug=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
}
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de calcul des scores en surveillance...".EOL;
$iDb=new WDB();
$iDb2=new WDB();
$iDbHisto=new WDB('historiques');
$iInsee=new MInsee();
// $iWs=new WsEntreprise();
//$tabScore=@$iWs->getIndiScore(552144503, 0, false);
//$tabScore=@$iWs->getIndiScore(27020395, 0, false);
//print_r($tabScore);die();
if (!$listeDeclencheur && !$forceDeclencheur) {
echo date('Y/m/d - H:i:s') ." - Mise en surveillance Scores de l'ensemble des demandes de scoring...".EOL;
$query="INSERT IGNORE INTO scores_surveillance(siren)
SELECT DISTINCT siren FROM sdv1.`logs`
WHERE dateHeure> (SELECT max(dateUpdate) FROM scores_surveillance)
AND page IN ('indiscore','scorecsf') AND siren>100 ";
$res=$iDb->query($query);
$query="INSERT IGNORE INTO scores_surveillance(siren)
SELECT DISTINCT siren FROM jo.surveillances_site
WHERE source='score' AND siren>=100000 AND siren NOT IN
(SELECT siren FROM scores_surveillance) ";
$res=$iDb->query($query);
}
$strSelect="s.siren, s.actif, s.procol, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, nbModifs, s.dateUpdate, s.cs, s.csMoisMaj, s.csMoisFin";
$tabQueries=array(
/* Bilans Asso déposé(s) */
'bilansasso'=> "SELECT $strSelect, 'bilansasso' as source FROM scores_surveillance s, asso_bilans b WHERE b.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateUpdate AND s.procol NOT IN('P') GROUP BY siren",
//asso_bilans', 'dateCloture, dateCloture*1 as dateClotureNum', "siren=$siren ORDER BY DESC LIMIT 0,5", true, MYSQL_ASSOC);
/* Privileges Infogreffe */
'privileges'=> "SELECT $strSelect, 'privileges' AS source FROM scores_surveillance s, greffes_privileges p WHERE p.siren>1000 AND s.siren = p.siren AND (p.dateInsert>s.dateUpdate OR p.dateUpdate>s.dateUpdate) AND s.procol NOT IN('P') GROUP BY siren",
/* Privileges Facto */
'privileges2'=> "SELECT $strSelect, 'privileges2' AS source FROM jo.scores_surveillance s, sdv1.ge_cs2 p WHERE p.siren>1000 AND s.siren = p.siren AND (p.dateInsert>=s.dateUpdate OR p.dateConf>=s.dateUpdate) AND p.cs='P' AND s.procol NOT IN('P') GROUP BY siren",
/* IMPAYES Facto */
'impayes'=> "SELECT $strSelect, 'impayes' AS source FROM jo.scores_surveillance s, sdv1.ge_cs2 p WHERE p.siren>1000 AND s.siren = p.siren AND (p.dateInsert>=s.dateUpdate OR p.dateConf>=s.dateUpdate) AND p.cs='I' AND s.procol NOT IN('P') GROUP BY siren",
/* Ajout d'un nouveau score */
'ajout'=> "SELECT $strSelect, 'ajout' AS source FROM scores_surveillance s WHERE s.siren>1000 AND ((DATEDIFF(NOW(),s.indiScoreDate) IS NULL AND s.dateUpdate<DATE(NOW()) OR s.indiScoreDate=0)) GROUP BY siren",
/* IndiScores demandés ce jour */
'jour'=> "SELECT $strSelect, 'jour' AS source FROM scores_surveillance s, sdv1.`logs` l WHERE l.siren>1000 AND s.siren=l.siren AND l.page='indiscore' AND l.dateHeure>s.dateUpdate AND s.procol NOT IN('P') GROUP BY siren",
/* Dirigeants */
'dirigeants'=> "SELECT $strSelect, 'dirigeants' AS source FROM scores_surveillance s, rncs_dirigeants d WHERE d.siren>1000 AND s.siren = d.siren AND (d.dateInsert>s.dateUpdate OR d.dateUpdate>s.dateUpdate) AND s.procol NOT IN('P') GROUP BY siren",
/* Evenements INSEE */
'insee'=> "SELECT $strSelect, 'insee' as source FROM jo.scores_surveillance s, insee.insee_even i WHERE i.insSIREN>1000 AND s.siren=i.insSIREN AND i.dateInsert>s.dateUpdate AND s.procol NOT IN('P') AND /*i.insEVE IN ('400','410','420','425') AND*/ i.insSIEGE=1 GROUP BY siren",
/* Entreprises RNCS */
'rncs'=> "SELECT $strSelect, 'rncs' as source FROM scores_surveillance s, rncs_entrep r WHERE s.siren>1000 AND s.siren=r.siren AND (r.dateInsert>s.dateUpdate OR r.dateUpdate>s.dateUpdate) AND s.procol NOT IN('P') GROUP BY siren",
/* Bodacc */
'bodacc'=> "SELECT $strSelect, 'bodacc' as source FROM scores_surveillance s, bodacc_detail b WHERE b.siren>1000 AND s.siren=b.siren AND( b.dateInsert>s.dateUpdate OR b.dateUpdate>s.dateUpdate) AND s.procol NOT IN('P') AND b.Rubrique NOT IN('creations') GROUP BY siren",
/* Collecte */
'collecte'=> "SELECT $strSelect, 'collecte' as source FROM scores_surveillance s, annonces b WHERE b.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateUpdate AND s.procol NOT IN('P') /*AND b.typeEven NOT IN(3200)*/ GROUP BY siren",
/* Bilans en base */
'bilans1'=> "SELECT $strSelect, 'bilans1' as source FROM scores_surveillance s, bilans b WHERE b.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateUpdate AND (DATEDIFF(b.dateExercice,s.dateBilan)>1 OR DATEDIFF(b.dateExercice,s.dateBilan) IS NULL) AND s.procol NOT IN('P') GROUP BY siren",
/* Défaut divers Facto (D:Défaut, 24:Groupe en diff, 31:Cessation Annoncée, 50:Terrorisme)*/
'defaut'=> "SELECT $strSelect, 'defaut' AS source FROM jo.scores_surveillance s, sdv1.ge_cs2 p WHERE p.siren>1000 AND s.siren = p.siren AND (p.dateInsert>=s.dateUpdate OR p.dateConf>=s.dateUpdate) AND p.cs IN ('D','24','31','50') AND s.procol NOT IN('P') GROUP BY siren",
/* RAS Facto */
'regulier'=> "SELECT $strSelect, 'regulier' AS source FROM jo.scores_surveillance s, sdv1.ge_cs2 p WHERE p.siren>1000 AND s.siren = p.siren AND (p.dateInsert>=s.dateUpdate OR p.dateConf>=s.dateUpdate) AND p.cs='00' AND s.procol NOT IN('P') GROUP BY siren",
/* Scores trop anciens */
'ancien'=> "SELECT $strSelect, 'ancien' AS source FROM scores_surveillance s WHERE s.siren>1000 AND (DATEDIFF(NOW(),s.indiScoreDate)>365 /*OR DATEDIFF(NOW(),s.indiScoreDate) IS NULL*/) AND s.procol NOT IN('P') AND s.dateUpdate<DATE(NOW()) GROUP BY siren",
/* RAS Facto */
'regulier'=> "SELECT $strSelect, 'regulier' AS source FROM jo.scores_surveillance s, sdv1.ge_cs2 p WHERE p.siren>1000 AND s.siren = p.siren AND (p.dateInsert>=s.dateUpdate OR p.dateConf>=s.dateUpdate) AND p.cs='00' AND s.procol NOT IN('P') GROUP BY siren",
/** @todo A revoir
**/
/* Bilans déposés */
// 'bilans2'=>"SELECT s.siren, s.actif, s.procol, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, nbModifs, 'bilans2' as source, s.dateUpdate FROM scores_surveillance s, bilans_deposes b WHERE b.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateUpdate AND s.procol NOT IN('P') GROUP BY siren",
/* Liens fianciers */
// 'liens'=>"SELECT s.siren, s.actif, s.procol, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, nbModifs, 'liens' as source, s.dateUpdate FROM scores_surveillance s, liens l WHERE l.siren>1000 AND (s.siren=l.Siren1 OR s.siren=l.Siren2) AND (l.dateInsert>s.dateUpdate OR l.dateUpdate>s.dateUpdate) AND s.procol NOT IN('P') GROUP BY siren",
);
/*$query="SELECT s.siren, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, 'bodacc' as source, s.dateUpdate FROM scores_surveillance s";
$query="SELECT s.siren, s.actif, s.procol, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, nbModifs, 'modifenc' as source, s.dateUpdate, c.cs FROM jo.scores_surveillance s WHERE s.siren>1000 AND s.actif=1 AND s.procol NOT IN('A','D','P') AND s.indiScore>0 AND s.indiScore20=0 ORDER BY s.siren ASC";
$query="SELECT s.siren, s.actif, s.procol, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, nbModifs, 'collecte' as source, s.dateUpdate FROM scores_surveillance s, annonces b WHERE b.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateUpdate AND s.procol NOT IN('P') AND b.typeEven NOT IN(3200) GROUP BY siren";
if($periAncien)
$query="/* Nouveaux scores OU Scores trop anciens *
SELECT s.siren, s.actif, s.procol, s.indiScore, s.indiScore20, s.encours, s.indiScoreDate, scoreSolv, scoreConf, scoreDir, scoreZ, scoreCH, scoreAfdcc1, scoreAfdcc2, scoreAfdcc2note, scoreAltman, scoreAltmanCote, scoreCCF, situFi, infoNote, noteStruct, noteFin, tendance, nbModifs, 'ancien' AS source, s.dateUpdate FROM scores_surveillance s WHERE s.siren>1000 AND (DATEDIFF(now(),s.indiScoreDate)>365 OR DATEDIFF(now(),s.indiScoreDate) IS NULL) AND s.procol NOT IN('P') GROUP BY siren";
*/
if ($listeDeclencheur) {
foreach($tabQueries as $key=>$querie)
echo "\t- $key".EOL;
die();
}
echo date('Y/m/d - H:i:s') ." - Recherche des scores susceptibles d'avoir changés par déclencheur...".EOL;
$nbScoresSans=$nbScoresModif=$nbScoresNouv=$nbScoresProcol=$iRow=$nbRowsTot=0;
foreach ($tabQueries as $declencheur=>$query) {
if ($forceDeclencheur && $declencheur<>$forceDeclencheur) continue;
echo date('Y/m/d - H:i:s') ." - Recherche par le déclencheur '$declencheur'...";
$res=$iDb->query($query);
echo mysql_error().EOL;
$nbRows=mysql_num_rows($res);
$nbRowsTot+=$nbRows;
@$tabNbRows[$declencheur]++;
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows scores à recalculer par '$declencheur'...".EOL;
//die();
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
$iRow++;
$siren=$entrep['siren']; // indiScorePre, encoursPre, indiScorePreDate','];
if (!$iInsee->valideSiren($siren)) continue;
$nic=0;
$indiScorePre = $entrep['indiScore']*1;
$encoursPre = $entrep['encours']*1;
$dateScore = str_replace('-','',$entrep['indiScoreDate'])*1;
$sourceModif = $entrep['source'];
$procol = $entrep['procol'];
$nbModifs = ($entrep['nbModifs']*1)+1;
if ($procol=='P') {
$nbScoresProcol++;
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRowsTot - Siren $siren : $indiScorePre / 100 ($encoursPre EUR) inchangé depuis $dateScore (Source=$sourceModif) car ProCol.".EOL;
continue;
}
//echo date('Y/m/d - H:i:s') ." - Siren $siren : AVANT SCORE".EOL;
$tabScore=@calculIndiScore($siren, $nic, false, 0);
//echo date('Y/m/d - H:i:s') ." - Siren $siren : APRES SCORE".EOL;
//print_r($tabScore);
//die();
$indiScore = $tabScore['Indiscore']*1;
$naf = $tabScore['NafEnt'];
$encours = round($tabScore['encours']);
/*if (!$iDb2->update('scores_surveillance', array('naf'=>$naf), "siren=$siren")) {
die('prout');
}
continue;
*/
if ($indiScore==$indiScorePre &&
$encours ==$encoursPre &&
$dateScore<>0 ) {
$nbScoresSans++;
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRowsTot - Siren $siren : $indiScore / 100 ($encours EUR) inchangé depuis $dateScore (Source=$sourceModif).".EOL;
$tabUpdate2=array('sourceModif'=>$sourceModif, 'nbModifs'=>$nbModifs);
if (!$iDb2->update('scores_surveillance', $tabUpdate2, "siren=$siren")) {
print_r($tabUpdate2);
die("Erreur SQL sur la mise à jour de la date de dernière vérif du score pour le siren $siren");
}
/*print_r($tabUpdate2);
echo 'Erreur SQL n° '.mysql_errno().' : '.mysql_error().EOL;
*/
} else {
if ($dateScore==0) {
$sourceModif='ajout';
$nbScoresNouv++;
}
else {
$nbScoresModif++;
@$tabNbScoresModif[$declencheur]++;
}
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRowsTot - Siren $siren : $indiScore<>$indiScorePre OU $encours<>$encoursPre (Source=$sourceModif) !".EOL;
$tabUpdate=array( 'siren' => $siren,
'naf' => $naf,
'actif' => $tabScore['Actif'],
'procol' => $tabScore['SituationJuridique'],
'indiScore' => $tabScore['Indiscore'],
'indiScore20' => $tabScore['Indiscore20'],
'encours' => $tabScore['encours'],
'indiScoreDate' => $dateJour,
'dateBilan' => @$tabScore['Bilans'][0]['Millesime'],
'scoreSolv' => $tabScore['ScoreSolvabilite'],
'scoreConf' => $tabScore['ScoreConfor'],
'scoreDir' => $tabScore['ScoreDirigeance'],
'scoreZ' => $tabScore['scores']['Z'],
'scoreCH' => $tabScore['scores']['ConanH'],
'scoreAfdcc1' => $tabScore['scores']['Afdcc1'],
'scoreAfdcc2' => $tabScore['scores']['Afdcc2'],
'scoreAfdcc2note' => $tabScore['scores']['Afdcc2note'],
'scoreAltman' => $tabScore['scores']['Altman'],
'scoreAltmanCote' => $tabScore['scores']['AltmanCote'],
'scoreCCF' => $tabScore['scores']['CCF'],
'situFi' => $tabScore['tabInfosNotations']['SituationFinanciere'],
'infoNote' => $tabScore['tabInfosNotations']['Notation'],
'noteStruct' => $tabScore['Note_Structure'],
'noteFin' => $tabScore['Note_Financiere'],
'tendance' => $tabScore['TendanceIndiscore'],
'cs' => $tabScore['cs'],
'csMoisMaj' => $tabScore['csMoisMaj'],
'csMoisFin' => $tabScore['csMoisFin'],
'adresseDom' => $tabScore['AdresseDom'],
'sourceModif' => $sourceModif,
'indiScorePre' => $entrep['indiScore'],
'indiScore20Pre' => $entrep['indiScore20'],
'indiScoreDatePre' => $entrep['indiScoreDate'],
'encoursPre' => $entrep['encours'],
'scoreSolvPre' => $entrep['scoreSolv'],
'scoreConfPre' => $entrep['scoreConf'],
'scoreDirPre' => $entrep['scoreDir'],
'scoreZPre' => $entrep['scoreZ'],
'scoreCHPre' => $entrep['scoreCH'],
'scoreAfdcc1Pre' => $entrep['scoreAfdcc1'],
'scoreAfdcc2Pre' => $entrep['scoreAfdcc2'],
'scoreAfdcc2notePre'=> $entrep['scoreAfdcc2note'],
'scoreAltmanPre' => $entrep['scoreAltman'],
'scoreAltmanCotePre'=> $entrep['scoreAltmanCote'],
'scoreCCFPre' => $entrep['scoreCCF'],
'situFiPre' => $entrep['situFi'],
'infoNotePre' => $entrep['infoNote'],
'noteStructPre' => $entrep['noteStruct'],
'noteFinPre' => $entrep['noteFin'],
'tendancePre' => $entrep['tendance'],
'csPre' => $entrep['cs'],
'csMoisMajPre' => $entrep['csMoisMaj'],
'csMoisFinPre' => $entrep['csMoisFin'],
'adresseDomPre' => $entrep['adresseDom'],
'nbModifs' => $nbModifs,
);
if (!$iDb2->update('scores_surveillance', $tabUpdate, "siren=$siren")) {
print_r($tabUpdate);
echo mysql_error().EOL;
die(date ('Y/m/d - H:i:s') . " - Erreur SQL sur la mise à jour du score pour le siren $siren".EOL);
}
// Historisation du score
if (!$iDbHisto->insert('scores_surveillance', $tabUpdate)) {
print_r($tabUpdate);
echo mysql_error().EOL;
die(date ('Y/m/d - H:i:s') . " - Erreur SQL sur l'historisation du score pour le siren $siren".EOL);
}
}
if (date('Hi')*1>=430 && date('Hi')*1<=700) break 2;
}
}
$message =date ('Y/m/d - H:i:s') . " - Nombre de scores inchangés .................. $nbScoresSans / $nbRowsTot.".EOL;
$message.=date ('Y/m/d - H:i:s') . " - Nombre de scores inchangés car procol ....... $nbScoresProcol / $nbRowsTot.".EOL;
$message.=date ('Y/m/d - H:i:s') . " - Nombre de scores ajoutés .................... $nbScoresNouv / $nbRowsTot.".EOL;
$message.=date ('Y/m/d - H:i:s') . " - Nombre de scores modifiées .................. $nbScoresModif / $nbRowsTot.".EOL;
foreach($tabNbRows as $declencheur=>$nbTot) {
$nbModifs=$tabNbScoresModif[$declencheur]*1;
$message.=date ('Y/m/d - H:i:s') . " - Nombre de modifs par '$declencheur'\t...... $nbModifs / $nbTot.".EOL;
}
echo $message;
$duree=round(microtime(true)-$tDeb);
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Calculs des IndiScores ($nbRowsTot en $duree s)", $message);
echo date('Y/m/d - H:i:s') ." - Fin du traitement.".EOL;
die();
?>

View File

@ -1,299 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('NOW', date('YmdHis'));
define('TODAY', substr(NOW, 0, 8));
define('YEAR', substr(TODAY, 0, 4));
define('MONTH', substr(TODAY, 4, 2));
define('DAY', substr(TODAY, 6, 2));
error_reporting(E_ALL & ~E_NOTICE);
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(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Mise à jour quotidienne des statistiques de ventes de fonds de commerce
Options :
-d:SSAAMMJJ Initialiser toutes les stats depuis SSAAMMJJ
-f:SSAAMMJJ Initialiser tous les scores secteurs jusqu'au SSAAMMJJ
-p Initialiser les scores profils mensuels (à défaut, seulement le 1er du mois)
-s Initialiser les scores secteurs mensuels (à défaut, seulement le 1er du mois)
-v Mode bavard
";
$dateDeb=$dateFin=0;
$initStatProfil=$initStatSecteur=$modeDebug=false;
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 'd':
$dateDeb=substr($argv[$i],3)*1;
break;
case 'f':
$dateFin=substr($argv[$i],3)*1;
break;
case 'p':
$initStatProfil=true;
break;
case 's':
$initStatSecteur=true;
break;
case 'v':
$modeDebug=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
}
}
$iDb=new WDB('jo');
$iDb2=new WDB('jo');
$iDbHisto=new WDB('historiques');
$iInsee=new MInsee();
function getNaf5($naf4ou5) {
$iDb=new WDB('insee');
$tabTmp=$iDb->select( 'naf_conv', 'nafOut', "nafIn='$naf4ou5'");
return $tabTmp[0]['nafOut'];
}
echo date ('Y/m/d - H:i:s')." - Début du traitement.".EOL;
/** Recherche de la dernière date de MAJ
**/
if (!$dateDeb) {
echo date ('Y/m/d - H:i:s')." - Préparation des statistiques à réaliser.".EOL;
$tabLast=$iDb->select( 'stats_ventes',
'max(dateInsert) AS lastInsert',
'1');
$lastUpdate=$tabLast[0]['lastInsert'];
if ($tabLast[0]['lastUpdate']>$lastUpdate) $lastUpdate=$tabLast[0]['lastUpdate'];
echo date('Y/m/d - H:i:s') ." - La dernière mise à jour des stats date de $lastUpdate !".EOL;
} else {
$lastUpdate=WDate::dateT('Ymd', 'Y-m-d', $dateDeb).' 00:00:00';
if ($dateFin) {
$strDateFin=" AND (dateInsert<='".WDate::dateT('Ymd', 'Y-m-d', $dateFin)." 23:59:59' OR
dateUpdate<='".WDate::dateT('Ymd', 'Y-m-d', $dateFin)." 23:59:59' ) ";
echo date('Y/m/d - H:i:s') ." - Réinitialisation des stats du $lastUpdate au $dateFin !".EOL;
} else {
$strDateFin='';
echo date('Y/m/d - H:i:s') ." - Réinitialisation des stats depuis le $lastUpdate !".EOL;
}
}
//if (!$initStatProfil && !$initStatSecteur) {
echo date ('Y/m/d - H:i:s')." - Préparation des stats les ventes quotidiennes.".EOL;
//$nbDejaProcol=$nbNouvProcol=$nbInsertSecteur=$nbUpdateSecteur=$nbInsertProfil=$nbUpdateProfil=0;
/** Initialisation des scores secteurs **/
$query="
(SELECT siren, sirenValide, nic, nicValide, typeEven, IF(dateDebutActivite<>0,dateDebutActivite,IF(dateEffet<>0,dateEffet,IF(publicationDate<>0,publicationDate,0))) AS dateJugement, Bodacc_Date_Parution AS dateSource, dateInsert,
typeEven, raisonSociale, adresse, codePostal, ville, Tribunal_Code AS tribunal, VenteMt AS montant, bienAcqui AS complement, 'bodacc' AS source
FROM bodacc_detail
WHERE siren>1000 AND dateInsert>'$lastUpdate' $strDateFin AND (
typeEven LIKE '%5500%' /* Entreprise réalisant la vente */
OR typeEven LIKE '%5501%' /* Entreprise réalisant la vente : Ancien propriétaire et ancien exploitant */
OR typeEven LIKE '%5502%' /* Entreprise réalisant la vente : Ancien propriétaire en indivision */
OR typeEven LIKE '%5503%' /* Entreprise réalisant la vente : Ancien propriétaire */
OR typeEven LIKE '%5510%' /* Entreprise réalisant la vente : Co-propriétaire */
OR typeEven LIKE '%5600%' /* Entreprise Précédent exploitant */
OR typeEven LIKE '%5650%' /* Entreprise indemnisée */
OR typeEven LIKE '%5900%' /* Autre achat, apport, attribution */
OR typeEven LIKE '%5999%' /* Ventes/Cessions */ ) )
UNION
(SELECT siren, sirenValide, 00000 AS nic, 0 AS nicValide, typeEven, dateJugement, dateSource, dateInsert,
CONCAT(typeEven,';',strEven) as codeEven, raisonSociale, adresse, codePostal, ville, tribunal, montant, complement, 'collecte' AS source
FROM annonces
WHERE siren>1000 AND dateInsert>'$lastUpdate' $strDateFin AND (typeEven BETWEEN 5500 AND 5650 OR strEven LIKE '%5500%' /* Entreprise réalisant la vente */
OR strEven LIKE '%5501%' /* Entreprise réalisant la vente : Ancien propriétaire et ancien exploitant */
OR strEven LIKE '%5502%' /* Entreprise réalisant la vente : Ancien propriétaire en indivision */
OR strEven LIKE '%5503%' /* Entreprise réalisant la vente : Ancien propriétaire */
OR strEven LIKE '%5510%' /* Entreprise réalisant la vente : Co-propriétaire */
OR strEven LIKE '%5600%' /* Entreprise Précédent exploitant */
OR strEven LIKE '%5650%' /* Entreprise indemnisée */)
)
ORDER BY dateSource ASC;";
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $query".EOL;
$res=$iDb->query($query);
$nbAnnonces=mysql_num_rows($res);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAnnonces annonces de ventes à vérifier...".EOL;
$sirenPre=false;
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
print_r($annonce);
// die();
$siren=$annonce['siren'];
$nic=$annonce['nic'];
$source=$annonce['source'];
$cp=$annonce['codePostal'];
$ville=strtoupper($annonce['ville']);
$dep=substr($annonce['codePostal'],0,2)*1;
if ($dep>96) $dep=substr($annonce['codePostal'],0,3)*1;
$nbSrc[$source]++;
if ($nic==0) {
if ($source=='collecte') {
if (preg_match('/tablissement concern.*\((\d{5,5})\)(.*)$/Ui', $annonce['complement'], $matches)) {
if (preg_match('/\((\d{5,5})\)/Ui',$matches[2])) die('Plusieurs établissements vendus !');
$nic=$matches[1];
}
}
}
if ($nic*1==0){
//$tabIdentite=$iInsee->getIdentiteEntreprise($siren, 0, 0, false, false);
$tabEtabs=$iInsee->getEtablissements($siren, '', 0, 200, 200, $dep);
foreach ($tabEtabs['reponses'] as $iRep=>$etab) {
if ($cp<>$etab['CP'] && $ville<>strtoupper($etab['Ville']))
continue;
$nic=$etab['Nic'];
if ($tabEtabs['nbReponses']==1) break;
/*if (
$levAdr=levenstein($etab['Adresse'], $annonce['adresse']);
[Adresse2] => 116 A 118
[CP] => 94000
[Ville] => CRETEIL
);*/
}
if ($nic*1==0) $nbNic0++;//die(print_r($tabEtabs));
}
//if ($siren==$sirenPre) continue;
/*
$typeEven=$annonce['typeEven'];
$dateEven=$annonce['dateJugement'];
$dateInsert=$annonce['dateInsert'];
/** Initialisation des scores secteurs **
$query="(SELECT siren, sirenValide, typeEven, dateJugement, Bodacc_Date_Parution AS dateSource, dateInsert FROM bodacc_detail WHERE siren=$siren AND (dateInsert<'$dateInsert' OR dateJugement<'$dateJuge') AND Rubrique='procol')
UNION
(SELECT siren, sirenValide, typeEven, dateJugement, dateSource, dateInsert FROM annonces where siren=$siren AND (dateInsert<'$dateInsert' OR dateJugement<'$dateJuge') AND typeEven BETWEEN 1100 AND 1999) ORDER BY siren;";
//echo date ('Y/m/d - H:i:s')." - $query".EOL;
$res2=$iDb2->query($query);
$nbProcol=mysql_num_rows($res2);
if ($modeDebug) echo "Vente $siren\t$typeEven\t$dateJuge\t$dateInsert ";
if ($nbProcol>0) {
if ($modeDebug) echo "($nbProcol ProCol)".EOL;
$nbDejaProcol++;
} else {
$strIdAnn=" AND e.CODEVE BETWEEN 50 AND 79 AND e.DATE>=".(YEAR-12).MONTH.DAY;
$res2=$iDbHisto->select(
'entrep e, texte x, tribunaux t',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt, t.triNom, t.triSiret',
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.CODTRI=t.triCode $strIdAnn AND e.DATE BETWEEN 19960101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);
$nbProcolHisto=count($res2);
if ($nbProcolHisto>0) {
if ($modeDebug) echo "($nbProcolHisto ProCol histo.)".EOL;
$nbDejaProcol++;
} else {
if ($modeDebug) echo "NOUVELLE PROCEDURE ";
$nbNouvProcol++;
// Ajouter dans la table
$tabTmp=explode('-', $dateJuge);
$annee=$tabTmp[0];
// if ($annee<2007) continue;
$mois=$tabTmp[1];
$tabIdentite=$iInsee->getIdentiteEntreprise($siren, 0, 0, false, false);
$naf=$tabIdentite['NafEnt'];
if (strlen($naf)<5) $naf=getNaf5($naf);
$fj=$tabIdentite['FJ'];
$dep=$tabIdentite['Dept'];
if ($dep>96 && $dep<99) $dep=''.$dep.substr($tabIdentite['codeCommune'],0,1);
$anneeCrea=$tabIdentite['DateCreaEn'];
if ($anneeCrea>$tabIdentite['DateCreaEt']) $anneeCrea=$tabIdentite['DateCreaEt'];
$trEff=$tabIdentite['EffEnTr'];
$trCA=$tabIdentite['TrancheCA'];
/** Mise à jour des scores secteurs **
$tabTmp=$iDb2->select( 'scores_secteurs',
'nbProcol, nbEntrep, annee, mois',
"naf5='$naf' AND annee=$annee AND mois=$mois",
false, MYSQL_ASSOC);
if (count($tabTmp)>0) $nbProcDB=$tabTmp[0]['nbProcol'] + 1;
else $nbProcDB=1;
$tabUpdate=array('nbProcol'=> $nbProcDB);
$retTmp=$iDb2->update('scores_secteurs', $tabUpdate, "naf5='$naf' AND annee=$annee AND mois=$mois");
if (!$retTmp || $iDb2->getAffectedRows()==0) {
$tabInsert=array_merge($tabUpdate, array( 'naf5'=>$naf,
'annee'=>$annee,
'mois'=>$mois,
'dateInsert'=>date('YmdHis'),
));
$iDb2->insert('scores_secteurs', $tabInsert);
if ($modeDebug) echo "SECTEURS:INSERT=>$nbProcDB ($naf/$annee-$mois)";
$nbInsertSecteur++;
} else {
if ($modeDebug) echo "SECTEURS:UPDATE=>$nbProcDB ($naf/$annee-$mois)";
$nbUpdateSecteur++;
}
if ($modeDebug) echo EOL;
/** Mise à jour des scores profils **
if ($modeDebug) echo "ProCol $siren\t$typeEven\t$dateJuge\t$dateInsert NOUVELLE PROCEDURE ";
$tabTmp=$iDb2->select( 'scores_profils',
'nbProcol, nbEntrep, annee, mois',
"annee=$annee AND mois=$mois AND naf5='$naf' AND depSiege=$dep AND formeJur=$fj AND
anneeCrea=$anneeCrea AND trEffectif='$trEff' AND trCA=$trCA",
false, MYSQL_ASSOC);
if (count($tabTmp)>0) $nbProcDB=$tabTmp[0]['nbProcol'] + 1;
else $nbProcDB=1;
$tabUpdate=array('nbProcol'=> $nbProcDB);
$retTmp=$iDb2->update('scores_profils', $tabUpdate, "annee=$annee AND mois=$mois AND naf5='$naf' AND
depSiege=$dep AND formeJur=$fj AND anneeCrea=$anneeCrea AND trEffectif='$trEff' AND trCA=$trCA");
if (!$retTmp || $iDb2->getAffectedRows()==0) {
$tabInsert=array_merge($tabUpdate, array( 'annee'=>$annee,
'mois'=>$mois,
'naf5'=>$naf,
'depSiege'=>$dep,
'formeJur'=>$fj,
'anneeCrea'=>$anneeCrea,
'trEffectif'=>$trEff,
'trCA'=>$trCA,
'dateInsert'=>date('YmdHis'),
));
$iDb2->insert('scores_profils', $tabInsert);
if ($modeDebug) echo "PROFILS:INSERT=>$nbProcDB ($naf/$annee-$mois)";
$nbInsertProfil++;
} else {
if ($modeDebug) echo "PROFILS:UPDATE=>$nbProcDB ($naf/$annee-$mois)";
$nbUpdateProfil++;
}
if ($modeDebug) echo EOL;
}
}*/
$sirenPre=$siren;
}
print_r($nbSrc);
die("$nbNic0 nic non trouvés sur $nbAnnonces".EOL);
echo date ('Y/m/d - H:i:s')." - Procédures Collectives : $nbNouvProcol entreprises In Bonis sur $nbAnnonces annonces ($nbDejaProcol déjà en ProCol).".EOL;
echo date ('Y/m/d - H:i:s')." - Stats Secteurs : $nbInsertSecteur ajouts et $nbUpdateSecteur MAJ pour $nbNouvProcol nouv. ProCol ($nbAnnonces annonces vérifiées).".EOL;
echo date ('Y/m/d - H:i:s')." - Stats Profils : $nbInsertProfil ajouts et $nbUpdateProfil MAJ pour $nbNouvProcol nouv. ProCol ($nbAnnonces annonces vérifiées).".EOL;
echo date ('Y/m/d - H:i:s')." - Fin des stats secteurs et profils pour les Procédures quotidiennes.".EOL;
echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL;
?>

View File

@ -1,238 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL ^ E_NOTICE);
/** @todo Si MAJ en annule et remplace prévoir les manips SQL suivantes :
** Création d'une table insee.tmp sans aucun index
** A la fin du chargement construire les index
** Si pas d'erreur :
** 1. detruire insee
** 2. Renommer insee.tmp en insee
**/
set_time_limit(0);
$heureDebut=TIME_LISIBLE;
$dateJour=DATE;
$dateJourFormat=substr(DATETIME,0,4).'-'.substr(DATETIME,4,2).'-'.substr(DATETIME,6,2);
$j=0;
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) die('Usage : '.basename($argv[0]). " [OPTION]... FICHIER
Charger un fichier CSV dans une base de données avec création de la table qui aura le nom du fichier chargé..
Options disponibles:
Les arguments obligatoires pour les options de formes longues le sont aussi
pour les options de formes courtes.
-s=CHAR séparateur de champs (virgule, point-virgule*, /t=tabulation, etc...)
-c=CHAR caractère encadrant les zones alphanumériques (inopérationnel)
(*): Valeurs par défaut !
");
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 's': $separator=substr($argv[$i],3); break;
case 'c': $chaine=substr($argv[$i],3); break;
default: die('Option '. $argv[$i] . " inconnue !".EOL);
}
} else {
$fichier_csv[$j]=$argv[$i];
$j++;
}
}
$db_name='jo';
$iDb=new WDB($db_name);
if ($separator=='/t') {
$separator="\t";
echo "séparateur = tabulation\n";
} elseif (!isset($separator) || $separator=='') {
$separator=';';
echo "séparateur = '$separator'\n";
}
else
echo "séparateur = '$separator'\n";
// Mise à jour de la table PARAM
// -----------------------------
// 2 - pour la date et l'heure d'exécution du traitement en cours
/* $tabDataToUpdate=array('VALEUR'=>DATETIME,
'CLE'=>'INSEE_MAJ_ENCOURS');
$iparam->setParamValeur($tabDataToUpdate);
*/
echo date ('Y/m/d - H:i:s') . " - Début du traitement".EOL;
flush();
for ($nbFichiers=0; isset($fichier_csv[$nbFichiers]); $nbFichiers++)
{
$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;
/* $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".EOL;
exit();
}
$nbLignes=0;
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $fichier_csv[$nbFichiers] ."...".EOL;
flush();
while (($data = fgetcsv($fp, 3000, $separator)) !== FALSE)
{
//echo "\nLigne #$nbLignes:\n";
$nomIn=addslashes(trim($data[0]));
$nom=trim(addslashes(substr($nomIn,0,5)));
//$prenom='';
$prenom=addslashes(trim($data[1]));
//////$tabTmp=explode('/',$data[2]);
$tabTmp=explode('/',$data[2]);
$dateNaiss=$tabTmp[2].'-'.$tabTmp[1].'-'.$tabTmp[0];
$nbLignes++;
$tabTmp=$iDb->select('insee_dc',
"nom, prenom, sexe, dateNaiss, comInsee, comLib, pays, dateDeces, comInsee2, dateInsert,
MATCH(nom) AGAINST ('$nom') AS ScoreNom, MATCH(prenom) AGAINST ('$prenom') AS ScorePrenom
/* MATCH(nom, prenom) AGAINST ('$nomIn') AS ScoreNomPrenom */ ",
"1 AND MATCH(nom) AGAINST ('$nom') AND MATCH(prenom) AGAINST ('$prenom')
/* AND MATCH(nom,prenom) AGAINST ('$nomIn')
AND dateNaiss='$dateNaiss' */
AND nom LIKE '$nom%'
ORDER BY ScoreNom DESC, ScorePrenom DESC
", true);
if (isset($tabTmp[0])) {
if (count($tabTmp)==1) $codeRet=1;
else $codeRet=2;
foreach ($tabTmp as $i=> $res) {
echo "$ref;$nomIn;$prenom;$dateNaiss;$codeRet;". $res['nom'].';'.
$res['prenom'].';'.
$res['dateNaiss'].';'.
$res['comInsee'].';'.
$res['comLib'].';'.
$res['sexe'].';'.
$res['pays'].';'.
$res['dateDeces'].';'.
$res['comInsee2'].';'.
$res['dateInsert'].';'.EOL;
}
} else {
echo "$ref;$nomIn;$prenom;$dateNaiss;0;".EOL;
}
/*
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.="NOM LONGTEXT, PRENOM LONGTEXT, NUSAGE LONGTEXT) TYPE = MYISAM COMMENT = '$comment'";
$sql.=") TYPE = MYISAM COMMENT = '$comment'";
//echo $sql;
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);
}
flush();
continue;
}
die();
$tabDataToInsert=array();
for($i=0; $i<$nbColonnes; $i++) {
if ($i==1) {
$tabM=explode(' ', $data[$i]);
if (strlen($tabM[0])<=2) {
$nom=$tabM[0].' '.$tabM[1];
// unset($tabM[0]);
unset($tabM[1]);
}
else $nom=$tabM[0];
unset($tabM[0]);
$tabM=preg_split('/( NEE | NE )/i', implode(' ', $tabM));
$prenom=$tabM[0];
$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 (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;
flush();
}
unset($tabDataToInsert);*/
}
fclose ($fp);
die();
// 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;
die();
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;
}
?>

View File

@ -1,63 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
error_reporting(E_ALL ^ E_NOTICE);
/* $tabDossiers=file('/mnt/samba/public/listeCet.txt');
$str=file_get_contents('/mnt/samba/public/SaisieCetelem_debug.old.log');
//$i=>$ligne
foreach ($tabDossiers as $i=>$ligne) {
$ligne=trim($ligne);
if (preg_match_all('/(.*) - CREDDEL : (.*)'.$ligne.'(.*)retour Cetelem =(.*)/i', $str, $matches)) {
//if (preg_match_all('/(.*)'.$ligne.'(.*)/i', $str, $matches)) {
//print_r($matches);
$nbEssais=count($matches[1]);
$lastEssai=end($matches[1]);
$nomPrenom=end($matches[3]);
$message=end($matches[4]);
echo "$i;$ligne;OK;$nbEssais;$lastEssai;$nomPrenom;$message\n";
//die();
}
else
echo "$i;$ligne;KO\n";
}
*/
$iDb=new WDB('insee');
$tabDossiers=file('./siretBasculesInconnus.csv');
echo date ('Y/m/d - H:i:s')." - Chargement des siret...".EOL;
foreach ($tabDossiers as $i=>$ligne) {
$tabTmp=explode(';', $ligne);
$siren=$tabTmp[0];
$tabSirenTmp[]=$siren;
}
echo date ('Y/m/d - H:i:s')." - Chargement de $i siret...".EOL;
$tabSiren=array_unique($tabSirenTmp);
$nb=count($tabSiren);
echo date ('Y/m/d - H:i:s')." - Dédoublonnage des siret : $nb siret".EOL;
sort($tabSiren);
echo date ('Y/m/d - H:i:s')." - Trie des siret OK.".EOL;
foreach ($tabSiren as $i=>$siren) {
$ret=$iDb->select('identite', 'count(*) as nbEtab, NOM, NOM2, SIGLE, DCREN, CJ, CIVILITE, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, TEFF_ENT, TCA, TCAEXP', "SIREN=$siren AND NOM<>'' GROUP BY SIREN", false, MYSQL_ASSOC);
$entrep=$ret[0];
if ($entrep['nbEtab']>0) {
echo "$i/$nb : $siren;".$entrep['nbEtab'].';'.$entrep['NOM']."\n";
$tabUpdate=$entrep;
unset($tabUpdate['nbEtab']);
//print_r($tabUpdate);
//die();
$retUpdate=$iDb->update('identite', $tabUpdate, "SIREN=$siren AND NOM=''");
// die($retUpdate);
} else {
$fp=fopen('siren_a_recuperer.txt', 'a');
fwrite($fp, "$siren\n");
fclose($fp);
}
}
die();
?>

View File

@ -1,85 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
function wsLog($service, $siret='', $ref='') {
/* if (strlen($siret)==14) {
$siren=substr($siret,0,9);
$nic=substr($siret,9,5);
} elseif (strlen($siret)==9) {
$siren=$siret;
$nic='';
}
global $iDbCrm, $tabInfoUser;
$tabInsert=array( 'login'=>$tabInfoUser['login'],
'page'=>$service,
'siren'=>$siren,
'nic'=>$nic,
'params'=>$ref);
$rep=$iDbCrm->insert('logs', $tabInsert);
*/
}
error_reporting(E_ALL & ~E_NOTICE);
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once('/var/www/html/ws/WsEntreprise.php');
$nbExercices=1;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Scorer toute la base entreprise S&D.
Options :
-t Calculer tous les scores (*)
-i:XXX Reprendre à la ligne XXX
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 't':
case 'T':
break;
case 'i':
case 'I':
$iDeb=substr($argv[$i],3);
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
}
}
$iDb=new WDB('tmp');
$iWs=new WsEntreprise();
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de recherche des siren manquants...".EOL;
$tabRows=$iDb->select( 'tmp.siren_surv', 'siren', 'siren>99999 AND siren NOT IN (SELECT siren FROM jo.etablissements) ORDER BY siren_surv.siren DESC', false, MYSQL_ASSOC);
$nbRows=count($tabRows);
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises à scorer...".EOL;
foreach ($tabRows as $k=>$tabSiren) {
if ($k<$iDeb) continue;
$siren=$tabSiren['siren'];
$tabRet=@$iWs->searchSiren($siren);
$nbReps=$tabRet['results']['nbReponses'];
echo date('Y/m/d - H:i:s') ." - Ligne $k, siren $siren : $nbReps entreprise trouvée...".EOL;
randsleep(1,2);
}
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,526 +0,0 @@
#!/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');
$iInsee=new MInsee();
$siren=552144503;
print_r($iInsee->getAnnoncesLegales($siren));
die();
$tabLigne=file('/root/cjBodacc.txt');
$tabCj=array();
foreach ($tabLigne as $i=>$ligne) {
if ($i<1) continue;
$tabTmp=explode("\t", $ligne);
$libCj=strtoupper(trim(preg_replace('/[^a-z]/i','',$tabTmp[0])));
$nbrCj=$tabTmp[1];
@$tabCj[$libCj]+=$nbrCj;
}
$nbCj=count($tabCj);
echo "$i CJ traitées => $nbCj filtrées !".EOL;
foreach ($tabCj as $libCj=>$nbrCj)
echo "'$libCj'=>0,\t// $nbrCj".EOL;
die();
/*include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(FWK_PATH.'mail/sendMail.php');
*/
/*
function ferie($mois,$an, $alsace = false){
if (is_array($mois)){
$retour = array();
foreach ($mois as $m) {
$r = ferie($m, $an);
$retour[$m] = ferie($m, $an);
}
return $retour;
}
// calcul des jours feries pour un seul mois.
if (mktime(0,0,0,$mois, 1,$an) == -1) { return FALSE;}
list($mois, $an) = explode("-", date("m-Y", mktime(0,0,0,$mois, 1, $an)));
$an = intval($an);
$mois = intval($mois);
// une constante
$jour = 3600*24;
// les jours fixes
$ferie["Jour de l'an"][1] = 1;
$ferie["Armistice 39-45 "][5] = 8;
$ferie["Toussaint"][11] = 1;
$ferie["Armistice 14-18"][11] = 11;
$ferie["Assomption"][8] = 15;
$ferie["Fête du travail "][5] = 1;
$ferie["Fête nationale"][7] = 14;
$ferie["Noël"][12] = 25;
if ($alsace)
$ferie["Lendemain de Noël (Alsace seulement)"][12] = 25;
// quelques fetes mobiles
$lundi_de_paques['mois'] = date( "n", easter_date($an)+1*$jour);
$lundi_de_paques['jour'] = date( "j", easter_date($an)+1*$jour);
$lundi_de_paques['nom'] = "Lundi de Pâques";
$ascencion['mois'] = date( "n", easter_date($an)+39*$jour);
$ascencion['jour'] = date( "j", easter_date($an)+39*$jour);
$ascencion['nom'] = "Jeudi de l'ascenscion";
$vendredi_saint['mois'] = date( "n", easter_date($an)-2*$jour);
$vendredi_saint['jour'] = date( "j", easter_date($an)-2*$jour);
$vendredi_saint['nom'] = "Vendredi Saint";
$lundi_de_pentecote['mois'] = date( "n", easter_date($an)+50*$jour);
$lundi_de_pentecote['jour'] = date( "j", easter_date($an)+50*$jour);
$lundi_de_pentecote['nom'] = "Lundi de Pentecôte";
$ferie[$lundi_de_paques['nom']][$lundi_de_paques['mois']] = $lundi_de_paques['jour'];
$ferie[$lundi_de_pentecote['nom']][$lundi_de_pentecote['mois']] = $lundi_de_pentecote['jour'];
$ferie[$ascencion['nom']][$ascencion['mois']] = $ascencion['jour'];
if ($alsace)
$ferie[$vendredi_saint['nom']." (Alsace)"][$vendredi_saint['mois']]= $vendredi_saint['jour'];
// reponse
$reponse = array();
while(list($nom, $date)= each($ferie)){
if (isset($date[$mois])){
// une fete a date calculable
$reponse[$date[$mois]]=$nom;
}
}
ksort($reponse);
return $reponse;
}
function tab_jours_feriés($an) {
return ferie(range(1,12),$an);
}
$année = date("Y");
$tabFeriers = tab_jours_feriés($année);
print_r($tabFeriers);
die();
echo "<br>";
while (list($mois, $tab) = each ($fériées)) {
while (list($jour, $fete) = each ($tab)) {
echo "$jour/$mois/$année => $fete \n<br>";
}
}
*/
$iDb=new WDB();
$tabRet=$iDb->select('boamp_detail' , 'id, raisonSociale, adresse, cp, ville', "1");
foreach ($tabRet as $i=>$tabInsert) {
$idTxtUnique=trim(strtoupper(preg_replace('/[^a-z0-9]/i', '',
$tabInsert['raisonSociale'].$tabInsert['adresse'].
$tabInsert['cp'].$tabInsert['ville'])));
$id=$tabInsert['id'];
if ($idTxtUnique<>'') {
$iDb->update('boamp_detail',
array( 'idTxtUnique'=>$idTxtUnique,
'dateUpdate'=>0), "id=$id");
//die($id);
}
}
//echo WDate::jourFerie($argv[1],1);
die();
$tabFormesJuridiques=array(
"SociÉtÉ À responsabilitÉ limitÉe À capital variable" ,
"Societe anonyme cooperative a capital variable" ,
"Societe a responsabilite limitee" ,
"Sarl membre de la ce ou partie À l'accord sur l'espace Économique europÉen" ,
"Soci t par actions simplifi e" ,
"Soci t responsabilit limit e" ,
"Societe civile de personnes" ,
"Societe civile particuliere" ,
"Societe d'exercice liberal par actions simplifiee" ,
"Societe anonyme cooperative" ,
"Societe par actions simplifiee a associe unique" ,
"Societe cooperative" ,
"S a r l a capital variable" ,
"Ste en commandite simple" ,
"Soci t responsabilit limit e capital variable" ,
"Groupememt d'interet economique commercial" ,
"Societe par action simplifiee" ,
"Societe d'exercice liberal par actions simplifiee - selas" ,
"Entreprise unipersonnelle a responsabilite limitee" ,
"Soci t en nom collectif" ,
"SociÉtÉ par actions simplifiÉe unipersonnelle" ,
"Societe civile de contruction/vente" ,
"Societe anonyme a capital variable" ,
"Societe cooperative de production a responsabilite limitee a capital variable" ,
"Cooperative ouvriere de product. a resp. lim." ,
"SociÉtÉ civile de moyens" ,
"Affaire personnelle commerÇant" ,
"SociÉtÉ civile professionnelle" ,
"Societe anonyme d'economie mixte locale" ,
"Sa a conseil d administration" ,
"Societe cooperative agricole a capital variable" ,
"Cooperative ouvriere de production en a.r.l." ,
"Sarl a associe unique et a capital variable" ,
"Societe anonyme d'h.l.m." ,
"Cooperative agricole" ,
"Soci t civile" ,
"Soci t civile immobili re" ,
"SociÉtÉ d'exercice libÉral À responsabilitÉ limitÉe" ,
"Societe cooperative de production a responsabilite limitee" ,
"Societe cooperative de travailleurs (anonyme)" ,
"Soci?t? ? responsabilit? limit?e" ,
"Cooperative ouvriere de production (anonyme)" ,
"Sa coop de production a cap variable" ,
"Sa À conseil d'administration" ,
"Societe d'interet collectif agricole" ,
"Societe civile agricole" ,
"Societe cooperative de production anonyme a capital variable" ,
"Sarl unipersonnelle" ,
"Sarl cooperative" ,
"Societe cooperative agricole" ,
"Societe anonyme" ,
"Societe par actions simplifiee a directoire et conseil de surveillance" ,
"Ste coop. prod. a resp. limitee a capital personnel et variable" ,
"Societe d'actions simplifiee a capital variable" ,
"SociÉtÉ anonyme coopÉrative d'intÉrÊt collectif pour l'accession À la propriÉtÉ" ,
"Groupement d'intÉrÊt Économique" ,
"Societe d'exercice liberal a responsabilite limitee unipersonnelle%" ,
"Societe cooperative de production" ,
"Societe cooperative ouvriere de production anonyme a capital variable" ,
"Sarl a capital variable" ,
"Societe anonyme d'economie mixte" ,
"Societe cooperative anonyme d interet collectif agricole" ,
"Sasu sociÉtÉ par actions simplifiÉe À associÉ unique" ,
"Societe d'investissements a capital variable (s.i.c.a.v)" ,
"Societe cooperative de production (sarl)" ,
"Societe d exercice liberal par actions simplifiees" ,
"Union de cooperatives agricoles" ,
"Societe cooperative ouvriere de production anonyme" ,
"Soci t de droit tranger" ,
"Societe civile professionnelle d'architectes" ,
"Societe civile construction vente" ,
"Soci t anonyme" ,
"Societe a responsabilite limitee de presse" ,
"Societe anonyme sportive professionnelle" ,
"Societe anonyme a conseil d administration" ,
"Cooperative d'utilisation de materiel agricole (c.u.m.a.)" ,
"Societe civile cooperative de construction" ,
"Sarl de presse" ,
"Groupememt d interet economique commercial" ,
"Sa À directoire" ,
"Societe cooperative de production en a.r.l a capital variable" ,
"Societe cooperative interet collectif agricole s.a." ,
"Societe cooperative d'interet collectif anonyme" ,
"Societe cooperative a capital et personnel variables" ,
"SociÉtÉ coopÉrative À capital variable en la forme sarl" ,
"Ste coop de banque a capital var." ,
"Groupement agricole d'exploitation en commun - gaec" ,
"SociÉtÉ civile d'exploitation agricole" ,
"Societe cooperative a capital variable et a responsabilite limitee" ,
"Societe anonyme cooperative de production d hlm" ,
"Societe anonyme cooperative de commercants detaillants" ,
"SociÉtÉ civile professionnelle de commissaires-priseurs" ,
"Societe anonyme cooperative de banque populaire" ,
"Cooperative de consommation en s.a" ,
"Sa coopÉrative d'intÉrÊt collectif pour accession À la propriÉtÉ (sacicap)" ,
"Cooperative de commercants detaillants" ,
"Societe anonyme cooperative a capital et personnel variable" ,
"SociÉtÉ coopÉrative de production À forme sarl." ,
"SociÉtÉ civile immobiliÈre de construction vente" ,
"Ano societe anonyme a directoire et conseil de surveillance" ,
"Societe par actions simplifiee" ,
"Societe cooperative ouvriere de production" ,
"Societe civile d exploitation agricole a responsabilite limitee" ,
"Exploitation agricole À responsabilitÉ limitÉe" ,
"E.u.r.l." ,
"Societe d'economie mixte a conseil d'administration" ,
"Groupement europeen d'interet economique" ,
"Societe anonyme cooperative de production d'hlm" ,
"Groupement d int r t conomique" ,
"Cooperative ouvriere de product a resp lim " ,
"Soci t responsabilit limit e coop rative ouvri re de production et de cr dit" ,
"Societe cooperative credit capital variable a.r.l." ,
"Societe d'exercice liberal a forme anonyme _ selafa" ,
"SociÉtÉ À responsabilitÉ limitÉe coopÉrative ouvriÈre de production et de crÉdit" ,
"SociÉtÉ anonyme d'hlm" ,
"Societe d interet collectif agricole" ,
"Societe cooperative d'artisan en arl a capital variable" ,
"SociÉtÉ d'exercice libÉral À forme anonyme" ,
"SociÉtÉ d'investissement À capital variable" ,
"Societe civile d exploitation agricole" ,
"Societe en nom collectif" ,
"Sarl cooperative ouvriere de production et de credit a capital variable" ,
"SociÉtÉ par actions simplifiÉe À capital variable" ,
"SociÉtÉ par actions simplifiÉe À associÉ unique et capital variable" ,
"S a cooperative d entreprises a capital variable" ,
"Sa a conseil d&#039;administration" ,
"Societe cooperative de credit" ,
"Societe de presse" ,
"Societe anonyme a participation ouvriere" ,
"Groupement d interet economique commercial" ,
"SociÉtÉ anonyme d'Économie mixte À conseil d'administration" ,
"Ste d'exercice liberal a responsabilite limitee unipersonnel" ,
"Societe cooperative d interet collectif a responsabilite limitee" ,
"Sa d'economie mixte a conseil administratif" ,
"Societe d'economie mixte a directoire" ,
"Cette societe est une sas unipersonnelle" ,
"Sa sportive professionnelle" ,
"S.a.r.l. a capital personnel variable" ,
"Societe civile professionnelle d'huissiers" ,
"Sa cooperative ouvriere de production et de credit a conseil d administration" ,
"Gaec a capital variable" ,
"Groupement agricole d exploitation en commun" ,
"Societe d'exercice liberal par actions simplifiees (selas)" ,
"Societe civile d attribution" ,
"Soci t par actions simplifi e associ unique" ,
"Societe civile de construction vente" ,
"Cooperative agricole a capital variable" ,
"Societe cooperative de production en a.r.l. a capital variable" ,
"Societe anonyme a capital et personnel variables" ,
"SociÉtÉ anonyme À conseil d'administration" ,
"Sa coop. ouvriere de production capital et personnel variables" ,
"Union de societes cooperatives a directoire" ,
"Societe d'exercice liber. forme anonyme" ,
"Sarl d'intÉrÊt collectif et agricole À capital variable" ,
"Sarl cooperative a capital variable" ,
"Sa coop rative ouvri re de prod et cr dit conseil d adm capital variable" ,
"Banque cooperative regie par la loi n.99-532 du 25.06.1999" ,
"Societe anonyme au capital et personnel variable" ,
"Soci?t? par actions simplifi?e unipersonnelle" ,
"Sa d'int. collectif agri. a ca" ,
"Soci t civile de moyens" ,
"Societe a responsabilite limite de droit britanique" ,
"Ste cooperative de banque populaire" ,
"Societe cooperative de consommation anonyme" ,
"Societe anonyme d hlm" ,
"SociÉtÉ coopÉrative de travailleurs À forme sarl" ,
"Cooperative d'interet collectif a conseil d'administration" ,
"SociÉtÉ de placement À prÉpondÉrance immobiliÈre À capital variable" ,
"Societe cooperative a capital variable" ,
"Etablissement public national" ,
"Sica anonyme a directoire et conseil de surveillance" ,
"Eurl a capital variable" ,
"Sarl cooperative ouvriere de production" ,
"Sa coop. de production hlm a capital variable" ,
"Socite civile cooperative de credit" ,
"Societe a responsabilite limitee d'architecture" ,
"Cooperative ouvriere de production en a r l " ,
"Societe cooperative a responsabilite limitee a capital variable" ,
"Sarl sous forme de eurl" ,
"Ano societe anonyme cooperative a capital variable a directoire" ,
"Cooperative artisanale en s.a.r.l" ,
"SociÉtÉ civile professionnelle d'avocats" ,
"Ste cooperative artisanale resp.lim.capital variable" ,
"Societe anonyme capital fixe coop. de banque" ,
"Societe cooperative de banque populaire a capital variable" ,
"Cooperative ouvriere de production en s.a.r.l." ,
"Societe cooperative ouvriere de production a.s.a" ,
"SociÉtÉ coopÉrative de production À forme anonyme À capital variable" ,
"Sa coopÉrative ouvriÈre de prod. et crÉdit À conseil d'adm. À capital variable" ,
"Banque cooperative" ,
"Sarl membre de la ce ou partie l accord sur l espace conomique europ en" ,
"Sascop" ,
"Sa cooperative de consommation a conseil d administration a capital variable" ,
"Societe anonyme a conseil de surveillance" ,
"Cooperative artisanale" ,
"Cooperative maritime" ,
"Ste d'investissements a capital variable a conseil -sicav-" ,
"Societe civile en construction vente (loi de 1971) titre1" ,
"Societe cooperative artisanale a resp. limitee et a capital variable" ,
"SociÉtÉ anonyme coopÉrative de consommation À conseil d'administration" ,
"Ville de" ,
"Societe anonyme de presse" ,
"Association loi 1901 Émettant des obligations" ,
"Societe civile professionnelle de notaires" ,
"Societe civile immobiliere d attribution" ,
"Societe civile professionnelle de chirurgien-dentistes" ,
"Ste cooperative d'interet collectif a responsabilite limitee a capital variable" ,
"Arl societe a associe unique" ,
"Soci?t? par actions simplifi?e" ,
"SociÉtÉ coopÉrative ouvriÈre de production en la forme sarl" ,
"Soci t responsabilit limit e coop rative capital variable" ,
"Societe anonyme de consom a capital variable" ,
"Entreprise unipersonnelle a responsabilite limitee (eurl) et a capital variable" ,
"Societe cooperative de credit a capital variable" ,
"Societe civile de placement immobilier" ,
"Ste civile a participation ouvriere a capital variable" ,
"Societe anonyme cooperative de banque populaire a capital variable" ,
"Societe d'investissement a capital variable d'actionnariat salaries (sicavas)" ,
"Cooperative a capital variable (sarl)" ,
"Soci t en commandite simple" ,
"Soci t d exercice lib ral responsabilit limit e" ,
"Societe anonyme cooperative maritime a capital variable" ,
"Societe d interet collectif agricole arl" ,
"Societe anonyme cooperative a directoire" ,
"Cooperative professionnelle" ,
"S.a cooperative d'entreprises a capital variable" ,
"SociÉtÉ ÉtrangÈre immatriculÉe au rcs" ,
"Soci?t? ? responsabilit? limit?e ? associ? unique" ,
"SociÉtÉ civile professionnelle d'huissiers de justice" ,
"Soci t responsabilit limit e associ unique" ,
"SociÉtÉ coopÉrative ouvriÈre de production en la forme sa" ,
"Sa coop de commercants detail a ca" ,
"StÉ de participation financiÈre de profession libÉrale À responsabilitÉ limitÉe" ,
"Societe cooperative maritime" ,
"Autres formes juridiques" ,
"Societe civile immobiliere de construction / vente" ,
"Banque coopÉrative rÉgie par la loi n°99-532 du 25 juin 1999" ,
"SociÉtÉ coopÉrative exploitÉe sous forme de sarl" ,
"Sarl associe unique" ,
"Institution regie - articles l141-1 et suivants du code monetaire et financier" ,
"Societe de droit anglais" ,
"Societe cooperative de consommation anonyme a capital variable" ,
"Union de cooperative" ,
"Societe en commandite simple a capital variable" ,
"StÉ coop de crÉdit À capital variable et À responsabilitÉ statutairement limitÉe" ,
"Societe par actions" ,
"Societe cooperative artisanale a responsabilite limitee" ,
"Societe civile professionnelle de medecins" ,
"Union de cooperatives a capital variable" ,
"Societe anonyme d'h.l.m. a conseil" ,
"Sarl cooperative artisanale" ,
"Societe civile de construction" ,
"Societe civile d exploitation viticole" ,
"E.u.r.l a capital variable" ,
"Entreprise unipersonnelle a responsabilite limitee et a capital variable" ,
"Ste anonyme a directoire et conseil d'orientation & surveillance" ,
"Sarl unipersonnelle sportive" ,
"Scop a responsabilite limitee et a capital variable" ,
"SociÉtÉ À responsabilitÉ limitÉe unipersonnelle À capital variable" ,
"Sarl a capital et personnel variable" ,
"Societe d exploitation agricole a responsabilite limitee" ,
"Sarl - eurl a capital variable" ,
"StÉ anonyme coopÉrative d'intÉrÊt collectif pour l'accession À la propriÉtÉ" ,
"Ste anonyme cooperative a capital variable" ,
"Etablissement de credit a but non lucratif" ,
"Societe cooperative de travailleurs (sarl)" ,
"E.a.r.l." ,
"Societe d assurance" ,
"Regie municipale" ,
"Coop. de crÉdit À responsabilitÉ statutairement limitÉe et À capital variable" ,
"Societe" ,
"Sarl non membre de la ce ou non partie À l'accord sur l'espace Économique eur." ,
"Cooperative a capital variable en a r l " ,
"Societe anonyme a directoire et conseil de surveillance" ,
"Cooperative ouvriere de production (sa)" ,
"Societe civile d'attribution" ,
"Societe civile de portefeuille" ,
"SociÉtÉ anonyme coopÉrative d'intÉrÊt collectif pour accession À la propriÉtÉ" ,
"Affaire personnelle artisan" ,
"Scp de mandataires judiciaires À la liquidation des entreprises" ,
"Societe civile immobiliere a capital variable" ,
"S a r l de presse" ,
"Sarl d'architecture" ,
"Societe civile professionnelle de mandataires liquidateurs" ,
"Societe anonyme cooperative de consommation" ,
);
function getCodeFJ($forme_juridique) {
$iDb=new WDB();
$variable=false;
$strVar='';
if (preg_match('/capital variable/i', $forme_juridique)) {
$fj2=addslashes(preg_replace('/capital variable/i',' ',$forme_juridique));
$variable=true;
$strVar='VAR';
} else
$fj2=addslashes($forme_juridique);
$tmp=$iDb->select(
'tabFJur',
"code, libelle, MATCH(libelle) AGAINST('$fj2') AS score",
"code>1000 AND MATCH(libelle) AGAINST('$fj2')", false, MYSQL_ASSOC);
echo "A RECHERCHER : '$forme_juridique'".EOL;
foreach($tmp as $i=>$tabFj) {
if ($i==0) {
echo strtoupper(" $i - ".$tabFj['libelle']." ==> ".$tabFj['code']).EOL;
$code=$tabFj['code'];
} else
echo " $i - ".$tabFj['libelle']." ==> ".$tabFj['code'].EOL;
if ($i>20) break;
}
while(true){
echo "Confirmez le code $code pour '$forme_juridique' ?".EOL;
$saisie = trim(strtoupper(fgets(STDIN)));
if (strlen($saisie)==4 && $saisie*1>1000) {
$code=$saisie;
break;
/* if (!$iBodacc->addDeviseBodacc($devise, $saisie) && mysql_errno()<>1062) {
echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations de chargement en base impossible :".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
die();
}
$capital_devise=$saisie;
break;*/
} elseif ($saisie=='?') {
$code=$saisie;
break;
} elseif (strlen($saisie)==0) {
break;
}
}
return array('code'=>$code,'variable'=>$variable,'var'=>$strVar);
}
$fp=fopen('./libFJ.php','w+');
$fp2=fopen('./libFJ.csv','w+');
foreach($tabFormesJuridiques as $i=>$fj) {
//echo "$i:$fj = "..EOL;
$fj2=prepareString(strtoupper(trim($fj)));
$tabCode=getCodeFJ($fj2);
$code=$tabCode['code'];
$var=$tabCode['variable'];
$strVar=$tabCode['var'];
fwrite($fp, "case '$fj2':\t\$cj=$code; \$capitalType='$strVar'; break;".EOL);
fwrite($fp2, "$fj2\t$code\t$strVar".EOL);
}
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);
}
?>

View File

@ -1,192 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(INCLUDE_PATH.'insee/classMInsee.php');
$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
";
$semiManuel=$sansPropo=$toutes=$index=false;
$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 'p':
$sansPropo=true;
break;
case 'a':
$toutes=true;
break;
case 'i':
$index=trim(substr($argv[$i],3));
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de SIRENAGE des fichiers CLIENTS...".EOL;
$iDb=new WDB('tmp');
$iInsee=new MInsee();
$listeNonSirene=$iDb->select('mederic', 'ID_CLIENT, REF, RAISON_SOCIALE, ENSEIGNE2, SIGLE2, ADRESSE, CP, VILLE', 'SIREN=0', true);
echo date('Y/m/d - H:i:s') ." - Nombre d'entreprises à traiter : ".count($listeNonSirene). EOL;
foreach ($listeNonSirene as $k=>$entrep) {
$siege='';$actif='';$deb=0;$nbRep=20;$maxRep=20;$pertinence=false;
$avecSiren=true;
$tabEtabs=@$iInsee->rechercheEtab($entrep['RAISON_SOCIALE'], $entrep['ADRESSE'], $entrep['CP'], $entrep['VILLE'], $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
if (@$tabEtabs[nbReponses]==0 && $entrep['ENSEIGNE2']<>'') {
$tabEtabs=@$iInsee->rechercheEtab($entrep['ENSEIGNE2'], $entrep['ADRESSE'], $entrep['CP'], $entrep['VILLE'], $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
} elseif (@$tabEtabs[nbReponses]==0 && $entrep['SIGLE2']<>'') {
$tabEtabs=@$iInsee->rechercheEtab($entrep['SIGLE2'], $entrep['ADRESSE'], $entrep['CP'], $entrep['VILLE'], $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
}
//print_r($tabEtabs);
//die();
$tabSiren=array();
//echo "RECHERCHE DE : ". $entrep['RAISON_SOCIALE']. $entrep['ENSEIGNE2']. $entrep['SIGLE2']. $entrep['ADRESSE']. $entrep['CP']. $entrep['VILLE'].' ('.$tabEtabs['nbReponsesTotal']. " réponses)... ";
foreach ($tabEtabs['reponses'] as $i=>$etab) {
$tabSiren[]=$etab['Siren'];
/* $siret = $etab['Siret']; // 40847260300039
$siege = $etab['Siege']; // 0
$nom = $etab['Nom']; // SETTIER JEAN MARC
$nom2 = $etab['Nom2']; //
$sigle = $etab['Sigle']; //
$sigle = $etab['Enseigne'];//
$sigle = $etab['Adresse']; // 0059 R DE PATAY
$sigle = $etab['CP']; // 45000
$sigle = $etab['Ville']; // ORLEANS
$sigle = $etab['Tel']; // 00000000
$sigle = $etab['Fax']; // 00000000
$sigle = $etab['FJ']; // 1500
$sigle = $etab['FJLib']; // Profession libérale
$siren = $etab['Siren']; // 408472603
$nic = $etab['Nic']; // 00039
$actif = $etab['Actif']; // 0
*/
}
$tabUnique=array_unique($tabSiren);
//echo "RECHERCHE DE : ". $entrep['RAISON_SOCIALE']. $entrep['ENSEIGNE2']. $entrep['SIGLE2']. $entrep['ADRESSE']. $entrep['CP']. $entrep['VILLE'].' ('.$tabEtabs['nbReponsesTotal']. " réponses)... ";
if (count($tabUnique)==1) {
echo '1;'.$entrep['REF'].';'.$tabUnique[0].';'.$etab['Nom'].';'.$entrep['RAISON_SOCIALE'].';'.$entrep['ENSEIGNE2'].';'.$entrep['SIGLE2'].';'.$entrep['ADRESSE'].';'.$entrep['CP'].';'.$entrep['VILLE'].EOL;
} else {
echo count($tabUnique).';'.$entrep['REF'].';000000000;;'.$etab['Nom'].';'.$entrep['RAISON_SOCIALE'].';'.$entrep['ENSEIGNE2'].';'.$entrep['SIGLE2'].';'.$entrep['ADRESSE'].';'.$entrep['CP'].';'.$entrep['VILLE'].EOL;
}
// die();//
/* if (count($tabTrouve)==1) {
$entrepT=$tabTrouve[0];
$siren=substr($entrepT['Siret'],0,9);
$nic=substr($entrepT['Siret'],9,5);
echo "$siren $nic\n";
//print_r($entrepT);die();
/*if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$siren), "id='".$entrep['id']."'", true) or die($iDb->getLastError());
else
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($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($iDb->getLastError());
}
} elseif (count($tabTrouve)==0) {
echo " Pas de réponse !\n";
$tabInsert=array( 'idAnn'=>$entrep['id'],
'siren'=>$entrep['sir']);
if (!$iDb->insert('bodacc_sirenage', $tabInsert))
$iDb->update('bodacc_sirenage', array('siretProposes'=>''), 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die($iDb->getLastError());
} else { // Plusieurs siren possibles
echo "\n";
$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 "PROBABLES : \n";
$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'];
}
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($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($iDb->getLastError());
} else {
/** On insère en base toutes les multipropositions pour le sirenage manuel
$tabInsert=array( 'idAnn'=>$entrep['id'],
'siren'=>$entrep['sir'],
'siretProposes'=>implode(';',$tabSiret));
if ($iDb->insert('bodacc_sirenage', $tabInsert))
$iDb->update('bodacc_sirenage', array('siretProposes'=>implode(';',$tabSiret)), 'idAnn='.$entrep['id'].' AND siren='.$entrep['sir']) or die($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($table['table'], array($table['champSiren']=>$sirenNomIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], 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($table['table'], array($table['champSiren']=>$sirenAdrIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], 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($table['table'], array($table['champSiren']=>$sir), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sir, $table['champSirenValide']=>2),
'id='.$entrep['id'], true) or die(mysql_error());
break;
}
else $saisie='';
}
}*/
}
echo date('Y/m/d - H:i:s') ." - FIN du programme de SIRENAGE.".EOL;
die();
?>

View File

@ -1,5 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="006_FR_${DATE}.csv"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/doEtabAct.sql
/var/www/batch/diffusionEntrep.php >> /var/www/log/diffusionEntrep.log

View File

@ -1,515 +0,0 @@
USE jo;
DROP TABLE IF EXISTS jo.etablissements_actmp;
INSERT INTO sdv1.sphinx_idx (nom, createBegin) VALUES ('jo.etablissements_act', NOW());
# Creation de la structure de la table
CREATE TABLE `jo`.`etablissements_actmp` ( `id` bigint( 20 ) NOT NULL,
`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 ) unsigned 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` varchar(255) 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 NOT NULL ,
`tcaexp` tinyint( 1 ) unsigned zerofill NOT NULL ,
`teff_entrep` tinyint( 2 ) unsigned NULL ,
`teff_etab` tinyint( 2 ) unsigned NULL ,
`rang` smallint( 5 ) unsigned NOT NULL ,
`dateInsert` datetime NOT NULL ,
`dateUpdate` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP,
PRIMARY KEY (siren,nic) ) ENGINE = MyISAM DEFAULT CHARSET = latin1;
# Copie de la cible des actifs avec siret valide
INSERT IGNORE INTO `jo`.`etablissements_actmp` SELECT * FROM `jo`.`etablissements` WHERE `siren`>0 and `nic`>0 AND actif=1 AND cj NOT IN(1800,2310,2320,2385) ORDER BY siren, nic;
#INSERT IGNORE INTO `jo`.`etablissements_actmp` SELECT * FROM `jo`.`etablissements` WHERE `siren`>0 AND `nic`>0 AND ((actif=1 AND cj NOT IN (1800,2310,2320,2385)) OR siren IN (SELECT siren FROM rncs_entrep WHERE actif=1)) ORDER BY siren, nic;
# Suppression des zones inutiles
ALTER TABLE `etablissements_actmp`
DROP `dateInsert`,
DROP `dateUpdate`;
# Supprimer les non diffusibles insee
DELETE FROM jo.etablissements_actmp WHERE siren in(SELECT siren FROM insee.insee_nondiff WHERE siren NOT IN (SELECT siren FROM jo.rncs_entrep WHERE actif=1));
# Supprimer les Liquidé Radié en Sommeil
DELETE FROM jo.etablissements_actmp WHERE siren IN (SELECT DISTINCT siren FROM jo.annonces WHERE typeEven IN (1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1311, 1312, 1313, 1410, 1417, 1420, 1501, 1503, 1530, 2203, 2206, 2211, 2212, 6000, 6001, 6002, 6003, 6004));
# Suppression des entreprise en cessation juridique Insee
DELETE FROM jo.etablissements_actmp WHERE siren IN (SELECT DISTINCT insSIREN FROM insee.insee_even WHERE insEVE IN ('410'));
# Suppression des etablissements cesses INSEE
#DELETE FROM jo.etablissements_actmp LEFT JOIN insee.insee_even ON etablissements_actmp.siren=insee_even.insSIREN AND etablissements_actmp.nic=insee_even.insNIC WHERE insee_even.insEVE IN ('MPF','MNP','430');
# Supprimer les éblissements hors de France
DELETE FROM `etablissements_actmp` WHERE `adr_dep` =99;
# Suppression des entreprises presentes et inactives au RNCS
DELETE FROM `etablissements_actmp` WHERE siren IN (SELECT siren FROM `rncs_entrep` WHERE actif=0);
# Suppression des etablissements presents et inactifs au RNCS
DELETE etablissements_actmp FROM etablissements_actmp LEFT JOIN rncs_etab ON etablissements_actmp.siren=rncs_etab.siren AND etablissements_actmp.nic=rncs_etab.nic WHERE rncs_etab.actif=0;
# Ajouter les zones dirigants PP PM, bilans, achpost ?
ALTER TABLE etablissements_actmp
ADD nomCommercial VARCHAR(200) NOT NULL,
ADD web VARCHAR(100) NOT NULL,
ADD mail VARCHAR(100) NOT NULL,
ADD isin VARCHAR(12) NOT NULL,
ADD adrDom TINYINT(1) UNSIGNED NOT NULL,
ADD lieuAct TINYINT(2) UNSIGNED NOT NULL,
ADD explen TINYINT(1) UNSIGNED NOT NULL,
ADD explet TINYINT(1) UNSIGNED NOT NULL,
ADD actifEco TINYINT(1) UNSIGNED NOT NULL,
ADD presentRcs TINYINT(1) UNSIGNED NOT NULL,
ADD procolHisto TINYINT(1) UNSIGNED NOT NULL,
ADD tvaIntraCle TINYINT(2) UNSIGNED ZEROFILL NULL DEFAULT NULL,
ADD tvaIntraValide TINYINT(1) UNSIGNED NULL DEFAULT NULL,
ADD ape4_etab CHAR(4) NOT NULL,
ADD ape4_entrep CHAR(4) NOT NULL,
ADD NaceEtab CHAR(5) NOT NULL,
ADD NaceEntrep CHAR(5) NOT NULL,
ADD dateCrea_etab INT(8) UNSIGNED NOT NULL,
ADD dateCrea_ent INT(8) UNSIGNED NOT NULL,
ADD dateImmat INT(8) UNSIGNED NOT NULL,
ADD eff_entrep MEDIUMINT(7) NOT NULL,
ADD eff_etab MEDIUMINT(7) NOT NULL,
ADD distSP VARCHAR(38) NOT NULL,
ADD achPost VARCHAR(38) NOT NULL,
ADD codeCommune CHAR(5) NOT NULL,
ADD rivoli CHAR(5) NOT NULL,
ADD l93_x INT(7) UNSIGNED NULL,
ADD l93_y INT(7) UNSIGNED NULL,
ADD alt MEDIUMINT(9) NULL,
ADD precis TINYINT(1) NULL,
ADD zus CHAR(10) NULL,
ADD zru CHAR(10) NULL,
ADD zfu CHAR(10) NULL,
ADD cucs CHAR(10) NULL,
ADD zrr TINYINT(1) UNSIGNED NOT NULL,
ADD zafr TINYINT(1) UNSIGNED NOT NULL,
ADD dirCiv VARCHAR(4) NOT NULL,
ADD dirNom VARCHAR(20) NOT NULL,
ADD dirPrenom VARCHAR(30) NOT NULL,
ADD dirDateNaiss DATE NOT NULL,
ADD dirFct SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
ADD nbEtab MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbMPubli MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbMarques MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbAnnAsso MEDIUMINT(5) UNSIGNED NOT NULL,
ADD sirenGrp INT(9) UNSIGNED ZEROFILL NULL DEFAULT NULL,
ADD nbActio MEDIUMINT(5) UNSIGNED NOT NULL,
ADD nbPart MEDIUMINT(5) UNSIGNED NOT NULL,
ADD bilType ENUM('I','E','R') NOT NULL DEFAULT 'I',
ADD bilAnnee YEAR NOT NULL,
ADD bilCloture DATE NOT NULL,
ADD bilDuree TINYINT(2) UNSIGNED NOT NULL,
ADD bilTca TINYINT(1) UNSIGNED NOT NULL,
ADD bilEE BIGINT(13) NOT NULL,
ADD bilFL BIGINT(13) NOT NULL,
ADD bilFK BIGINT(13) NOT NULL,
ADD bilFR BIGINT(13) NOT NULL,
ADD bilGF BIGINT(13) NOT NULL,
ADD bilGP BIGINT(13) NOT NULL,
ADD bilGU BIGINT(13) NOT NULL,
ADD bilGW BIGINT(13) NOT NULL,
ADD bilHD BIGINT(13) NOT NULL,
ADD bilHH BIGINT(13) NOT NULL,
ADD bilHL BIGINT(13) NOT NULL,
ADD bilHM BIGINT(13) NOT NULL,
ADD bilHN BIGINT(13) NOT NULL,
ADD bilYP INT(8) NOT NULL,
ADD avisCs TINYINT(2) UNSIGNED ZEROFILL NULL DEFAULT NULL,
ADD risque TINYINT(1) UNSIGNED NOT NULL;
# Ajout des codes ISIN
UPDATE jo.etablissements_actmp, sdv1.bourse_isin SET etablissements_actmp.isin=sdv1.code_isin WHERE etablissements_actmp.siren=bourse_isin.siren AND bourse_isin.siren>1000;
# Ajout du code Cedex + ville
CREATE /*TEMPORARY*/ TABLE jo.tmp (
insSIREN INT(9) UNSIGNED ZEROFILL NOT NULL,
insNIC MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
insL6_POST VARCHAR(38) NOT NULL,
PRIMARY KEY (insSIREN,insNIC)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT insSIREN, insNIC, insL6_POST
FROM insee.insee_notices b1
WHERE b1.dateNotice = (
SELECT MAX( b2.dateNotice )
FROM insee.insee_notices b2
WHERE b1.insSIREN = b2.insSIREN
AND b1.insNIC = b2.insNIC
AND b2.insL6_POST LIKE '%CEDEX%' );
UPDATE etablissements_actmp, tmp SET etablissements_actmp.achPost=tmp.insL6_POST WHERE etablissements_actmp.siren=tmp.insSIREN AND etablissements_actmp.nic=tmp.insNIC;
DROP TABLE tmp;
# Ajout des codes NAF4
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
ape4_etab CHAR(4) NOT NULL,
ape4_entrep CHAR(4) NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO `jo`.`tmp` SELECT siren, nic, apet4, apen4 FROM `insee`.`bascule`;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.ape4_etab=tmp.ape4_etab, etablissements_actmp.ape4_entrep=tmp.ape4_entrep
WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic;
DROP TABLE tmp;
# Ajout du nombre d'éblissements Actifs
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nbEtab MEDIUMINT(5) UNSIGNED NOT NULL,
PRIMARY KEY (`siren`)
);
INSERT IGNORE INTO tmp SELECT siren, COUNT(*) as nbEtab FROM etablissements_actmp GROUP BY siren HAVING nbEtab>1;
UPDATE etablissements_actmp SET nbEtab=1;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbEtab=tmp.nbEtab WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
# Ajout de la distribution spéale, de la civilitées PP, des effectifs et date de créion éb
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED NOT NULL,
distSP VARCHAR(38) NOT NULL,
civ TINYINT(1) UNSIGNED NOT NULL,
effEn INT(6) UNSIGNED NOT NULL,
effEt INT(6) UNSIGNED NOT NULL,
dateCrea_etab INT(8) UNSIGNED NOT NULL,
dateCrea_ent INT(8) UNSIGNED NOT NULL,
rivoli CHAR(5) NOT NULL,
actifEco TINYINT(1) UNSIGNED NOT NULL,
lieuAct TINYINT(2) UNSIGNED NOT NULL,
codeCommune CHAR(5) NOT NULL,
explen TINYINT(1) UNSIGNED NOT NULL,
explet TINYINT(1) UNSIGNED NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp
SELECT SIREN, NIC, ADR_DISTSP, IF( CIVILITE=2,'MME',IF(CIVILITE=1,'M','')) AS CIVILITE, EFF_ENT, EFF_ET,
IF(DCRET>19000000,IF(DCRET%100>0,DCRET,DCRET+1),0) AS DCRET,
IF(DCREN>19000000,IF(DCREN%100>0,DCREN,DCREN+1),0) AS DCREN,
CODEVOIE, actifEco, LIEUACT, CONCAT(ADR_DEP,ADR_COM) AS codeCommune,
IF(EXPLEN='O',1,0) AS EXPLEN,
IF(EXPLET='O',1,0) AS EXPLET FROM insee.identite WHERE ACTIF%10=1;
UPDATE etablissements_actmp, tmp SET
etablissements_actmp.distSP=tmp.distSP,
etablissements_actmp.dirCiv=tmp.civ,
etablissements_actmp.eff_entrep=tmp.effEn,
etablissements_actmp.eff_etab=tmp.effEt,
etablissements_actmp.dateCrea_etab=tmp.dateCrea_etab,
etablissements_actmp.dateCrea_ent=tmp.dateCrea_ent,
etablissements_actmp.rivoli=tmp.rivoli,
etablissements_actmp.actifEco=tmp.actifEco,
etablissements_actmp.lieuAct=tmp.lieuAct,
etablissements_actmp.codeCommune=tmp.codeCommune,
etablissements_actmp.explen=tmp.explen,
etablissements_actmp.explet=tmp.explet
WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic;
DROP TABLE tmp;
# Ajout du Téphone si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
tel INT(10) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, telephone
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='tel');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.tel=tmp.tel WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.tel=0;
DROP TABLE tmp;
# Ajout du Fax si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
tel INT(10) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, telephone
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='fax');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.fax=tmp.tel WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.fax=0;
DROP TABLE tmp;
# Ajout du site Web et du mail
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
web VARCHAR(100) NOT NULL,
mail VARCHAR(100) NOT NULL,
PRIMARY KEY (siren)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, web, mail FROM infos_entrep;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.web=tmp.web, etablissements_actmp.mail=tmp.mail WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
# Ajout du Web si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
web VARCHAR(100) NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, infoTel
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='web');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.web=tmp.web WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.web='';
DROP TABLE tmp;
# Ajout du Mail si manquant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nic MEDIUMINT(5) UNSIGNED ZEROFILL NOT NULL,
mail VARCHAR(100) NOT NULL,
PRIMARY KEY (siren,nic)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, nic, infoTel
FROM jo.telephonie b1
WHERE b1.dateInsert = (
SELECT MAX(b2.dateInsert)
FROM jo.telephonie b2
WHERE b1.siren = b2.siren
AND b1.nic = b2.nic
AND b2.typeTel='mail');
UPDATE etablissements_actmp, tmp SET etablissements_actmp.mail=tmp.mail WHERE etablissements_actmp.siren=tmp.siren AND etablissements_actmp.nic=tmp.nic AND etablissements_actmp.mail='';
DROP TABLE tmp;
# Ajout de la civilitédu nom et du prém du principal dirigeant
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
dirCiv CHAR(4) NOT NULL,
dirNom CHAR(20) NOT NULL,
dirPrenom CHAR(30) NOT NULL,
dirDateNaiss DATE NOT NULL,
dirFct SMALLINT(4) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren)
);
INSERT IGNORE INTO jo.tmp SELECT DISTINCT siren, civilite, nom, prenom, naissance_date, fonction_code
FROM jo.rncs_dirigeants b1
WHERE b1.fonction_code = (
SELECT MAX(b2.fonction_code)
FROM jo.rncs_dirigeants b2
WHERE b1.siren = b2.siren
AND b2.actif=1
AND b2.nom<>''
AND b2.fonction_code BETWEEN 200 AND 2000);
UPDATE etablissements_actmp, tmp SET etablissements_actmp.dirCiv=tmp.dirCiv, etablissements_actmp.dirNom=tmp.dirNom, etablissements_actmp.dirPrenom=tmp.dirPrenom, etablissements_actmp.dirDateNaiss=tmp.dirDateNaiss, etablissements_actmp.dirFct=tmp.dirFct WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.dirNom=rncs_entrep.nom,
etablissements_actmp.dirPrenom=rncs_entrep.prenom,
etablissements_actmp.dirDateNaiss=rncs_entrep.dateNaiss,
etablissements_actmp.dirFct=1050
WHERE etablissements_actmp.siren=rncs_entrep.siren
AND rncs_entrep.actif=1
AND etablissements_actmp.dirNom=''
AND rncs_entrep.nom<>''
AND rncs_entrep.cj<2000;
# Ajout de la date d'immatriculation
UPDATE etablissements_actmp, greffes_identite SET
etablissements_actmp.dateImmat=greffes_identite.dateCreation*1
WHERE etablissements_actmp.siren=greffes_identite.siren;
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.dateImmat=rncs_entrep.dateImma*1
WHERE etablissements_actmp.siren=rncs_entrep.siren;
# Ajout de la présence dans le répertoire RCS
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.presentRcs=1
WHERE etablissements_actmp.siren=rncs_entrep.siren;
# Ajout du nomCommercial
UPDATE etablissements_actmp, rncs_etab SET
etablissements_actmp.nomCommercial=rncs_etab.nomCommercial
WHERE etablissements_actmp.siren=rncs_etab.siren AND etablissements_actmp.nic=rncs_etab.nic;
# Ajout des enseignes RNCS absentes de l'INSEE
UPDATE etablissements_actmp, rncs_etab SET
etablissements_actmp.enseigne=rncs_etab.enseigne
WHERE etablissements_actmp.siren=rncs_etab.siren AND etablissements_actmp.nic=rncs_etab.nic AND etablissements_actmp.enseigne='';
# Ajout des sigles RNCS absents de l'INSEE
UPDATE etablissements_actmp, rncs_entrep SET
etablissements_actmp.sigle=rncs_entrep.sigle
WHERE etablissements_actmp.siren=rncs_entrep.siren AND etablissements_actmp.sigle='';
# Ajout des numéros de TVA
UPDATE jo.etablissements_actmp, sdv1.siren_tva SET etablissements_actmp.tvaIntraValide=1, etablissements_actmp.tvaIntraCle=siren_tva.cle
WHERE etablissements_actmp.siren=siren_tva.siren AND siren_tva.cle IS NOT NULL;
UPDATE jo.etablissements_actmp, sdv1.siren_tva SET etablissements_actmp.tvaIntraValide=0
WHERE etablissements_actmp.siren=siren_tva.siren AND siren_tva.cle IS NULL;
# Ajout de l'indicateur Présence de Procol dans l'historique
UPDATE etablissements_actmp, rncs_jugements SET
etablissements_actmp.procolHisto=1
WHERE etablissements_actmp.siren=rncs_jugements.siren;
UPDATE etablissements_actmp, annonces SET
etablissements_actmp.procolHisto=1
WHERE etablissements_actmp.siren=annonces.siren AND etablissements_actmp.procolHisto=0 AND annonces.typeEven BETWEEN 1000 AND 1999;
# Ajout de la cote spéciale GE
UPDATE jo.etablissements_actmp, sdv1.ge_cs2
SET etablissements_actmp.avisCs=REPLACE(REPLACE(REPLACE(REPLACE(ge_cs2.cs,'I','10'),'P','15'),'D','39'),'T','43')
WHERE etablissements_actmp.siren=ge_cs2.siren AND (ge_cs2.dateSuppr=0 OR ge_cs2.dateConf>ge_cs2.dateSuppr)
AND (ge_cs2.dateFin=0 OR ge_cs2.dateFin>NOW()) AND ge_cs2.cs NOT IN (20,22,27,33,34);
# Ajout du niveau de risque
UPDATE etablissements_actmp SET risque=1 WHERE siren IN (SELECT siren FROM scores_surveillance WHERE indiScore<40);
UPDATE etablissements_actmp SET risque=1 WHERE avisCs IN (10, 11, 12, 13, 15, 16, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 50);
UPDATE etablissements_actmp SET risque=1 WHERE procolHisto=1;
UPDATE etablissements_actmp SET risque=1 WHERE actifEco=0 AND siege=1 AND (cj<3000 OR cj>9000);
UPDATE etablissements_actmp SET risque=0 WHERE siren IN (SELECT siren FROM scores_surveillance WHERE indiScore>39);
# Ajout du nombre d'actionnaires et de participations actives
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
nbEntrep MEDIUMINT(5) UNSIGNED NOT NULL,
PRIMARY KEY (siren)
);
INSERT IGNORE INTO tmp SELECT siren1 AS siren, COUNT(*) AS nbEntrep FROM liens WHERE siren1>10000 AND actif=1 AND ActionPart=1 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbActio=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
INSERT IGNORE INTO tmp SELECT siren1 AS siren, COUNT(*) AS nbEntrep FROM liens WHERE siren1>10000 AND actif=1 AND ActionPart=2 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbPart=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
# Ajout du nombre de marchés publics gagnés
INSERT IGNORE INTO tmp SELECT siren, COUNT(*) AS nbEntrep FROM boamp_lots WHERE siren>10000 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbMPubli=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
# Ajout du nombre de marques
INSERT IGNORE INTO tmp SELECT sirenDeposant AS siren, COUNT(*) AS nbEntrep FROM bopi.marques WHERE sirenDeposant>10000 GROUP BY sirenDeposant;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbMarques=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
# Ajout du nombre d'annonces JO Associations
INSERT IGNORE INTO tmp SELECT siren, COUNT(*) AS nbEntrep FROM asso WHERE siren>10000 GROUP BY siren;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.nbAnnAsso=tmp.nbEntrep WHERE etablissements_actmp.siren=tmp.siren;
TRUNCATE TABLE tmp;
DROP TABLE tmp;
# Jonction temporaire des tables zonage et zonageXY
CREATE TABLE tmp
SELECT x.address, x.rivoli, x.l93_x, x.l93_y, x.alt, x.precis, x.adrNum, x.adrIndRep, x.adrTypeVoie, x.adrLibVoie, x.adr_cp, x.adr_ville, z.zus, z.zru, z.zfu, z.cucs
FROM zonageXY x
LEFT JOIN zonage z ON x.address=z.address AND x.adr_cp=z.adr_cp AND x.adr_ville=z.adr_ville
WHERE x.l93_x IS NOT NULL AND x.precis>5 AND x.l93_x>0 AND x.l93_y>0 AND x.address<>'0000' AND x.adr_cp<>'' AND x.adr_cp<>'00000';
ALTER TABLE tmp ADD INDEX (adrNum,adrIndRep,adrTypeVoie,adrLibVoie,adr_cp,adr_ville);
# Mise à jour des Lamberts, de l'altitude et des zones Prioritaires
UPDATE etablissements_actmp, tmp
SET etablissements_actmp.l93_x =tmp.l93_x,
etablissements_actmp.l93_y =tmp.l93_y,
etablissements_actmp.alt =tmp.alt,
etablissements_actmp.precis=tmp.precis,
etablissements_actmp.zus =tmp.zus,
etablissements_actmp.zru =tmp.zru,
etablissements_actmp.zfu =tmp.zfu,
etablissements_actmp.cucs =tmp.cucs
WHERE etablissements_actmp.adr_num =tmp.adrNum AND
etablissements_actmp.adr_btq =tmp.adrIndRep AND
etablissements_actmp.adr_typeVoie=tmp.adrTypeVoie AND
etablissements_actmp.adr_libVoie =tmp.adrLibVoie AND
etablissements_actmp.adr_cp =tmp.adr_cp AND
etablissements_actmp.adr_ville =tmp.adr_ville;
DROP TABLE tmp;
# Ajout des marqueurs ZRR et ZAFR
UPDATE etablissements_actmp, zonageInsee
SET etablissements_actmp.zrr=1
WHERE etablissements_actmp.codeCommune=zonageInsee.codeInsee AND zonageInsee.typeZone='ZRR';
UPDATE etablissements_actmp, zonageInsee
SET etablissements_actmp.zafr=1
WHERE etablissements_actmp.codeCommune=zonageInsee.codeInsee AND zonageInsee.typeZone='ZAFR' AND canton=0;
# Correction du capital si absent (Alsace, Moselle, DOM...)
CREATE /*TEMPORARY*/ TABLE jo.tmp (
siren INT(9) UNSIGNED ZEROFILL NOT NULL,
DA BIGINT(20) UNSIGNED NOT NULL,
dateExercice INT(8) UNSIGNED ZEROFILL NOT NULL,
PRIMARY KEY (siren,dateExercice)
);
INSERT IGNORE INTO jo.tmp
SELECT siren, DA, dateExercice FROM bilans_postes WHERE siren IN (
SELECT siren FROM etablissements_actmp WHERE cj>=2000 AND capital=0 AND capitalDev IN ('','EUR') AND presentRcs=1
) ORDER BY siren ASC, dateExercice DESC;
UPDATE etablissements_actmp, tmp SET etablissements_actmp.capital=tmp.DA WHERE etablissements_actmp.siren=tmp.siren;
DROP TABLE tmp;
# Les controles et zones issue des bilans seront proposees lors de l'extraction !
ALTER TABLE etablissements_actmp
ADD INDEX idxEntrepApeCA(siege,ape_entrep,bilFL),
ADD INDEX idxEntrepApeCommune(siege,ape_entrep,adr_dep,adr_com),
ADD INDEX idxSirenGrpSiege(sirenGrp,siege),
ADD INDEX idxRangSiege(rang,siege);

View File

@ -1 +0,0 @@
mysql -h192.168.3.30 -pscores -N jo < /var/www/batch/clients/exportKompassRisque.sql > /home/data/clients/kompass/sdKompassRisques.txt

View File

@ -1,4 +0,0 @@
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
ORDER BY siren ASC;

View File

@ -1,45 +0,0 @@
2012-10-08-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
0 0 0 /home/data/ftp/creditsafe/recv/col20121008.txt
2012-10-08-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-09-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
0 0 0 /home/data/ftp/creditsafe/recv/col20121009.txt
2012-10-09-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-10-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
274 7563 51565 /home/data/ftp/creditsafe/recv/col20121010.txt
2012-10-10-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-11-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
356 10982 74419 /home/data/ftp/creditsafe/recv/col20121011.txt
2012-10-11-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-12-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
372 11653 79551 /home/data/ftp/creditsafe/recv/col20121012.txt
2012-10-12-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-13-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
397 11746 79537 /home/data/ftp/creditsafe/recv/col20121013.txt
2012-10-13-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-14-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
189 4812 32875 /home/data/ftp/creditsafe/recv/col20121014.txt
2012-10-14-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-15-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
0 0 0 /home/data/ftp/creditsafe/recv/col20121015.txt
2012-10-15-00-12 - Fin de l'export des procédures collectives pour CreditSafe.
2012-10-16-00-12 - Début de l'export des procédures collectives pour CreditSafe...
Nombre de jugements exportés :
16 377 2637 /home/data/ftp/creditsafe/recv/col20121016.txt
2012-10-16-00-12 - Fin de l'export des procédures collectives pour CreditSafe.

View File

@ -1,3 +0,0 @@
SELECT siren AS RCS, typeEven as CODE_EVEN, raisonSociale as RAISON_SOCIALE, adresse AS ADRESSE1, CONCAT_WS(' ',codePostal,ville) AS ADRESSE2, dateJugement AS DATE_JUG, CONCAT_WS('/',inter1nom,inter2nom,inter3nom) AS MANDATAIRE, tribunal AS TRIBUNAL, DATE(dateInsert) AS DATE_FRAICHEUR
FROM annonces
WHERE (idSaisie >0 OR inter1id >0 OR inter2id >0 OR inter3id >0) AND date(dateInsert)>20081001;

View File

@ -1,31 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('DIR_FTP_RECOCASH', '/home/data/ftp/recocash');
echo date('Y/m/d - H:i:s') ." - DEBUT de la récupération du/des flux Recocash...".EOL;
$dh = opendir(DIR_FTP_RECOCASH);
$ret=0;
while (false !== ($filename = readdir($dh))) {
if (substr($filename,0,1)<>'.' && strtolower(substr($filename, -4)<>'.txt')) {
$filename=DIR_FTP_RECOCASH.'/'.$filename;
$dateHeure=date('YmdHis', filectime($filename));
$fpR=fopen($filename, 'r');
$fpW=fopen($filename.'.sdin', 'w');
echo date('Y/m/d - H:i:s') ." - Conversion du fichier $filename".EOL;
while (!feof($fpR)) {
$ligneR = fgets($fpR);
$siren=substr($ligneR,0,9);
$ref=substr($ligneR,9,10);
$ligneW='CLI'.$dateHeure.'0000000000SURBODPRDFTSRECOCASH ';
$ligneW.=' '.$siren;
$ligneW.=' ';
$ligneW.=$ref.EOL;
fwrite($fpW, $ligneW);
}
fclose($fpR);
fclose($fpW);
}
}
echo date ('Y/m/d - H:i:s')." - FIN de la récupération du/des flux Recocash...".EOL;
?>

View File

@ -1,21 +0,0 @@
#!/bin/sh
cd /var/www/batch/clients
DATE=`date '+%Y%m%d'`
DATEHEURE=`date '+%Y-%m-%d-%H-%I'`
echo -n "${DATEHEURE} - Début du chargement de la téléphonie ARCEP...
"
wget -N http://www.arcep.fr/fileadmin/reprise/dossiers/numero/liste-op-dec-num.xls
xls2csv -x liste-op-dec-num.xls -c liste-op-dec-num.csv
echo -n "Nombre d'opérateurs :
"
wc liste-op-dec-num.csv
/var/www/batch/loadCSV.php -e -s=, -d=telephonie -t=operateurs_tmp liste-op-dec-num.csv
wget -N http://www.arcep.fr/fileadmin/wopnum.xls
xls2csv -x wopnum.xls -c wopnum.csv
echo -n "Nombre d'indicatifs :
"
wc wopnum.csv
/var/www/batch/loadCSV.php -e -s=, -d=telephonie -t=indicatifs_tmp wopnum.csv
DATEHEURE=`date '+%Y-%m-%d-%H-%I'`
echo -n "${DATEHEURE} - Fin du chargement de la téléphonie ARCEP.
"

View File

@ -1,15 +0,0 @@
adding: 006_FR_20121014.csv (deflated 75%)
Connected to ftp.giant-net.com (62.58.14.80).
220 Microsoft FTP Service
331 Password required for ftp_sd_fr.
230 User ftp_sd_fr logged in.
200 Type set to I.
Local directory now /var/www/batch/clients
local: 006_FR_20121014.tmp remote: 006_FR_20121014.tmp
227 Entering Passive Mode (62,58,14,80,7,116).
125 Data connection already open; Transfer starting.
226 Transfer complete.
257334860 bytes sent in 619 secs (4.1e+02 Kbytes/sec)
350 File exists, ready for destination name
250 RNTO command successful.
221

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
/var/www/batch/exportKompass.php -1
/var/www/batch/exportKompass.php -3
/var/www/batch/exportKompass.php -4
###/var/www/batch/exportKompass.php -5

View File

@ -1,94 +0,0 @@
2012/10/08 - 00:46:06 - Il y a 152159 siren Kompass en Presta 5...
2012/10/08 - 01:00:49 - 1000/152159 siren traites...
2012/10/08 - 01:14:56 - 2000/152159 siren traites...
2012/10/08 - 01:28:41 - 3000/152159 siren traites...
2012/10/08 - 01:42:28 - 4000/152159 siren traites...
2012/10/08 - 01:56:37 - 5000/152159 siren traites...
2012/10/08 - 02:11:43 - 6000/152159 siren traites...
2012/10/08 - 02:30:33 - 7000/152159 siren traites...
2012/10/08 - 02:47:06 - 8000/152159 siren traites...
2012/10/08 - 03:03:32 - 9000/152159 siren traites...
2012/10/08 - 03:19:35 - 10000/152159 siren traites...
2012/10/08 - 03:35:14 - 11000/152159 siren traites...
2012/10/08 - 03:50:48 - 12000/152159 siren traites...
2012/10/08 - 04:06:43 - 13000/152159 siren traites...
2012/10/08 - 04:21:37 - 14000/152159 siren traites...
2012/10/08 - 04:39:19 - 15000/152159 siren traites...
2012/10/08 - 04:57:05 - 16000/152159 siren traites...
2012/10/08 - 05:15:00 - 17000/152159 siren traites...
2012/10/08 - 05:33:22 - 18000/152159 siren traites...
2012/10/08 - 05:51:16 - 19000/152159 siren traites...
2012/10/08 - 06:05:50 - 20000/152159 siren traites...
2012/10/08 - 06:20:24 - 21000/152159 siren traites...
2012/10/08 - 06:34:55 - 22000/152159 siren traites...
2012/10/08 - 06:49:26 - 23000/152159 siren traites...
2012/10/08 - 07:04:15 - 24000/152159 siren traites...
2012/10/08 - 07:19:03 - 25000/152159 siren traites...
2012/10/08 - 07:33:38 - 26000/152159 siren traites...
2012/10/08 - 07:48:09 - 27000/152159 siren traites...
2012/10/08 - 08:02:47 - 28000/152159 siren traites...
2012/10/08 - 08:17:51 - 29000/152159 siren traites...
2012/10/08 - 08:32:53 - 30000/152159 siren traites...
2012/10/08 - 08:48:07 - 31000/152159 siren traites...
2012/10/08 - 09:02:45 - 32000/152159 siren traites...
2012/10/08 - 09:17:56 - 33000/152159 siren traites...
2012/10/08 - 09:32:35 - 34000/152159 siren traites...
2012/10/08 - 09:47:48 - 35000/152159 siren traites...
2012/10/08 - 10:02:27 - 36000/152159 siren traites...
2012/10/08 - 10:17:37 - 37000/152159 siren traites...
2012/10/08 - 10:32:17 - 38000/152159 siren traites...
2012/10/08 - 10:48:36 - 39000/152159 siren traites...
2012/10/08 - 11:04:52 - 40000/152159 siren traites...
2012/10/08 - 11:20:01 - 41000/152159 siren traites...
2012/10/08 - 11:34:46 - 42000/152159 siren traites...
2012/10/08 - 11:49:51 - 43000/152159 siren traites...
2012/10/08 - 12:04:29 - 44000/152159 siren traites...
2012/10/08 - 12:19:39 - 45000/152159 siren traites...
2012/10/08 - 12:34:13 - 46000/152159 siren traites...
2012/10/08 - 12:49:25 - 47000/152159 siren traites...
2012/10/08 - 13:04:02 - 48000/152159 siren traites...
2012/10/08 - 13:19:14 - 49000/152159 siren traites...
2012/10/08 - 13:33:52 - 50000/152159 siren traites...
2012/10/08 - 13:49:04 - 51000/152159 siren traites...
2012/10/08 - 14:03:41 - 52000/152159 siren traites...
2012/10/08 - 14:19:01 - 53000/152159 siren traites...
2012/10/08 - 14:33:39 - 54000/152159 siren traites...
2012/10/08 - 14:48:49 - 55000/152159 siren traites...
2012/10/08 - 15:03:24 - 56000/152159 siren traites...
2012/10/08 - 15:18:39 - 57000/152159 siren traites...
2012/10/08 - 15:33:14 - 58000/152159 siren traites...
2012/10/08 - 15:48:36 - 59000/152159 siren traites...
2012/10/08 - 16:03:17 - 60000/152159 siren traites...
2012/10/08 - 16:18:27 - 61000/152159 siren traites...
2012/10/08 - 16:33:01 - 62000/152159 siren traites...
2012/10/08 - 16:48:03 - 63000/152159 siren traites...
2012/10/08 - 17:02:35 - 64000/152159 siren traites...
2012/10/08 - 17:17:38 - 65000/152159 siren traites...
2012/10/08 - 17:32:08 - 66000/152159 siren traites...
2012/10/08 - 17:47:12 - 67000/152159 siren traites...
2012/10/08 - 18:01:42 - 68000/152159 siren traites...
2012/10/08 - 18:16:39 - 69000/152159 siren traites...
2012/10/08 - 18:31:33 - 70000/152159 siren traites...
2012/10/08 - 18:47:13 - 71000/152159 siren traites...
2012/10/08 - 19:01:41 - 72000/152159 siren traites...
2012/10/08 - 19:16:49 - 73000/152159 siren traites...
2012/10/08 - 19:31:21 - 74000/152159 siren traites...
2012/10/08 - 19:46:57 - 75000/152159 siren traites...
2012/10/08 - 20:01:36 - 76000/152159 siren traites...
2012/10/08 - 20:16:41 - 77000/152159 siren traites...
2012/10/08 - 20:31:27 - 78000/152159 siren traites...
2012/10/08 - 20:46:39 - 79000/152159 siren traites...
2012/10/08 - 21:01:14 - 80000/152159 siren traites...
2012/10/08 - 21:18:08 - 81000/152159 siren traites...
2012/10/08 - 21:34:45 - 82000/152159 siren traites...
2012/10/08 - 21:51:17 - 83000/152159 siren traites...
2012/10/08 - 22:07:52 - 84000/152159 siren traites...
2012/10/08 - 22:22:52 - 85000/152159 siren traites...
2012/10/08 - 22:37:23 - 86000/152159 siren traites...
2012/10/08 - 22:51:51 - 87000/152159 siren traites...
2012/10/08 - 23:06:26 - 88000/152159 siren traites...
2012/10/08 - 23:20:52 - 89000/152159 siren traites...
2012/10/08 - 23:35:18 - 90000/152159 siren traites...
2012/10/08 - 23:49:45 - 91000/152159 siren traites...
2012/10/09 - 00:04:45 - 92000/152159 siren traites...
2012/10/09 - 00:19:45 - 93000/152159 siren traites...

View File

@ -1,42 +0,0 @@
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status Table is already up to date
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status OK
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK
Table Op Msg_type Msg_text
sdv1.siren_tva optimize status OK
Table Op Msg_type Msg_text
jo.bodacc_sirenage optimize status Table is already up to date
Table Op Msg_type Msg_text
jo.greffes_requetes optimize status OK

View File

@ -1,5 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="006_FR_${DATE}.csv"
/var/www/batch/repriseActivite.php >> /var/www/log/repriseActivite.log
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/proceduresQ.sql

View File

@ -1,112 +0,0 @@
# Création de la table SQL pour les liens Actionnaires rapides
DROP TABLE IF EXISTS liensFast;
CREATE TABLE liensFast (
sirenFille int(9) unsigned zerofill NOT NULL,
pct double NOT NULL,
sirenMere int(9) unsigned zerofill NOT NULL,
UNIQUE KEY sirenFille(sirenFille,pct,sirenMere),
KEY sirenMere(sirenMere)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT IGNORE INTO liensFast
SELECT Siren1 AS sirenFille, Pmin AS pct, Siren2 AS sirenMere
FROM liens
WHERE Siren1 BETWEEN 10000 AND 999999000 AND actif=1
AND ActionPart=1 AND (Pmin>50 OR MajMin='+') AND Siren2 BETWEEN 10000 AND 999999000;
# Création de la table des montants des ventes
DROP TABLE IF EXISTS scores_ventes;
CREATE TABLE scores_ventes
SELECT id, siren, nic, Bodacc_Date_Parution, Tribunal_Code, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, activite, typeEven, commentaires, dateEffet, publicationNom, publicationDate, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, VenteMt, VenteDev, bienAcqui, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoAdrNum, oppoAdrIndRep, oppoAdrTypVoie, oppoAdrLibVoie, oppoAdrComp, oppoCP, oppoVille, perimetre, dateInsert, dateUpdate
FROM bodacc_detail
WHERE VenteMt>0 AND siren>0 AND dateSuppr=0
ORDER BY id ASC;
ALTER TABLE scores_ventes
ADD nafEn CHAR( 5 ) NOT NULL AFTER nic,
ADD nafEt CHAR( 5 ) NOT NULL AFTER nafEn,
ADD codeCommune CHAR( 5 ) NOT NULL AFTER nafEt,
ADD INDEX idxSiret (siren, nic);
UPDATE jo.scores_ventes, insee.identite
SET scores_ventes.nafEn=identite.APE_ENT,
scores_ventes.nafEt=identite.APE_ETAB,
scores_ventes.codeCommune=CONCAT(IF(identite.ADR_DEP<10,CONCAT('0',identite.ADR_DEP*1),identite.ADR_DEP),identite.ADR_COM)
WHERE scores_ventes.siren>1000 AND scores_ventes.nic>9 AND
scores_ventes.siren=identite.SIREN AND scores_ventes.nic=identite.NIC;
/*
UPDATE jo.scores_ventes, insee.identite
SET scores_ventes.nafEn=identite.APE_ENT,
scores_ventes.nafEt=identite.APE_ETAB,
scores_ventes.codeCommune=CONCAT(IF(identite.ADR_DEP<10,CONCAT('0',identite.ADR_DEP*1),identite.ADR_DEP),identite.ADR_COM)
WHERE scores_ventes.siren>1000 AND scores_ventes.nic=0 AND
scores_ventes.siren=identite.SIREN AND identite.SIEGE=1 AND identite.ACTIF=1;
*/
UPDATE jo.scores_ventes, insee.identite
SET scores_ventes.nafEn=identite.APE_ENT,
scores_ventes.nafEt=identite.APE_ETAB,
scores_ventes.codeCommune=CONCAT(IF(identite.ADR_DEP<10,CONCAT('0',identite.ADR_DEP*1),identite.ADR_DEP),identite.ADR_COM)
WHERE scores_ventes.siren>1000 AND scores_ventes.nic=0 AND
scores_ventes.siren=identite.SIREN AND scores_ventes.codePostal=identite.ADR_CP;
ALTER TABLE scores_ventes
ADD INDEX idxNafEtCommune (nafEt, codeCommune, Bodacc_Date_Parution, VenteMt, VenteDev),
ADD INDEX idxNafEnCommune (nafEn, codeCommune, Bodacc_Date_Parution, VenteMt, VenteDev);
# Création de la table des entreprises les plus consultées
DROP TABLE IF EXISTS jo.rangSiren;
CREATE TABLE jo.rangSiren (
siren int(9) unsigned zerofill NOT NULL,
`rang` mediumint unsigned NOT NULL,
PRIMARY KEY (siren)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT IGNORE INTO jo.rangSiren
SELECT siren, COUNT(*) AS `rang`
FROM sdv1.`logs`
WHERE page='identite' AND siren<>0 GROUP BY siren ORDER BY `rang` DESC;
# Liste des Activites BODACC
DROP TABLE IF EXISTS bodacc_activite;
CREATE TABLE bodacc_activite
SELECT siren, activite
FROM activiteReel
WHERE siren>1000
GROUP BY siren
HAVING MAX(dateSource);
# Ajout d'un index pour les jointures
ALTER TABLE bodacc_activite ADD PRIMARY KEY(siren);
# Ajout de l'APE entreprise
ALTER TABLE bodacc_activite ADD apen5 CHAR(5) NOT NULL AFTER siren;
UPDATE bodacc_activite, etablissements
SET bodacc_activite.apen5=etablissements.ape_entrep
WHERE bodacc_activite.siren=etablissements.siren AND etablissements.actif=1 AND etablissements.siege=1;
# Ajout de l'activite FT
ALTER TABLE bodacc_activite ADD an8 INT(8) UNSIGNED ZEROFILL NOT NULL AFTER apen5;
UPDATE bodacc_activite, telephonie
SET bodacc_activite.an8=telephonie.telephone
WHERE bodacc_activite.siren=telephonie.siren AND telephonie.typeTel='an8';
### Purges diverses
# Suppression des requêtes TVA sans réponses
DELETE FROM sdv1.siren_tva WHERE duree>14 AND cle IS NULL;
OPTIMIZE TABLE sdv1.siren_tva;
# Optimisation de bodacc_sirenage
OPTIMIZE TABLE bodacc_sirenage;
# Historisation des requêtes XML Infogreffe (hors bilans saisit)
INSERT IGNORE INTO historiques.greffes_requetes
SELECT *
FROM jo.greffes_requetes
WHERE dateRequete<DATE(NOW()) AND NOT (TYPE='BS' AND `option`<>'' AND codeErreur='');
DELETE FROM greffes_requetes WHERE dateRequete<DATE(NOW()) AND NOT (TYPE='BS' AND `option`<>'' AND codeErreur='');
OPTIMIZE TABLE greffes_requetes;

View File

@ -1,6 +0,0 @@
ftp -inv ftp.giant-net.com<<ENDFTP
user ftp_sd_fr Choucroute
bin
put $1
bye
ENDFTP

View File

@ -1,13 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE1_CSV="Corporama_Sed_${DATE}.csv"
FILE1_ZIP="Corporama_Sed_${DATE}.csv.gz"
FILE2_CSV="Corporama_Sed_DIR_${DATE}.csv"
FILE2_ZIP="Corporama_Sed_DIR_${DATE}.csv.gz"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockCorporama.sql > /var/www/batch/clients/$FILE1_CSV
gzip /var/www/batch/clients/$FILE1_CSV
mv /var/www/batch/clients/$FILE1_ZIP /home/data/ftp/corporama/recv/$FILE1_ZIP
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockCorporamaDir.sql > /var/www/batch/clients/$FILE2_CSV
gzip /var/www/batch/clients/$FILE2_CSV
mv /var/www/batch/clients/$FILE2_ZIP /home/data/ftp/corporama/recv/$FILE2_ZIP

View File

@ -1,10 +0,0 @@
DROP TABLE IF EXISTS tmp.corporama;
CREATE TABLE tmp.corporama
SELECT concat(e.siren,nic) AS siret, e.siren, siege, raisonSociale, enseigne, sigle, substring(cj,1,2) as fj, if(adr_num<>0, adr_num*1,'') as adr_num, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, bilType, bilAnnee, bilTca, teff_entrep, dateCrea_ent, ape_entrep, IF(capitalDev<>'', CONCAT(capital*1,' ',capitalDev),'') AS capital, REPLACE(tel,'0000000000','') AS tel, REPLACE(fax,'0000000000','') AS fax, REPLACE(web,'http://http://','http://') AS web, activite
FROM jo.etablissements_act e
LEFT JOIN jo.bodacc_activite ON e.siren=bodacc_activite.siren
WHERE e.siren>10000 AND e.nic BETWEEN 10 AND 98000 AND e.cj NOT IN (0,1000,1400,1500,1600,1700,1800,1900,2100,2110,2200,2210,2220,2300,2310,2385,2900)
AND (presentRcs=1 OR e.cj BETWEEN 7000 AND 7999 OR e.cj IN(8310,8311,9110,9150,9220,9221,9223,9224,9230,9260,9300)) AND LENGTH(e.ape_entrep)=5;
ALTER TABLE tmp.corporama ADD INDEX idxSiren(siren);
SELECT siret, siege, raisonSociale, enseigne, sigle, fj, adr_num, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, bilType, bilAnnee, bilTca, teff_entrep, dateCrea_ent, ape_entrep, capital, tel, fax, web, activite
FROM tmp.corporama;

View File

@ -1,3 +0,0 @@
SELECT siren, nom, prenom, fonction_code
FROM jo.rncs_dirigeants
WHERE actif=1 AND nom<>'' AND siren IN (SELECT DISTINCT siren FROM tmp.corporama);

View File

@ -1,23 +0,0 @@
#!/bin/bash
JOUR=`date '+%w'`
if [ $JOUR!=0 ] ; then
echo "Nous ne sommes pas un dimanche"
exit
fi
DATE=`date '+%Y%m%d'`
FILE_CSV="Kadeal_Sed_${DATE}.csv"
FILE_ZIP="Kadeal_Sed_${DATE}.zip"
FILE_TMP="Kadeal_Sed_${DATE}.tmp"
mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockKadeal.sql > /var/www/batch/clients/$FILE_CSV
#bzip2 < /var/www/batch/clients/$FILE_CSV > /var/www/batch/clients/$FILE_TMP
zip -jDm /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_CSV
#mv /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_TMP
ftp -inv ftp.kadeal.com<<ENDFTP
user kadeal-sds wlGsNXqttq
bin
lcd /var/www/batch/clients/
cd import
put $FILE_ZIP
bye
ENDFTP
#rename $FILE_TMP $FILE_ZIP

View File

@ -1,23 +0,0 @@
# Preparation Dump Kadeal
DROP TABLE IF EXISTS dump_kadeal;
CREATE TABLE dump_kadeal
SELECT e.siren, e.nic, CONCAT(e.siren,e.nic) AS siret, e.siege, e.raisonSociale, e.enseigne, e.sigle, e.marques,
e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie,
REPLACE(TRIM(CONCAT(REPLACE(e.adr_num,'0000',''),' ',e.adr_btq,' ',e.adr_typeVoie,' ',e.adr_libVoie)),'|','') AS adresse1,
e.adr_comp AS adresse2, e.distSP AS adresse3, e.achPost AS adresse4, e.adr_cp, e.adr_ville,
REPLACE( e.tel, '0000000000', '' ) AS tel, REPLACE( e.fax, '0000000000', '' ) AS fax,
mail, REPLACE(web,'http://','') AS web, e.ape_entrep AS NAF,
e.bilTca AS tca, '' AS tcaconso, e.bilAnnee AS datebilan, e.eff_entrep,
CONCAT( e.dirCiv, ' ', e.dirNom, ' ', e.dirPrenom ) AS dirigeant1, e.dirFct AS dirigeant1fct,
'' AS dirigeant2, '' AS dirigeant2fct
FROM etablissements_act e
WHERE e.actif=1 AND e.siren>1000 AND e.cj NOT IN (0,1000,1400,1500,1600,1700,1800,1900,2100,2110,2200,2210,2220,2300,2310,2385,2900,6540,6541)
AND e.cj<7000 AND LENGTH(e.ape_entrep)=5;
ALTER TABLE dump_kadeal ADD INDEX idxSiren(siren);
SELECT siret, siege, raisonSociale, enseigne, sigle, marques,
adr_num, adr_btq, adr_typeVoie, adr_libVoie, adresse1, adresse2, adresse3, adresse4, adr_cp, adr_ville,
tel, fax, mail, /*web,*/ NAF, tca, tcaconso, datebilan, eff_entrep, dirigeant1, dirigeant1fct,
dirigeant2, dirigeant2fct, activite
FROM dump_kadeal e
LEFT JOIN bodacc_activite ON e.siren=bodacc_activite.siren;

View File

@ -1,18 +0,0 @@
#!/bin/bash
DATE=`date '+%Y%m%d'`
FILE_CSV="Kadeal_Sed_${DATE}.csv"
FILE_ZIP="Kadeal_Sed_${DATE}.bz2"
FILE_TMP="Kadeal_Sed_${DATE}.tmp"
#mysql -h192.168.3.30 -pscores jo < /var/www/batch/clients/stockKadealExport.sql > /var/www/batch/clients/$FILE_CSV
#bzip2 < /var/www/batch/clients/$FILE_CSV > /var/www/batch/clients/$FILE_TMP
#zip -jDm /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_CSV
#mv /var/www/batch/clients/$FILE_ZIP /var/www/batch/clients/$FILE_TMP
ftp -inv ftp.kadeal.com<<ENDFTP
user kadeal-sds wlGsNXqttq
bin
lcd /var/www/batch/clients/
cd import
put $FILE_ZIP
bye
ENDFTP
#rename $FILE_TMP $FILE_ZIP

View File

@ -1,6 +0,0 @@
SELECT siret, siege, raisonSociale, enseigne, sigle, marques,
adr_num, adr_btq, adr_typeVoie, adr_libVoie, adresse1, adresse2, adresse3, adresse4, adr_cp, adr_ville,
tel, fax, mail, /*web,*/ NAF, tca, tcaconso, datebilan, eff_entrep, dirigeant1, dirigeant1fct,
dirigeant2, dirigeant2fct, activite
FROM dump_kadeal e
LEFT JOIN bodacc_activite ON e.siren=bodacc_activite.siren;

View File

@ -1,47 +0,0 @@
; Informations sur la commune
depLu="-{}-1-11-{}-"
comLu="-{}-1-12-{}-"
popLu="-{}-1-14-{}-"
tailleLu="-{}-3-9-{}-"
; Ratio Valeurs Brutes
R801="-{}-1-27-{}-";Total des produits de fonctionnement=A
R802="-{}-1-32-{}-"; Dont impôts locaux
R803="-{}-1-38-{}-"; Autres impots & taxes
R804="-{}-1-44-{}-"; dotation globale de fonctionnement
R805="-{}-1-50-{}-";Total des charges de fonctionnement=B
R806="-{}-1-55-{}-"; dont charges de personnel
R807="-{}-1-61-{}-"; Achats et charges externes
R808="-{}-1-67-{}-"; charges financières
R809="-{}-1-73-{}-"; contingents
R810="-{}-1-79-{}-"; subventions versées
R811="-{}-1-85-{}-";Résultat comptable A-B=R
R812="-{}-1-96-{}-";Total des resources d'investissement=C
R813="-{}-1-101-{}-"; Dont emprunts bancaires et dettes assimilées
R814="-{}-1-107-{}-"; subventions recues
R815="-{}-1-113-{}-"; FCTVA
R816="-{}-1-73-{}-"; retour des biens affectés ?????? TOUS À "73" LIGNE 3373 ??????????????????????????
R817="-{}-1-125-{}-";TOTAL DES EMPLOIS D'INVESTISSEMENT=D
R818="-{}-1-130-{}-"; dont dépenses d'équipement
R819="-{}-1-136-{}-"; remboursement d'emprunts et dettes
R820="-{}-1-73-{}-"; charges a répartir
R821="-{}-1-73-{}-"; immobilisations affectées
R822="-{}-1-154-{}-";Besoin ou capacité de financement =D-C
R823="-{}-1-159-{}-"; en+ solde des opérations pour le compte de tiers
R824="-{}-1-164-{}-";'='besoin ou capacité de financement de la section investissement=E
R825="-{}-1-44-{}-";Résultat d'ensemble = R=E
R826="-{}-1-44-{}-";excédent brut de fonctionnement
R827="-{}-1-44-{}-";Capacité d'autofinancement CAF
R828="-{}-1-44-{}-";CAF nette du remboursement en capital des emprunts
R829="-{}-1-44-{}-";Encours total de la dette au 31/12
R830="-{}-1-44-{}-";annuité de la dette
R831="-{}-1-44-{}-";FONDS DE ROULEMENT
R832="-{}-1-44-{}-";Taxe d'habitation(base)
R833="-{}-1-44-{}-";Taxe foncière sur les propriété baties(base)
R834="-{}-1-44-{}-";Taxe foncière sur les propriété non baties(base)
R835="-{}-1-44-{}-";Cotisation foncière des entreprises
R836="-{}-1-44-{}-";Taxe d'habitation(tx & produits)
R837="-{}-1-44-{}-";Taxe foncière sur les propriété baties(tx & produits)
R838="-{}-1-44-{}-";Taxe foncière sur les propriété non baties(tx & produits)
R839="-{}-1-44-{}-";Compensation relai 2010(tx & produits)
R840="-{}-1-44-{}-";cotis fonc au profit état 2010(tx & produits)
R841="-{}-1-44-{}-";potentiel fiscal

View File

@ -1,11 +0,0 @@
; Informations sur la commune
depLu="-{}-1-11-{}-"
comLu="-{}-1-12-{}-"
popLu="-{}-1-14-{}-"
tailleLu="-{}-3-9-{}-"
; Ratio Valeurs Brutes
R801="-{}-1-27-{}-"
R802="-{}-1-32-{}-"
R803="-{}-1-38-{}-"
R804="-{}-1-44-{}-";blabla

File diff suppressed because it is too large Load Diff

View File

@ -1,170 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(INCLUDE_PATH.'insee/classMInsee.php');
error_reporting(E_ALL ^ E_NOTICE);
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Programme automatique de consolidation des annonces Bodacc.
Options :
-f Récupération des informations dirigeants en IG/FP*
-i:XXX Reprendre à la ligne XXX
(*) Options non encore opérationnelles !
";
$semiManuel=$sansPropo=$toutes=$index=false;
$mInsee=new MInsee();
$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 'p':
$sansPropo=true;
break;
case 'a':
$toutes=true;
break;
case 'i':
$index=trim(substr($argv[$i],3));
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de post traitement des annonces BODACC...".EOL;
$iDb=new WDB('jo');
$iDbInsee=new WDB('insee');
/*
$nbPP=$iDbInsee->select('identite', 'SIREN, NOM, CIVILITE, DIR_IDEN, DIR_DATEN, DIR_LIEUN', "(CJ BETWEEN 10 AND 19 OR CJ BETWEEN 1000 AND 1999) AND DIR_IDEN <> '' AND (DIR_DATEN<>0 OR DIR_LIEUN <> '') GROUP BY SIREN",false,MYSQL_ASSOC,true);
$dateInsert=date('YmdHis');
while ($tab=$iDbInsee->fetch(MYSQL_ASSOC)) {
$siren=$tab['SIREN']*1;
$nom=$prenom=$naissNom='';
if ($tab['CIVILITE']==1) $civ='M';
elseif ($tab['CIVILITE']==2) { $civ='MME'; $naissNom=strtr($tab['NOM'],'/*',' '); }
else $civ='';
$tabId=explode(' ', $tab['DIR_IDEN']);
foreach ($tabId as $mot) {
if (strtoupper($mot)==$mot) {
$nom.=' '.$mot;
$naissNom=str_ireplace($mot,'',$naissNom);
}
else {
$prenom.=' '.$mot;
$naissNom=str_ireplace($mot,'',$naissNom);
}
}
$nom=trim($nom);
$prenom=trim($prenom);
$naissNom=strtoupper(trim($naissNom));
$naissDate=$tab['DIR_DATEN'];
$naissLieu=trim($tab['DIR_LIEUN']);
echo $siren.' '.trim($tab['DIR_IDEN'])."\t:\t$civ Nom='$nom', Prenom='$prenom', Usage='$naissNom' né le $naissDate à $naissLieu\t";
//echo "?";
//$saisie = trim(strtoupper(fgets(STDIN)));
//$civ='M', 'MME', 'MLLE')
$tabUpdate=array( 'siren'=>$siren,
'raisonSociale'=>strtr($tab['NOM'],'/*',' '),
'civilite'=>$civ,
'nom'=>$nom,
'prenom'=>$prenom,
'naissance_nom'=>$naissNom,
'naissance_date'=>$naissDate,
'naissance_lieu'=>$naissLieu,
'fonction_code'=>1050,
'fonction_lib'=>'Personne physique',
'actif'=>1,
'dateInsert'=>$dateInsert);
if (!$iDb->insert('rncs_dirigeants', $tabUpdate))
echo "ERREUR !!!\n";
else
echo "OK\n";
//die();
}
*/
$client = new SoapClient(null, array( 'trace' => 1,
'soap_version' => SOAP_1_1,
'location' => 'http://localhost/ws/',
'uri' => 'http://localhost/',
'login' => 'ylenaour',
'password' => 'bzh4231*'));
// Faire tourner en auto ce programme pour l'ensemble des annonces Bodacc à compter du 9 juin 2008
//$nbBod=$iDb->select('bodacc_detail d LEFT JOIN rncs_dirigeants r ON d.siren=r.siren', 'd.siren, Bodacc_Date_Parution, typeEven, d.raisonSociale, dateJugement',"d.siren>1000 AND
/*siren between 490000001 AND 500000000 AND */
//r.siren IS NULL AND
//Bodacc_Date_Parution>='2008-10-08' AND (
// typeEven LIKE '%1500%' OR typeEven LIKE '%1501%' OR typeEven LIKE '%1502%' OR typeEven LIKE '%1503%' OR /* CIA */
// typeEven LIKE '%1600%' OR typeEven LIKE '%1601%' OR typeEven LIKE '%1610%' OR typeEven LIKE '%1611%' OR /* IG FP */
// typeEven LIKE '%2202%' OR typeEven LIKE '%2203%' OR typeEven LIKE '%2204%' or typeEven LIKE '%2210%' /* DISSOLUTION */
// )
//GROUP BY d.siren
//ORDER BY Bodacc_Date_Parution ASC
//", true, MYSQL_ASSOC, true);
$nbBod=$iDb->select('rncs_requetes', 'siren', "siren>1000 AND type='QINF' AND presta=12001 AND strXml NOT LIKE '%Erreur base%'", true, MYSQL_ASSOC, true);
// 1503 : Cloture de la procedure pour insuffisance d'actif
$rec=0;
echo date ('Y/m/d - H:i:s')." - Il y a $nbBod dirigeants en IG/FP à mettre à jour...".EOL;
while ($tab=$iDb->fetch(MYSQL_ASSOC)) {
/*$tab2=file('/mnt/samba/partage/production/igfp.csv');
/*shuffle($tab2);
file_put_contents('/mnt/samba/partage/production/igfp2.csv',implode('', $tab2),FILE_APPEND);*
$nbBod=count($tab2);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBod dirigeants en IG/FP à mettre à jour...".EOL;
foreach ($tab2 as $tab) {*/
$rec++;
$siren=$tab['siren']*1;
/*if ($siren<>417512753) continue;
else die('Rec='.$rec."\n");*/
if ($rec<=$index) continue;
$even=@$tab['typeEven'];
$rs=@$tab['raisonSociale'];
$dateJuge=@$tab['dateJugement'];
//print_r($tab);
$tdeb=microtime(true);
$O = $client->getDirigeants($siren, false);
$tfin=microtime(true);
$duree=$tfin-$tdeb;
$dirs=$O['result'];
$nbDirs=count($dirs);
echo date ('Y/m/d - H:i:s')." - $rec : Siren $siren, $rs, $even le $dateJuge : $nbDirs dirigeants ($duree)".EOL;
if ($nbDirs>0) print_r($dirs);
if ($duree>1){
echo '...'.EOL;
//randsleep(7, 21);//,59);
//randsleep(21,59);
//randsleep(31,190);
}
}
echo date('Y/m/d - H:i:s') ." - FIN du programme de post traitement des annonces BODACC.".EOL;
die();
?>

View File

@ -1,6 +0,0 @@
#VALEUR=$(/var/www/batch/consolideEtab.php)
#echo ${VALEUR}
#echo $?
/var/www/batch/consolideEtab.php
searchd
indexer --all --rotate

View File

@ -1,775 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** @todo
**
**/
echo date ('Y/m/d - H:i:s')." - DEBUT de la consolidation de la base Etablissements".EOL;
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');
$all=true;
$joAsso=$joBodacc=$baseInsee=$reset=$pageRankOnly=$iGreffe=false;
// Compteurs
$nbInsertAsso=$nbInsertBod=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=0;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Consolide la table des établissement et des entreprises à partir des dernières mises à jours des différentes sources.
Sans aucune options, consolide toutes les sources dernièrement mises à jour.
Options :
-a Consolider seulement le JO association.
-b Consolider seulement le Bodacc
-i Consolider les infos INSEE
-g Consolider les entreprises en provenance des Greffes
-m Mettre à jour les données sur les marques
-r Reconstruire complètement la base
-p traiter uniquement la construction du 'page rank'
";
$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 '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 'r':
$reset=true;
break;
case 'p':
$pageRankOnly=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
/** Par défaut, on consolide toutes les sources **/
if ($all) {
$joAsso=$joBodacc=$baseInsee=$iGreffe=$iMarques=true;
}
$iDb=new WDB('jo');
if (!$pageRankOnly) {
$iDb2=new WDB('jo');
$iDbInsee=new WDB('insee');
$iInsee=new MInsee();
//if (0==1) {
echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table établissements.".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` varchar(255) 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` smallint(3) unsigned zerofill NOT NULL,
`tel` bigint(8) unsigned zerofill NOT NULL,
`fax` bigint(8) unsigned zerofill NOT NULL,
`cj` smallint(4) unsigned zerofill NOT NULL,
`ape_etab` char(5) NOT NULL,
`ape_entrep` char(5) NOT NULL,
`rang` smallint unsigned zerofill 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 `tel` (`tel`),
KEY `fax` (`fax`),
KEY `siren` (`siren`,`nic`),
KEY `autre_id` (`autre_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;", true))
die($iDb->getLastError());
if ($baseInsee) {
/*$dateInsert=date('YmdHis');
if (!$reset) {
$tabTmp=$iDb->select('etablissements_tmp', 'max(source_id)', 'source=2', true);
$last_id=$tabTmp[0][0]*1;
} else {
$last_id=0;
$iDb->query('DELETE FROM etablissements_tmp WHERE source=2', true);
}*/
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis l'Insee.".EOL;
$retTmp=$iDb->select('insee.identite', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
$nbEtab=$retTmp[0]['nbEtab'];
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab établissements à consolider depuis l'Insee...".EOL;
$iDb->query("INSERT INTO jo.etablissements_tmp SELECT 0 AS id, '2' AS source, id AS source_id, '' AS triCode, NUMRC AS autre_id, SIREN AS siren, NIC AS nic, ACTIF%10 as actif,
SIEGE as siege, NOM as raisonSociale, ENSEIGNE AS enseigne, SIGLE AS sigle, CONCAT(IDENTITE_PRE, ' ',NOM2) 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,
TEL as tel, FAX as fax, CJ as cj, APE_ETAB as ape_etab, APE_ENT as apen_entrep, 0 as rank, DATE_MAJ as dateInsert,
0 as dateUpdate FROM insee.identite");
$retTmp=$iDb->select('jo.etablissements_tmp', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC);
$nbEtab=$retTmp[0]['nbEtab'];
echo date ('Y/m/d - H:i:s')." - Il y a $nbEtab établissements Insee consolidés.".EOL;
/* $hier=date('YmdHis');
$nbAsso=$iDbInsee->select('identite', 'id, SIREN, NIC, NUMRC, NOM, NOM2, ENSEIGNE, SIGLE, SIEGE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_COMP, ADR_CP, ADR_LIBCOM, ADR_DEP, TEL, FAX, CJ, APE_ETAB, APE_ENT', "id>$last_id OR dateUpdate>$hier", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAsso fiches INSEE à consolider depuis $last_id...".EOL;
while ($tabSiren=$iDbInsee->fetch(MYSQL_ASSOC)) {
$tabEtab=array( 'source'=>2,
'source_id'=>$tabSiren['id'],
'siren'=>$tabSiren['SIREN'],
'nic'=>$tabSiren['NIC'],
'triCode'=>'',
'autre_id'=>$tabSiren['NUMRC'],
'siege'=>$tabSiren['SIEGE'],
'raisonSociale'=>$tabSiren['NOM'].$tabSiren['NOM2'],
'enseigne'=>$tabSiren['ENSEIGNE'],
'sigle'=>$tabSiren['SIGLE'],
'adr_num'=>$tabSiren['ADR_NUMVOIE'],
'adr_btq'=>$tabSiren['ADR_BTQ'],
'adr_typeVoie'=>$tabSiren['ADR_TYPVOIE'],
'adr_libVoie'=>$tabSiren['ADR_LIBVOIE'],
'adr_comp'=>$tabSiren['ADR_COMP'],
'adr_cp'=>$tabSiren['ADR_CP'],
'adr_ville'=>$tabSiren['ADR_LIBCOM'],
'adr_dep'=>$tabSiren['ADR_DEP'],
'tel'=>$tabSiren['TEL'],
'fax'=>$tabSiren['FAX'],
'cj'=>$tabSiren['CJ'],
'ape_etab'=>$tabSiren['APE_ETAB'],
'ape_entrep'=>$tabSiren['APE_ENT'],
'dateInsert'=>$dateInsert,
);
if (!$iDb->insert('etablissements',$tabEtab))
$zerqzfqsd=0;
// $iDb->update('etablissements',$tabEtab);
}*/
}
if ($joBodacc) {
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le Bodacc.".EOL;
$dateInsert=date('YmdHis');
/* if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=1', true);
$last_id=$tabTmp[0][0]*1;
} else*/ $last_id=0;
$nbBodS=$iDb->select('bodacc_detail d LEFT JOIN etablissements_tmp e ON d.siren = e.siren', 'd.id, d.typeEven, d.siren, d.nic, d.Bodacc_Date_Parution, d.Tribunal_Code, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.RC, d.raisonSociale, d.nomCommercial, d.sigle, d.enseigne, d.FJ, d.Capital, d.CapitalDev, d.adrSiegeNum, d.adrSiegeIndRep, d.adrSiegeTypVoie, d.adrSiegeLibVoie, d.adrSiegeComp1, d.adrSiegeComp2, d.codePostalSiege, d.villeSiege, d.adrNum, d.adrIndRep, d.adrTypVoie, d.adrLibVoie, d.adrComp1, d.adrComp2, d.codePostal, d.ville, d.activite', "d.siren>1000 AND e.siren IS NULL", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS annonces BODACC dont le siren est absent de l'insee à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
// Si le siren n'existe pas dans la base etablissement, on l'ajoute
$cj=$naf='';
$dep=floor($tabBodacc['codePostalSiege']/1000);
if ($dep>96) $dep=floor($tabBodacc['codePostalSiege']/100);
$actif=1;
$tabEven=explode(';',$tabBodacc['typeEven']);
foreach ($tabEven as $even) {
$typeEven=$even*1;
if ($typeEven>=6000 && $typeEven<=6700) $actif=0;
elseif ($typeEven==2000 || $typeEven==2206) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven==2720) $actif=0;
}
if (trim(@$tabBodacc['adresseSiege'])<>'') {
$siege=1;
$adr_num=$tabBodacc['adrSiegeNum'];
$adr_btq=$tabBodacc['adrSiegeIndRep'];
$adr_typeVoie=$tabBodacc['adrSiegeTypVoie'];
$adr_libVoie=$tabBodacc['adrSiegeLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrSiegeComp1'].' '.$tabBodacc['adrSiegeComp2']));
$adr_cp=$tabBodacc['codePostalSiege'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['villeSiege'], '{.!}',' ')));
} else {
$siege=0;
$adr_num=$tabBodacc['adrNum'];
$adr_btq=$tabBodacc['adrIndRep'];
$adr_typeVoie=$tabBodacc['adrTypVoie'];
$adr_libVoie=$tabBodacc['adrLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrComp1'].' '.$tabBodacc['adrComp2']));
$adr_cp=$tabBodacc['codePostal'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['ville'], '{.!}',' ')));
}
$matches1=$matches2=array();
$raisonSociale=trim($tabBodacc['raisonSociale']);
if (preg_match("/ Nom d'usage (.*)/i", $raisonSociale, $matches1))
$raisonSociale=trim(preg_replace("/ Nom d'usage .*/i", '', $raisonSociale));
if (preg_match("/ Pseudonyme (.*)/i", $raisonSociale, $matches2))
$raisonSociale=trim(preg_replace("/ Pseudonyme .*/i", '', $raisonSociale));
if (preg_match("/^S E L A R L /i", $raisonSociale) || preg_match("/ S E L A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S E L A R L','SELARL',$raisonSociale));
elseif (preg_match("/^S A R L /i", $raisonSociale) || preg_match("/ S A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A R L','SARL',$raisonSociale));
elseif (preg_match("/^S A S /i", $raisonSociale) || preg_match("/ S A S$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C I /i", $raisonSociale) || preg_match("/ S C I$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C P /i", $raisonSociale) || preg_match("/ S C P$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C P','SCP',$raisonSociale));
elseif (preg_match("/^S N C /i", $raisonSociale) || preg_match("/ S N C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S N C','SNC',$raisonSociale));
elseif (preg_match("/^S A /i", $raisonSociale) || preg_match("/ S A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A','SA',$raisonSociale));
elseif (preg_match("/^S C E A /i", $raisonSociale) || preg_match("/ S C E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C E A','SCEA',$raisonSociale));
elseif (preg_match("/^S C A /i", $raisonSociale) || preg_match("/ S C A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C A','SCA',$raisonSociale));
elseif (preg_match("/^S C /i", $raisonSociale) || preg_match("/ S C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C','SC',$raisonSociale));
elseif (preg_match("/^E A R L /i", $raisonSociale) || preg_match("/ E A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R L','EARL',$raisonSociale));
elseif (preg_match("/^E A R /i", $raisonSociale) || preg_match("/ E A R$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R','EAR',$raisonSociale));
elseif (preg_match("/^E A /i", $raisonSociale) || preg_match("/ E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A','EA',$raisonSociale));
elseif (preg_match("/^E U R L /i", $raisonSociale) || preg_match("/ E U R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E U R L','EURL',$raisonSociale));
$raisonSociale=trim(preg_replace("/ +/",' ', strtr(' '.strtoupper($raisonSociale).' ', array(' DENOMINATION '=>' ', ' SUCCESSION '=>' '))));
$identitePre=trim(@$matches1[1].' '.@$matches1[2]);
$tabEtab=array( 'source'=>1,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>$tabBodacc['nic'],
'triCode'=>$tabBodacc['Tribunal_Code'],
'autre_id'=>$tabBodacc['RC'],
'siege'=>$siege,
'actif'=>$actif,
'raisonSociale'=>$raisonSociale,
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>$tabBodacc['sigle'],
'identite_pre'=>$identitePre,
'adr_num'=>$adr_num,
'adr_btq'=>$adr_btq,
'adr_typeVoie'=>$adr_typeVoie,
'adr_libVoie'=>$adr_libVoie,
'adr_comp'=>$adr_comp,
'adr_cp'=>$adr_cp,
'adr_ville'=>$adr_ville,
'adr_dep'=>substr($adr_cp,0,2),
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'ape_etab'=>$naf,
'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 BODACC sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertBod++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertBod établissements Bodacc consolidés.".EOL;
$dateInsert=date('YmdHis');
/* if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=1', true);
$last_id=$tabTmp[0][0]*1;
} else*/ $last_id=0;
$nbBodS=$iDb->select('bodacc_detail d', 'd.id, d.typeEven, d.siren, d.sirenValide, d.nic, d.Bodacc_Date_Parution, d.Tribunal_Code, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.RC, d.raisonSociale, d.nomCommercial, d.sigle, d.enseigne, d.FJ, d.Capital, d.CapitalDev, d.adrSiegeNum, d.adrSiegeIndRep, d.adrSiegeTypVoie, d.adrSiegeLibVoie, d.adrSiegeComp1, d.adrSiegeComp2, d.codePostalSiege, d.villeSiege, d.adrNum, d.adrIndRep, d.adrTypVoie, d.adrLibVoie, d.adrComp1, d.adrComp2, d.codePostal, d.ville, d.activite', "d.siren<=1000", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS annonces BODACC non sirenées à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
//if ($tabBodacc['siren']<>0)
// $ret=$iDb2->select('etablissements_tmp', 'count(*)', 'SIREN='.$tabBodacc['siren']);
// Si le siren n'existe pas dans la base etablissement, on l'ajoute
$cj=$naf='';
$dep=floor($tabBodacc['codePostalSiege']/1000);
if ($dep>96) $dep=floor($tabBodacc['codePostalSiege']/100);
$actif=1;
$tabEven=explode(';',$tabBodacc['typeEven']);
foreach ($tabEven as $even) {
$typeEven=$even*1;
if ($typeEven>=6000 && $typeEven<=6700) $actif=0;
elseif ($typeEven==2000 || $typeEven==2206) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven==2720) $actif=0;
}
if (@$tabBodacc['adresseSiege']<>'') {
$siege=1;
$adr_num=$tabBodacc['adrSiegeNum'];
$adr_btq=$tabBodacc['adrSiegeIndRep'];
$adr_typeVoie=$tabBodacc['adrSiegeTypVoie'];
$adr_libVoie=$tabBodacc['adrSiegeLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrSiegeComp1'].' '.$tabBodacc['adrSiegeComp2']));
$adr_cp=$tabBodacc['codePostalSiege'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['villeSiege'], '{.!}',' ')));
} else {
$siege=0;
$adr_num=$tabBodacc['adrNum'];
$adr_btq=$tabBodacc['adrIndRep'];
$adr_typeVoie=$tabBodacc['adrTypVoie'];
$adr_libVoie=$tabBodacc['adrLibVoie'];
$adr_comp=trim(strtoupper($tabBodacc['adrComp1'].' '.$tabBodacc['adrComp2']));
$adr_cp=$tabBodacc['codePostal'];
$adr_ville=strtoupper(trim(strtr($tabBodacc['ville'], '{.!}',' ')));
}
/** Suppression des Noms d'usage et Pseudonymes dans la raison sociale **/
$matches1=$matches2=array();
$raisonSociale=trim($tabBodacc['raisonSociale']);
if (preg_match("/ Nom d'usage (.*)/i", $raisonSociale, $matches1))
$raisonSociale=trim(preg_replace("/ Nom d'usage .*/i", '', $raisonSociale));
if (preg_match("/ Pseudonyme (.*)/i", $raisonSociale, $matches2))
$raisonSociale=trim(preg_replace("/ Pseudonyme .*/i", '', $raisonSociale));
if (preg_match("/^S E L A R L /i", $raisonSociale) || preg_match("/ S E L A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S E L A R L','SELARL',$raisonSociale));
elseif (preg_match("/^S A R L /i", $raisonSociale) || preg_match("/ S A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A R L','SARL',$raisonSociale));
elseif (preg_match("/^S A S /i", $raisonSociale) || preg_match("/ S A S$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C I /i", $raisonSociale) || preg_match("/ S C I$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A S','SAS',$raisonSociale));
elseif (preg_match("/^S C P /i", $raisonSociale) || preg_match("/ S C P$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C P','SCP',$raisonSociale));
elseif (preg_match("/^S N C /i", $raisonSociale) || preg_match("/ S N C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S N C','SNC',$raisonSociale));
elseif (preg_match("/^S A /i", $raisonSociale) || preg_match("/ S A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S A','SA',$raisonSociale));
elseif (preg_match("/^S C E A /i", $raisonSociale) || preg_match("/ S C E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C E A','SCEA',$raisonSociale));
elseif (preg_match("/^S C A /i", $raisonSociale) || preg_match("/ S C A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C A','SCA',$raisonSociale));
elseif (preg_match("/^S C /i", $raisonSociale) || preg_match("/ S C$/i", $raisonSociale))
$raisonSociale=trim(str_replace('S C','SC',$raisonSociale));
elseif (preg_match("/^E A R L /i", $raisonSociale) || preg_match("/ E A R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R L','EARL',$raisonSociale));
elseif (preg_match("/^E A R /i", $raisonSociale) || preg_match("/ E A R$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A R','EAR',$raisonSociale));
elseif (preg_match("/^E A /i", $raisonSociale) || preg_match("/ E A$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E A','EA',$raisonSociale));
elseif (preg_match("/^E U R L /i", $raisonSociale) || preg_match("/ E U R L$/i", $raisonSociale))
$raisonSociale=trim(str_replace('E U R L','EURL',$raisonSociale));
$raisonSociale=trim(preg_replace("/ +/",' ', strtr(' '.strtoupper($raisonSociale).' ', array(' DENOMINATION '=>' ', ' SUCCESSION '=>' '))));
$identitePre=trim(@$matches1[1].' '.@$matches1[2]);
$tabEtab=array( 'source'=>1,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>$tabBodacc['nic'],
'triCode'=>$tabBodacc['Tribunal_Code'],
'autre_id'=>$tabBodacc['RC'],
'siege'=>$siege,
'actif'=>$actif,
'raisonSociale'=>$raisonSociale,
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>$tabBodacc['sigle'],
'identite_pre'=>$identitePre,
'adr_num'=>$adr_num,
'adr_btq'=>$adr_btq,
'adr_typeVoie'=>$adr_typeVoie,
'adr_libVoie'=>$adr_libVoie,
'adr_comp'=>$adr_comp,
'adr_cp'=>$adr_cp,
'adr_ville'=>$adr_ville,
'adr_dep'=>substr($adr_cp,0,2),
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'ape_etab'=>$naf,
'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 BODACC sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertBodNS++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertBodNS établissements Bodacc NS consolidés.".EOL;
/*
$dateInsert=date('YmdHis');
if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=1 AND siege=0', true);
$last_id=$tabTmp[0][0]*1;
} else $last_id=0;
$nbBodE=$iDb->select('bodacc_detail', 'id, typeEven, siren, nic, Bodacc_Date_Parution, Tribunal_Code, Rubrique_Bodacc, Rubrique, typeAnnonce, RC, raisonSociale, nomCommercial, enseigne, FJ, Capital, CapitalDev, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, ville, activite', "adresse<>'' AND id>$last_id", false,MYSQL_ASSOC,true);
//
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodE annonces BODACC établissement à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
if ($tabBodacc['siren']<>0)
$ret=$iDb2->select('etablissements', 'count(*)', 'SIREN='.$tabBodacc['siren']);
if ($ret[0][0]==0 || $tabBodacc['siren']==0) {
// Si le siren n'existe pas dans la base etablissement, on l'ajoute
$cj=$naf='';
$dep=floor($tabBodacc['codePostal']/1000);
if ($dep>96) $dep=floor($tabBodacc['codePostal']/100);
$actif=1;
$tabEven=explode(';',$tabBodacc['typeEven']);
foreach ($tabEven as $even) {
$typeEven=$even*1;
if ($typeEven>=6000 && $typeEven<=6700) $actif=0;
elseif ($typeEven==2000 || $typeEven==2206) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven>=2200 && $typeEven<=2204) $actif=0;
elseif ($typeEven==2720) $actif=0;
}
$tabEtab=array( 'source'=>1,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>$tabBodacc['nic'],
'triCode'=>$tabBodacc['Tribunal_Code'],
'autre_id'=>$tabBodacc['RC'],
'siege'=>0,
'actif'=>$actif,
'raisonSociale'=>$tabBodacc['raisonSociale'],
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>'',
'adr_num'=>$tabBodacc['adrNum'],
'adr_btq'=>$tabBodacc['adrIndRep'],
'adr_typeVoie'=>$tabBodacc['adrTypVoie'],
'adr_libVoie'=>strtoupper($tabBodacc['adrLibVoie']),
'adr_comp'=>trim(strtoupper($tabBodacc['adrComp1'].' '.$tabBodacc['adrComp2'])),
'adr_cp'=>$tabBodacc['codePostal'],
'adr_dep'=>$dep,
'adr_ville'=>strtoupper(trim(strtr($tabBodacc['ville'], '{.!}',' '))),
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'ape_etab'=>$naf,
'dateInsert'=>$dateInsert,
);
$iDb->insert('etablissements',$tabEtab);
}
}*/
}
if ($joAsso) {
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le JO Association.".EOL;
$dateInsert=date('YmdHis');
/* if (!$reset) {
$tabTmp=$iDb->select('etablissements', 'max(source_id)', 'source=3', true);
$last_id=$tabTmp[0][0]*1;
} else*/ $last_id=0;
$nbAsso=$iDb->select('asso', 'id, Assoc_Nom, siren, nic, Waldec, Activite, Type_Annonce, Date_Parution, Departement, Sous_Prefecture, Assoc_Adresse, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren<100", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAsso annonces ASSOCIATIONS à consolider depuis $last_id...".EOL;
while ($tabAsso=$iDb->fetch(MYSQL_ASSOC)) {
/*
9110 Syndicat de copropriété
9210 Association non déclarée
9221 Association déclarée "entreprises d'insertion par l'économique"
9222 Association intermédiaire
9223 Groupement d'employeurs
9230 Association déclarée reconnue d'utilité publique
9240 Congrégation
*/
/** Initialisation des valeurs par défaut
**/
$naf='';
$actif=1;
$cj=9220; // Association déclarée
if (preg_match('/ASL/i', $tabAsso['Type_Annonce']) || preg_match('/syndicale/i', $tabAsso['Type_Annonce'])) {
$cj=9150; // ASL
$naf='8110Z'; // Activités combinées de soutien lié aux bâtiments
}
elseif (preg_match('/Fondation/i', $tabAsso['Type_Annonce']))
$cj=9300; // FONDATION
elseif ($tabAsso['Departement']==57 || $tabAsso['Departement']==67 || $tabAsso['Departement']==68)
$cj=9260; // Association de droit local
if (preg_match('/cr(é|e)ation/i', $tabAsso['Type_Annonce']) && preg_match('/Annulation/i', $tabAsso['Type_Annonce']))
$actif=0;
elseif (preg_match('/Dissolution/i', $tabAsso['Type_Annonce']) && !preg_match('/Annulation/i', $tabAsso['Type_Annonce']))
$actif=0;
if ($naf=='') {
if (preg_match('/sport/i', $tabAsso['Activite'])) // 0015
$naf='9319Z';//'926C'; // Autres activités sportives
elseif (preg_match('/(culte|religieu)/i', $tabAsso['Activite'])) // 0004
$naf='9491Z';//913A'; // Organisations religieuses
elseif (preg_match('/communication/i', $tabAsso['Activite'])) // 0003
$naf='6399Z'; // Autres services d'information n.c.a.
elseif (preg_match('/Politique/i', $tabAsso['Activite'])) // 0012
$naf='9492Z'; // Activités des organisations politiques
elseif (preg_match('/(Enseignement|Education|formation)/i', $tabAsso['Activite'])) // 0008
$naf='8559B';
elseif (preg_match('/(Social|Humanitaire)/i', $tabAsso['Activite']) ) // 0014
$naf='8899B';//853K'; // Autres formes d'action sociale
elseif (preg_match('/(Recherche|Technique)/i', $tabAsso['Activite'])) // 0010
$naf='7219Z'; // Recherche-développement en autres sciences physiques et naturelles
elseif (preg_match('/Loisir/i', $tabAsso['Activite'])) // 0005
$naf='9329Z'; // Autres activités récréatives et de loisirs
elseif (preg_match('/Art/i', $tabAsso['Activite'])) // 0005
$naf='9003B'; // Autre création artistique
else
$naf='9499Z'; // Autres organisations fonctionnant par adhésion volontaire
}
if ($tabAsso['Assoc_NAdresse']<>'')
$adr=$iInsee->structureVoie($tabAsso['Assoc_NAdresse']);
else
$adr=$iInsee->structureVoie($tabAsso['Assoc_Adresse']);
$adrComp=strtoupper(@$adr['adrComp0']);
if (@$adr['adrComp1']<>'')
$adrComp.=' '.strtoupper(@$adr['adrComp1']);
$raisonSociale=trim($tabAsso['Assoc_Nom']);
if ($raisonSociale=='')
$raisonSociale=trim($tabAsso['Assoc_ANom']);
if (preg_match("/^(.*) \((.*)\)$/U", $raisonSociale, $matches)) {
$raisonSociale=trim($matches[1]);
$sigle=trim(strtr($matches[2],array('.'=>'')));
}
else
$sigle='';
$tabEtab=array( 'source'=>3,
'source_id'=>$tabAsso['id'],
'siren'=>$tabAsso['siren'],
'nic'=>$tabAsso['nic'],
'triCode'=>$tabAsso['Sous_Prefecture'], // Gérer la table des préfecture
'autre_id'=>$tabAsso['Waldec'],
'siege'=>1,
'actif'=>$actif,
'raisonSociale'=>$raisonSociale,
'enseigne'=>'',
'identite_pre'=>$tabAsso['Assoc_ANom'],
'sigle'=>$sigle,
'adr_num'=>@$adr['num'],
'adr_btq'=>@$adr['indRep'],
'adr_typeVoie'=>@$adr['typeVoie'],
'adr_libVoie'=>strtoupper(@$adr['libVoie']),
'adr_comp'=>$adrComp,
'adr_cp'=>@$adr['cp'],
'adr_ville'=>trim(strtoupper(@$adr['ville'])),
'adr_dep'=>$tabAsso['Departement'],
'tel'=>'',
'fax'=>'',
'cj'=>$cj,
'ape_etab'=>$naf,
'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++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL;
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le JO Association Sirené (Waldec, etc...)".EOL;
$dateInsert=date('YmdHis');
$last_id=0;
$nbAsso=$iDb->select('asso', 'id, Assoc_Nom, siren, nic, Waldec, Activite, Type_Annonce, Date_Parution, Departement, Sous_Prefecture, Assoc_Adresse, Assoc_NAdresse, Assoc_ANom, Assoc_NNom, Assoc_Date_Declaration2, dateInsert', "id>$last_id AND siren>100", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAsso annonces ASSOCIATIONS à mettre à jour depuis $last_id...".EOL;
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'],
);
$ret=$iDb->update('etablissements_tmp',$tabEtab, 'siren='.$tabAsso['siren']);
if (!$ret || mysql_errno()<>0) {
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
$nbUpdateAsso++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbUpdateAsso établissements Associations avec SIREN consolidés.".EOL;
}
if ($iGreffe) {
echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis les Greffes.".EOL;
$dateInsert=date('YmdHis');
$nbBodS=$iDb->select('greffes_identite g LEFT JOIN etablissements_tmp e ON g.siren = e.siren', 'g.id, g.siren, g.nom, g.adresse, g.cp, g.ville, g.enseigne, g.siege, g.fj, g.fjLib, g.naf, g.nafLib, g.numGreffe, g.libGreffe, g.numRC, g.dateCreation, g.dateRadiation, g.dateInsert', "e.siren IS NULL", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS entreprises en provenance des Greffes dont le siren est absent de l'insee à consolider depuis $last_id...".EOL;
while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) {
$adr=$iInsee->structureVoie($tabBodacc['adresse']);
$adr_cp=@$tabBodacc['cp'];
$tabEtab=array( 'source'=>4,
'source_id'=>$tabBodacc['id'],
'siren'=>$tabBodacc['siren'],
'nic'=>0,
'triCode'=>$tabBodacc['libGreffe'],//@todo Correspondance Tribunal_Code
'autre_id'=>$tabBodacc['numRC'],
'siege'=>1,
'actif'=>0,
'raisonSociale'=>$tabBodacc['nom'],
'enseigne'=>$tabBodacc['enseigne'],
'sigle'=>'',
'identite_pre'=>'',
'adr_num'=>@$adr['num'],
'adr_btq'=>@$adr['adr_btq'],
'adr_typeVoie'=>@$adr['typeVoie'],
'adr_libVoie'=>strtoupper(@$adr['libVoie']),
'adr_comp'=>'',
'adr_cp'=>$adr_cp,
'adr_ville'=>strtoupper(@$tabBodacc['ville']),
'adr_dep'=>substr($adr_cp,0,2),
'tel'=>'',
'fax'=>'',
'cj'=>$tabBodacc['fj'],
'ape_etab'=>$tabBodacc['naf'],
'ape_entrep'=>$tabBodacc['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 GREFFES sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
} else
$nbInsertGreffes++;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertGreffes établissements Greffes consolidés.".EOL;
}
if ($iMarques) {
echo date ('Y/m/d - H:i:s')." - Mise à jour des marques.".EOL;
$nbMarques=$iDb->select('marques', 'Siren, Marques', '1 ORDER BY Siren ASC', false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbMarques marques à mettre à jour...".EOL;
$sirenPre=false;
$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'=>$strMarques );
$ret=$iDb->update('etablissements_tmp',$tabUpdate, "siren=$siren");
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'). mysql_error();
} else $nbInsertMarques++;
$strMarques='';
}
$sirenPre=$siren;
}
echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertMarques établissements avec Marques consolidés.".EOL;
}
} else {
echo date ('Y/m/d - H:i:s')." - Remise à 0 de tous les ranks de la table etablissements...".EOL;
$tab=array( 'rang'=>0 );
$iDb->update('etablissements', $tab, 'siren=0');
}
echo date ('Y/m/d - H:i:s')." - Mise à jour du rank de l'entreprise pour les recherches par nom".EOL;
$iDbRanks=new WDB('sdv1');
$nbRanks=$iDbRanks->select('`logs`', 'siren, count(*) AS `rang`', "page='identite' AND siren<>0 GROUP BY siren ORDER BY `rang` DESC", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbRanks ranks à mettre à jour...".EOL;
while ($tabRank=$iDbRanks->fetch(MYSQL_ASSOC)) {
$tab=array( 'rang'=>$tabRank['rang'] );
if ($pageRankOnly) $tableEtab='etablissements';
else $tableEtab='etablissements_tmp';
$iDb->update($tableEtab, $tab, 'siren='.substr($tabRank['siren'],0,9));
}
if (!$pageRankOnly) {
echo date ('Y/m/d - H:i:s')." - Mise en place des tables pour l'indexation.".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;");
//echo date ('Y/m/d - H:i:s')." - Sauvegarde de l'ancienne table établissements : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL;
//$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;
}
echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL;
//echo date ('Y/m/d - H:i:s')." - Lancement de la commande : indexer --all --config /usr/local/etc/sphinx.conf --rotate".EOL;
/*$nb=@$nbAsso+@$nbBodS+@$nbBodE;
if ($nb>0) die(0);
else die(1);*/
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,166 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(INCLUDE_PATH.'insee/classMInsee.php');
error_reporting(E_ALL ^ E_NOTICE);
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Consolidation des sites Web et Emails disponibles.
Options :
-a Reconsolidation de toute la base des téléphones/fax
";
$semiManuel=$sansPropo=$toutes=$index=false;
$mInsee=new MInsee();
$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 'p':
$sansPropo=true;
break;
case 'a':
$toutes=true;
break;
case 'i':
$index=trim(substr($argv[$i],3));
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
echo date('Y/m/d - H:i:s') ." - DEBUT du programme...".EOL;
die("SELECT siren, sirenValide, raisonSociale, nomCommercial, enseigne, sigle, activite, typeEven FROM bodacc_detail WHERE activite LIKE '%www.%'
OR activite LIKE '%.fr%'
OR activite LIKE '%.com%'
OR activite LIKE '%.net%'
OR activite LIKE '%.info%'
OR activite LIKE '%.biz%'
OR activite LIKE '%.eu%'
OR activite LIKE '%.org%'
OR raisonSociale LIKE '%www.%'
OR raisonSociale LIKE '%.fr%'
OR raisonSociale LIKE '%.com%'
OR raisonSociale LIKE '%.net%'
OR raisonSociale LIKE '%.info%'
OR raisonSociale LIKE '%.biz%'
OR raisonSociale LIKE '%.eu%'
OR raisonSociale LIKE '%.org%'
OR nomCommercial LIKE '%www.%'
OR nomCommercial LIKE '%.fr%'
OR nomCommercial LIKE '%.com%'
OR nomCommercial LIKE '%.net%'
OR nomCommercial LIKE '%.info%'
OR nomCommercial LIKE '%.biz%'
OR nomCommercial LIKE '%.eu%'
OR nomCommercial LIKE '%.org%'
OR enseigne LIKE '%www.%'
OR enseigne LIKE '%.fr%'
OR enseigne LIKE '%.com%'
OR enseigne LIKE '%.net%'
OR enseigne LIKE '%.info%'
OR enseigne LIKE '%.biz%'
OR enseigne LIKE '%.eu%'
OR enseigne LIKE '%.org%'
OR sigle LIKE '%www.%'
OR sigle LIKE '%.fr%'
OR sigle LIKE '%.com%'
OR sigle LIKE '%.net%'
OR sigle LIKE '%.info%'
OR sigle LIKE '%.biz%'
OR sigle LIKE '%.eu%'
OR sigle LIKE '%.org%'");
$pertinence=false;
$nbRep=30;
$siege=0;
$tabTables=array(
/* array('db'=>'sugarcrm', 'table'=>'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('db'=>'jo', 'table'=>'bodacc_detail b LEFT JOIN bodacc_sirenage s ON s.idAnn = b.id AND s.siren = b.siren',
'champRS'=>'CONCAT(raisonSociale," ",nomCommercial," ",enseigne)',
'champAdresse'=>'adrLibVoie',
'champCP'=>'codePostal',
'champVille'=>'ville',
'champSiren'=>'b.siren',
'champNic'=>'nic',
'champSirenValide'=>'sirenValide',
'champNicValide'=>'nicValide'),
/* array('db'=>'sdv1', 'table'=>'sirenage', 'champRS'=>'concat( RAISON_SOCIALE , \' \' , RAISON_SOCIALE2 )',//REF NIC RAISON_SOCIALE2 ADRESSE2 NUM_VOIE ADRESSE3
'champAdresse'=>'ADRESSE',
'champCP'=>'CP',
'champVille'=>'VILLE',
'champSiren'=>'SIREN',
'champSirenValide'=>'SIREN'),*/
);
$iDbSel=new WDB('jo');
$iDbMaj=new WDB('insee');
echo date ('Y/m/d - H:i:s')." - DEBUT de la mise à jour des TEL/FAX des entreprises...".EOL;
$strDate=' AND dateUpdate>DATE_SUB(NOW(), INTERVAL 2 DAY) ';
if ($toutes)
$strDate='';
$nbTel=$iDbSel->select('infos_entrep', 'siren, tel, fax',"siren>1000 AND (tel<>'' OR fax<>'') $strDate", false,MYSQL_ASSOC,true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbTel lignes de TEL/FAX à mettre à jour...".EOL;
$nbAvecMaj=$nbSansMaj=$nbErr=0;
while ($tabTel=$iDbSel->fetch(MYSQL_ASSOC)) {
$siren=$tabTel['siren'];
$tel=trim(strtr($tabTel['tel'], array('.'=>'', ' '=>'', '-'=>'')));
$fax=trim(strtr($tabTel['fax'], array('.'=>'', ' '=>'', '-'=>'')));
$tabTmp=$iDbMaj->select('identite', 'id, SIREN, NIC, ACTIF, SIEGE, TEL, FAX',"SIREN=$siren ORDER BY SIEGE DESC, ACTIF DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
$tabUpdate=array();
$etab=$tabTmp[0];
$id=$etab['id'];
$telPrev=$etab['TEL'];
$faxPrev=$etab['FAX'];
if ($telPrev=='' && $tel<>'') $tabUpdate['TEL']=$tel;
if ($faxPrev=='' && $fax<>'') $tabUpdate['FAX']=$fax;
if (count($tabUpdate)>0) {
$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++;
}
else {
$nbSansMaj++;
// echo date ('Y/m/d - H:i:s')." - Siren $siren, Tel $tel, Fax $fax : PAS de mise à jour".EOL;
}
} else {
echo date ('Y/m/d - H:i:s')." - Siren $siren, Tel $tel, Fax $fax : Pas de fiche identite !".EOL;
$nbErr++;
// die();
}
/*print_r($tabTel);
print_r($tabTmp);
die();*/
}
echo date ('Y/m/d - H:i:s')." - FIN de la mise à jour des TEL/FAX des entreprises ($nbAvecMaj MAJ/$nbTel avec $nbErr erreurs).".EOL;
die();
?>

View File

@ -1,138 +0,0 @@
#!/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);
}
?>

View File

@ -1,71 +0,0 @@
#!/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.'conversion/bilAltares.php');
include_once(FWK_PATH.'mail/sendMail.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Conversion d'un flux surveillance/diffusion Bodacc S&D en fichier SO2000.
Options :
-a:123456789 Ajouter le numéro d'abonné BIL 123456789
-i:ISCEN Options de la fiche d'identité (I:Identifiant, S:Standard, C:Complète, E:option ext. Insee, N:option Score)
-v Mode bavard
-f Continuer même si numéro d'abonné n'est pas communiqué ou autre erreur...
";
$tabFichLigneCmd=array();
$numeroAbonneBil=$optionsIdBil='';
$modeDebug=$forceContinue=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': $numeroAbonneBil=substr($argv[$i],3)*1; break;
case 'i': $optionsIdBil=substr($argv[$i],3); break;
case 'v': $modeDebug=true; break;
case 'f': $forceContinue=true; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
}
} else $tabFichLigneCmd[]=$argv[$i];
}
if ($numeroAbonneBil*1==0) {
echo date ('Y/m/d - H:i:s') . " - Numéro d'abonnée BIL manquant !".EOL;
if (!$forceContinue) die();
}
if ($optionsIdBil=='') {
echo date ('Y/m/d - H:i:s') . " - Type de fiche identité BIL absente, fiche Identifiant utilisée par défaut !".EOL;
$optionsIdBil='I';
}
if (count($tabFichLigneCmd)==0) die(date ('Y/m/d - H:i:s') . " - Aucun fichier S&D à convertir en BIL/SO2000 !".EOL);
$message='';
for ($iFic=0; isset($tabFichLigneCmd[$iFic]); $iFic++)
{
$fichierIn=$tabFichLigneCmd[$iFic];
if (preg_match('/APICIL/',$fichierIn)) { $numeroAbonneBil='019400018'; $optionsIdBil='I'; }
if (preg_match('/SOFID/',$fichierIn)) { $numeroAbonneBil='000960030'; $optionsIdBil='I'; }
elseif (preg_match('/METRO/',$fichierIn)) { $numeroAbonneBil='013990040'; $optionsIdBil='IN'; }
echo date('Y/m/d - H:i:s') . " - Fichier S&D $fichierIn début de conversion en BIL/SO2000 (abonné $numeroAbonneBil, options $optionsIdBil) !".EOL;
$ret=conversionSd2So2000($fichierIn, $numeroAbonneBil, '', $optionsIdBil);
if ($ret===true)
echo date('Y/m/d - H:i:s') . " - Fichier S&D $fichierIn converti en BIL/SO2000 (abonné $numeroAbonneBil) !".EOL;
else
echo date('Y/m/d - H:i:s') . " - ERREUR lors de la conversion du fichier S&D $fichierIn en BIL/SO2000 (abonné $numeroAbonneBil) : $ret !".EOL;
}
//sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID", "Conversion terminée. Penser à déposer le fichier !!!");
echo date ('Y/m/d - H:i:s')." - Fin du traitement !" . EOL;
die();
?>

View File

@ -1,166 +0,0 @@
#!/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 linformation 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();
}
?>

View File

@ -1,126 +0,0 @@
#*/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

View File

@ -1,379 +0,0 @@
#!/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();
?>

View File

@ -1,552 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
* @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');
$repProduction='/mnt/samba/partage/production/';
$incrementationDesTour=true;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Génère les fichiers de diffusion des des annonces BODACC.
Options :
-i Ne pas incrémenter les numéros de tour (pour les tests).
";
$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':
$incrementationDesTour=false;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$typePrestaton='diffusionBodacc';
$iDb=new WDB('jo');
$iDb2=new WDB('jo');
function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) {
$lonLigne=LONGUEUR_LIGNE_SORTIE-90;
$str='';
switch ($typeLigne) {
case '102': // Activité déclarée au Bodacc
case '103': // Texte rectificatif
case '104': // Annonce Bodacc Complète
case '105': // Structure dirigeants
$tabLigne=str_split($chaine, $lonLigne);
foreach ($tabLigne as $i=>$ligne) {
$str.=rtrim($typeLigne.$enteteLigne.$ligne).$eol;
$nbLignes++;
}
break;
default:
die("ERREUR : Structure de sortie n°$typeLigne non prise en charge !\n");
break;
}
return $str;
}
function getListeAdherents($prestation) {
$iDbCrm=new WDB('sugarcrm');
$rep=$iDbCrm->select('cases_cstm q, accounts a, cases p LEFT JOIN contacts_cases k ON p.id = k.case_id LEFT JOIN contacts c ON k.contact_id = c.id LEFT JOIN contacts_cstm s ON c.id = s.id_c',
'p.id, p.case_number, p.name, p.account_id, a.name, q.typeprestation_c, q.datemiseenplace_c, q.datefinprestation_c, q.prestatest_c, q.loginprestation_c, q.passwordprestation_c, q.supportprestation_c, q.optionsupport_c, q.freqenvois_c, q.formatdesenvois_c, q.trtnumerotour_c, q.trtdatederniereexec_c, q.optionsprestation_c, k.contact_id, k.deleted as lienContactDeleted, c.deleted as ContactDeleted, c.salutation, c.first_name, c.last_name, c.title, c.department, c.phone_mobile, c.phone_work, c.phone_fax, c.email1, c.email2, c.primary_address_street, c.primary_address_city, c.primary_address_postalcode, s.typedecontact_c', "p.deleted=0 AND p.id=q.id_c AND q.typeprestation_c='$prestation' AND q.prestationactive_c=1 AND p.account_id=a.id AND a.deleted=0 ORDER BY p.case_number ASC", true, MYSQL_ASSOC);
//print_r($rep);
$tabPrestation=array();
foreach ($rep as $i=>$contacts) {
$numPrestation=$contacts['case_number'];
if ($contacts['lienContactDeleted']==0 && $contacts['ContactDeleted']==0) {
if ($contacts['email1']<>'') $email=$contacts['email1'];
else $email=$contacts['email2'];
if (!isset($tabPrestation[$numPrestation])) {
// echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n";
$tabPrestation[$numPrestation]=array('id'=>$contacts['case_number'],
'idPrestationBdd'=>$contacts['id'],
'nomClient'=>$contacts['name'],
'typePrestation'=>$contacts['typeprestation_c'],
'dateDebut'=>$contacts['datemiseenplace_c'],
'dateFin'=>$contacts['datefinprestation_c'],
'test'=>$contacts['prestatest_c'],
'loginPrestation'=>$contacts['loginprestation_c'],
'passwPrestation'=>$contacts['passwordprestation_c'],
'supportPrestation'=>$contacts['supportprestation_c'],
'optionSupport'=>$contacts['optionsupport_c'],
'freqEnvois'=>$contacts['freqenvois_c'],
'formatEnvois'=>$contacts['formatdesenvois_c'],
'numeroDeTour'=>$contacts['trtnumerotour_c'],
'dateDerniereExec'=>$contacts['trtdatederniereexec_c'],
'optionPrestation'=>$contacts['optionsprestation_c'],
'contacts'=>array(array( 'salutation'=>$contacts['salutation'],
'prenom'=>$contacts['first_name'],
'nom'=>$contacts['last_name'],
'fonction'=>$contacts['title'],
'tel_por'=>$contacts['phone_mobile'],
'tel_bur'=>$contacts['phone_work'],
'tel_fax'=>$contacts['phone_fax'],
'email'=>$email,
'adresse'=>$contacts['primary_address_street'],
'ville'=>$contacts['primary_address_city'],
'codePos'=>$contacts['primary_address_postalcode'],
'typeContact'=>$contacts['typedecontact_c'])));
} else {
// echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n";
$tabPrestation[$numPrestation]['contacts']=array_merge($tabPrestation[$numPrestation]['contacts'], array(
array( 'salutation'=>$contacts['salutation'],
'prenom'=>$contacts['first_name'],
'nom'=>$contacts['last_name'],
'fonction'=>$contacts['title'],
'tel_por'=>$contacts['phone_mobile'],
'tel_bur'=>$contacts['phone_work'],
'tel_fax'=>$contacts['phone_fax'],
'email'=>$email,
'adresse'=>$contacts['primary_address_street'],
'ville'=>$contacts['primary_address_city'],
'codePos'=>$contacts['primary_address_postalcode'],
'typeContact'=>$contacts['typedecontact_c'])));
}
}}
return $tabPrestation;
}
echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion BODACC.\n";
/** On récupère la liste des Adhérents **/
$tabAdherents=getListeAdherents($typePrestaton);
//print_r($tabAdherents);
$nbClients=count($tabAdherents);
echo date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) à servir en diffusion BODACC.".EOL;
//print_r($tabAdherents);die();
foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
{
$clientNumTourFichier=($tabAdherent['numeroDeTour']*1)+1;
$clientIdentifiant=trim($tabAdherent['loginPrestation']);
$nomClient=trim($tabAdherent['nomClient']);
$numPrestation=$tabAdherent['id'];
/** Le client souhaite une compression du fichier ? **/
if (strpos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip';
elseif (strpos($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";
else $optionEOL=EOL;
$tabOptOutput=array();
if($tabAdherent['dateDebut']<>'' && $tabAdherent['dateDebut']<>'0000-00-00')
$dateDebutPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDebut']);
else
$dateDebutPrestation=false;
if($tabAdherent['dateFin']<>'' && $tabAdherent['dateFin']<>'0000-00-00')
$dateFinPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateFin']);
else
$dateFinPrestation=false;
if($tabAdherent['dateDerniereExec']<>'' && $tabAdherent['dateDerniereExec']<>'0000-00-00')
$dateDernierTraitement=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDerniereExec']);
else
$dateDernierTraitement=false;
if ($dateDebutPrestation && $dateDebutPrestation>DATE) // La date de démarrage de la prestation n'est pas encore arrivée
{
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : La prestation démarre le $dateDebutPrestation !".EOL;
continue;
}
if ($dateFinPrestation && $dateFinPrestation>DATE) // La date de fin de la prestation est révolue
{ echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fin de la prestation le $dateFinPrestation (Dernière exécution le $dateDernierTraitement) !".EOL;
continue;
}
/****
if ($dateDernierTraitement && $dateDernierTraitement==DATE)
{ echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement déjà exécuté aujourd'hui !".EOL;
continue;
} elseif ($dateDernierTraitement==0) {
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Jamais exécutée pour ce client !".EOL;
$dateDernierTraitement=false;
/* Il faudra vérifier si on génère le stocke et depuis quand sinon on prond le dernier Bodacc */
//} Bloc a décommenter
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Export des annonces en cours... (dernier traitement le $dateDernierTraitement)".EOL;
/**
** On génère la ligne d'entête
**/
$fp=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', 'w');
if ($fp==false) die('ERREUR : Impossible de créer le fichier !');
error_reporting(E_ALL ^ E_NOTICE);
$str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date de génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
'';
fwrite($fp, $str.$optionEOL);
$nbLignes=1;
/**
** On génère les lignes de détail
**/
$strRubrique='';
if (strpos($tabAdherent['optionPrestation'], 'comptes')) // Export du Bodacc C - Dépôt des comptes
$strRubrique.="'comptes',";
if (strpos($tabAdherent['optionPrestation'], 'creations')) // Export des créations
$strRubrique.="'creations',";
if (strpos($tabAdherent['optionPrestation'], 'mmd')) // Export des MMD
$strRubrique.="'mmd',";
if (strpos($tabAdherent['optionPrestation'], 'procol')) // Export des ProCol
$strRubrique.="'procol',";
if (strpos($tabAdherent['optionPrestation'], 'radiations')) // Export des radiations
$strRubrique.="'radiations',";
if (strpos($tabAdherent['optionPrestation'], 'ventes')) // Export des ventes cessions
$strRubrique.="'ventes',";
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
$tabOptOutput[105]=true; else $tabOptOutput[105]=false;
$tabSiren=$iDb->select('mederic', 'distinct(siren)', '1', true, MYSQL_ASSOC);
$nbSirenClient=count($tabSiren);
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbSirenClient siren en surveillance.".EOL;
$tabSiren2=array();
foreach ($tabSiren as $siren) {
$tabSiren2[]=$siren['siren'];
}
sort($tabSiren2);
$tabSiren=$tabSiren2;
unset($tabSiren2);
//die();
$fields='id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, raisonSociale, nomCommercial, enseigne, nationalite, FJ, Capital, CapitalDev, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, 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, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert';
$where='1';
// On filtre les rubriques demandées
if ($strRubrique<>'') $where.=' AND Rubrique IN('. substr($strRubrique,0,strlen($strRubrique)-1) .') ';
// On ne prend que les dernières annonces depuis la dernière exécution de la prestation pour le client
/**
if ($dateDernierTraitement) $where.=" AND dateInsert>'$dateDernierTraitement' ";
// ... sinon on prend les annonces depuis la date de début de la prestation
elseif ($dateDebutPrestation) $where.=" AND dateInsert>'$dateDebutPrestation' ";
else $where.=" AND dateInsert>='MAX(DATE_FORMAT(dateInsert,'%Y-%m-%d'))') ";
**/
$where.=" AND d.siren=s.siren AND Bodacc_Date_Parution BETWEEN 20060901 AND 20070930 ";
//echo date ('Y/m/d - H:i:s')." - SQL : ... WHERE $where;".EOL;
//$tabAnnonces
$nbAnnonces=$iDb->select('bodacc_detail d, mederic s', $fields, $where, true, MYSQL_ASSOC, true); // Gérer la table surveillance
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces annonces à traiter...".EOL;
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client...".EOL;
//while(=$iDb->fetch(MYSQL_ASSOC)) {
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
//print_r($annonce);
//$k++;
//$siren=$record['siren'];***/
//foreach ($tabAnnonces as $numAnn=>$annonce) {
// On récupère les 2 intervenants de la procédure
//if (!in_array($annonce['siren'], $tabSiren)) continue;
$numInter=0;
$inter=array();
if ($annonce['mandNom']<>'' || $annonce['mandCP']<>0) {
$inter[$numInter]['type']='M'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['mandNom'];
$inter[$numInter]['Repr']=$annonce['mandRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['mandAdresse'];
$inter[$numInter]['CP']=$annonce['mandCP'];
$inter[$numInter]['Ville']=$annonce['mandVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
if ($annonce['creaNom']<>'' || $annonce['creaCP']<>0) {
$inter[$numInter]['type']='R'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['creaNom'];
$inter[$numInter]['Repr']=$annonce['creaRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['creaAdresse'];
$inter[$numInter]['CP']=$annonce['creaCP'];
$inter[$numInter]['Ville']=$annonce['creaVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
if ($annonce['admNom']<>'' || $annonce['admCP']<>0) {
$inter[$numInter]['type']='A'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['admNom'];
$inter[$numInter]['Repr']=$annonce['admRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['admAdresse'];
$inter[$numInter]['CP']=$annonce['admCP'];
$inter[$numInter]['Ville']=$annonce['admVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
/* if ($annonce['oppoNom']<>'' || $annonce['oppoCP']<>0) {
$inter[$numInter]['type']='O'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['oppoNom'];
$inter[$numInter]['Repr']=$annonce['oppoRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['oppoAdresse'];
$inter[$numInter]['CP']=$annonce['oppoCP'];
$inter[$numInter]['Ville']=$annonce['oppoVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}*/
$tribunalCode=$iDb2->select('bodacc', 'Tribunal_Code', 'id='.$annonce['id'], false);
$tribunalCode=$tribunalCode[0][0];
$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
initstr(FILLER, 1) . // On garde de la place
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
initstr(FILLER, 5) . // On garde la place pour le NIC
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C)
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
// R=Rectif, S=Suppression
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée
// (ex: 230A, 001B)
// initstr($annonce['corrTexteRectificatif'], XXXXXX, '0', ALIGN_RIGHT) . // Si diff. I,
// initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8, '0') . // Date de l'intégration en bae S&D
initstr(FILLER, 18) . // REFERENCE DU CLIENT
initstr($tribunalCode, 6) .
initstr($annonce['RC'], 9) . // Numéro de RC (Registre du Commerce) de l'entreprise
initstr($annonce['raisonSociale'], 150) . // Raison sociale de l'entreprise
initstr($annonce['nomCommercial'], 100) . // Nom commercial de l'entreprise
initstr($annonce['enseigne'], 100) . // Enseigne de l'établissement
initstr($annonce['nationalite'], 30) . // Nationalité si Personne physique
//initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee
initstr('0000', 4) . // FJ codification Insee
initstr($annonce['FJ'], 90) . // Forme juridique de l'entreprise déclarée au BODACC
initstr($annonce['Capital'], 15, '0', ALIGN_RIGHT) . // Capital
initstr($annonce['CapitalDev'], 3) . // Devise du capital (format ISO)
// Adresse / 150 car
initstr($annonce['adrNum'], 4, '0', ALIGN_RIGHT) . //
initstr($annonce['adrIndRep'], 1) . //
initstr($annonce['adrTypVoie'], 5) .
initstr($annonce['adrLibVoie'], 50) .
initstr($annonce['adrComp1'], 50) .
initstr($annonce['adrComp2'], 40) .
initstr($annonce['codePostal'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
// Adresse du siège / 150 car
initstr($annonce['adrNumSiege'], 4, '0', ALIGN_RIGHT) . //
initstr($annonce['adrIndRepSiege'], 1) . //
initstr($annonce['adrTypVoieSiege'], 5) .
initstr($annonce['adrLibVoieSiege'], 50) .
initstr($annonce['adrComp1Siege'], 50) .
initstr($annonce['adrComp2Siege'], 40) .
initstr($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
initstr(str_replace(';','', $annonce['typeEven']), 32, '0', ALIGN_RIGHT) . // Code Evènement Bodacc n°1 à 8
initstr($annonce['publicationNom'], 100) . // NOM du JAL si publication
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['publicationDate']), 8) . // Date de publication du JAL si publication
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateCessationPaiement']), 8) . // Date de cessation des paiements
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateJugement']), 8) . // Date du jugement
initstr(FILLER, 1) . // FILLER (Replace type de création)
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateDebutActivite']), 8) . // Date de début d'activité
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateEffet']), 8) . // Date d'effet (Ventes/MMD)
// ou Date clôture exercice si ann dépôt comptes
initstr($annonce['VenteMt'], 15, '0', ALIGN_RIGHT) . // Montant de la vente
initstr($annonce['VenteDev'], 3) . // Devise de la ventre
initstr($annonce['Numero'], 35) . // Numéro de l'affaire au greffe
initstr($inter[0]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
initstr($inter[0]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
initstr($inter[0]['Nom'], 80) . // Raison sociale
initstr($inter[0]['Repr'], 80) . // Représentant
initstr($inter[0]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
initstr($inter[0]['adrBis'], 1) . // Adresse, Bis/Ter
initstr($inter[0]['adrType'], 4) . // Adresse, type de voie
initstr($inter[0]['adrLib'], 32) . // Adresse, libellé de la voie
initstr($inter[0]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
initstr($inter[0]['Ville'], 45) . // Adresse, commune
initstr($inter[0]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
initstr($inter[1]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
initstr($inter[1]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
initstr($inter[1]['Nom'], 80) . // Raison sociale
initstr($inter[1]['Repr'], 80) . // Représentant
initstr($inter[1]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
initstr($inter[1]['adrBis'], 1) . // Adresse, Bis/Ter
initstr($inter[1]['adrType'], 4) . // Adresse, type de voie
initstr($inter[1]['adrLib'], 32) . // Adresse, libellé de la voie
initstr($inter[1]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
initstr($inter[1]['Ville'], 45) . // Adresse, commune
initstr($inter[1]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
initstr(FILLER/*$annonce['JugeCommissaireNom']*/, 30) . // NOM du JugeCommissaire
initstr(FILLER/*$annonce['JugeCommissairePrenom']*/, 30) . // Prénom du JugeCommissaire
initstr(FILLER/*$annonce['JugeCommissaireSupplNom']*/, 30) . // NOM du JugeCommissaire suppléant
initstr(FILLER/*$annonce['JugeCommissaireSupplPrenom']*/, 30) . // Prénom du JugeCommissaire suppléant
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinDepotCreances']), 8) . // Date limite pour le dépôt des créances
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinObservation']), 8) . // Date de fin de la période d'observation
initstr(FILLER, 89) .
'';
fwrite($fp, rtrim($str).$optionEOL);
$nbLignes++;
// if ($tabOptOutput['commentaire']==true && $annonce['commentaires']<>'')
// fwrite($fp, '101'.initsrt($annonce['commentaires'],1500).$eol); // Commentaire textuel si nécessaire
$enteteL= initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
initstr(FILLER, 1) . // On garde de la place
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
initstr(FILLER, 5) . // On garde la place pour le NIC
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C)
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
// R=Rectificatif, S=Suppression
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce différent de I, numéro de l'annonce corrigée
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parution dans l'année de annonce corri(ex: 230A, 001B)
initstr(FILLER, 18) . // REF CLI
'';
if ($tabOptOutput[101]==true && $annonce['commentaires']<>'') // Commentaires
fwrite($fp, genereMultiLigne('101', $enteteL, $annonce['commentaires'], $optionEOL, $nbLignes));
if ($tabOptOutput[102]==true && $annonce['activite']<>'') // Activité déclarée au Bodacc
fwrite($fp, genereMultiLigne('102', $enteteL, $annonce['activite'], $optionEOL, $nbLignes));
if ($annonce['corrTexteRectificatif']<>'') // Texte rectificatif
fwrite($fp, genereMultiLigne('103', $enteteL, $annonce['corrTexteRectificatif'], $optionEOL, $nbLignes));
if ($tabOptOutput[104]==true) { // Annonce Bodacc Complète
$annoncetxt=$iDb2->select('bodacc', 'annonce', 'id='.$annonce['id'], false);
$annoncetxt=$annoncetxt[0][0];
fwrite($fp, genereMultiLigne('104', $enteteL, $annoncetxt, $optionEOL, $nbLignes));
}
if ($tabOptOutput[105]==true) { // Liste des dirigeants
$annonceDir=$iDb2->select('bodacc_dirigeants', 'id, num, dateEffet, fonction, rs, nom, prenom, nomUsage', 'id='.$annonce['id'], true);
$strDir='';
foreach ($annonceDir as $k=>$dir) {
$strDir.=initstr(WDate::dateT('Y-m-d','Ymd',$dir['dateEffet']), 8, '0', ALIGN_RIGHT) . // Date de la prise de fonction
initstr($dir['fonction'], 4) . // Code Fonction S&D
initstr($dir['rs'], 80) . // Raison Sociale du dirigeant
initstr($dir['nom'], 50) . // NOM du dirigeant
initstr($dir['prenom'], 100) . // Prenom
initstr($dir['usage'], 50); // Nom d'usage
if ($k%6==0) $strDir.=initstr(' ', 28);
else $strDir.=initstr(' ', 26);
}
fwrite($fp, genereMultiLigne('105', $enteteL, $strDir, $optionEOL, $nbLignes));
}
if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n";
}
/**
** On génère la ligne de fin de fichier
**/
$nbLignes++;
$str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier
'';
fwrite($fp, $str); // 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;
/** 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),
"id_c='".$tabAdherent['idPrestationBdd']."'");
}
/*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/
switch ($optionZip) {
case 'zip':
$zip = new ZipArchive;
$res = $zip->open($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip', ZipArchive::CREATE);
if ($res === TRUE) {
// $zip->addFromString('test.txt', 'file content goes here');
$zip->addFile( REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt',
$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$zip->close();
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.zip OK...'.EOL;
} else {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
}
break;
case 'gzip':
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$gz = gzopen($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz','w9');
if (!$gz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
gzwrite($gz, $string);
gzclose($gz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.gz OK...'.EOL;
}
break;
default:
if (!copy(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', $repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt a été créé...'.EOL;
break;
}
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
die();
?>

View File

@ -1,456 +0,0 @@
#!/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');
$repProduction='/mnt/samba/partage/production/';
$incrementationDesTour=true;
$typePrestaton='diffusionBodacc';
$ignoreDateDerExec=$retroActivite=false;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Extaction Bodacc pour CSF.
Options :
-a:2004 Année 2004
";
$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 'a':
$annee=substr($argv[$i],3,strlen($argv[$i])-3);
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$iDb=new WDB('historiques');
$iDb2=new WDB('historiques');
//$iDb2=new WDB('jo');
$iBodacc=new MBodacc();
function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) {
$lonLigne=LONGUEUR_LIGNE_SORTIE-90;
$str='';
$chaine=preg_replace('/ +/', ' ', strtr($chaine, array("\n"=>' ',"\r"=>' ',";"=>' ')));
switch ($typeLigne) {
case '102': // Activité déclarée au Bodacc
case '103': // Texte rectificatif
case '104': // Annonce Bodacc Complète
case '105': // Structure dirigeants
$tabLigne=str_split($chaine, $lonLigne);
foreach ($tabLigne as $i=>$ligne) {
$str.=initstr($typeLigne.$enteteLigne.$ligne, LONGUEUR_LIGNE_SORTIE).$eol;
$nbLignes++;
}
break;
default:
die("ERREUR : Structure de sortie n°$typeLigne non prise en charge !\n");
break;
}
return $str;
}
echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion BODACC.\n";
/** On récupère la liste des Adhérents **/
$optionZip='none';
$optionEOL="\r\n";
$tabOptOutput=array();
$dateDernierTraitement=false;
$dateDebutPrestation=''.$annee.'0301';
$dateFinPrestation=''.$annee.'1231';
//$dateFinPrestation=''.$annee.'0631';
$clientIdentifiant='CSF_BodaccAB_'.$annee;
/**
** On génère la ligne d'entête
**/
$fp=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', 'w');
if ($fp==false) die('ERREUR : Impossible de créer le fichier !');
error_reporting(E_ALL ^ E_NOTICE);
$str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date de génération du fichier
initstr(0, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr(VERSION_FICHIER_BODACC, 4) . // Type de prestation
initstr(FILLER, 1901) . // FILLER
'';
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes=1;
/**
** On génère les lignes de détail
**/
$strRubrique='';
$tabOptOutput[104]=true;
$tabNaf=array();
$versionEvenClient=11;
$tables='entrep e, texte x, annonce_hiz z';
$fields='e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt, E1TNOM, E1TSIG, E1ENRU, E1EBTQ, E1ETVI, E1EVOI, E1ECPI, E1EVIL, z.DATEZ, z.DTEFFZ, z.RUBODZ';
//d.id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, 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, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert';
$where="e.E1GSIR>10000 AND e.DATE BETWEEN $dateDebutPrestation AND $dateFinPrestation AND e.ANBASE=x.annonceNum AND e.ANBASE=z.ANBAZ AND E1GSTB=1";
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); // Gérer la table surveillance
echo date ('Y/m/d - H:i:s')." - $nbAnnonces annonces à traiter...".EOL;
echo date ('Y/m/d - H:i:s')." - Début de génération du fichier client en version $versionEvenClient...".EOL;
$numAnnonceSD=0010000000+(($annee*1)-1995)*3000000;
$numPre=-1;
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
if ($annonce['ANBASE']==$numPre) continue;
$numPre=$annonce['ANBASE'];
if ($annonce['JAL']==1) $Bodacc_Code='A';
elseif ($annonce['JAL']==200) $Bodacc_Code='B';
if ($annonce['CODEVE']<20) $tabEven=array('4999');
elseif ($annonce['CODEVE']<=25) $tabEven=array('5999');
elseif ($annonce['CODEVE']<40) $tabEven=array('2312');
elseif ($annonce['CODEVE']<42) $tabEven=array('6700');
elseif ($annonce['CODEVE']<50) $tabEven=array('2312');
elseif ($annonce['CODEVE']<80) $tabEven=array('1999');
$tabTmp=$iDb2->select('annonce_hinl', 'NUMEZ, DATEZ, DTEFFZ', 'ANBAZ='.$annonce['ANBASE'], false, MYSQL_ASSOC);
$dateJ=@$tabTmp[0]['DATEZ'];
$tabTmp=$iDb2->select('annonce_hia', 'DATEZ, DTEFFZ, MOVENA, MTVENA', 'ANBAZ='.$annonce['ANBASE'], false, MYSQL_ASSOC);
$VenteMt=$tabTmp[0]['MTVENA']*1;
$VenteDev=@$tabTmp[0]['MOVENA'];
/* $tabRet[$k]=array( 'id'=>-$ann['ANBASE'],
'BodaccCode'=>$Bodacc_Code,
'BodaccNum'=>$ann['NOBOD'],
'NumAnnonce'=>$ann['NOANN'],
'DateParution'=>substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2),
'Departement'=>$ann['DEPT'],
'Tribunal'=>$ann['triNom'],
'TribunalSiret'=>$ann['triSiret'],
'Rubrique'=>$rub,
'typeAnnonce'=>'Insertion',/** @todo à GERER $ann['SSCODE'],
//'texteRectificatif'=>$ann['corrTexteRectificatif'],
// 'texteAnnonce'=>$ann['annonceTxt'],
'dateEffet'=>$ann['DATE'],
'dateJugement'=>$ann['DATE'],
'dateInsertionSD'=>'',
'evenements'=>array(array('CodeEven'=>$tabTmp[$ann['CODEVE']],'LibEven'=>$this->iBodacc->getEvenement($tabTmp[$ann['CODEVE']]))),
);
if ($idAnnonce<>0) $tabRet[$k]['texteAnnonce']=$ann['NOANN'].' - '.$ann['annonceTxt'];
} */
$numInter=0;
$inter=array();
if ($annonce['mandNom']<>'' || $annonce['mandCP']<>0) {
$inter[$numInter]['type']='M'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['mandNom'];
$inter[$numInter]['Repr']=$annonce['mandRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['mandAdresse'];
$inter[$numInter]['CP']=$annonce['mandCP'];
$inter[$numInter]['Ville']=$annonce['mandVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
if ($annonce['creaNom']<>'' || $annonce['creaCP']<>0) {
$inter[$numInter]['type']='R'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['creaNom'];
$inter[$numInter]['Repr']=$annonce['creaRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['creaAdresse'];
$inter[$numInter]['CP']=$annonce['creaCP'];
$inter[$numInter]['Ville']=$annonce['creaVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
if ($annonce['admNom']<>'' || $annonce['admCP']<>0) {
$inter[$numInter]['type']='A'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['admNom'];
$inter[$numInter]['Repr']=$annonce['admRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['admAdresse'];
$inter[$numInter]['CP']=$annonce['admCP'];
$inter[$numInter]['Ville']=$annonce['admVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
/* if ($annonce['oppoNom']<>'' || $annonce['oppoCP']<>0) {
$inter[$numInter]['type']='O'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['oppoNom'];
$inter[$numInter]['Repr']=$annonce['oppoRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['oppoAdresse'];
$inter[$numInter]['CP']=$annonce['oppoCP'];
$inter[$numInter]['Ville']=$annonce['oppoVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}*/
$numAnnonceSD++;
$str= initstr('100', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr($numAnnonceSD, 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
initstr($annonce['E1GSIR'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
initstr(FILLER, 5) . // On garde la place pour le NIC
initstr($annonce['NOBOD'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
initstr($Bodacc_Code, 1) . // Code Bodacc (A, B ou C)
initstr($annonce['DATE'], 8) . // Date de parution du Bodacc
initstr($annonce['NOANN'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
initstr($annonce['RUBODZ'], 3, '0') . // Rubrique dans le Bodacc
initstr('I', 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
// R=Rectif, S=Suppression
initstr(FILLER, 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée
initstr(FILLER, 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
initstr(FILLER, 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
initstr(FILLER, 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée
// (ex: 230A, 001B)
initstr(FILLER, 18) . // REFERENCE DU CLIENT
initstr($annonce['CODTRI'], 6) .
initstr(FILLER, 9) . // Numéro de RC (Registre du Commerce) de l'entreprise
initstr($annonce['E1TNOM'], 150) . // Raison sociale de l'entreprise
initstr(FILLER, 100) . // Nom commercial de l'entreprise
initstr($annonce['E1TSIG'], 100) . // Enseigne de l'établissement
initstr(FILLER, 30) . // Nationalité si Personne physique
//initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee
initstr('0000', 4) . // FJ codification Insee
initstr(FILLER, 90) . // Forme juridique de l'entreprise déclarée au BODACC
initstr(FILLER, 15, '0', ALIGN_RIGHT) . // Capital
initstr(FILLER, 3) . // Devise du capital (format ISO)
// Adresse / 150 car
initstr(FILLER, 4, '0', ALIGN_RIGHT) . //
initstr(FILLER, 1) . //
initstr(FILLER, 5) .
initstr(FILLER, 50) .
initstr(FILLER, 50) .
initstr(FILLER, 40) .
initstr(FILLER, 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
initstr(FILLER, 45) . // Ville de l'établissement
// Adresse du siège / 150 car
initstr($annonce['E1ENRU'], 4, '0', ALIGN_RIGHT) . //
initstr($annonce['E1EBTQ'], 1) . //
initstr($annonce['E1ETVI'], 5) .
initstr($annonce['E1EVOI'], 50) .
initstr(FILLER, 50) .
initstr(FILLER, 40) .
initstr($annonce['E1ECPI'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
initstr($annonce['E1EVIL'], 45) . // Ville de l'établissement
initstr(implode('',$tabEven), 32, '0', ALIGN_RIGHT) . // Code Evènement Bodacc n°1 à 8
initstr(FILLER, 100) . // NOM du JAL si publication
initstr(FILLER, 8) . // Date de publication du JAL si publication
initstr(FILLER, 8) . // Date de cessation des paiements
initstr($dateJ, 8) . // Date du jugement
initstr(FILLER, 1) . // FILLER (Replace type de création)
initstr(FILLER, 8) . // Date de début d'activité
initstr($annonce['DTEFFZ'], 8) . // Date d'effet (Ventes/MMD)
// ou Date clôture exercice si ann dépôt comptes
initstr($VenteMt, 15, '0', ALIGN_RIGHT) . // Montant de la vente
initstr($VenteDev, 3) . // Devise de la ventre
initstr(FILLER, 35) . // Numéro de l'affaire au greffe
initstr($inter[0]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
initstr($inter[0]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
initstr($inter[0]['Nom'], 80) . // Raison sociale
initstr($inter[0]['Repr'], 80) . // Représentant
initstr($inter[0]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
initstr($inter[0]['adrBis'], 1) . // Adresse, Bis/Ter
initstr($inter[0]['adrType'], 4) . // Adresse, type de voie
initstr($inter[0]['adrLib'], 32) . // Adresse, libellé de la voie
initstr($inter[0]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
initstr($inter[0]['Ville'], 45) . // Adresse, commune
initstr($inter[0]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
initstr($inter[1]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
initstr($inter[1]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
initstr($inter[1]['Nom'], 80) . // Raison sociale
initstr($inter[1]['Repr'], 80) . // Représentant
initstr($inter[1]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
initstr($inter[1]['adrBis'], 1) . // Adresse, Bis/Ter
initstr($inter[1]['adrType'], 4) . // Adresse, type de voie
initstr($inter[1]['adrLib'], 32) . // Adresse, libellé de la voie
initstr($inter[1]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
initstr($inter[1]['Ville'], 45) . // Adresse, commune
initstr($inter[1]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
initstr(FILLER/*$annonce['JugeCommissaireNom']*/, 30) . // NOM du JugeCommissaire
initstr(FILLER/*$annonce['JugeCommissairePrenom']*/, 30) . // Prénom du JugeCommissaire
initstr(FILLER/*$annonce['JugeCommissaireSupplNom']*/, 30) . // NOM du JugeCommissaire suppléant
initstr(FILLER/*$annonce['JugeCommissaireSupplPrenom']*/, 30) . // Prénom du JugeCommissaire suppléant
initstr(FILLER, 8) . // Date limite pour le dépôt des créances
initstr(FILLER, 8) . // Date de fin de la période d'observation
'';
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
// if ($tabOptOutput['commentaire']==true && $annonce['commentaires']<>'')
// fwrite($fp, '101'.initsrt($annonce['commentaires'],1500).$eol); // Commentaire textuel si nécessaire
$enteteL= initstr($numAnnonceSD, 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
initstr($annonce['E1GSIR'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
initstr(FILLER, 5) . // On garde la place pour le NIC
initstr($annonce['NOBOD'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
initstr($Bodacc_Code, 1) . // Code Bodacc (A, B ou C)
initstr($annonce['DATE'], 8) . // Date de parution du Bodacc
initstr($annonce['NOANN'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
initstr($annonce['RUBODZ'], 3, '0') . // Rubrique dans le Bodacc
initstr('I', 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
initstr(FILLER, 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée
initstr(FILLER, 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
initstr(FILLER, 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
initstr(FILLER, 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée // (ex: 230A, 001B)
initstr(FILLER, 18) .
'';
$texte=trim(strtr(preg_replace('/ +/', ' ', strtr(preg_replace('/ +/', ' ',$annonce['annonceTxt'].'.'),
array( ' Jugement '=>'. Jugement ',
' RCS '=>'. RCS ',
' RCS non encore inscrit '=>'. RCS non encore inscrit. ',
'RCSnon encore inscrit '=>'RCS non encore inscrit. ',
'RCSNon encore inscrits '=>'RCS non encore inscrit. ',
'RCSRCS '=>'RCS ',
' Forme:'=>'. Forme : ',
' Capital:'=>'. Capital : ',
' Enseigne:'=>'. Enseigne : ',
' Sigle:'=>'. Sigle : ',
' Activité:'=>'. Activité : ',
' Commentaires:'=>'. Commentaires : ',
' Adresse:'=>'. Adresse : ',
' Date de cessation des paiements:'=>'. Date de cessation des paiements : ',
' Mandataire judiciaire:'=>'. Mandataire judiciaire : ',
' Les déclarations de créances '=>' Les déclarations de créances ',
' Fonds acquis par achat '=>'. Fonds acquis par achat ',
" Date d'effet:"=>". Date d'effet : ",
" Date d' effet:"=>". Date d'effet : ",
' Précédent propriétaire '=>'. Précédent propriétaire : ',
' Précédent exploitant '=>'. Précédent exploitant : ',
' Première insertion:'=>'. Première insertion : ',
' oppositions:'=>'. Oppositions : ',
' Oppositions:'=>'. Oppositions : ',
' Adresse du siège social:'=>'. Adresse du siège social : ',
" Adresse de l'établissement principal:"=>". Adresse de l'établissement principal : ",
' Administration:'=>'. Administration : ',
))), array(':.'=>':', '..'=>'.', '. .'=>'.')));
fwrite($fp, genereMultiLigne('104', $enteteL, $texte, $optionEOL, $nbLignes));
if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n";
}
/**
** On génère la ligne de fin de fichier
**/
$nbLignes++;
$str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier
'';
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;
/** 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),
"id_c='".$tabAdherent['idPrestationBdd']."'");
}
/*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/
switch ($optionZip) {
case 'zip':
$zip = new ZipArchive;
$res = $zip->open($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip', ZipArchive::CREATE);
if ($res === TRUE) {
// $zip->addFromString('test.txt', 'file content goes here');
$zip->addFile( REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt',
$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$zip->close();
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.zip OK...'.EOL;
} else {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Zip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
}
break;
case 'gzip':
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$gz = gzopen($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz','w9');
if (!$gz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
gzwrite($gz, $string);
gzclose($gz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.gz OK...'.EOL;
}
break;
case 'bzip2':
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$bz = bzopen($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.bz2','w');
// Ne sait pas si le niveau de compression 1 à 9 est implémenté pour cette fonction
if (!$bz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 impossible pour ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.bz2 OK...'.EOL;
}
break;
default:
if (!copy(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', $repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt a été créé...'.EOL;
break;
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,882 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
if (!defined('VERSION_FICHIER_BODACC'))
define('VERSION_FICHIER_BODACC','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');
$repProduction='/mnt/samba/partage/production/';
$incrementationDesTour=true;
$typePrestaton='diffusionBodacc';
$ignoreDateDerExec=$retroActivite=false;
$codeAdherent='';
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Génère les fichiers des clients en surveillance ou diffusion des annonces BODACC.
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 exécuter en réel (pas de MAJ des infos d'exécution: n°tour, dates trt, fichier en rép tempo...)
-c:AAA Limiter le traitement au fichier de l'abonné AAA
-r:XX Faire une rétroactivté de XX jours
";
$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':
$incrementationDesTour=false;
$repProduction=REP_TEMP;
break;
case 's':
$typePrestaton='surveillanceBodacc';
break;
case 'd':
$typePrestaton='diffusionBodacc';
break;
case 'e':
$ignoreDateDerExec=true;
break;
case 'r':
$retroActivite=substr($argv[$i],3,strlen($argv[$i])-3);
break;
case 'c':
$codeAdherent=substr($argv[$i],3,strlen($argv[$i])-3);
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$iDb=new WDB('jo');
$iDb2=new WDB('jo');
$iBodacc=new MBodacc();
function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) {
$lonLigne=LONGUEUR_LIGNE_SORTIE-90;
$str='';
$chaine=preg_replace('/ +/', ' ', strtr($chaine, array("\n"=>' ',"\r"=>' ',";"=>' ')));
switch ($typeLigne) {
case '102': // Activité déclarée au Bodacc
case '103': // Texte rectificatif
case '104': // Annonce Bodacc Complète
case '105': // Structure dirigeants
$tabLigne=str_split($chaine, $lonLigne);
foreach ($tabLigne as $i=>$ligne) {
$str.=initstr($typeLigne.$enteteLigne.$ligne, LONGUEUR_LIGNE_SORTIE).$eol;
$nbLignes++;
}
break;
default:
die("ERREUR : Structure de sortie n°$typeLigne non prise en charge !\n");
break;
}
return $str;
}
function getListeAdherents($prestation, $codeAdherent='') {
$strCodeAdherent='';
if ($codeAdherent<>'') $strCodeAdherent.=" AND q.loginprestation_c='$codeAdherent' ";
$iDbCrm=new WDB('sugarcrm');
$rep=$iDbCrm->select('cases_cstm q, accounts a, cases p LEFT JOIN contacts_cases k ON p.id = k.case_id LEFT JOIN contacts c ON k.contact_id = c.id LEFT JOIN contacts_cstm s ON c.id = s.id_c',
'p.id, p.case_number, p.name, p.account_id, a.name, q.typeprestation_c, q.datemiseenplace_c, q.datefinprestation_c, q.prestatest_c, q.loginprestation_c, q.passwordprestation_c, q.supportprestation_c, q.optionsupport_c, q.freqenvois_c, q.formatdesenvois_c, q.trtnumerotour_c, q.trtdatederniereexec_c*1 as derniereExec, q.optionsprestation_c, k.contact_id, k.deleted as lienContactDeleted, c.deleted as ContactDeleted, c.salutation, c.first_name, c.last_name, c.title, c.department, c.phone_mobile, c.phone_work, c.phone_fax, c.email1, c.email2, c.primary_address_street, c.primary_address_city, c.primary_address_postalcode, s.typedecontact_c', "p.deleted=0 AND p.id=q.id_c AND q.typeprestation_c='$prestation' AND q.prestationactive_c=1 AND p.account_id=a.id AND a.deleted=0 $strCodeAdherent ORDER BY p.case_number ASC", true, MYSQL_ASSOC);
//print_r($rep);
$tabPrestation=array();
foreach ($rep as $i=>$contacts) {
$numPrestation=$contacts['case_number'];
if ($contacts['lienContactDeleted']==0 && $contacts['ContactDeleted']==0) {
if ($contacts['email1']<>'') $email=$contacts['email1'];
else $email=$contacts['email2'];
if (!isset($tabPrestation[$numPrestation])) {
// echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n";
$tabPrestation[$numPrestation]=array(
'id'=>$contacts['case_number'],
'idPrestationBdd'=>$contacts['id'],
'nomClient'=>$contacts['name'],
'typePrestation'=>$contacts['typeprestation_c'],
'dateDebut'=>$contacts['datemiseenplace_c'],
'dateFin'=>$contacts['datefinprestation_c'],
'test'=>$contacts['prestatest_c'],
'loginPrestation'=>$contacts['loginprestation_c'],
'passwPrestation'=>$contacts['passwordprestation_c'],
'supportPrestation'=>$contacts['supportprestation_c'],
'optionSupport'=>$contacts['optionsupport_c'],
'freqEnvois'=>$contacts['freqenvois_c'],
'formatEnvois'=>$contacts['formatdesenvois_c'],
'numeroDeTour'=>$contacts['trtnumerotour_c'],
'dateDerniereExec'=>$contacts['derniereExec']*1,
'optionPrestation'=>$contacts['optionsprestation_c'],
'contacts'=>array(array( 'salutation'=>$contacts['salutation'],
'prenom'=>$contacts['first_name'],
'nom'=>$contacts['last_name'],
'fonction'=>$contacts['title'],
'tel_por'=>$contacts['phone_mobile'],
'tel_bur'=>$contacts['phone_work'],
'tel_fax'=>$contacts['phone_fax'],
'email'=>$email,
'adresse'=>$contacts['primary_address_street'],
'ville'=>$contacts['primary_address_city'],
'codePos'=>$contacts['primary_address_postalcode'],
'typeContact'=>$contacts['typedecontact_c'])));
} else {
// echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n";
$tabPrestation[$numPrestation]['contacts']=array_merge($tabPrestation[$numPrestation]['contacts'], array(
array( 'salutation'=>$contacts['salutation'],
'prenom'=>$contacts['first_name'],
'nom'=>$contacts['last_name'],
'fonction'=>$contacts['title'],
'tel_por'=>$contacts['phone_mobile'],
'tel_bur'=>$contacts['phone_work'],
'tel_fax'=>$contacts['phone_fax'],
'email'=>$email,
'adresse'=>$contacts['primary_address_street'],
'ville'=>$contacts['primary_address_city'],
'codePos'=>$contacts['primary_address_postalcode'],
'typeContact'=>$contacts['typedecontact_c'])));
}
}}
return $tabPrestation;
}
echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion BODACC.\n";
/** On récupère la liste des Adhérents **/
//die(print_r(getListeAdherents('extranet')));
$tabAdherents=getListeAdherents($typePrestaton, $codeAdherent);
//print_r($tabAdherents);die();
$nbClients=count($tabAdherents);
echo date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) à servir en diffusion BODACC.".EOL;
//print_r($tabAdherents);die();
foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
{
$clientNumTourFichier=($tabAdherent['numeroDeTour']*1)+1;
$clientIdentifiant=trim($tabAdherent['loginPrestation']);
$nomClient=trim($tabAdherent['nomClient']);
$numPrestation=$tabAdherent['id'];
/** Le client souhaite une compression du fichier ? **/
if (strpos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip';
elseif (strpos($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";
else $optionEOL=EOL;
$tabOptOutput=array();
if($tabAdherent['dateDebut']<>'' && $tabAdherent['dateDebut']<>'0000-00-00')
$dateDebutPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDebut']);
else
$dateDebutPrestation=false;
if($tabAdherent['dateFin']<>'' && $tabAdherent['dateFin']<>'0000-00-00')
$dateFinPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateFin']);
else
$dateFinPrestation=false;
//die($tabAdherent['dateDerniereExec']);
if ($ignoreDateDerExec)
$dateDernierTraitement=false;
elseif ($tabAdherent['dateDerniereExec']<>0)
$dateDernierTraitement=$tabAdherent['dateDerniereExec'];//WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDerniereExec']);
else
$dateDernierTraitement=false;
if ($dateDebutPrestation && $dateDebutPrestation>DATE) // La date de démarrage de la prestation n'est pas encore arrivée
{
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : La prestation démarre le $dateDebutPrestation !".EOL;
continue;
}
if ($dateFinPrestation && DATE>$dateFinPrestation) // La date de fin de la prestation est révolue
{
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fin de la prestation le $dateFinPrestation (Dernière exécution le $dateDernierTraitement) !".EOL;
continue;
}
if ($dateDernierTraitement && substr($dateDernierTraitement,0,8)*1==DATE*1)
{ echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement déjà exécuté aujourd'hui !".EOL;
continue;
} elseif ($dateDernierTraitement==0) {
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Jamais exécutée pour ce client !".EOL;
$dateDernierTraitement=false;
/* Il faudra vérifier si on génère le stocke et depuis quand sinon on prond le dernier Bodacc */
}// Bloc a décommenter
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Export des annonces en cours... (dernier traitement le $dateDernierTraitement)".EOL;
/**
** On génère la ligne d'entête
**/
$fp=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', 'w');
if ($fp==false) die('ERREUR : Impossible de créer le fichier !');
error_reporting(E_ALL ^ E_NOTICE);
$str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date de génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr(VERSION_FICHIER_BODACC, 4) . // Type de prestation
initstr(FILLER, 1901) . // FILLER
'';
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes=1;
/**
** On génère les lignes de détail
**/
$strRubrique='';
if (strpos($tabAdherent['optionPrestation'], 'comptes')) // Export du Bodacc C - Dépôt des comptes
$strRubrique.="'comptes',";
if (strpos($tabAdherent['optionPrestation'], 'creations')) // Export des créations
$strRubrique.="'creations',";
if (strpos($tabAdherent['optionPrestation'], 'mmd')) // Export des MMD
$strRubrique.="'mmd',";
if (strpos($tabAdherent['optionPrestation'], 'procol')) // Export des ProCol
$strRubrique.="'procol',";
if (strpos($tabAdherent['optionPrestation'], 'radiations')) // Export des radiations
$strRubrique.="'radiations',";
if (strpos($tabAdherent['optionPrestation'], 'ventes')) // Export des ventes cessions
$strRubrique.="'ventes',";
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
$tabOptOutput[105]=true; else $tabOptOutput[105]=false;
$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]);
//die(print_r($tabNaf));
}
$versionEvenClient=0;
if (preg_match('/^versionEven=(.*)$/mUi', $tabAdherent['optionPrestation'], $matches))
$versionEvenClient=$matches[1]*1;
/*$tabSiren2=array();
foreach ($tabSiren as $siren) {
$tabSiren2[]=$siren['siren'];
}
sort($tabSiren2);
$tabSiren=$tabSiren2;
unset($tabSiren2);
//die();*/
$fields='d.id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, 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, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert';
$where='1';
// On filtre les rubriques demandées
if ($strRubrique<>'') $where.=' AND Rubrique IN('. substr($strRubrique,0,strlen($strRubrique)-1) .') ';
// On ne prend que les dernières annonces depuis la dernière exécution de la prestation pour le client
if ($dateDernierTraitement) {
if (!$retroActivite)
$where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement) ";
else {
$where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement OR (d.dateInsert>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) OR (d.dateUpdate>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) ) ";
}
}
// ... sinon on prend les annonces depuis la date de début de la prestation
elseif ($dateDebutPrestation)
if (!$retroActivite)
$where.=" AND (d.dateInsert>'$dateDebutPrestation' OR d.dateUpdate>'$dateDebutPrestation') ";
else
$where.=" AND (d.dateInsert>'$dateDebutPrestation' OR d.dateUpdate>'$dateDebutPrestation' OR (d.dateInsert>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateSuppr=0) OR (d.dateUpdate>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateSuppr=0) ) ";
else
$where.=" AND (d.dateInsert>='MAX(DATE_FORMAT(d.dateInsert,'%Y-%m-%d'))' OR d.dateUpdate>='MAX(DATE_FORMAT(d.dateUpdate,'%Y-%m-%d'))') ";
/*if (!$retroActivite)
$where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement) ";
else {
$where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement OR (d.dateInsert>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) OR (d.dateUpdate>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) ) ";
}*/
// $where.=" AND Bodacc_Date_Parution>'2007-11-01' "; // Mederic a supprimer après la rétro du 22 mai 2008
if ($typePrestaton=='diffusionBodacc') {
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : diffusion...".EOL;
$tables='bodacc_detail d';
// Credit safe
// if ($numPrestation==11)
// $where=" d.siren<>0 AND d.sirenValide=1 AND Bodacc_Date_Parution BETWEEN '2007-01-01' AND '2007-12-31' ";
if (count($tabNaf)>0) {
$strNaf="'".implode("','",$tabNaf)."'";
$fields='d.id';
$tables='bodacc_detail d, etablissements e';
$where.=" AND d.siren=e.siren AND d.siren<>0 AND (e.ape_etab IN ($strNaf) OR e.ape_entrep IN ($strNaf)) AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 GROUP BY d.id;";
// OR (d.siren<>e.siren AND d.siren=0 AND (d.activite LIKE '%pharmacie%' OR d.activite LIKE '%officine%')) GROUP BY d.id
}
}
elseif ($typePrestaton=='surveillanceBodacc') {
$tabSiren=$iDb->select('surveillances_listes', 'siren, ref', "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';
$tables='bodacc_detail d, surveillances_listes s';
$where.=" AND d.siren=s.siren AND s.siren<>0 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' ";
if (!$retroActivite)
$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 ";
/*dateAjout dateConf dateSuppr rs cp ville indTrt dateDerEnvoi
Modifier SURBODPRDFTSMEDERIC 484968573 00010 201278081 2008-04-04 0000-00-00 0000-00-00*/
}
else die('Type de prestation non gérée : '.$typePrestaton.EOL);
//$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; // NE PAS ENVOYER D'ANNONCES DONT LES DELAIS DE FORCLUSION SONT PASSEES
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); // Gérer la table surveillance
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces annonces à traiter...".EOL;
//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 (count($tabNaf)>0) {
$fields='d.id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, 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, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert';
$tables='bodacc_detail d';
$where='d.id IN (0';
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
$where.=','.$annonce['id'];
}
$where.=')';
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')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces liens entrep/annonces à traiter...".EOL;
}
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;
//echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL;
//while(=$iDb->fetch(MYSQL_ASSOC)) {
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
/** Marquer les liens REF/SIREN envoyées à chaque client
** Gérer les versions de tables even pour les clients
**
** Renvoyer le stock à médéric
**/
//print_r($annonce);
//$k++;
//$siren=$record['siren'];***/
//foreach ($tabAnnonces as $numAnn=>$annonce) {
// On récupère les 2 intervenants de la procédure
//if (!in_array($annonce['siren'], $tabSiren)) continue;
$numInter=0;
$inter=array();
if ($annonce['mandNom']<>'' || $annonce['mandCP']<>0) {
$inter[$numInter]['type']='M'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['mandNom'];
$inter[$numInter]['Repr']=$annonce['mandRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['mandAdresse'];
$inter[$numInter]['CP']=$annonce['mandCP'];
$inter[$numInter]['Ville']=$annonce['mandVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
if ($annonce['creaNom']<>'' || $annonce['creaCP']<>0) {
$inter[$numInter]['type']='R'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['creaNom'];
$inter[$numInter]['Repr']=$annonce['creaRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['creaAdresse'];
$inter[$numInter]['CP']=$annonce['creaCP'];
$inter[$numInter]['Ville']=$annonce['creaVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
if ($annonce['admNom']<>'' || $annonce['admCP']<>0) {
$inter[$numInter]['type']='A'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['admNom'];
$inter[$numInter]['Repr']=$annonce['admRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['admAdresse'];
$inter[$numInter]['CP']=$annonce['admCP'];
$inter[$numInter]['Ville']=$annonce['admVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}
/* if ($annonce['oppoNom']<>'' || $annonce['oppoCP']<>0) {
$inter[$numInter]['type']='O'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter[$numInter]['SIRET']=0;
$inter[$numInter]['Nom']=$annonce['oppoNom'];
$inter[$numInter]['Repr']=$annonce['oppoRepr'];
$inter[$numInter]['adrNum']='';
$inter[$numInter]['adrBis']='';
$inter[$numInter]['adrType']='';
$inter[$numInter]['adrLib']=$annonce['oppoAdresse'];
$inter[$numInter]['CP']=$annonce['oppoCP'];
$inter[$numInter]['Ville']=$annonce['oppoVille'];
$inter[$numInter]['Tel']='';
$numInter++;
}*/
$tribunalCode=$iDb2->select('bodacc', 'Tribunal_Code', 'id='.$annonce['id'], false);
$tribunalCode=$tribunalCode[0][0];
$refLigneClient=@$annonce['ref'];
$tabEven2=explode(';',$annonce['typeEven']);
$tabEven=array();
foreach ($tabEven2 as $even) {
$versionEven=$iBodacc->getVersionEvenement($even);
if ($versionEven==0 || $versionEven<=$versionEvenClient)
$tabEven[]=$even;
else {
if ($even<2000) $even2=1999;
elseif ($even<3000) $even2=2312;
elseif ($even<4000) $even2=3999;
elseif ($even<5000) $even2=4999;
elseif ($even<6000) $even2=5999;
elseif ($even<7000) $even2=6700;
else $even2=1999;
$tabEven[]=$even2;
// echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Evènement $even non géré en v$versionEvenClient : $even2".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
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
initstr(FILLER, 5) . // On garde la place pour le NIC
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C)
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
// R=Rectif, S=Suppression
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée
// (ex: 230A, 001B)
// initstr($annonce['corrTexteRectificatif'], XXXXXX, '0', ALIGN_RIGHT) . // Si diff. I,
// initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8, '0') . // Date de l'intégration en bae S&D
initstr($refLigneClient, 18) . // REFERENCE DU CLIENT
initstr($tribunalCode, 6) .
initstr($annonce['RC'], 9) . // Numéro de RC (Registre du Commerce) de l'entreprise
initstr($annonce['raisonSociale'], 150) . // Raison sociale de l'entreprise
initstr($annonce['nomCommercial'], 100) . // Nom commercial de l'entreprise
initstr($annonce['enseigne'], 100) . // Enseigne de l'établissement
initstr($annonce['nationalite'], 30) . // Nationalité si Personne physique
//initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee
initstr('0000', 4) . // FJ codification Insee
initstr($annonce['FJ'], 90) . // Forme juridique de l'entreprise déclarée au BODACC
initstr($annonce['Capital'], 15, '0', ALIGN_RIGHT) . // Capital
initstr($annonce['CapitalDev'], 3) . // Devise du capital (format ISO)
// Adresse / 150 car
initstr($annonce['adrNum'], 4, '0', ALIGN_RIGHT) . //
initstr($annonce['adrIndRep'], 1) . //
initstr($annonce['adrTypVoie'], 5) .
initstr($annonce['adrLibVoie'], 50) .
initstr($annonce['adrComp1'], 50) .
initstr($annonce['adrComp2'], 40) .
initstr($annonce['codePostal'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
// Adresse du siège / 150 car
initstr($annonce['adrNumSiege'], 4, '0', ALIGN_RIGHT) . //
initstr($annonce['adrIndRepSiege'], 1) . //
initstr($annonce['adrTypVoieSiege'], 5) .
initstr($annonce['adrLibVoieSiege'], 50) .
initstr($annonce['adrComp1Siege'], 50) .
initstr($annonce['adrComp2Siege'], 40) .
initstr($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
initstr(implode('',$tabEven), 32, '0', ALIGN_RIGHT) . // Code Evènement Bodacc n°1 à 8
initstr($annonce['publicationNom'], 100) . // NOM du JAL si publication
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['publicationDate']), 8) . // Date de publication du JAL si publication
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateCessationPaiement']), 8) . // Date de cessation des paiements
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateJugement']), 8) . // Date du jugement
initstr(FILLER, 1) . // FILLER (Replace type de création)
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateDebutActivite']), 8) . // Date de début d'activité
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateEffet']), 8) . // Date d'effet (Ventes/MMD)
// ou Date clôture exercice si ann dépôt comptes
initstr($annonce['VenteMt'], 15, '0', ALIGN_RIGHT) . // Montant de la vente
initstr($annonce['VenteDev'], 3) . // Devise de la ventre
initstr($annonce['Numero'], 35) . // Numéro de l'affaire au greffe
initstr($inter[0]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
initstr($inter[0]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
initstr($inter[0]['Nom'], 80) . // Raison sociale
initstr($inter[0]['Repr'], 80) . // Représentant
initstr($inter[0]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
initstr($inter[0]['adrBis'], 1) . // Adresse, Bis/Ter
initstr($inter[0]['adrType'], 4) . // Adresse, type de voie
initstr($inter[0]['adrLib'], 32) . // Adresse, libellé de la voie
initstr($inter[0]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
initstr($inter[0]['Ville'], 45) . // Adresse, commune
initstr($inter[0]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
initstr($inter[1]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
initstr($inter[1]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
initstr($inter[1]['Nom'], 80) . // Raison sociale
initstr($inter[1]['Repr'], 80) . // Représentant
initstr($inter[1]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
initstr($inter[1]['adrBis'], 1) . // Adresse, Bis/Ter
initstr($inter[1]['adrType'], 4) . // Adresse, type de voie
initstr($inter[1]['adrLib'], 32) . // Adresse, libellé de la voie
initstr($inter[1]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
initstr($inter[1]['Ville'], 45) . // Adresse, commune
initstr($inter[1]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
initstr(FILLER/*$annonce['JugeCommissaireNom']*/, 30) . // NOM du JugeCommissaire
initstr(FILLER/*$annonce['JugeCommissairePrenom']*/, 30) . // Prénom du JugeCommissaire
initstr(FILLER/*$annonce['JugeCommissaireSupplNom']*/, 30) . // NOM du JugeCommissaire suppléant
initstr(FILLER/*$annonce['JugeCommissaireSupplPrenom']*/, 30) . // Prénom du JugeCommissaire suppléant
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinDepotCreances']), 8) . // Date limite pour le dépôt des créances
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinObservation']), 8) . // Date de fin de la période d'observation
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8) . // Date d'insertion dans la base S&D
'';
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
// if ($tabOptOutput['commentaire']==true && $annonce['commentaires']<>'')
// fwrite($fp, '101'.initsrt($annonce['commentaires'],1500).$eol); // Commentaire textuel si nécessaire
$enteteL= initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
initstr(FILLER, 5) . // On garde la place pour le NIC
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C)
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
// R=Rectificatif, S=Suppression
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce différent de I, numéro de l'annonce corrigée
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parution dans l'année de annonce corri(ex: 230A, 001B)
initstr($refLigneClient, 18) . // REF CLI
'';
if ($tabOptOutput[101]==true && $annonce['commentaires']<>'') // Commentaires
fwrite($fp, genereMultiLigne('101', $enteteL, $annonce['commentaires'], $optionEOL, $nbLignes));
if ($tabOptOutput[102]==true && $annonce['activite']<>'') // Activité déclarée au Bodacc
fwrite($fp, genereMultiLigne('102', $enteteL, $annonce['activite'], $optionEOL, $nbLignes));
if ($annonce['corrTexteRectificatif']<>'') // Texte rectificatif
fwrite($fp, genereMultiLigne('103', $enteteL, $annonce['corrTexteRectificatif'], $optionEOL, $nbLignes));
if ($tabOptOutput[104]==true) { // Annonce Bodacc Complète
$annoncetxt=$iDb2->select('bodacc', 'annonce', 'id='.$annonce['id'], false);
$annoncetxt=$annoncetxt[0][0];
fwrite($fp, genereMultiLigne('104', $enteteL, $annoncetxt, $optionEOL, $nbLignes));
}
if ($tabOptOutput[105]==true) { // Liste des dirigeants
$annonceDir=$iDb2->select('bodacc_dirigeants', 'id, num, dateEffet, fonction, rs, nom, prenom, nomUsage', 'id='.$annonce['id'], true);
$strDir='';
foreach ($annonceDir as $k=>$dir) {
$strDir.=initstr(WDate::dateT('Y-m-d','Ymd',$dir['dateEffet']), 8, '0', ALIGN_RIGHT) . // Date de la prise de fonction
initstr($dir['fonction'], 4) . // Code Fonction S&D
initstr($dir['rs'], 80) . // Raison Sociale du dirigeant
initstr($dir['nom'], 50) . // NOM du dirigeant
initstr($dir['prenom'], 100) . // Prenom
initstr($dir['usage'], 50); // Nom d'usage
if ($k%6==0) $strDir.=initstr(' ', 28);
else $strDir.=initstr(' ', 26);
}
fwrite($fp, genereMultiLigne('105', $enteteL, $strDir, $optionEOL, $nbLignes));
}
if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n";
}
/**
** On génère la ligne de fin de fichier
**/
$nbLignes++;
$str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier
'';
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;
/** 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),
"id_c='".$tabAdherent['idPrestationBdd']."'");
}
/** Conversion du fichier si nécessaire en CSV
**/
if ($tabAdherent['formatEnvois']=='csv') {
$ligneOut='';
$ligne001=$ligne100=$ligne104=$ligne999=0;
$tabLignes=file(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$fichier_csv=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv';
$fp=fopen(REP_TEMP . $fichier_csv, 'w');
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)';
$dateEve='Date évènement';
$txtAnn ='Texte Annonce';
$ligne001++;
break;
case 100: // Structure Bodacc
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn";
$ligne100++;
$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
$dateEve1=substr($ligne, 1144, 8 ); // Date de jugezment
$dateEve2=substr($ligne, 1161, 8 ); // Date d'effet, etc...
if ($dateEve1>0)
$dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve1);
elseif ($dateEve2>0)
$dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve2);
else
$dateEve='';
$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);
$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)." ($codeEven), ";
$catEven=$iBodacc->getChapitreEvenement($codeEven);
}
else
$txtEven.='';
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
$txtAnn='';
$ecrireLignePre=true;
break;
case 104: // Annonce
$ligne104++;
$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce
break;
case 999: // Ligne ignorée
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn";
$ligne999++;
$ecrireLignePre=true;
break;
default: // Ligne non gérée
break;
}
if ($ecrireLignePre) fwrite($fp, $ligneOut.EOL);
}
fclose($fp);
echo date ('Y/m/d - H:i:s')." - Conversion du fichier $fichier_csv terminée !".EOL;
}
/*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/
switch ($optionZip) {
case 'zip':
$zip = new ZipArchive;
$ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip';
$res = $zip->open($repProduction.$ficProduction, ZipArchive::CREATE);
if ($res === TRUE) {
// $zip->addFromString('test.txt', 'file content goes here');
$zip->addFile( REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt',
$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
if ($tabAdherent['formatEnvois']=='csv')
$zip->addFile(REP_TEMP. $fichier_csv, $fichier_csv);
$zip->close();
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.zip OK...'.EOL;
} else {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Zip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
}
break;
case 'gzip':
$ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz';
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$gz = gzopen($repProduction.$ficProduction,'w9');
if (!$gz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
gzwrite($gz, $string);
gzclose($gz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.gz OK...'.EOL;
}
if ($tabAdherent['formatEnvois']=='csv') {
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.gz';
$string=file_get_contents(REP_TEMP. $fichier_csv);
$gz = gzopen($repProduction.$ficProduction_csv,'w9');
if (!$gz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier $fichier_csv impossible !".EOL;
} else {
gzwrite($gz, $string);
gzclose($gz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL;
}
}
break;
case 'bzip2':
$ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.bz2';
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$bz = bzopen($repProduction.$ficProduction,'w');
// Ne sait pas si le niveau de compression 1 à 9 est implémenté pour cette fonction
if (!$bz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 impossible pour ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.bz2 OK...'.EOL;
}
if ($tabAdherent['formatEnvois']=='csv') {
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.bz2';
$string=file_get_contents(REP_TEMP. $fichier_csv);
$bz = bzopen($repProduction.$ficProduction_csv,'w');
if (!$bz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 du fichier $fichier_csv impossible !".EOL;
} else {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL;
}
}
break;
default:
$ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt';
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv';
if (!copy(REP_TEMP.$ficProduction, $repProduction.$ficProduction))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été créé...".EOL;
if ($tabAdherent['formatEnvois']=='csv') {
if (!copy(REP_TEMP.$ficProduction_csv, $repProduction.$ficProduction_csv))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été créé...".EOL;
}
break;
}
/** Sauvegarde des fichiers dans clients **/
$repBakClient='/home/data/clients/'.strtolower($tabAdherent['nomClient']);
if (!file_exists($repBakClient)) {
echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers BACKUP du client ne sont pas correctement créés !".EOL;
if (!file_exists($repBakClient) && mkdir($repBakClient))
echo date ('Y/m/d - H:i:s')." - Le dossier Backup du client a été créé ($repBakClient)".EOL;
// if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
// echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL;
}
if (!copy($repProduction.$ficProduction, $repBakClient.'/'.$ficProduction))
echo date ('Y/m/d - H:i:s')." - ERREUR : Copy du fichier $ficProduction dans Backup impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été historisé...".EOL;
if ($tabAdherent['formatEnvois']=='csv') {
if (!copy($repProduction.$ficProduction_csv, $repBakClient.'/'.$ficProduction_csv))
echo date ('Y/m/d - H:i:s')." - ERREUR : Historisation du fichier $ficProduction_csv impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été historisé...".EOL;
}
/** 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']);
if (!file_exists($repFtpClient) || !file_exists($repFtpClient.'/recv')) {
echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers FTP du client ne sont pas correctement créés !".EOL;
if (!file_exists($repFtpClient) && mkdir($repFtpClient))
echo date ('Y/m/d - H:i:s')." - Le dossier FTP du client a été créé ($repFtpClient)".EOL;
if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL;
}
if (!move($repProduction.$ficProduction, $repFtpClient.'/recv/'.$ficProduction))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction dans FTP/RECV impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été déplacé dans FTP/RECV...".EOL;
if ($tabAdherent['formatEnvois']=='csv') {
if (!move($repProduction.$ficProduction_csv, $repFtpClient.'/recv/'.$ficProduction_csv))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv dans FTP/RECV impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été déplacé dans FTP/RECV...".EOL;
}
}
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,436 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
function exporte($txt, $lon=-1, $sep="|") {
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($lon==-1) return $txt.$sep;
elseif ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
else return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
function choixAdr($bodEtab, $bodSiege, $insee) {
if (strlen(trim($bodSiege))>0) $adr=trim($bodSiege);
elseif (strlen(trim($bodEtab))>0) $adr=trim($bodEtab);
else $adr='';
if (isset($insee) && trim($insee)<>'') return $insee;
else return $adr;
}
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;
$iDb=new WDB('jo');
$iDb2=new WDB('historiques');
$iDb3=new WDB('tmp');
$iInsee=new MInsee();
$iBilan=new MBilans(0);
$iLiens=new MLiens(0);
$iCotation=new ICotation(array());
$presta=false;
$date=date('Ymd');
$tabFichier=array();
$nbSirValides=$nbSirInvalides=0;
$nbNicValides=$nbNicInvalides=0;
$nbInsert=0;
$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.
Options :
-1 Prestation 1
-2 Prestation 2
-v Verbosité maximum
";
$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 '1': $presta=1; break;
case '2': $presta=1; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else $tabFichier[]=$argv[$i];
}
}
if (count($tabFichier)==1) {
/* Chargement du fichier Entrant adecco */
$nomFichier=$tabFichier[0];
$fp=fopen($nomFichier, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier Adecco à 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, 4096));
}
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier '$nomFichier' ($nbLignes lignes à traiter).".EOL;
rewind($fp);
/** Traitement de la 1ère ligne **/
$ligne = trim(fgets($fp, 4096));
if ($ligne<>'adREF|adSIREN|adNIC|adRAISON_SOCIALE|adADRESSE|adFILLER|adCP|adNAF2008|adTRANCHE_EFFECTIF|adCEDEX|adCODE_COMMUNE|adVILLE|adVILLE_CDX|ADSE')
die('Première ligne du flux Adecco innatendue !'.EOL);
$dateInsert=date('YmdHis');
$nbLignesLues=1;
while (!feof($fp))
{
$nbLignesLues++;
$a=array();
$ligne = trim(fgets($fp, 4096));
$tabEtab=explode('|', $ligne);
$a['adREF'] = $tabEtab[0];
$a['adSIREN'] = $tabEtab[1];
$a['adNIC'] = $tabEtab[2];
$a['adRAISON_SOCIALE'] = $tabEtab[3];
$a['adADRESSE'] = $tabEtab[4];
$a['adFILLER'] = $tabEtab[5];
$a['adCP'] = $tabEtab[6];
$a['adNAF2008'] = $tabEtab[7];
$a['adTRANCHE_EFFECTIF']= $tabEtab[8];
$a['adCEDEX'] = $tabEtab[9];
$a['adCODE_COMMUNE'] = $tabEtab[10];
$a['adVILLE'] = $tabEtab[11];
$a['adVILLE_CDX'] = $tabEtab[12];
$a['ADSE'] = $tabEtab[13];
if (!$iInsee->valideSiren($a['adSIREN'])) {
$a['sirenValide']=0;
$a['nicValide']=0;
$nbNicInvalides++;
$nbSirInvalides++;
} else {
$a['sirenValide']=1;
$nbSirValides++;
if (!$iInsee->valideSiren($a['adSIREN'], $a['adNIC'])) {
$a['nicValide']=0;
$nbNicInvalides++;
} else {
$a['nicValide']=1;
$nbNicValides++;
}
}
$a['siret']=''.$tabEtab[1].''.$tabEtab[2];
if ($iDb3->insert('adecco_in', $a))
$nbInsert++;
else
die(mysql_error().EOL);
}
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 ($presta<>1 && $presta<>2) {
if (count($tabFichier)<>1)
echo date('Y/m/d - H:i:s') ." - Prestation '$presta' inconnue !".EOL;
die();
}
$fp=fopen('/home/data/clients/adecco/adecco'.$presta."_$date.txt",'w');
// Ligne d'entête
fwrite($fp, "adSIREN|adNIC|adREF|adRAISON_SOCIALE|adADRESSE|adFILLER|adCP|adVILLE|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);
//exporteAdecco('32392385400059','ref',$fp, $presta,'','','','','');
//die();
if ($presta==1) {
//$nbRows=$iDb->select('tmp.adecco', 'REF, SIREN, NIC, siret, RAISON_SOCIALE, ADRESSE, FILLER, CP, VILLE', "nafet IN('7810Z', '7820Z', '7830Z')", true, MYSQL_ASSOC, true);
$nbRows=$iDb->select('tmp.adecco_in',
'ID_LEA AS REF, SIREN, NIC, CONCAT(SIREN,NIC) AS siret, RAISON_SOCIALE, ADRESSE1 AS ADRESSE, ADRESSE2 AS FILLER, CODE_POSTAL AS CP, VILLE/*CODE_COMMUNE, CEDEX*/',
'1', 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, $tabTmp['RAISON_SOCIALE'], $tabTmp['ADRESSE'], $tabTmp['FILLER'], $tabTmp['CP'], $tabTmp['VILLE']);
}
/** @toto Presta 1 :
- enregistrer chaque ligne fourni en bdd
- vérifier les fusions
*/
} else {
/** @todo
- Non présents dans le fichier source Adecco
- Non Fournis dans le fichier principal (Déménagements, et affectation de NIC valide)
etab >= à 10 salariés, France entière avec Corse et les DOM TOM. Les sociétés étrangères immatriculées au RCS sont à exclure.
Les 2 NAF suivants sont à exclure
6820B = SCI/location de terrains
7020Z = Holding
*/
$iDb->query('SELECT siret FROM tmp.`adecco_in` UNION SELECT siretTrouve AS siret FROM tmp.`adecco_out`;');
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...".EOL;
$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') AND eff_etab>9", 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();
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
if (!in_array($tabTmp['siret'], $tabSiret))
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta);
}
}
echo date('Y/m/d - H:i:s') ." - Fin de la prestation Adecco en Presta $presta.".EOL;
fclose($fp);
die();
function exporteAdecco($siret,$ref,$fp=false, $presta, $RAISON_SOCIALE='', $ADRESSE='', $FILLER='', $CP='', $VILLE='') {
global $iDb2,$iDb3,$iLiens,$iBilan,$iInsee;
$siren=substr($siret,0,9);
$nic=substr($siret,9,5);
$strIdentite="
SIREN,NIC,NOM AS L1_nomen,NOM2 AS L2_ComP,ADR_COMP AS L3_cadr,
NULL AS L4_VOIE, ADR_DISTSP AS L5_disp, NULL AS L6_POST, PAYS AS L7_ETRG, '' AS ZR1, NULL AS RPET, ADR_DEP AS insdepet,
NULL AS ARRONET, NULL AS CTONET, ADR_COM AS comet, ADR_LIBCOM AS libcom, NULL AS DU, NULL AS TU, NULL AS UU,
ADR_CP AS codpos, '' AS ZR2, NULL AS TCD, NULL AS ZEMET, CODEVOIE, ADR_NUMVOIE AS NUMVOIE, ADR_BTQ AS INDREP,
ADR_TYPVOIE AS TYPVOIE, ADR_LIBVOIE AS LIBVOIE, ENSEIGNE, APE_ETAB AS apet700, '' AS ZR3, SIEGE,
TEFF_ET AS tefet, EFF_ET AS efetcent, ORIGINE, DCRET, NULL AS MMINTRET, ACTIVNAT, LIEUACT, ACTISURF, SAISONAT, MODET,
DAPET, DEFET, EXPLET, PRODPART, AUXILT, NULL AS EAEANT, NULL AS EAEAPET, NULL AS EAESEC1T, NULL AS EAESEC2T, NOM AS nomen,
SIGLE, CIVILITE, CJ, TEFF_ENT AS tefen, EFF_ENT AS efencent, APE_ENT AS insapen700, '' AS ZR4, APRM, TCA,
NULL AS RECME, DAPEN, DEFEN, DCREN,NULL AS MMINTREN, MONOACT, MODEN, EXPLEN, NULL AS EAEANN, NULL AS EAEAPEN,
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";
$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,
insZEMET AS ZEMET, insDU AS DU, insTU AS TU, insUU AS UU, insMMINTRET AS MMINTRET, insMMINTREN AS MMINTREN, insRECME AS RECME,
insEAEANT AS EAEANT, insEAEAPET AS EAEAPET, insEAESEC1T AS EAESEC1T, insEAESEC2T AS EAESEC2T, insEAEANN AS EAEANN,
insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAESEC3N AS EAESEC3N, insEAESEC4N AS EAESEC4N";
$ret=$iDb2->select('insee.identite', $strIdentite, "SIREN=$siren AND NIC=$nic", false);
$ret2=$iDb2->select('insee.insee_notices', $strNotice, "insSIREN=$siren AND insNIC=$nic", false, MYSQL_ASSOC);
//echo '2:'.mysql_error().EOL;
//$ret=$iDb2->select('historiques.notice_201012', 'insSIREN,insNIC,insL1_nomen,insL2_ComP,insL3_cadr,insL4_VOIE,insL5_disp,insL6_post,insL7_ETRG,insZR1,insrpet,insdepet,insarronet,insctonet,inscomet,inslibcom,insdu,insTu,insuu,inscodpos,insZR2,instcd,inszemet,inscodevoie,insNUMVOIE,insINDREP,insTYPVOIE,insLIBVOIE,insENSEIGNE,insapet700,insZR3,inssiege,instefet,insefetcent,insorigine,insdcRET,insMMIntrET,insACTIVNAT,insLIEUACT,insACTISURF,inssaisonat,insMODET,insdapet,insdefet,insEXPLET,insProdpart,insauxilt,inseaeant,inseaeapet,inseaesec1t,inseaesec2t,insnomen,inssigle,insCIVILITE,inscj,instefen,insefencent,insapen700,insZR4,insaprm,instca,insrecme,insdapen,insdefen,insdcren,insmmintren,insmonoact,insMODEN,insEXPLEN,inseaeann,insEAEapen,inseaesec1n,inseaesec2n,inseaesec3n,inseaesec4n,insnbETEXPL,instcaexp,insregimp,insmonoreg,insrpen,insdepcomen', "siret='$siret'", false);
$even=$evenDate=$nomPrenomDir=$YP=$pctAct=$sirenAct=$nomAct='';
$strOut="$siren|$nic|$ref|$RAISON_SOCIALE|$ADRESSE|$FILLER|$CP|$VILLE|";
if (count($ret)==0) {
/*$actif=0;
$strOut.="$siren|$nic|";
for($i=0;$i<79;$i++)
$strOut.='|';*/
$even='Siren/Siret invalide';
// Recherche par IDENTITE
$deb=0;$nbRep=20;$maxRep=20;$siege=$actif='';
$nomIn=$RAISON_SOCIALE;
$adrIn=$ADRESSE;
//$FILLER
$cpIn=$CP;
$comIn=$VILLE;
$res=@$iInsee->rechercheEtab($nomIn, $adrIn, $cpIn, $comIn, $siege, $actif, $deb, $nbRep, $maxRep, false, true);
if ($res['nbReponses']>0) {
$levMin=1;
$trouve=false;
foreach ($res['reponses'] as $i=>$etab) {
//die(print_r($etab));
$size=strlen($nomIn.$etab['Nom'].$adrIn.$etab['Adresse'].$cpIn.$etab['CP'].$comIn.$etab['Ville']);
$levNom=levenshtein($nomIn,$etab['Nom']);
$levAdr=levenshtein($adrIn,$etab['Adresse']);
$levCP =levenshtein($cpIn ,$etab['CP']);
$levCom=levenshtein($comIn,$etab['Ville']);
$levTot=$levNom+$levAdr+$levCP+$levCom;
$levPct=$levTot/$size;
if ($levPct<0.15 && $levPct<$levMin) {
$trouve=true;
$siret=''.$etab['Siren'].''.$etab['Nic'];
$levMin=$levPct;
}
}
if ($trouve) {
$siren=substr($siret,0,9);
$nic=substr($siret,9,5);
$ret=$iDb2->select('insee.identite', $strIdentite, "SIREN=$siren AND NIC=$nic", false);
$ret2=$iDb2->select('insee.insee_notices', $strNotice, "insSIREN=$siren AND insNIC=$nic", false, MYSQL_ASSOC);
}
}
}
if (count($ret)==0) {
$actif=0;
$strOut.="$siren|$nic|";
for($i=0;$i<80;$i++)
$strOut.='|';
$even='Siren/Siret inexistant';
} else {
$tmp=$ret[0];
$actif=$tmp['sdActif']*1;
$nouveauSiret='';
$tabAncienSiret=array();
$nbDem=0;
while ($actif==0) {
if ($presta==2) return;
// Recherche du nouveau siret
//echo "DEB Recherche du nouveau siret pour $siren $nic actif=$actif, nbDem=$nbDem, nouveauSiret=$nouveauSiret/";
$tabAssoc=@$iInsee->getSiretAssoc($siren, $nic);
$nouveauSiret=@trim(''.$tabAssoc['suc']['siren'].
$tabAssoc['suc']['nic']);
@$tabAncienSiret[$nouveauSiret]++;
if($nouveauSiret<>'' && @$tabAncienSiret[''.$siren.$nic]<=2) {
$nbDem++;
$siren=substr($nouveauSiret,0,9);
$nic=substr($nouveauSiret,9,5);
$ret=$iDb2->select('insee.identite', $strIdentite, "SIREN=$siren AND NIC=$nic", false);
$ret2=$iDb2->select('insee.insee_notices', $strNotice, "insSIREN=$siren AND insNIC=$nic", false, MYSQL_ASSOC);
$tmp=$ret[0];
$actif=$tmp['sdActif']*1;
$even="Etablissement déménagé $nbDem fois ";
} else
break;
//echo "FIN Recherche du nouveau siret pour $siren $nic actif=$actif, nbDem=$nbDem, nouveauSiret=$nouveauSiret/";
}
//$tmp=$ret[0];
//$actif=$tmp['sdActif'];
$effet=$tmp['efetcent']*1;
$tmp2=@$ret2[0];
$afficherNotice=false;
if ($actif*1==0) {
$actif=0;
$strOut.="$siren|$nic|";
for($i=0;$i<80;$i++)
$strOut.='|';
if (@$even=='') $even='Etablissement inactif ';
else $even.='inactif ';
// Recherche du dernier Even Insee
$ret=$iDb2->select('insee.insee_even', 'insEVE,insDATEVE,insSIRETPS,idFlux,insSIRETASS', "insSIREN=$siren AND insNIC=$nic AND insEVE IN (400,410,420,425,430,435,510,530,620,621,650,795)", false, MYSQL_ASSOC);
if (count($ret)==1 ) {
$tmp=$ret[0];
/*$siret2=$tmp['insSIRETPS']*1;
if ($siret2==0) $siret2=$tmp['insSIRETASS']*1;
if ($siret2>0) $siret2=' de/vers '.$siret2;
else $siret2='';*/
$infoFusion=false;
switch ($tmp['insEVE']*1) {
case 400: $even.='suppression du doublon '; break;
case 410: $even.='cessation juridique de l\'entreprise '; $infoFusion=true; break;
case 420:
case 425: $even.='cessation économique de l\'entreprise ';$infoFusion=true; break;
case 430:
case 435: $even.='fermeture de l\'etablissement '; break;
// case 510:
// case 530: $even.='transfert'.$siret2.' '; 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;
default: $even.=' '; break;
}
$evenDate=$tmp['insDATEVE'];
if ($infoFusion) {
// Annonces BODACC Fusion/Absorptions
$tabFusion=$iInsee->getAnnoncesLegales($siren, 0, array(2700,2701,2702,2703,2710,2720,2721,2725,2726,2730,2740), false);
if (count($tabFusion)>0) {
$FUSIONPROJET_SIREN=0;
foreach ($tabFusion as $iDep=>$depot) {
if ($iDep==0)
$ANNONCEFUSDATE=$depot['DateParution'];
$ANNONCEFUS++;
$FUSIONPROJET_DATE=$depot['dateJugement']; // Date du projet de fusion
$FUSIONPROJET=$depot['complement']; // Présence d'un projet de fusion, libellé du projet
if (preg_match_all("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/", $FUSIONPROJET, $matches)) {
foreach ($matches[1] as $FUSIONPROJET_SIREN) {
$FUSIONPROJET_SIREN=strtr($FUSIONPROJET_SIREN, array('.'=>'','-'=>'', ' '=>''));
if (!$iInsee->valideSiren($FUSIONPROJET_SIREN)) $FUSIONPROJET_SIREN=0;
else break;
}
}
if ($FUSIONPROJET_SIREN*1>1000) break;
}
$even.='dans le cadre d\'une fusion ';
if ($FUSIONPROJET_SIREN>1000) $even.="avec $FUSIONPROJET_SIREN ";
}
if (strtr($evenDate,array('-'=>''))*1==0) {
$tabRad=$iInsee->getAnnoncesLegales($siren, 0, array(2000,2200,2201,2202,2203,2204,2205,2206,2208,2210,2212,6000,6001,6002,6003,6004,6005,6100,6200,6201,6300,6400,6500,6600,6700), false);
$evenDate=$tabRad[0]['DateParution'];
}
}
}
} else {
foreach ($tmp as $i=>$value) {
if (is_numeric($i)) {
if ($value===null)
$afficherNotice=true;
else {
$strOut.=str_replace('|',' ',$tmp[$i]).'|';
$afficherNotice=false;
}
} else {
if ($afficherNotice) {
$strOut.=str_replace('|',' ',$tmp2[$i]).'|';
}
}
}
if ($presta==2 && ($effet<10 || $actif==0)) return;
// Dirigeant
$ret=$iDb2->select('jo.etablissements', 'dirNom,dirPrenom', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC);
$tmp=@$ret[0];
$nomPrenomDir=trim($tmp['dirPrenom'].' '.$tmp['dirNom']);
// Actionnaire
$tabAct=$iLiens->getActionnaires($siren, true);
foreach ($tabAct as $i=>$lien) {
$sirenAct=$lien['Siren'];
//die(print_r($lien));
if($sirenAct>100 && ($lien['PminNum']>=50 || $lien['MajMin']=='+')) {
$tabIdentiteA=$iInsee->getIdentiteLight($sirenAct);
$pctAct=$lien['Pmin'];
$nomAct=$tabIdentiteA['Nom'];
break;
}
}
}
}
$strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP|$pctAct|$sirenAct|".str_replace('|',' ',$nomAct).EOL;
if ($presta==1) {
$iDb3->insert('adecco_out', array( 'ref'=>$ref,
'siren'=>$siren,
'nic'=>$nic,
'siretTrouve'=>$siren.''.$nic,
'siret'=>$siret,
'evenDate'=>$evenDate,
'even'=>$even));
}
echo $strOut;
if ($fp) fwrite($fp, $strOut);
}
?>

View File

@ -1,525 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
function exporte($txt, $lon=-1, $sep="|") {
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($lon==-1) return $txt.$sep;
elseif ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
else return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
function choixAdr($bodEtab, $bodSiege, $insee) {
if (strlen(trim($bodSiege))>0) $adr=trim($bodSiege);
elseif (strlen(trim($bodEtab))>0) $adr=trim($bodEtab);
else $adr='';
if (isset($insee) && trim($insee)<>'') return $insee;
else return $adr;
}
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');
$iDb=new WDB('jo');
$iDb2=new WDB('insee');
//$iWs=new WsEntreprise();
$iInsee=new MInsee();
$iBilan=new MBilans(0);
$iCotation=new ICotation(array());
echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion des Entreprises.\n";
/*
$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'];
}*/
echo date('Y/m/d - H:i:s') ." - Début de l'export des entreprises...".EOL;
$tabSiret=file('/root/sql/pointp/ppNaf4752B.csv');
$tabSiren=array();
$fpEn=fopen('/root/sql/pointp/ppEntrep20110214.txt','w');
$fpEt=fopen('/root/sql/pointp/ppEtabs20110214.txt','w');
// ETABLISSEMENTS
fwrite($fpEt, "Dénomination L1|Dénomination L2|Complément d'adresse|Adresse|Mention de distribution|Code postal|Localité de destination|Code + Libellé Cedex|Code Insee commune|RCS|NIC|Enseigne|Sigle|Libellé statut de l'établissement|Code APE Ets|Libellé APE|Effectif site|Téléphone".EOL);
/*
SI CONSTRUCTION CTRE INCENDIE SECOURS||MAIRIE|ENCLOS DE SERVIGNY|BP 238|29900|CONCARNEAU||29039|200021657|00016|||Établissement siège|4120B|Construction d'autres bâtiments|N/C|0298503838
SYND INTERCOMMUNAL TRAVAUX LONGEAILLES||MAIRIE|5 RUE DU VIEUX PONT||39300|PONT DU NAVOY||39437|200022374|00017|||Établissement siège|4211Z|Construction de routes et autoroutes|N/C|
TILLET GILLES|TILLET GILLES||12 RUE CHEVRIER||86000|POITIERS||86194|491649737|00013|||Établissement siège|4332A|Travaux de menuiserie bois et PVC|N/C|0549418135
PITON JEAN|C M P||16 RUE VICTOR RAMETTE||59400|CAMBRAI||59122|504369604|00013|||Établissement siège|4332B|Travaux de menuiserie métallique et serrurerie|N/C|0628811387
LEFUR JEAN|L Z SERVICE EXPOSITION||2 RUE ROBERT SCHUMAN||94000|CRETEIL||94028|507601672|00011|L Z SERVICE EXPOSITION||Établissement siège|4332C|Agencement de lieux de vente|N/C|
LE HUEROU LE GOFF FABIENNE EMMANUELLE|||5 IMP DES COUDRIERS||22950|TREGUEUX||22360|508107125|00017|||Établissement siège|4332A|Travaux de menuiserie bois et PVC|N/C|
IGONNET DOMINIQUE MARIE|||QUA LA VIERE||07210|SAINT VINCENT DE BARRES||07302|508652070|00022|||Établissement siège|4332B|Travaux de menuiserie métallique et serrurerie|N/C|0475298981
ROULLET BRUNO PIERRE|||CHARRONDIERE||42310|SAINT BONNET DES QUARTS||42203|508656766|00013|||Établissement siège|8130Z|Services d'aménagement paysager|N/C|
BM ELECTRICITE|BM ELECTRICITE||87 RUE DES PERVENCHES||83130|LA GARDE||83062|508858297|00015|||Établissement siège|4321A|Travaux d'installation électrique dans tous locaux|N/C|
*/
// ENTREPRISES
fwrite($fpEn, "Dénomination L1|RCS|date de création entreprise|Nombre établissements|Libellé catégorie juridique|Capital|Devise|Code APE entreprise|Effectif global|Date du Bilan|Durée Exercice|FL|HN|FJ|FU|GV|VA|YP|YT|YU|Devise|Date Bilan N-1|Durée Exercice N-1|FL|HN|FJ|FU|GV|VA|YP|YT|YU".EOL);
/*
200021657|20090724|1|Syndicat intercommunal à vocation unique (SIVU)|0||4120B||0|0|||||||||||0|0|||||||||
200022374|20091007|1|Syndicat intercommunal à vocation unique (SIVU)|0||4211Z||0|0|||||||||||0|0|||||||||
491649737|20090629|1|Artisan |0||4332A||0|0|||||||||||0|0|||||||||
504369604|20090722|1|Artisan |0||4332B||0|0|||||||||||0|0|||||||||
507601672|20090901|1|Artisan |0||4332C||0|0|||||||||||0|0|||||||||
508107125|20090203|1|Profession libérale|0||4332A||0|0|||||||||||0|0|||||||||
508652070|20090101|1|(Autre)personne physique |0||4332B||0|0|||||||||||0|0|||||||||
508656766|20090101|1|Commerçant |0||8130Z||0|0|||||||||||0|0|||||||||
*/
$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, bilType, bilAnnee, bilCA, bilCAexp, bilRN';
/*$where="actif=1 AND (eff_etab>0 OR eff_entrep>0 OR bilTca>0 OR tca>0 OR capital>75000) AND adr_dep<96 AND adr_dep NOT in ('20','2A','2B') AND (
(ape_etab='8130Z' and substring(ape_entrep,1,2)=81) OR
(ape_etab='4110A' AND substring(ape_entrep,1,2)=41) OR
(ape_etab='6820A' AND substring(ape_entrep,1,2)=68) OR
(ape_etab='6820B' AND substring(ape_entrep,1,2)=68) OR
(ape_etab='2511Z' AND substring(ape_entrep,1,2)=25) OR
(ape_etab='4399B' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4120A' AND substring(ape_entrep,1,2)=41) OR
(ape_etab='4120B' AND substring(ape_entrep,1,2)=41) OR
(ape_etab='4399C' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4391A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4391B' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4399A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='3109B' AND substring(ape_entrep,1,2)=31) OR
(ape_etab='4332A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4332B' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='3101Z' AND substring(ape_entrep,1,2)=31) OR
(ape_etab='4332C' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4331Z' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4334Z' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4333Z' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4321A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='2825Z' AND substring(ape_entrep,1,2)=28) OR
(ape_etab='3320B' AND substring(ape_entrep,1,2)=33) OR
(ape_etab='4322B' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4322A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4339Z' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4329A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4222Z' AND substring(ape_entrep,1,2)=42) OR
(ape_etab='4321B' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='3020Z' AND substring(ape_entrep,1,2)=30) OR
(ape_etab='3600Z' AND substring(ape_entrep,1,2)=36) OR
(ape_etab='4211Z' AND substring(ape_entrep,1,2)=42) OR
(ape_etab='4212Z' AND substring(ape_entrep,1,2)=42) OR
(ape_etab='4213A' AND substring(ape_entrep,1,2)=42) OR
(ape_etab='4213B' AND substring(ape_entrep,1,2)=42) OR
(ape_etab='4221Z' AND substring(ape_entrep,1,2)=42) OR
(ape_etab='4312A' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4312B' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4313Z' AND substring(ape_entrep,1,2)=43) OR
(ape_etab='4399D' AND substring(ape_entrep,1,2)=43) )";
$nbRows=$iDb->select('etablissements_act', 'count(DISTINCT siren) AS nb', $where, true, MYSQL_ASSOC);
$nbRowsTot=$nbRows[0]['nb'];
$iLimitNb=100000;*/
/*for ($iLimit=0; $iLimit<$nbRowsTot; $iLimit+=$iLimitNb) {*/
$nbRows=count($tabSiret);//$iDb->select('etablissements_act', $fields, "$where GROUP BY siren 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...".EOL;
//die();
//$numRow=0;
$anneeEstime=date('Y')-2;
//while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
foreach ($tabSiret as $numRow=>$tabTmp) {
$tabTmp=preg_split('/(;|,)/', $tabTmp);
$siren=str_replace(' ','',strtr($tabTmp[0], '"\'',' '))*1;
if ($siren==0) continue;
$nic=str_replace(' ','',strtr($tabTmp[1], '"\'',' '))*1;
$tabTmp=$iDb->select('etablissements_act', $fields.", '' AS NOM2", "siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
/*if (count($tabTmp)==0)
$tabTmp=$iDb2->select('identite', $fields2, "SIREN=$siren AND NIC=$nic", false, MYSQL_ASSOC);*/
if (count($tabTmp)==0) continue;
/*
ACTIF, PAYS` , `APRM` , `ACTIVNAT` , `ORIGINE` , `MODET` , `EXPLET` , `DAPET` , `LIEUACT` , `ACTISURF` ,
`DEFET` , `MODEN` , `PRODPART` , `EXPLEN` , `DEFEN` , `MONOREG` , `REGIMP` , `MONOACT` , `DAPEN` , `DCREN`
, `SIEGE` , `AUXILT` , `SAISONAT` , `CJ` , `CIVILITE` , `NBETAB` , `APE_ENT` , `APE_ETAB` , `PROCOL` ,
`PROCOL_TYPE` , `PROCOL_DATE` , `CAPITAL` , `EFF_ENT` , `NUMRC` , `TEL` , `FAX` , `DIR_FCT` , `DIR_IDEN` ,
`DIR_DATEN` , `DIR_LIEUN` , `CAPITAL_DATE` , `CAPITAL_DEV` , `DCRET` , `TEFF_ENT` , `ADR_DEP` , `ADR_COM` ,
`TCA` , `TCAEXP` , ``
$fields2="id, '002' AS source, id AS source_id, '' AS triCode, 0 AS autre_id, SIREN AS siren, NIC AS nic,
siege, NOM AS raisonSociale, NOM2, ENSEIGNE AS enseigne, SIGLE AS sigle,
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, 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_ET AS eff_etab, ADR_DISTSP AS distSP,
achPost,
dirCiv, dirNom, dirPrenom, dirFct, nbEtab, bilType, bilAnnee, bilCA, bilCAexp, bilRN";
*/
//die(date('Y/m/d - H:i:s') ." - Erreur SQL : ".mysql_error().EOL);
$entrep=$tabTmp[0];
$siret=$siren.$nic;
//print_r($entrep);
//die($siret);
/*Dénomination (ligne 1) pour control|
RCS|date de création entreprise|Nombre établissements|Libellé catégorie juridique|
Capital| Devise|Code APE entreprise|Effectif global|
Date du Bilan|Durée Exercice|FL|HN|FJ|FU|GV|VA|YP|
YT|YU|Devise|Date Bilan N-1|Durée Exercice N-1|FL|HN|FJ|FU|GV|VA|YP|YT|YU
*/
$insee=$iDb2->select('identite', 'DCREN, DCRET', "SIREN=$siren AND NIC=$nic LIMIT 0,1",false,MYSQL_ASSOC);
if (count($insee)>0) {
$tabInsee=$insee[0];
$dcren=$tabInsee['DCREN'];
$dcret=$tabInsee['DCRET'];
} else
$dcren=$dcret=$entrep['dateCrea_etab'];
$strOutput =exporte(str_replace('|',' ',$entrep['raisonSociale']));
$strOutput.=exporte(sprintf("%09s", $siren));
$strOutput.=exporte($dcren); // date de création entreprise
$strOutput.=exporte($entrep['nbEtab']*1);
$strOutput.=exporte($iInsee->getLibelleFJ($entrep['cj']));
$strOutput.=exporte($entrep['capital']*1);
$strOutput.=exporte($entrep['capitalDev']);
$strOutput.=exporte($entrep['ape_entrep']);
$strOutput.=exporte($entrep['eff_entrep']);
$uniteMultiple=1;
for ($iBil=0; $iBil<2; $iBil++) {
$tabPostes=$tabBilan=array();
if ($entrep['bilType']=='R') {
$uniteMultiple=1;
$tabBilan=$iDb->select('bilans', 'siren, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, unite, typeBilan, postes', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT $iBil, 1", false, MYSQL_ASSOC);
$tabBilan=@$tabBilan[0];
$tabTmp=explode(';', $tabBilan['postes']);
foreach($tabTmp as $poste) {
if (trim($poste)<>'') {
$tabTmp2=explode('=',$poste);
$tabPostes[trim($tabTmp2[0])]=trim($tabTmp2[1]);
}
}
switch (strtoupper($tabBilan['unite'])) {
case 'K': $uniteMultiple=1000; break;
case 'M': $uniteMultiple=1000000; break;
}
if ($tabBilan['typeBilan']=='S')
$tabPostes=@$iBilan->bilanSimplifie2Normal($tabPostes);
}
$strOutput.=exporte(@$tabBilan['dateExercice']);
$strOutput.=exporte(@$tabBilan['dureeExercice']);
$strOutput.=exporte(str_replace('NS','', @$tabPostes['FL']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['HN']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['FJ']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['FU']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['GV']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['VA']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['YP']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['YT']*$uniteMultiple));
$strOutput.=exporte(str_replace('NS','', @$tabPostes['YU']*$uniteMultiple));
if ($iBil==0)
$strOutput.=exporte(@$tabBilan['monnaie']);
}
if (!in_array($siren, $tabSiren)) {
fwrite($fpEn, $strOutput.EOL);
$tabSiren[]=$siren;
}
// Etablissement
$strOutput =exporte(str_replace('|',' ',$entrep['raisonSociale']));
$strOutput.=exporte('');
$strOutput.=exporte($entrep['adr_comp']);
$strOutput.=exporte(trim(str_replace('|',' ',preg_replace('/ +/', ' ', preg_replace('/^0/', '', $entrep['adr_num'].' '.$entrep['adr_btq'].' '.$entrep['adr_typeVoie'].' '.$entrep['adr_libVoie'])))));
$strOutput.=exporte($entrep['distSP']);
$strOutput.=exporte($entrep['adr_cp']);
$strOutput.=exporte($entrep['adr_ville']);
$strOutput.=exporte(str_replace('|',' ',$entrep['achPost']));
$strOutput.=exporte(sprintf("%02s", $entrep['adr_dep']*1).$entrep['adr_com']);
$strOutput.=exporte(sprintf("%09s", $siren));
$strOutput.=exporte(sprintf("%05s", $nic));
$strOutput.=exporte(str_replace('|',' ',$entrep['enseigne']));
$strOutput.=exporte(str_replace('|',' ',$entrep['sigle']));
if ($entrep['siege']*1==1) $strOutput.=exporte('Établissement siège');
else $strOutput.=exporte('Établissement secondaire');
$strOutput.=exporte($entrep['ape_etab']);
$strOutput.=exporte($iInsee->getLibelleNaf($entrep['ape_etab']));
$strOutput.=exporte($entrep['eff_etab']*1);
$strOutput.=exporte($entrep['tel']);
fwrite($fpEt, $strOutput.EOL);
if ($numRow%10000==0) {
$nbSiren=count($tabSiren);
echo date ('Y/m/d - H:i:s')." - $numRow/$nbRows étabs ($nbSiren entrep): $strOutput".EOL;
}
//die();
}
//}
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", print_r($tabNaf5inconnu, true) .EOL. print_r($tabNaf4inconnu,true) );
die();
function getTca($montantCA) {
$montantCA=$montantCA*1;
if ($montantCA>=200000000) // 9 : 200 millions d'euros ou plus)
return 9;
elseif ($montantCA>=100000000) // 8 : De 100 millions à moins de 200 millions d'euros
return 8;
elseif ($montantCA>= 50000000) // 7 : De 50 millions à moins de 100 millions d'euros
return 7;
elseif ($montantCA>= 20000000) // 6 : De 20 millions à moins de 50 millions d'euros
return 6;
elseif ($montantCA>= 10000000) // 5 : De 10 millions à moins de 20 millions d'euros
return 5;
elseif ($montantCA>= 5000000) // 4 : De 5 millions à moins de 10 millions d'euros
return 4;
elseif ($montantCA>= 2000000) // 3 : De 2 millions à moins de 5 millions d'euros
return 3;
elseif ($montantCA>= 1000000) // 2 : De 1 million à moins de 2 millions d'euros
return 2;
elseif ($montantCA>= 500000) // 1 : De 0,5 à moins de 1 million d'euros
return 1;
else
return 0; // Non renseignée ou moins de 0,5 million d'euros
}
$fields='id, SIREN, NIC, NOM, NOM2, SIGLE, ENSEIGNE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, SIEGE, CJ, NBETAB, APE_ETAB, CAPITAL, EFF_ENT, TEL, FAX, CAPITAL_DEV, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, DIR_FCT, DIR_IDEN';
$nbRows=$iDb->select('identite', $fields, "ACTIF=1 AND CJ BETWEEN 5000 AND 5999 AND CJ NOT IN(18, 1800) AND TEL>0 AND SIEGE=1 LIMIT 0,6000", true, MYSQL_ASSOC, true);
/*
$fields='b.id, b.Bodacc_Code, b.Bodacc_Annee_Parution, b.Bodacc_Num, b.Num_Annonce, b.Bodacc_Date_Parution, b.Tribunal_Dept, b.Tribunal_Code, b.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, b.typeAnnonce, b.corrNum_Annonce, b.corrBodacc_Date_Parution, b.corrPage, b.corrNumParution, b.corrTexteRectificatif, b.annonce, d.siren, d.sirenValide, d.nic, d.nicValide, d.raisonSociale, d.enseigne, d.sigle, d.typeEven, d.dateJugement, d.VenteMt, d.VenteDev, d.dateEffet, d.publicationDate, d.dateDebutActivite, d.dateCessationActivite, d.dateCessationPaiement, d.dateFinDepotCreances, d.dateFinObservation';
$nbRows=$iDb->select('bodacc b, bodacc_detail d', $fields, "b.Bodacc_Code IN ('A','B') AND b.Bodacc_Annee_Parution=2009 AND b.Bodacc_Num=90 AND d.id=b.id", true, MYSQL_ASSOC, true);
*/
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises à diffuser...".EOL;
$fp=fopen('./veolia_test2.csv','w');
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
$siret=$entrep['SIREN'].$entrep['NIC'];
if ($siret>100) $tabIdentite=@$iWs->getIdentite($siret, 0, false);
else $tabIdentite=array();
$tabIdentite=$tabIdentite['result'];
/*
$strOutput =exporte($entrep['siren'], 9);
$strOutput.=exporte($tabIdentite['NafEnt'], 5);
$strOutput.=exporte($tabIdentite['FJ'], 4);
if($tabIdentite['DateCreaEn']*1>0)
$strOutput.=exporte(substr($tabIdentite['DateCreaEn'],0,4).'-'.substr($tabIdentite['DateCreaEn'],4,2).'-'.substr($tabIdentite['DateCreaEn'],6,2), 10);
else
$strOutput.=exporte('0000-00-00', 10);
$strOutput.=exporte($tabIdentite['Siege']*1, 1);
$strOutput.=exporte($tabIdentite['Nic'], 5);
$strOutput.=exporte($tabIdentite['NafEtab'], 5);
$strOutput.=exporte('', 6); // APRM
if($tabIdentite['DateCreaEt']*1>0)
$strOutput.=exporte(substr($tabIdentite['DateCreaEt'],0,4).'-'.substr($tabIdentite['DateCreaEt'],4,2).'-'.substr($tabIdentite['DateCreaEt'],6,2), 10);
else
$strOutput.=exporte('0000-00-00', 10);
$strOutput.=exporte($tabIdentite['Dept'], 2);
$strOutput.=exporte($tabIdentite['codeCommune'], 3);
$strOutput.=exporte($tabIdentite['Rivoli'], 5);
if (strlen(trim($entrep['raisonSociale']))>strlen(trim($tabIdentite['Nom'])))
$strOutput.=exporte(strtr($entrep['raisonSociale'], array("\r"=>' ', "\n"=>' ', "\t"=>' ')), 150);
else
$strOutput.=exporte($tabIdentite['Nom'].$tabIdentite['Nom2'], 150);
if (strlen(trim($entrep['sigle']))>strlen(trim($tabIdentite['Sigle'])))
$strOutput.=exporte(strtr($entrep['sigle'], array("\r"=>' ', "\n"=>' ', "\t"=>' ')), 100);
else
$strOutput.=exporte($tabIdentite['Sigle'], 100);
if (strlen(trim($entrep['enseigne']))>strlen(trim($tabIdentite['Enseigne'])))
$strOutput.=exporte(strtr($entrep['enseigne'], array("\r"=>' ', "\n"=>' ', "\t"=>' ')), 100);
else
$strOutput.=exporte($tabIdentite['Enseigne'], 100);
$strOutput.=exporte(choixAdr($entrep['adrNum'], $entrep['adrSiegeNum'], $tabIdentite['AdresseNum']), 4);
$strOutput.=exporte(choixAdr($entrep['adrIndRep'], $entrep['adrSiegeIndRep'], $tabIdentite['AdresseBtq']), 1);
$strOutput.=exporte(choixAdr($entrep['adrTypVoie'], $entrep['adrSiegeTypVoie'], $tabIdentite['AdresseVoie']), 3);
$strOutput.=exporte(choixAdr($entrep['adrLibVoie'], $entrep['adrSiegeLibVoie'], $tabIdentite['AdresseRue']), 35);
$strOutput.=exporte(choixAdr($entrep['ville'], $entrep['villeSiege'], $tabIdentite['Ville']), 35);
$strOutput.=exporte(choixAdr($entrep['codePostal'], $entrep['codePostalSiege'], $tabIdentite['CP']), 5);
$strOutput.=exporte(choixAdr($entrep['adrComp1'], $entrep['adrSiegeComp1'], $tabIdentite['Adresse2']), 35);
$strOutput.=exporte('FR', 2);
$strOutput.=exporte('', 15);
$strOutput.=exporte('B', 1);
$strOutput.=exporte($entrep['Bodacc_Annee_Parution'].'-'.$entrep['Bodacc_Num'], 8);
$strOutput.=exporte($entrep['Bodacc_Code'], 1);
$strOutput.=exporte($entrep['Num_Annonce'], 6);
$strOutput.=exporte($entrep['Bodacc_Date_Parution'], 10);
$strOutput.=exporte('', 3);
if(str_replace('-','',$entrep['dateEffet'])*1>0)
$strOutput.=exporte($entrep['dateEffet'], 10);
elseif(str_replace('-','',$entrep['dateJugement'])*1>0)
$strOutput.=exporte($entrep['dateJugement'], 10);
elseif(str_replace('-','',$entrep['publicationDate'])*1>0)
$strOutput.=exporte($entrep['publicationDate'], 10);
elseif(str_replace('-','',$entrep['dateDebutActivite'])*1>0)
$strOutput.=exporte($entrep['dateDebutActivite'], 10);
elseif(str_replace('-','',$entrep['dateCessationActivite'])*1>0)
$strOutput.=exporte($entrep['dateCessationActivite'], 10);
else
$strOutput.=exporte('0000-00-00', 10);
$strOutput.=exporte($entrep['Tribunal_Code'], 6);
$strOutput.=exporte(preg_replace('/ +/',' ', strtr($entrep['annonce'], array("\r"=>' ', "\n"=>' ', "\t"=>' '))), 3200);
$strOutput.=exporte($entrep['typeEven'], 40);
$strOutput.=exporte($entrep['Rubrique'], 10);
$strOutput.=exporte($entrep['typeAnnonce'], 10);*/
// print_r($tabIdentite);
// die();
if ($tabIdentite['SituationJuridique']<>'P') {
$strOutput =exporte("A", 1);
$strOutput.='002'.exporte(sprintf("%010s", $tabIdentite['id']), 10);
$strOutput.=exporte(sprintf("%09s", $tabIdentite['Siren']), 9);
$strOutput.=exporte(sprintf("%05s", $tabIdentite['Nic']), 5);
$strOutput.=exporte($tabIdentite['Enseigne'], 40);
$strOutput.=exporte($tabIdentite['Sigle'], 20);
$strOutput.=exporte($tabIdentite['Nom'], 32);
$strOutput.=exporte($tabIdentite['Nom2'], 32);
$strOutput.=exporte('', 32); // ENTREE BATIMENT RESIDENCE
$adresse=$tabIdentite['AdresseNum']*1;
if ($adresse==0) $adresse='';
else $adresse.=' ';
$adresse.=trim(preg_replace('/ +/', ' ', $tabIdentite['AdresseBtq'].' '.$tabIdentite['AdresseVoie'].' '.$tabIdentite['AdresseRue']));
$strOutput.=exporte($adresse, 32);
$strOutput.=exporte($tabIdentite['Adresse2'], 32);
$strOutput.=exporte(sprintf("%05s",$tabIdentite['CP']), 6);
$strOutput.=exporte($tabIdentite['Ville'], 32);
$strOutput.=exporte($entrep['ADR_DISTSP'], 32); // CEDEX
$strOutput.=exporte(sprintf("%02s",$tabIdentite['Dept']).sprintf("%03s",$tabIdentite['codeCommune']), 5);
$strOutput.=exporte("I", 1);
$tabTmp=@$iInsee->getDirigeants($entrep['SIREN'], false);
/* if (count($tabTmp)>0) {
print_r($tabTmp);
die();
}*/
$tabDir=$tabTmp[0];
$tabTmp=explode(' ', $tabDir['Nom']);
$civ=trim($tabDir['Civilite']);
$nom=$tabDir['Nom'];
$prenom=$tabDir['Prenom'];
if ($civ=='' && $tabIdentite['FJ']<2000 && $tabIdentite['Civilite']==1) $civ='M';
elseif ($civ=='' && $tabIdentite['FJ']<2000 && $tabIdentite['Civilite']==2) $civ='MME';
if ($entrep['DIR_FCT']=='PP') {
preg_match_all('/[A-Z]{2,}/', $entrep['DIR_IDEN'], $matches);
$nom=trim(implode(' ',$matches[0]));
preg_match_all('/[A-Z][a-z]{1,}/', $entrep['DIR_IDEN'], $matches);
$prenom=trim(implode(' ',$matches[0]));
}
$strOutput.=exporte($civ, 4); //Civilite
$strOutput.=exporte($nom, 30); // NOM
$strOutput.=exporte($prenom, 20); // PRENOM
$strOutput.=exporte($tabDir['Fonction'], 4); // Code Fct
$strOutput.=exporte(sprintf("%10s",preg_replace('/( |\-|\.)/', '', $tabIdentite['Tel'])), 10);
$strOutput.=exporte(sprintf("%10s",preg_replace('/( |\-|\.)/', '', $tabIdentite['Fax'])), 10);
$strOutput.=exporte($tabIdentite['DateCreaEt'], 8);
if ($tabIdentite['Siege']==1) $strOutput.=exporte('01', 2);
else $strOutput.=exporte('02', 2);
$strOutput.=exporte($tabIdentite['NbEtab'], 5);
$strOutput.=exporte($tabIdentite['FJ'], 4);
$strOutput.=exporte($tabIdentite['Capital'], 13);
if ($tabIdentite['CapitalDev']=='EUR' || $tabIdentite['CapitalDev']=='')
$strOutput.=exporte('Euro', 10);
else
$strOutput.=exporte($tabIdentite['CapitalDev'], 10);
/*
<Naf4Ent>341Z</Naf4Ent>
<Naf4Etab>741J</Naf4Etab>
<Naf4EntLib>Construction de vehicules automobiles</Naf4EntLib>
<>Administration d'entreprises</Naf4EtabLib>
*/
$naf4=$tabIdentite['Naf4Etab'];
$naf4lib=$tabIdentite['Naf4EtabLib'];
$naf5=$tabIdentite['NafEtab'];
if ($naf4=='') $naf4=$iCotation->tabNaf21[$naf5];
if ($naf4lib=='') $naf4lib=$iInsee->getLibelleNaf($naf4);
$strOutput.=exporte($naf4, 4); // NAF4
$strOutput.=exporte($naf4lib, 90);
$tabTmp=@$iWs->getRatios($entrep['SIREN']);
// print_r($tabTmp);
$tabRatios=$tabTmp['result']['RatiosEntrep'][0];
if (($tabRatios['r24']*1)>0)
$effectifFr=$tabRatios['r24'];
else
$effectifFr=$tabIdentite['Effectif'];
$strOutput.=exporte($effectifFr, 6);
$strOutput.=exporte($entrep['EFF_ET'], 6);
if (count($tabRatios)>0) {
$strOutput.=exporte('R', 1); // Réel , Inconnu, Estimé
$strOutput.=exporte(str_replace('NS','', $tabRatios['r1']), 13);
$strOutput.=exporte(str_replace('NS','', $tabRatios['r3']), 13);
$strOutput.=exporte(str_replace('NS','', $tabRatios['r10']), 13);
//die(print_r($tabRatios));
} elseif ($naf5<>'' && $naf5<>'0000Z' && $effectifFr>0) {
$caEstime=getCAnafEffectif($naf5, $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
} else{
//$CAESTIME=getCAnafEffectif($naf, $EFFECTIF);
$strOutput.=exporte('I', 1); // Réel , Inconnu, Estimé
$strOutput.=exporte('', 13);
$strOutput.=exporte('', 13);
$strOutput.=exporte('', 13);
}
$strOutput.=exporte($naf5, 5);
$strOutput.=exporte($tabIdentite['NafEtabLib'], 90);
echo $strOutput.EOL;
fwrite($fp, $strOutput.EOL);
}
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion des Entreprises.\n";
die();
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

View File

@ -1,661 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/** @todo Faire tourner le premier lundi du mois
**/
function exporte($txt, $lon=-1, $sep="|") {
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($lon==-1) return $txt.$sep;
elseif ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
else return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
function choixAdr($bodEtab, $bodSiege, $insee) {
if (strlen(trim($bodSiege))>0) $adr=trim($bodSiege);
elseif (strlen(trim($bodEtab))>0) $adr=trim($bodEtab);
else $adr='';
if (isset($insee) && trim($insee)<>'') return $insee;
else return $adr;
}
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(INCLUDE_PATH.'partenaires/classMLiens.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(FWK_PATH.'mail/sendMail.php');
global $iDb2,$iDb3,$iLiens,$iBilan,$iInsee,$date;
$iDb=new WDB('jo');
$iDb2=new WDB('historiques');
$iDb3=new WDB('tmp');
$iInsee=new MInsee();
$iBilan=new MBilans(0);
$iLiens=new MLiens(0);
$iBodacc=new MBodacc();
$iCotation=new ICotation(array());
$presta=$purge=$siretReprise=false;
$strReprise='';
$date=date('Ymd');
$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 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
";
$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 '1': $presta=1; break;
case '3': $presta=3; break;
case '4': $presta=4; break;
case '5': $presta=5; break;
case '6': $presta=6; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
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) {
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);
}
echo date('Y/m/d - H:i:s') ." - Fin de l'export en Presta $presta...".EOL;
}
// Surveillance Jugements
if ($presta==3) {
/** @todo prendre les fichiers jugements (1er lundi du mois) **/
define('DIR_KOMPASS_IN','/home/data/clients/kompass international/');
$fichierIn=false;
$ligneOut=$ligne100tot=0;
$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,36)=='diffusionBodacc_DIFBODPRDFTSKOMPASS_'/*.date('Ym')*/) {
$fichierIn = $filename;
$tabLignes=file(DIR_KOMPASS_IN.$fichierIn);
$ligne100=0;
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'annonce
$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
$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
foreach ($even as $codeEven) {
$codeEven=$codeEven*1;
if ((($codeEven>1199 && $codeEven<1300) ||
$codeEven==1418) && $codeEven<>1203 && $codeEven<>1207) $typeJuge='RJ'; // Redressement judiciaire
elseif (($codeEven>1099 && $codeEven<1110) || $codeEven==1419) $typeJuge='SV'; // Sauvegarde
elseif (($codeEven>1299 && $codeEven<1400) || $codeEven==1417) $typeJuge='LJ'; // Liquidation judiciaire
elseif ($codeEven==1408 || $codeEven==1415) $typeJuge='CE'; // Plan de cession
elseif ($codeEven==1409 || $codeEven==1413 || $codeEven==1414) $typeJuge='CO'; // Plan de continuation
elseif ($codeEven==1412 || $codeEven==1425) $typeJuge='CP'; // Plan de cession partielle
elseif ($codeEven==1411) $typeJuge='CT'; // Plan de cession totale
elseif ($codeEven==1010) $typeJuge='DB'; // Dépôt de bilan
elseif ($codeEven==1543) $typeJuge='RR'; // Rétractation d'un redressement judiciaire
elseif ($codeEven==1544 || $codeEven==1541) $typeJuge='RL'; // Rétractation d'une liquidation judiciaire
elseif ($codeEven==1545 || $codeEven==1506) $typeJuge='R'; // Rétractation du dernier jugement
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;
$ligne= initstr($siren, 9, '0', ALIGN_RIGHT) .
initstr($ref, 7, '0', ALIGN_RIGHT) .
initstr($typeJuge, 2) .
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
break;
}
} // Fin du fichier
$ligne100tot+=$ligne100;
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');
}
}
echo date('Y/m/d - H:i:s') ." - $ligneOut/$ligne100tot siren Kompass en Presta $presta...".EOL;
}
// 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)) {
$siren=$tabTmp['siren'];
$ref=trim($tabTmp['ref']);
$tabId=@$iInsee->getIdentiteLight($siren);
$nic=$tabId ['Nic'];
// Actionnaires
$pctTtot=0;
$tabAct=@$iLiens->getActionnaires($siren, true);
foreach ($tabAct as $i=>$lien) {
$sirenT=$lien['Siren']*1;
$pctT=$lien['PminNum'];
if ($pctT<30) continue;
$pctTtot+=$pctT;
$nomT=strtr(trim(substr($lien['RaisonSociale'],0,64)),array('*'=>' ','/'=>' '));
$paysT=$lien['CodePays'];
$pays=$lien['Pays'];
if($paysT=='') { $paysT='FRA'; $pays='France'; }
$dateT=str_replace('-','',WDate::DateT('Ymd','d-m-Y',str_replace('-','',$lien['DateMaj'])));
if ($dateT<20080101) $dateT=0;
if($sirenT>1000) {
$tabIdT=@$iInsee->getIdentiteLight($sirenT);
$nomT=strtr(trim(substr($tabIdT['Nom'],0,64)),array('*'=>' ','/'=>' '));
}
if ($pctTtot>100) break;
$ligne= initstr($siren, 9, '0', ALIGN_RIGHT) .
initstr($nic, 5, '0', ALIGN_RIGHT) .
initstr($ref, 7, '0', ALIGN_RIGHT) .
'2'.
initstr($sirenT, 9, '0', ALIGN_RIGHT) .
initstr($nomT, 64) .
' '.
sprintf("%06.2f", $pctT) .
initstr($pays, 30) .
initstr($dateT, 8, '0', ALIGN_RIGHT);
fwrite($fp, $ligne.EOL);
}
// Participations
$pctTtot=0;
$tabAct=@$iLiens->getParticipations($siren, true);
foreach ($tabAct as $i=>$lien) {
$sirenT=$lien['Siren']*1;
$pctT=$lien['PminNum'];
if ($pctT<30) continue;
$pctTtot+=$pctT;
$nomT=strtr(trim(substr($lien['RaisonSociale'],0,64)),array('*'=>' ','/'=>' '));
$paysT=$lien['CodePays'];
$pays=$lien['Pays'];
if($paysT=='') { $paysT='FRA'; $pays='France'; }
$dateT=str_replace('-','',WDate::DateT('Ymd','d-m-Y',str_replace('-','',$lien['DateMaj'])));
if ($dateT<20080101) $dateT=0;
if($sirenT>1000) {
$tabIdT=@$iInsee->getIdentiteLight($sirenT);
$nomT=strtr(trim(substr($tabIdT['Nom'],0,64)),array('*'=>' ','/'=>' '));
}
if ($pctTtot>100) break;
$ligne= initstr($siren, 9, '0', ALIGN_RIGHT) .
initstr($nic, 5, '0', ALIGN_RIGHT) .
initstr($ref, 7, '0', ALIGN_RIGHT) .
'3'.
initstr($sirenT, 9, '0', ALIGN_RIGHT) .
initstr($nomT, 64) .
' '.
sprintf("%06.2f", $pctT) .
initstr($pays, 30) .
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€
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('*'=>' ','/'=>' '));
$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=' ';
$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';
// 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'];
$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'];
$ren=@round((@$p['HN']*100)/$cap,2);
$actImmo=@$p['AB']+@$p['AD']+@$p['AF']+@$p['AH']+@$p['AJ']+@$p['AL']-@$p['AC']-@$p['AE']-@$p['AG']-@$p['AI']-@$p['AK']-@$p['AM']+@$p['AN']+@$p['AP']+@$p['AR']+@$p['AT']+@$p['AV']+@$p['AX']-@$p['AO']-@$p['AQ']-@$p['AS']-@$p['AU']-@$p['AW']-@$p['AY']+@$p['CS']+@$p['CU']+@$p['BB']+@$p['BD']+@$p['BF']+@$p['BH']-@$p['CT']-@$p['CV']-@$p['BC']-@$p['BE']-@$p['BG']-@$p['BI'];
$actCirc=@$p['BL']+@$p['BN']+@$p['BP']+@$p['BR']+@$p['BT']-@$p['BM']-@$p['BO']-@$p['BQ']-@$p['BS']-@$p['BU']+@$p['BX']-@$p['DW']+@$p['YS']-@$p['BY']+@$p['BZ']+@$p['CB']+@$p['CH']-@$p['CA']-@$p['CC']-@$p['CI']+@$p['CD']+@$p['CF']-@$p['CE']-@$p['CG'];
$dlt=@$p['DS']+@$p['DT']+@$p['DU']+@$p['DV']-@$p['EH']-@$p['VI'];
$dct=@$p['DW']+@$p['DY']+@$p['EH']+@$p['DZ']+@$p['EA']+@$p['EB']+@$p['YS'];
$r80=$dlt;
if ($r80<0) $r80=0;
$capPer=@$p['DL']+@$p['DO']+@$p['DR']+@$p['VI']-@$p['AA']+$r80;
$ind=@round(($cap*100)/abs($capPer),2);
if ($ind<0) $ind=0;
$fdr=$capPer-@$p['BJ']+@$p['BK']+@$p['ED']-@$p['CL']-@$p['CM']-@$p['CN'];
$bfr=@$p['CJ']-@$p['CK']+@$p['YS']-@$p['CF']-@$p['CD']+@$p['CE']+@$p['CG']-@$p['DW']-@$p['DX']-@$p['DY']-@$p['DZ']-@$p['EA']-@$p['EB'];
$bfrca=@round(($bfr*360)/@$p['FL'],0);
$treso=$fdr-$bfr;
$end=@round((@$p['EC']*100)/$cap,2);
if ($effectif==0) {
switch($tabId['EffEnTr']*1) {
case 1: $effectif=1; break;
case 2: $effectif=4; break;
case 3: $effectif=7; break;
case 11: $effectif=15; break;
case 12: $effectif=35; break;
case 21: $effectif=75; break;
case 22: $effectif=150; break;
case 31: $effectif=225; break;
case 32: $effectif=375; break;
case 41: $effectif=750; break;
case 42: $effectif=1500; break;
case 51: $effectif=3750; break;
case 52: $effectif=7500; break;
case 53: $effectif=10000; break;
}
}
/*$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($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
initstr($devise, 3) . // BILAN_MONNAIE Code devise de livraison selon la norme ISO 4217 (3 lettres)
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(($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
initstr(' ', 3) .
initstr(@round(($p['FK']*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // CA Export
initstr(@round((($p['FY']+@$p['FZ'])*$uniteMultiple)/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Salaires et Charges
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['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
initstr(@round($cap*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Capitaux Propres
initstr(@round($dlt*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Dettes LT
initstr(@round($dct*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // Dettes CT
initstr(sprintf("%+07.2f", $ind), 7) . // Ind. Finan.
initstr(' ', 3) .
initstr(@round($fdr*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // FR
initstr(@round($bfr*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // BFR
initstr(@round($bfrca*$uniteMultiple/$uniteLiv,0), 10, ' ', ALIGN_RIGHT) . // BFR en j CA
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==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);
if (copy('/home/data/clients/kompass/kompass_p'.$presta."_$date.txt",'/home/data/ftp/kompass/recv/kompass_p'.$presta."_$date.txt"))
echo date('Y/m/d - H:i:s') ." - Copie du fichier kompass_p$presta"."_$date.txt vers le FTP réussi.".EOL;
else
echo date('Y/m/d - H:i:s') ." - ERREUR lors de la copie du fichier kompass_p$presta"."_$date.txt vers le FTP !".EOL;
die();
?>

View File

@ -1,121 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/** @todo Faire tourner le premier lundi du mois
**/
function exporte($txt, $lon=-1, $sep="|") {
$txt=strtr(trim($txt),array('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
if ($lon==-1) return $txt.$sep;
elseif ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
else return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
}
function choixAdr($bodEtab, $bodSiege, $insee) {
if (strlen(trim($bodSiege))>0) $adr=trim($bodSiege);
elseif (strlen(trim($bodEtab))>0) $adr=trim($bodEtab);
else $adr='';
if (isset($insee) && trim($insee)<>'') return $insee;
else return $adr;
}
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');
$iDb=new WDB('jo');
$iInsee=new MInsee();
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [Stock Adecco à charger]
Traitement spécifique Kompass.
Options :
-1 Prestation 1 Mise à disposition du stock des Entrep Risques Fort
-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
-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 '1': $presta=1; break;
case '3': $presta=3; break;
case '4': $presta=4; break;
case '5': $presta=5; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else $tabFichier[]=$argv[$i];
}
}
$tabLignes=file($tabFichier[0]);
$iTel=new MTel(false);
foreach ($tabLignes as $i=>$ligne) {
$tmp1=explode("\t", $ligne);
$siren=trim($tmp1[0]);
$nic=trim($tmp1[1]);
//$tmp1=$iTel->getTel($siren);
$tmp=$iTel->getTel($siren, $nic,1);
//echo "$siren $nic".EOL;
if (count($tmp)==0) echo "$siren,$nic".EOL;
else {
$tel=$mob=$ttel='';
foreach ($tmp as $tmp2) {
if ($tmp2['typeTel']=='tel' && $tmp2['telephone']>=600000000 && $tmp2['telephone']<800000000) {
$mob=implode('.', str_split($tmp2['telephone'],2));
$ttel='M';
} elseif ($tmp2['typeTel']=='tel') {
$tel=implode('.', str_split($tmp2['telephone'],2));
$ttel='F';
} elseif ($tmp2['typeTel']=='mob' && $tmp2['telephone']>=600000000 && $tmp2['telephone']<800000000) {
$mob=implode('.', str_split($tmp2['telephone'],2));
$ttel='M';
} elseif ($tmp2['typeTel']=='mob') {
$tel=implode('.', str_split($tmp2['telephone'],2));
$ttel='F';
} elseif ($tmp2['typeTel']=='fax' && $tmp2['telephone']>=600000000 && $tmp2['telephone']<800000000) {
$mob=implode('.', str_split($tmp2['telephone'],2));
$ttel='M';
}
//if ($tmp2['typeTel']=='fax')
// $fax=implode('.', str_split($tmp2['telephone'],2));
/*if ($tmp2['typeTel']=='web' && $tab['web']=='') $tab['web']=$tmp2['infoTel'];
if ($tmp2['typeTel']=='mail' && $tab['mail']=='') $tab['mail']=$tmp2['infoTel'];
if ($tmp2['typeTel']=='an8') $activitePJ_An8=$tmp2['infoTel'];*/
if ($tel<>'' && $mob<>'') break;//$ttel<>'')
}
echo "$siren,$nic,$tel,$mob".EOL;
}
//print_r($tmp);
//die();
}
/* $activitePJ_An8='';
*/
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,149 +0,0 @@
#!/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('&#039;'=>"'",'&amp;'=>'&', '&sup2;'=>'²', "\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();
?>

View File

@ -1,508 +0,0 @@
#!/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;
}
?>

View File

@ -1,479 +0,0 @@
<?php
$argv=$_SERVER['argv'];
$argc=$_SERVER['argc'];
print_r($argv);
function echoHeader() {
echo ($argv[0]);?> v0.1 Extraction d'informations HyperBIL en ligne de commande.
Usage: <?=$argv[0]?> <type of data> <fileIn> <fileInFmt> <fileOut> <fileOutFmt>
Where <type of data> is :
id Fiche d'identité (source BIL, RNCS puis INSEE)
idi Fiche d'identité (source INSEE pure)
pf Partenaires Financiers
ann Annonces Légales
dir Liste des dirigeants
lbil Bilans disponibles
bil Bilan complet (à la date de cloture demandée ou dernier dispo)
nof Notation financière (à la date de cloture demandée ou dernier dispo)
ch Score Conan & Holder (à la date de cloture demandée ou dernier dispo)
sv1 SolvaBil 1
sv2 SolvaBil 2
sv3 SolvaBil 3
usertest Test un user password uniquement; syntaxe : <user> <password>
Where <fileInFmt> is :
csv Fichier IN au format CSV (; ou ,) SIREN;NIC;DATE_BILAN;REF
plat Fichier IN au format plat (blancs significatifs) SIREN_____NIC__JJ/MM/AAAA
UNISUR2 To Do
Where <fileOutFmt> is : csv / SO2000
Le fichier en entrée doit être au format <fileInFmt> et contenir le SIREN en première colonne.
Si les informations demandées sont relatives à un bilan, la date de clôture précise du bilan peut être passée au format JJ/MM/AAAA.
<?php
}
include('automate.class.php');
include('includes/ICotation.inc');
$bil=&new Automate('array', false);
if ($argc < 7 && $argv[1]!='usertest') {echoHeader();die('Erreur : Vous n\'avez saisit que '. $argc .' paramètre(s) !');}
elseif ($argv[1]=='usertest' && $argc==4) {
$bil->setDebug(true);
if ($bil->connect($argv[2], $argv[3]))
{ echo 'User = "'. $argv[2].'" - Password = "'. $argv[3].'"'." - Connexion OK !\r\n";
$bil->setRetour('csv');
echo $bil->getFicheIdentite('552144503', '', 'c', '', 'Test', 'SO2000');
}
else
echo 'User = "'. $argv[2].'" - Password = "'. $argv[3].'" - Connexion Impossible : '. $bil->getLastError() ."\r\n";
$bil->printTrace();
die();
}
elseif (!in_array($argv[1], array('id', 'idi', 'pf', 'ann', 'dir', 'lbil', 'bil', 'nof', 'ch', 'sv1','sv2','sv3'))) {echoHeader();die('Erreur : Produit inexistant !');}
$fileIN=@file($argv[2]);
if ($fileIN==false) {echoHeader();die('Erreur : Impossible de lire le fichier "'. $argv[2] .'" !');}
$nbLignes=sizeof($fileIN);
if (!in_array($argv[3], array('csv', 'plat'))) {echoHeader();die('Erreur : Format IN inexistant !');}
$fpOUT=@fopen($argv[4], 'w');
if ($fpOUT==false) {echoHeader();die('Erreur : Impossible d\'ouvrir le fichier "'. $argv[3] .'" !');}
if (!in_array($argv[5], array('csv', 'so2000'))) {echoHeader();die('Erreur : Format OUT inexistant !');}
$fileOutFmt=$argv[5];
$ligneDebutLecture=$argv[6];
if ($ligneDebutLecture>$nbLignes) {echoHeader();die('Erreur : Le fichier IN contient seulement "'. $nbLignes .'" lignes !');}
set_time_limit(0);
$bil->setRetour('csv');
if ($argv[1]=='nof')
fwrite($fpOUT, "SIREN;RAISON SOCIALE;CODE POSTAL;VILLE;DATE DE CLOTURE;DUREE DE L'EXERCICE;NAF;SECTEUR;NOF;NOF Moyenne;R1 Numérateur;R1 Dénominateur;R1 Note;R1 Note bornée;R2 Numérateur;R2 Dénominateur;R2 Note;R2 Note bornée;R3 Numérateur;R3 Dénominateur;R3 Note;R3 Note bornée;R4 Numérateur;R4 Dénominateur;R4 Note;R4 Note bornée;R5 Numérateur;R5 Dénominateur;R5 Note;R5 Note bornée;R6 Numérateur;R6 Dénominateur;R6 Note;R6 Note bornée;Equiv. BDF;Equiv. Grades Moody's;Equiv. Grades S&P;Probabilité de défaillance;Postes du bilan;\r\n");
elseif ($argv[1]=='ch')
fwrite($fpOUT, "SIREN;RAISON SOCIALE;CODE POSTAL;VILLE;DATE DE CLOTURE;DUREE DE L'EXERCICE;NAF;SCORE CONAN-HOLDER;SCORE/20;SITUATION;R1;R2;R3;R4;R5;\r\n");
foreach ($fileIN as $key => $ligne) {
//die("Position = $key, NbLignes=$nbLignes, Lire à la ligne $ligneDebutLecture");
if ($key<$ligneDebutLecture)
continue;
if ($argv[3]=='csv'){
$tabLigne=explode(';', $ligne);
$siren=substr(trim($tabLigne[0]), 0, 9);
$nic=substr(trim($tabLigne[1]), 0, 5);
$dateCloture=substr(trim($tabLigne[2]), 0, 10);
$ref=substr(trim($tabLigne[3]), 0, 30);
}else{
$siren=substr($ligne, 0, 9);
$nic=trim(substr($ligne, 9, 5));
$dateCloture=substr($ligne, 14, 10);
$ref=substr($ligne, 24, 30);
}
if ($dateCloture=='' && (in_array($argv[1], array('bil', 'nof', 'ch'))))
{
// Recherche de la dernière date de clôture de bilan disponible !
$derCloture=$bil->getDatesClotures($siren, '', 'array');
$dateCloture=$derCloture[0]['RBDTCN'];
$dureCloture=$derCloture[0]['RDDURN'];
}
if ($argv[1]=='idi'){
$bil->connect('900000174', 'CHANT');
//$bil->connect('900000179', 'SOUPE');
$typeFiche='ci';
/*
hbilsoid Requête IDENTITE FORMAT SO2000
hbilsoids
hbilsoidci Fiche identité Complete INSEE SO2000
hbilsoidc Fiche identité Complete SO2000
*/
$retour=$bil->getFicheIdentite($siren, $nic, $typeFiche, '', $ref, $fileOutFmt);
}
else
{
// $bil->connect('900000183', 'CONGE'); // SVB1 Spé Bouygues Tél
//$bil->connect('900000182', 'XXXX'); // CA-LEASING Séparateur Nom/Prénom + Filtre annonces
$bil->connect('900000114', 'CHANT');
if ($argv[1]=='id')
$retour=$bil->getFicheIdentite($siren, $nic, 'c', '', $ref, $fileOutFmt);
elseif (substr($argv[1],0,2)=='sv')
$retour=$bil->getSolvaBil($siren, substr($argv[1],2,1), 450, $ref, '');
elseif ($argv[1]=='pf')
$retour=$bil->getActionnaires($siren);
elseif ($argv[1]=='ann')
$retour=$bil->getAnnoncesLegales($siren);
elseif ($argv[1]=='dir')
$retour=$bil->getDirigeants($siren);
elseif ($argv[1]=='lbil')
//echo "Bilans disponibles :<br/>";
$retour=$bil->getDatesClotures($siren);
elseif ($argv[1]=='bil') {
//echo "Bilans disponibles :<br/>";
$retour=$bil->getBilan($siren, $dateCloture);
}
elseif ($argv[1]=='nof') {
$tabIdentite=$bil->getFicheIdentite($siren, '', '', '', $ref, 'array');
$tabBilan=array();
$tabBilan=$bil->getBilan($siren, $dateCloture, '', 'array');
$icotation = new ICotation($tabBilan, true);
$secteur=$icotation->getSecteurActivite($tabIdentite['SOAPET']);
$libSecteur=$icotation->tabLibActivite[$secteur];
$suite='';
if (count($tabBilan)>0)
{
unset($note); unset($noteB); unset($numerateur); unset($denominateur);
$note[0]=$noteB[0]=$numerateur[0]=$denominateur[0]=$noteTot=0;
$tabTmp = $icotation->noteCapitalisation();
$numerateur[1] = number_format($tabTmp['NUMERATEUR']/100, 0, ',', '');
$denominateur[1]= number_format($tabTmp['DENOMINATEUR']/1, 0, ',', '');
$note[1] = number_format($tabTmp['NOTE'], 2, ',', ' ');
$noteB[1] = $icotation->getNoteBorne($tabTmp['NOTE'], 1, $secteur, $numerateur[1], $denominateur[1]);
$noteTot+=$noteB[1];
$tabTmp = $icotation->noteLevierEndettement();
$numerateur[2] = number_format($tabTmp['NUMERATEUR']/1, 0, ',', '');
$denominateur[2]= number_format($tabTmp['DENOMINATEUR']/1, 0, ',', '');
$note[2] = number_format($tabTmp['NOTE'], 2, ',', ' ');
$noteB[2] = $icotation->getNoteBorne($tabTmp['NOTE'], 2, $secteur, $numerateur[2], $denominateur[2]);
$noteTot+=$noteB[2];
$tabTmp = $icotation->noteCapaciteRemboursement();
$numerateur[3] = number_format($tabTmp['NUMERATEUR']/1, 0, ',', '');
$denominateur[3]= number_format($tabTmp['DENOMINATEUR']/1, 0, ',', '');
$note[3] = number_format($tabTmp['NOTE'], 2, ',', ' ');
$noteB[3] = $icotation->getNoteBorne($tabTmp['NOTE'], 3, $secteur, $numerateur[3], $denominateur[3]);
$noteTot+=$noteB[3];
$tabTmp = $icotation->noteCouvChargesFi();
$numerateur[4] = number_format($tabTmp['NUMERATEUR']/1, 0, ',', '');
$denominateur[4]= number_format($tabTmp['DENOMINATEUR']/1, 0, ',', '');
$note[4] = number_format($tabTmp['NOTE'], 2, ',', ' ');
$noteB[4] = $icotation->getNoteBorne($tabTmp['NOTE'], 4, $secteur, $numerateur[4], $denominateur[4]);
$noteTot+=$noteB[4];
$tabTmp = $icotation->noteTresorerie();
$numerateur[5] = number_format($tabTmp['NUMERATEUR']/(360*1), 0, ',', '');
$denominateur[5]= number_format($tabTmp['DENOMINATEUR']/1, 0, ',', '');
$note[5] = number_format($tabTmp['NOTE'], 0, ',', '');
$noteB[5] = $icotation->getNoteBorne($tabTmp['NOTE'], 5, $secteur, $numerateur[5], $denominateur[5]);
$noteTot+=$noteB[5];
$tabTmp = $icotation->noteMargeExploitation();
$numerateur[6] = number_format($tabTmp['NUMERATEUR']/100, 0, ',', '');
$denominateur[6]= number_format($tabTmp['DENOMINATEUR']/1, 0, ',', '');
$note[6] = number_format($tabTmp['NOTE'], 2, ',', ' ');
$noteB[6] = $icotation->getNoteBorne($tabTmp['NOTE'], 6, $secteur, $numerateur[6], $denominateur[6]);
$noteTot+=$noteB[6];
$noteMoy=number_format($noteTot/6, 2, ',', ' ');
$noteFinanciere = $icotation->getNotationFin($noteTot/6);
$libNoteFinanciere = $icotation->getInfosNotation($noteFinanciere);
$suite = $noteFinanciere .';'. // Notation Financière
$noteMoy .';'; // Note Moyenne
for ($i=1; $i<7; $i++)
$suite.=$numerateur[$i].';'.
$denominateur[$i].';'.
$note[$i].';'.
$noteB[$i].';';
$suite.=$icotation->getInfosNotation($noteFinanciere, true);
$suite.=implode_with_options($tabBilan, '', '=', '"', ', ').';';
}
$retour = $siren .';'.
$tabIdentite['SONOM'] .';'. // Raison sociale
$tabIdentite['SOCP'] .';'. // Code Postal
$tabIdentite['SOCOM'] .';'. // Ville
$dateCloture .';'. // Date de clôture du bilan
$dureCloture .';'. // Durée du bilan en mois
$tabIdentite['SOAPET'] .';'. // NAF
$secteur .'-'. $libSecteur .';'. // Libellé du secteur d'activité
$suite ."\n";
}
elseif ($argv[1]=='ch') {
$tabIdentite=$bil->getFicheIdentite($siren, '', '', '', '', 'array' );
$tabBilan=array();
$tabBilan=$bil->getBilan($siren, $dateCloture, '', 'array');
$suite='';
if (count($tabBilan)>0)
{
$n1=($tabBilan['FL'] + $tabBilan['FM'] + $tabBilan['FN'] + $tabBilan['FO'] - $tabBilan['FS'] - $tabBilan['FT'] - $tabBilan['FU'] - $tabBilan['FV'] - $tabBilan['FW'] - $tabBilan['FX'] - $tabBilan['FY'] - $tabBilan['FZ']);
$d1=($tabBilan['EC'] - $tabBilan['EB'] + $tabBilan['YS']);
$r1=$n1/$d1;
$n2=($tabBilan['DL'] + $tabBilan['DO'] + $tabBilan['DR'] + $tabBilan['DS'] + $tabBilan['DT'] + $tabBilan['DU'] + $tabBilan['DV'] - $tabBilan['EH']);
$d2=$tabBilan['EE'];
$r2=$n2/$d2;
$n3=($tabBilan['BV'] + $tabBilan['BX'] + $tabBilan['BZ'] + $tabBilan['CB'] + $tabBilan['CD'] + $tabBilan['CF'] - $tabBilan['BW'] - $tabBilan['BY'] - $tabBilan['CA'] - $tabBilan['CC'] - $tabBilan['CE'] - $tabBilan['CG']);
$d3=$tabBilan['EE'];
$r3=$n3/$d3;
$n4=$tabBilan['GR'];
$d4=$tabBilan['FL'];
$r4=$n4/$d4;
$n5=($tabBilan['FY'] + $tabBilan['FZ']);
$d5=($tabBilan['FL'] + $tabBilan['FM'] + $tabBilan['FN'] - $tabBilan['FU'] - $tabBilan['FV'] - $tabBilan['FW'] - $tabBilan['FS'] - $tabBilan['FT']);
$r5=$n5/$d5;
$n=24*$r1+22*$r2+16*$r3-87*$r4-10*$r5;
if ($n>16.5) { $s=20; $situation="Excellente"; }
elseif ($n>16) { $s=19; $situation="Excellente"; }
elseif ($n>15) { $s=18; $situation="Très bonne"; }
elseif ($n>14) { $s=17; $situation="Très bonne"; }
elseif ($n>13) { $s=16; $situation="Bonne"; }
elseif ($n>12) { $s=15; $situation="Bonne"; }
elseif ($n>11) { $s=14; $situation="Bonne"; }
elseif ($n>10) { $s=13; $situation="Correcte"; }
elseif ($n>09) { $s=12; $situation="Correcte"; }
elseif ($n>08) { $s=11; $situation="Prudence"; }
elseif ($n>07) { $s=10; $situation="Prudence"; }
elseif ($n>06) { $s=09; $situation="Prudence"; }
elseif ($n>05) { $s=08; $situation='Prudence'; }
elseif ($n>04) { $s=07; $situation='Difficile'; }
elseif ($n>02) { $s=06; $situation='Difficile'; }
elseif ($n>00) { $s=05; $situation='Difficile'; }
elseif ($n>-2) { $s=04; $situation='Danger'; }
elseif ($n>-4) { $s=03; $situation='Danger'; }
else { $s=02; $situation='Danger'; }
/*
elseif ($n>13) { $s=02; $situation=''; }
elseif ($n>13) { $s=01; $situation='Redressement judiciaire'; }
elseif ($n>13) { $s=00; $situation='Liquidation judiciaire'; }
*/
$suite= $n .';'.
$s .';'.
$situation .';'.
$r1 .';'.
$r2 .';'.
$r3 .';'.
$r4 .';'.
$r5 .';';
}
$retour = $siren .';'.
$tabIdentite['SONOM'] .';'. // Raison sociale
$tabIdentite['SOCP'] .';'. // Code Postal
$tabIdentite['SOCOM'] .';'. // Ville
$dateCloture .';'. // Date de clôture du bilan
$dureCloture .';'. // Durée du bilan en mois
$tabIdentite['SOAPET'] .';'. // NAF
$suite ."\n";
}
}
$num=$key+1;
echo "Ligne $num/$nbLignes : $siren $nic\r\n";
fwrite($fpOUT, $retour);
}
fclose($fpOUT);
die();
/*
//echo "Recherche :<br/>";
//$tab=$bil->getRecherche('552144503');
//echo "Produits disponibles :<br/>";
//print_r($bil->getListeProduits('552144503'));
// echo "Fiche d'identité :<br/>";
$fp=fopen('identites.csv', 'w');
foreach ($tab as $key=>$siren) {
$ret=$bil->getFicheIdentite($siren);
fwrite($fp, $ret['SORCS'] .';'.
$ret['RETOUR'] .';'.
$ret['SONUME'] .';'.
$ret['SONOM'] .';'.
$ret['SONRU'] .' '. $ret['SOBTQ'] .' '. $ret['SORUE'] .';'.
$ret['SOCP'] .';'.
$ret['SOCOM'] .';'.
$ret['SOETEL'] .';'.
$ret['SOEFAX'] .';'.
$ret['SOEWEB'] .';'.
$ret['SODTCT'] .';'.
$ret['SOCJEN'] .';'.
$ret['SONBET'] .';'.
$ret['SOAPET'] .";\r\n");
}
fclose($fp);
//$tab=$bil->getFicheIdentite('552144503');
//echo array_to_xml($tab);
//echo "Bilans disponibles :<br/>";
$fp=fopen('bilans.csv', 'w');
$tab=file('sirenbi.csv');
foreach ($tab as $key=>$siren) {
$ret=$bil->getDatesClotures($siren);
fwrite($fp, $ret[0]['RISIR'] .';'.
$ret[0]['RETOUR'] .';'.
$ret[0]['RINUME'] .';'.
$ret[0]['RBDTCN'] .';'.
$ret[0]['RDDURN'] .';'.
$ret[1]['RBDTCN'] .';'.
$ret[1]['RDDURN'] .';'.
$ret[2]['RBDTCN'] .';'.
$ret[2]['RDDURN'] .";\r\n");
}
fclose($fp);
*/
echo "Solvabil 3 :<br/>";
//print_r($bil->getSolvaBil('552144503',3,450,'test','','csv'));
echo array2xml($bil->getSolvaBil('552144503',3,450,'test','','csv'));
die();
echo "Actionnaires :<br/>";
//print_r();
echo "<pre>";
echo array2xml($bil->getActionnaires('552144503'));
echo "</pre>";
function array2xml($array,$level=0){
if (!is_array($array))
return 0;
if ($level==0)
{
$tab0=$array[0];
print_r($tab0);
echo "<xml>\n<". $tab0['PRODUIT'] .">\n";
}
reset($array);
while ( list($key, $value) = each($array) ) {
if (is_array($value)) {
if (!is_integer($key))
echo "<$key>\n";
array2xml($value,$level+1);
if (!is_integer($key))
echo "</$key>\n";
} else {
if (is_integer($key))
$key="DATA_$key";
if ($key!='RETOUR' && $key!='PRODUIT')
echo "<$key>$value</$key>\n";
}
}
if ($level==0)
{
$tab0=$array[0];
echo "</". $tab0['PRODUIT'] .">\n</xml>\n";
}
}
$tabCJ=array(
'10'=>'Personne physique',
'11'=>'Artisan Commerçant',
'12'=>'Commerçant',
'13'=>'Artisan (civil)',
'14'=>'Officier public ou ministériel',
'15'=>'Profession libérale',
'16'=>'Exploitant agricole',
'17'=>'Agent commercial',
'18'=>'Associé-Gérant de société',
'19'=>'Personne Physique',
'21'=>'Indivision',
'22'=>'Sté créée de Fait',
'23'=>'Sté en Participation',
'27'=>'Paroisse hors zone concordataire',
'29'=>'Groupement droit privé,n/pers.morale',
'31'=>'P.M.droit étranger immatriculé RCS',
'32'=>'P.M.droit étranger n/immat.RCS',
'41'=>'Ets public-régie indus/commerciale',
'51'=>'Sté coopérative commerciale',
'52'=>'Sté en nom collectif',
'53'=>'Sté en commandite',
'54'=>'S.A.R.L',
'55'=>'S.A à conseil d\'administration',
'56'=>'S.A à directoire',
'57'=>'SA par action simplifiée',
'61'=>'Caisse d\'Epargne & Prévoyance',
'62'=>'G.I.E',
'63'=>'Sté coopérative agricole',
'64'=>'Sté n/commerciale d\'assurance',
'65'=>'Société Civile',
'69'=>'Autres PM de droit privé inscrites au R',
'71'=>'Administration d\'Etat',
'72'=>'Collectivité Territoriale',
'73'=>'Ets Public Administratif',
'74'=>'P.M. de droit public,administration',
'81'=>'Organisme de protection sociale',
'82'=>'Organisme mutualiste',
'83'=>'Comité d\'Entreprise',
'84'=>'Organisme Professionnel',
'85'=>'Org.de retraite adh. n/obligatoire',
'91'=>'Syndicat de Propriétaires',
'92'=>'Association 1901 ou Assimilé',
'93'=>'Fondation',
'99'=>'P.M. de droit privé',
);
$tabCJbilans=array('54','55','56','57');
function implode_with_options($assoc_array, $prefix = '', $k_v_glue = '', $vwrap = '', $seperator = '')
{
foreach ($assoc_array as $k => $v)
{
$tmp[] = $k . $k_v_glue . $vwrap . $v . $vwrap;
}
return $prefix . implode($seperator, $tmp);
}
/**
$items = array('Apples', 'number' => 3, 'Vehicle' => '');
// For a query string:
echo implode_with_options($items, '?', '=', '', '&');
/**
* Produces
* ?0=Apples&number=3&Vehicle=
// For a SQL query
echo implode_with_options($items, '', '=', '"', ', ');
*/
?>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,192 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<STYLE>
<!--
BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Arial"; font-size:x-small }
-->
</STYLE>
</HEAD>
<BODY TEXT="#000000">
<TABLE CELLSPACING=0 BORDER=0>
<tr>
<td ALIGN="left" colspan="5"><IMG SRC="../docs/logoSD.png" WIDTH=344 HEIGHT=88 HSPACE=48 VSPACE=7/></td>
<td align="right" colspan="3"><b><font size=3 COLOR="#808080">FACTURE ORIGINALE</FONT></b></td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1 COLOR="#000000">SCORES &amp; DECISIONS SAS</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1 COLOR="#808080">S.A.S au capital 612 250&nbsp;&euro;</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>18, rue Saulnier &ndash; 75009 PARIS</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>RCS VERSAILLES B 494 967 938</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>T&eacute;l. : 01 75 43 80 10</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>Fax : 01 75 43 85 74</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1>compta@scores-decisions.com</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td align="center" colspan="3"><b><font size=1 COLOR="#000000">No de TVA : FR 84 494 967 938</FONT></b></td>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td width=180>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
<td width=60>&nbsp;<br/></td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td height=17 BGCOLOR="#808080" colspan=8 align="center">
<table border=2>
<tr><td height=17 align="center" BGCOLOR="#808080" colspan=8><b><font face="Helvetica" size=4 color="#000000">Facture N&deg; <?=$tplt['numFacture']?> du <?=$tplt['dateFacture']?></font></b></td></tr>
</table>
</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>Raison sociale :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['raisonSociale']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>Client N&deg; :</font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['numClient']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>ID client :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['refClient']?></font></b></td>
<td colspan=2 align="left">&nbsp;</td>
<td colspan=3 align="left">&nbsp;</td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>Adresse de facturation :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['adresseFact1']?><br/><?=$tplt['adresseFact2']?><br/><?=$tplt['adresseFact3']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>Adresse de livraison :</font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['adresseLiv1']?><br/><?=$tplt['adresseLiv2']?><br/><?=$tplt['adresseLiv3']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>SIREN :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['siren']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>NIC : </font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['nic']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>N&deg; de TVA :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['numtva']?></font></b></td>
<td colspan=2 align="left">&nbsp;</td>
<td colspan=3 align="left">&nbsp;</td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>Contact :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['signataireNom']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>Correspondant : </font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['correspNom']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>E-mail :</font></b></td>
<td colspan=2 align="left"><b><font size=1 color="#808080"><?=$tplt['signataireMail']?></font></b></td>
<td colspan=2 align="right"><b><font size=1>E-mail : </font></b></td>
<td colspan=3 align="left"><b><font size=1 color="#808080"><?=$tplt['correspMail']?></font></b></td>
</tr>
<tr>
<td colspan=1 align="right"><b><font size=1>T&eacute;l&eacute;phone :</font></b></td>
<td colspan=2 align="left" colspan=3><b><font size=1 color="#808080"><?=$tplt['signataireTel']?></font></b></td>
<td colspan=2 align="right" colspan=2><b><font size=1>T&eacute;l&eacute;phone :</font></b></td>
<td colspan=3 align="left" colspan=2><b><font size=1 color="#808080"><?=$tplt['correspTel']?></font></b></td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan=2 style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" HEIGHT=36 align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><FONT FACE="Helvetica" SIZE=2>Intitul&eacute; Prestations</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" size=2>Quantit&eacute;</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" SIZE=2>PU&nbsp;&euro;&nbsp;HT</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" size=2>Prix&nbsp;Total &euro; HT</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><FONT FACE="Helvetica" SIZE=2>TVA&nbsp;&euro;</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><font FACE="Helvetica" SIZE=2>Avoir / Remise</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN=MIDDLE BGCOLOR="#CCCCCC"><b><FONT FACE="Helvetica" SIZE=2>Prix&nbsp;Total &euro; TTC</font></b></td>
</tr>
<? foreach ($tplt['ligne'] as $ligne=>$tplt2) { ?>
<tr>
<td colspan=2 style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" headers=35 align="left" VALIGN=MIDDLE><font size=1><?=$tplt2['intitule']?></font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" valign="middle"><font size=1><?=$tplt2['quantite']?></font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['puht'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['totalht'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000" align="right" align="right" valign="middle"><font size=1><?=number_format($tplt2['tva'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['remise'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
<td STYLE="border-bottom: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><font size=1><?=number_format($tplt2['totalttc'], 2, ',', ' ')?>&nbsp;&euro;</font></td>
</tr>
<? } ?>
<tr>
<td colspan=2 HEIGHT=35 align="left"><font size=1><BR></FONT></td>
<td align="left"><font size=1><BR></FONT></td>
<td align="left"><font size=1><BR></FONT></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="right" valign="middle"><b><font size=1><?=number_format($tplt['totalht'], 2, ',', ' ')?>&nbsp;&euro;</font></b></td>
<td STYLE="border-bottom: 1px solid #000000; border-left: 1px solid #000000" align="right" valign="middle"><b><font size=1><?=number_format($tplt['tva'], 2, ',', ' ')?>&nbsp;&euro;</font></b></td>
<td STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="center" VALIGN="middle"><b><font size=1><?=number_format($tplt['remise'], 2, ',', ' ')?>&nbsp;&euro;</FONT></b></td>
<td STYLE="border-bottom: 1px solid #000000; border-right: 1px solid #000000" align="right" VALIGN="middle"><b><font size=1><?=number_format($tplt['totalttc'], 2, ',', ' ')?>&nbsp;&euro;</font></b></td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td colspan="8">&nbsp;</td>
</tr>
<tr>
<td align="right"><b><font size=1>Date de paiement :</FONT></b></td>
<td colspan=7 align="left"><b><font size=1 COLOR="#808080">5 jours a compter de la date de facturation</FONT></b></td>
</tr>
<tr>
<td align="right"><b><font size=1>Conditions d&rsquo;escompte :</FONT></b></td>
<td colspan=7 align="left"><b><font size=1 COLOR="#808080">Pas d'escompte en cas de paiement anticip&eacute;</FONT></b></td>
</tr>
<tr>
<td align="right"><b><font size=1>Taux indicatif de TVA :</FONT></b></td>
<td colspan=7 align="left" SDVAL="0,196" SDNUM="1036;0;0,00%"><b><font size=1 COLOR="#808080">19,60%</FONT></b></td>
</tr>
<tr>
<td align="right"><b><font size=1>P&eacute;nalit&eacute;s de retard :</FONT></b></td>
<td colspan=7 align="left"><b><font size=1 COLOR="#808080">Se r&eacute;f&eacute;rer aux conditions g&eacute;n&eacute;rales de services</FONT></b></td>
</tr>
</table>
</body>
</html>

View File

@ -1,963 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('URL_BASE','http://extranet.scores-decisions.com/fichier/pdf/');
define('URL_SECURE','?login=ylenaour&hach=e1b559e3c4237fd8390787ade34bc86d');
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.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMFedaso.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;
}
$iDb=new WDB();
$iDb2=new WDB('sdv1');
$iInsee=new MInsee();
$fedaso=new MFedaso();
$iGreffes=new MGreffes();//getListeActes($siren)
$tabInfosGlobal=array();
$repPdfInfogreffe='/home/data/ftp/fedaso/statuts/recv';
$repCsvFedaso='/home/data/ftp/fedaso/statuts/send/';
$repHistoFedaso='/home/data/ftp/fedaso/statuts/send/';
define('FEDASO_BACKUP_DIR','/home/data/fedaso/');
$nbEnvois=200;
$verFedasoFic='v0,6';
$verFedasoRef='v0,14';
$sep=',';
$eol=EOL;
$modeDebug=false;
$genereDepot=false; // Génération du lot de traitement pour envoi vers FEDASO
$lastDepot=false; // Remettre à disposition le précédent envoi
$chargerRetour=true; // Charger le/les retours Fedaso
$initReferentiel=false; // Mettre à jour le référentiel des tables associées
$tabFichierIn=$tabFichLigneCmd=array();
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Gestion des échanges avec Fedaso.
Options :
-d(:XXX) Mettre à disposition les $nbEnvois documents à traiter par Fedaso (forcer le nombre à XXX).
-l Remettre à disposition les documents du précédent envoi.
-t Forcer la mise à jour hebdomadaire des tables associées.
-c Charger les documents traités et retournés par Fedaso (*)
-v Mode verbose (ou debug)
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$genereDepot=true;
$nbEnvoisUti=substr($argv[$i],3)*1;
if ($nbEnvoisUti>0) $nbEnvois=$nbEnvoisUti;
if (date('N')==5) $initReferentiel=true;
break;
case 'r':
$chargerRetour=true;
break;
case 'v':
$modeDebug=true;
break;
case 'l':
$lastDepot=true;
break;
case 't':
$initReferentiel=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
} else $tabFichLigneCmd[]=$argv[$i];
}
// 1: A supprimer quand Fedaso est nickel... d'ici
if (!$modeDebug) {
switch (''.date('d-m')) {
case '01-01':
case '01-05':
case '25-12':
die();
break;
default:
if (date('N')>5) // Nombre ISO-8601 du jour de la semaine (ajout PHP 5.1.0) de 1 à 7 : Lundi à Dimanche
die();
break;
}
}
$nbPdfEncours=$nbPdfInexist=0;
if (count($tabFichLigneCmd)==0) {
$dh = opendir($repCsvFedaso);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.txt')
$tabFichierIn[] = $filename;
}
sort($tabFichierIn);
} else $tabFichierIn=$tabFichLigneCmd;
if ($initReferentiel) {
if (date('N')==5) echo date('Y/m/d - H:i:s') ." - Génération hebdomadaire du référentiel OK...". EOL;
else echo date('Y/m/d - H:i:s') ." - Génération forcée du référentiel OK...". EOL;
$nb=file_put_contents($repPdfInfogreffe."/tableCodesRetours_$verFedasoRef.csv", $fedaso->getRefCodeRetour($sep,$eol));
echo date('Y/m/d - H:i:s') ." - Référentiel 'Codes Retours' : $nb lignes.". EOL;
$nb=file_put_contents($repPdfInfogreffe."/tableCodesVoies_$verFedasoRef.csv", $fedaso->getRefCodeVoie($sep,$eol));
echo date('Y/m/d - H:i:s') ." - Référentiel 'Codes Voies' : $nb lignes.". EOL;
$nb=$iDb->exportCSV('SELECT devIso, devNom FROM sdv1.devise_liste;', $repPdfInfogreffe."/tableCodesDevises_$verFedasoRef.csv",$sep,$eol);
echo date('Y/m/d - H:i:s') ." - Référentiel 'Devises' : $nb lignes.". EOL;
$nb=$iDb->exportCSV('SELECT codActe, libActe FROM jo.tabActes;', $repPdfInfogreffe."/tableCodesActes_$verFedasoRef.csv",$sep,$eol);
echo date('Y/m/d - H:i:s') ." - Référentiel 'Actes' : $nb lignes.". EOL;
$nb=$iDb->exportCSV('SELECT codeFct AS codFonction, libelle AS libFonction FROM jo.bodacc_fonctions;', $repPdfInfogreffe."/tableCodesFonctions_$verFedasoRef.csv",$sep,$eol);
echo date('Y/m/d - H:i:s') ." - Référentiel 'Fonctions' : $nb lignes.". EOL;
$nb=$iDb->exportCSV('SELECT g.bdfFibCodeEtab AS banque, g.bdfFibCodeGuichet AS guichet, b.bdfFibDenom40 AS nomBanque, b.bdfFibDenom10 AS sigleBanque, g.bdfFibDenom20 AS nomGuichet, g.bdfFibAdresse1 AS adresse1, g.bdfFibAdresse2 AS adresse2, g.bdfFibAdresse3 AS adresse3, g.CP, g.Ville
FROM insee.BDF_Etabs b, insee.BDF_Guichets g
WHERE b.bdfFibCodeEtab = g.bdfFibCodeEtab
ORDER BY banque, guichet;', $repPdfInfogreffe."/tableCodesGuichets_$verFedasoRef.csv",$sep,$eol);
echo date('Y/m/d - H:i:s') ." - Référentiel 'Guichets' : $nb lignes.". EOL;
$nb=$iDb->exportCSV('SELECT codPays3 AS codPays, libPays FROM jo.tabPays;', $repPdfInfogreffe."/tableCodesPays_$verFedasoRef.csv",$sep,$eol);
echo date('Y/m/d - H:i:s') ." - Référentiel 'Pays' : $nb lignes.". EOL;
$zip = new ZipArchive;
$res=$zip->open($repPdfInfogreffe."/tableReferentiel_$verFedasoRef.zip", ZipArchive::OVERWRITE);
if ($res === TRUE) {
$zip->addFile($repPdfInfogreffe."/tableCodesRetours_$verFedasoRef.csv", "tableCodesRetours_$verFedasoRef.csv");
$zip->addFile($repPdfInfogreffe."/tableCodesVoies_$verFedasoRef.csv", "tableCodesVoies_$verFedasoRef.csv");
$zip->addFile($repPdfInfogreffe."/tableCodesDevises_$verFedasoRef.csv", "tableCodesDevises_$verFedasoRef.csv");
$zip->addFile($repPdfInfogreffe."/tableCodesActes_$verFedasoRef.csv", "tableCodesActes_$verFedasoRef.csv");
$zip->addFile($repPdfInfogreffe."/tableCodesFonctions_$verFedasoRef.csv", "tableCodesFonctions_$verFedasoRef.csv");
$zip->addFile($repPdfInfogreffe."/tableCodesGuichets_$verFedasoRef.csv", "tableCodesGuichets_$verFedasoRef.csv");
$zip->addFile($repPdfInfogreffe."/tableCodesPays_$verFedasoRef.csv", "tableCodesPays_$verFedasoRef.csv");
$zip->close();
unlink($repPdfInfogreffe."/tableCodesRetours_$verFedasoRef.csv");
unlink($repPdfInfogreffe."/tableCodesVoies_$verFedasoRef.csv");
unlink($repPdfInfogreffe."/tableCodesDevises_$verFedasoRef.csv");
unlink($repPdfInfogreffe."/tableCodesActes_$verFedasoRef.csv");
unlink($repPdfInfogreffe."/tableCodesFonctions_$verFedasoRef.csv");
unlink($repPdfInfogreffe."/tableCodesGuichets_$verFedasoRef.csv");
unlink($repPdfInfogreffe."/tableCodesPays_$verFedasoRef.csv");
echo date('Y/m/d - H:i:s') ." - Compression ZIP du référentiel OK...". EOL;
} else {
echo date('Y/m/d - H:i:s') ." - ERREUR ZIP n°$res : Compression ZIP du référentiel impossible !". EOL;
}
}
/*
$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=URL_BASE."bilan-$siren-$params.pdf".URL_SECURE;
//$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=URL_BASE."acte-$siren-$params.pdf".URL_SECURE;
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;
}
}
$nomPdf=basename(preg_replace('/\?.*$/','',$url));
$tabPdf=getPdfInfo($repPdfInfogreffe.'/'.$nomPdf);
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.'/'.$nomPdf, '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.'/'.$nomPdf);
// randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
if (!$tabPdf) {
echo date('Y/m/d - H:i:s') ." - ___\t$url (vide)".EOL;
unlink($repPdfInfogreffe.'/'.$nomPdf);
continue;
}
$pdfSize= $tabPdf['pdfSize'];
$pdfVer = $tabPdf['version'];
$pdfPage= $tabPdf['nbPages'];
$nbEncours++;
$tabFichierOut[]=$nomPdf;
$strFichierOut.="$nbEncours\t$dateCmd\t$pdfSize ko\t$pdfPage\t$nomPdf".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=URL_BASE."acte-$siren-$params.pdf".URL_SECURE;
//$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;
}
}
$nomPdf=basename(preg_replace('/\?.*$/','',$url));
$tabPdf=getPdfInfo($repPdfInfogreffe.'/'.$nomPdf);
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=URL_BASE."acte-$siren-$params2.pdf".URL_SECURE;
$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);
$nomPdf=basename(preg_replace('/\?.*$/','',$url));
$fp=@fopen($repPdfInfogreffe.'/'.$nomPdf, '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.'/'.$nomPdf);
// randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
if (!$tabPdf) {
echo date('Y/m/d - H:i:s') ." - ___\t$url (vide)".EOL;
unlink($repPdfInfogreffe.'/'.$nomPdf);
continue;
}
$pdfSize= $tabPdf['pdfSize'];
$pdfVer = $tabPdf['version'];
$pdfPage= $tabPdf['nbPages'];
$nbEncours++;
//$tabFichierOut[]=basename($url);
$tabFichierOut[]=$nomPdf;
$strFichierOut.="$nbEncours\t$dateCmd\t$pdfSize ko\t$pdfPage\t$nomPdf".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;
if (count($tabFichierIn)>0 || count($tabFichLigneCmd)>0) {
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement du retour Fedaso.".EOL;
$mailReferentiel=$msgDiff=array();
for ($i=0; isset($tabFichierIn[$i]); $i++)
{
//IKI
$nomFichier =$tabFichierIn[$i];
$dateFichier=date('YmdHis', filectime($repCsvFedaso.$nomFichier));
$fp=fopen($repCsvFedaso.$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;
$refDocPre=$refoc=$dateInfoPre=$dateInfo=false;
$nbLiensInsert=$nbDirInsert=$nbRibInsert=0;
$ligne=1;
rewind($fp);
/** Traitement de la 1ère ligne **/
$a = utf8_decode(fgets($fp, 2048));
while (!feof($fp))
{
$ajoutMailRef=false;
/*
$siren = trim($a[0]);
$typeData = strtoupper(trim($a[1]));
$codeRetour = trim($a[2]);
$typeActe = trim($a[3]);
$refDoc = trim($a[4]);
*/
$siren=$siren1 = trim(substr($a,0,9))*1;
$typeData = strtoupper(trim(substr($a,9,1)));
$codeRetour = trim(substr($a,10,3))*1;
$typeActe = trim(substr($a,13,3));
$refDoc = trim(substr($a,16,80));
if ($siren==0) {
$tmp=explode('-', $refDoc);
$siren=$tmp[1];
/*
if (substr($refDoc,4,1)=='_') $pageAc='greffe_bilans';
elseif (substr($refDoc,2,1)=='-') $pageAc='greffe_actes';
$tabTmp=$iDb2->select('fedaso', 'siren', "page='$pageAc' AND params='$refDoc'", false, MYSQL_ASSOC);
if ($tabTmp[0]['siren']>0) $siren=$tabTmp[0]['siren'];
echo date ('Y/m/d - H:i:s')." - ERREUR fichier $nomFichier, ligne $ligne : Siren vide dans $refDoc remplacé par $siren !".EOL;*/
if ($siren==0 || !$iInsee->valideSiren($siren))
die(date ('Y/m/d - H:i:s')." - ERREUR fichier $nomFichier, ligne $ligne : Siren $siren invalide dans $refDoc !".EOL);
}
$entrep=@$iInsee->getIdentiteEntreprise($siren);
$typePresta = strtoupper(trim(substr($a,96,1)));
/** @todo Tester les codes retour **/
switch ($codeRetour) {
case 100: // Document illisible
case 101: // Document partiellement lisible
case 102: // Document inattendu
case 103: // Page blanche
case 104: // Fichier absent
case 105: // Page partiellement scannée
case 106: // Document complémentaire concernant une autre société
case 107: // Page(s) manquante(s)
case 108: // Document(s) non Francophone
echo date ('Y/m/d - H:i:s')." - ERREUR fichier $nomFichier, ligne $ligne : Code retour n°$codeRetour sur $siren ($typeData) !".EOL;
continue;
break;
case 200: // Aucune information dirigeants
case 210: // Aucune information actionnaire
case 211: // Aucune information capitalistique
case 220: // Aucune information RIB
case 251: // Raison Sociale en double : entête retenue
case 252: // Raison Sociale en double : entête non retenue
echo date ('Y/m/d - H:i:s')." - ATTENTION fichier $nomFichier, ligne $ligne à priori vide (Vérifier si fedaso gère bien ces codes) !".EOL;
break;
case 201: // Code fonction inexistant
case 221: // Code guichet inconnu
case 250: // Raison Sociale absente
case 300: // Code pays absent du réferentiel
case 301: // Code devise absent du référentiel
$ajoutMailRef=true;
break;
case 0:
break;
default:
$message="ERREUR fichier $nomFichier, ligne $ligne : Code retour Fedaso inconnu '$codeRetour' pour le document $refDoc dans le fichier $nomFichier";
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Erreur code retour '$codeRetour' inconnu", $message);
echo date ('Y/m/d - H:i:s')." - $message".EOL;
die();
break;
}
// Récupération de la date du document
$tmp=@explode('-', $refDoc);
$dateDoc=@$tmp[3]*1;
// Transformation de la référence en réf. stockée en base (suppression siren, acte/bilan et .pdf)
$refBase=str_replace('.pdf','',preg_replace('/^(bilan|acte)-\d\d\d\d\d\d\d\d\d-/Ui','', $refDoc));
$tabTypeActes[$refDoc][]=$typeActe;
$tabInsert=array();
$table='';
//echo "$nomFichier, $ligne, $codeRetour, $refDoc, $typeData (deb)".EOL;
switch ($typeData) {
case 'R': // ligne de RIB
$rib=array();
$rib['codeBanque'] = trim(substr($a, 97, 5))*1;
$rib['codeGuichet'] = trim(substr($a,102, 5))*1;
$rib['numCompte'] = trim(substr($a,107,11));
$rib['clefRib'] = trim(substr($a,118, 2))*1;
$rib['libBanque'] = strtoupper(trim(substr($a,120,40)));
$rib['libGuichet'] = strtoupper(trim(substr($a,160,40)));
$rib['dateInfo'] = trim(substr($a,200, 8))*1;
$rib['dateDispo'] = trim(substr($a,208,14))*1;
$rib['dateSaisie'] = trim(substr($a,222,14))*1;
$rib['refDoc'] = $refBase;
if ($rib['codeBanque']<>0 || $rib['codeGuichet']<>0 || $rib['numCompte']<>'' || $rib['clefRib']<>0 ||
$rib['libBanque']<>'' || $rib['libGuichet']<>'' ) {
$table='fedRib';
$rib['siren'] = $siren;
$rib['source'] = 1500;
$rib['codeRetour']=$codeRetour;
$tabInsert=$rib;
@$tabTypeData[$refDoc][$typeData]++;
if ($ajoutMailRef) {
$mailReferentiel[]="Document $refDoc : Code Banque ou Guichet inconnu ". $rib['libBanque'].' ('.$rib['codeBanque'].') - '.$rib['libGuichet'].' ('.$rib['codeGuichet'].')';
}
}
break;
case 'D': // Ligne de Dirigeants
$dir=array();
$dir['siren'] = $siren;
$dir['raisonSociale']= strtoupper( trim(substr($a, 100,255)));
$dir['dateInfo'] = strtoupper( trim(substr($a,1019, 8)))*1;
$dir['source'] = 1500;
$dir['refDoc'] = $refBase;
if ($dir['dateInfo']==0) {
$dir['dateInfo']=$dateDoc;
}
if ($dir['raisonSociale']<>'')
if (!$iDb2->insert('capitalActions', $dir))
if (!$iDb2->update('capitalActions', $dir, "siren=$siren AND (dateInfo='".$dir['dateInfo']."' OR refDoc='$refBase')"))
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - Insertion impossible sur 'capitalAction' : ". mysql_error().EOL;
$dir['actif'] = trim(substr($a, 97, 1));
if ($dir['actif']=='')
$dir['actif']='-1';
$dir['typeDir'] = strtoupper( trim(substr($a, 98, 2)));
$dir['dirSiren']=$siren2= trim(substr($a, 355, 9));
$dir['dirSirenValide']=0;
if ($dir['typeDir']=='PM') {
if ($siren2<>0 && $iInsee->valideSiren($siren2))
$dir['dirSirenValide']=1;
else
echo date ('Y/m/d - H:i:s')." - Fichier $nomFichier, ligne $ligne : Prévoir le sirenage des dirigeants $codeRetour sur $siren/$siren2 ($typeData) !".EOL;
}
$dir['dirRS'] = strtoupper( trim(substr($a, 364,255)));
$dir['civilite'] = strtoupper( trim(substr($a, 619, 3)));
$dir['nom'] = strtoupper( trim(substr($a, 622, 60)));
$dir['prenom'] = strtoupper( trim(substr($a, 682, 40)));
$dir['naissance_nom']= strtoupper( trim(substr($a, 722, 60)));
$dir['naissance_date']= trim(substr($a, 782, 8))*1;
$dir['naissance_dept_pays']=strtoupper(trim(substr($a,790,3)));
$dir['naissance_lieu']= strtoupper( trim(substr($a, 793, 40)));
$dir['nat'] = strtoupper( trim(substr($a, 833, 3)));
$dir['adresse_num'] = trim(substr($a, 836, 4))*1;
$dir['adresse_btq'] = strtoupper( trim(substr($a, 840, 1)));
$dir['adresse_codvoie']=strtoupper( trim(substr($a, 841, 4)));
$dir['adresse_libvoie']=strtoupper( trim(substr($a, 845, 32)));
$dir['adresse_comp']= strtoupper( trim(substr($a, 877, 40)));
$dir['adresse_cp'] = strtoupper( trim(substr($a, 917, 5)));
$dir['adresse_ville']= strtoupper( trim(substr($a, 922, 40)));
$dir['adresse_pays']= strtoupper( trim(substr($a, 962, 3)));
if ($ajoutMailRef && $codeRetour==300)
$mailReferentiel[]="Document $refDoc : Code pays '".$dir['adresse_pays']."' ou nationalité '".$dir['nat']."'inconnu !";
$dir['fonction_code']= strtoupper( trim(substr($a, 965, 4)))*1;
$dir['fonction_lib']= strtoupper( trim(substr($a, 969, 50)));
if ($dir['fonction_code']==0 && $dir['fonction_lib']<>'')
$mailReferentiel[]="Document $refDoc : Code Fonction dirigeant inexistant '". $dir['fonction_lib']."'";
$dir['dateDispo'] = strtoupper( trim(substr($a,1027, 14)))*1;
$dir['dateSaisie'] = strtoupper( trim(substr($a,1041, 14)))*1;
$dir['codeRetour'] = $codeRetour;
if ($codeRetour==200) {
$table='';
} else {
@$tabTypeData[$refDoc][$typeData]++;
$tabInsert=$dir;
$table='fedDirigeants';
}
break;
case 'L': // lien
case 'A': // lien Actionnaires
case 'P': // lien Participations
case 'F': // lien Fusion Absorbant
case 'E': // ligne de lien Fusion Absorbée
case 'S': // ligne de lien Scission
$lien=array();
$pct=0;
$lien['capital'] = trim(substr($a, 97, 15))*1;
$lien['deviseCapital'] = strtoupper( trim(substr($a, 112, 3)));
$lien['nbActions'] = trim(substr($a, 115, 15))*1;
if ($ajoutMailRef && $codeRetour==301)
$mailReferentiel[]="Document $refDoc : Code devise inconnu ". $lien['deviseCapital'];
if ($lien['nbActions']<>0 && $lien['capital']<>0)
$lien['actionNominale'] = $lien['capital']/$lien['nbActions'];
if ($lien['capital']<>0 || $lien['deviseCapital']<>'' || $lien['nbActions']<>0) {
$lien['siren'] = $siren;
$lien['source'] = 1500;
$lien['refDoc'] = $refBase;
$lien['dateInfo'] = trim(substr($a, 631, 8))*1; // A voir mais la date du doc n'est pas la date de signature
$lien['dateSaisie'] = trim(substr($a, 782, 14))*1;
if ($lien['dateInfo']==0) {
$lien['dateInfo']=$dateDoc;
}
if (!$iDb2->insert('capitalActions', $lien))
if (!$iDb2->update('capitalActions', $lien, "siren=$siren AND (dateInfo='".$lien['dateInfo']."' OR refDoc='$refBase')"))
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - Insertion impossible sur 'capitalAction' : ". mysql_error().EOL;
}
//echo "$nomFichier, $ligne, $codeRetour, $refDoc, $typeData (capital)".EOL;
$lien['actif'] = trim(substr($a, 130, 1));
if ($lien['actif']=='')
$lien['actif']=1;//'NULL';
$lien['lienPct'] = trim(substr($a, 131, 6))*1;
$lien['lienNbActions'] = trim(substr($a, 137, 15))*1;
$lien['lienMontant'] = trim(substr($a, 152, 15))*1;
if ($lien['capital']>0) {
if ($lien['lienPct']>0)
$pct=$lien['lienPct'];
elseif ($lien['lienMontant']>0) {
$pct=($lien['lienMontant']/$lien['capital'])*100;
$lien['lienPct']=$pct;
}
} elseif($lien['lienNbActions']>0 && $lien['nbActions']) {
$pct=($lien['lienNbActions']/$lien['nbActions'])*100;
$lien['lienPct']=$pct;
}
$lien['MajMin'] = strtoupper( trim(substr($a, 167, 1)));
if ($pct>50 && $lien['MajMin']<>'+')
$lien['MajMin']='+';
$lien['PpPm'] = strtoupper( trim(substr($a, 168, 2)));
$lien['siren2']=$siren2 = trim(substr($a, 170, 9))*1;
$lien['RS'] = strtoupper( trim(substr($a, 179,255)));
$lien['nom'] = strtoupper( trim(substr($a, 434, 40)));
$lien['prenom'] = strtoupper( trim(substr($a, 474, 40)));
$lien['siren2Valide']=0;
//echo "$nomFichier, $ligne, $codeRetour, $refDoc, $typeData (".$lien['PpPm']." 1)".EOL;
if ($lien['PpPm']=='PM') {
if ($siren2<>0 && $iInsee->valideSiren($siren2))
$lien['siren2Valide']=1;
else
echo date ('Y/m/d - H:i:s')." - Fichier $nomFichier, ligne $ligne : Prévoir le sirenage des actionnaires/participations $codeRetour sur $siren/$siren2 ($typeData) !".EOL;
}
//echo "$nomFichier, $ligne, $codeRetour, $refDoc, $typeData (".$lien['PpPm']." 2)".EOL;
$lien['civilite'] = strtoupper( trim(substr($a, 514, 3)));
$lien['naissance_nom'] = strtoupper( trim(substr($a, 517, 60)));
$lien['naissance_date'] = strtoupper( trim(substr($a, 577, 8)));
$lien['naissance_dept_pays']= strtoupper( trim(substr($a, 585, 3)));
$lien['naissance_lieu'] = strtoupper( trim(substr($a, 588, 40)));
$lien['nat'] = strtoupper( trim(substr($a, 628, 3)));
$lien['adresse_num'] = strtoupper( trim(substr($a, 639, 4)));
$lien['adresse_btq'] = strtoupper( trim(substr($a, 643, 1)));
$lien['adresse_codvoie'] = strtoupper( trim(substr($a, 644, 4)));
$lien['adresse_libvoie'] = strtoupper( trim(substr($a, 648, 32)));
$lien['adresse_comp'] = strtoupper( trim(substr($a, 680, 40)));
$lien['adresse_cp'] = strtoupper( trim(substr($a, 720, 5)));
$lien['adresse_ville'] = strtoupper( trim(substr($a, 725, 40)));
$lien['adresse_pays'] = strtoupper( trim(substr($a, 765, 3)));
//$lien['dateDepot'] = strtoupper( trim(substr($a, 768, 1)));
$lien['typeLien']=$typeData;
$lien['codeRetour'] = $codeRetour;
$lien['dateInsert'] = date('YmdHis');
$inversionActionnaire=false;
if ($typeData=='P' || $typeData=='A') {
if ($typeData=='A') {
$actionPart1=2;
$actionPart2=1;
} elseif ($typeData=='P') {
$actionPart1=1;
$actionPart2=2;
}
if ($siren>0 && $siren2>0)
// On vérifie qu'aucun lien fournit par un tiers + précis ne soit en base
$ret=$iDb->select('liens', 'count(*) AS nb', "(Siren1 IN ($siren,$siren2) OR Siren2 IN ($siren,$siren2)) AND source>1500", false, MYSQL_ASSOC);
elseif ($siren>0 && $siren2<1000)
$ret=$iDb->select('liens', 'count(*) AS nb', "(Siren1=$siren OR Siren2=$siren) AND source>1500", false, MYSQL_ASSOC);
if ($ret[0]['nb']==0) {
if ($lien['adresse_pays']<>'' && $lien['adresse_pays']<>'FRA')
$pays=$lien['adresse_pays'];
else $pays='';
$rs1=trim(preg_replace('/ +/', ' ', $lien['RS']));
if ($pct>50 && $lien['MajMin']<>'+') $lien['MajMin']='+';
elseif ($pct<50 && $lien['MajMin']=='') $lien['MajMin']='-';
if ($rs1=='') {
$rs1=trim(preg_replace('/ +/', ' ', $lien['civilite'].' '.$lien['nom'].' '.$lien['prenom']));
if ($lien['naissance_nom']<>'') $rs1.=' '.trim(preg_replace('/ +/', ' ', 'né(e) '.$lien['naissance_nom']));
if ($typeData=='A') {
// On force le lien $siren est détenu par $rs1
$actionPart1=1;
$inversionActionnaire=true;
}
}
$tabInsertLiens1=array( 'Siren1' => $siren,
'actif' => $lien['actif']*1,
'source' => 1500,
'ActionPart'=> $actionPart1,
'Pmin' => round($pct,2),
'Pmax' => round($pct,2),
'MajMin' => $lien['MajMin'],
'PpPm' => substr($lien['PpPm'],1,1), // P ou M
'Siren2' => $siren2,
'RaisonSociale'=>$rs1,
'Pays' => $pays,
'dateLien' => $lien['dateInfo'],
'dateInsert'=> date('YmdHis'),
);
if (substr($entrep['FJ'],0,1)*1<>1) $pppm2='M';
else $pppm2='P';
$rs2=$entrep['Nom'];
$pays2=trim($entrep['Pays']);
$tabInsertLiens2=array( 'Siren1' => $siren2,
'actif' => $lien['actif']*1,
'source' => 1500,
'ActionPart'=> $actionPart2,
'Pmin' => round($pct,2),
'Pmax' => round($pct,2),
'MajMin' => $lien['MajMin'],
'PpPm' => $pppm2, // P ou M
'Siren2' => $siren,
'RaisonSociale'=>$rs2,
'Pays' => $pays2,
'dateLien' => $lien['dateInfo'],
'dateInsert'=> date('YmdHis'),
);
if ($iDb->insert('liens', $tabInsertLiens1))
$nbLiensInsert++;
else {
print_r($tabInsertLiens1);
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - Insertion impossible sur 'jo.liens' 1 : ". mysql_error().EOL;
}
if ($siren>0 && $siren2>1000) {
if($iDb->insert('liens', $tabInsertLiens2))
$nbLiensInsert++;
else {
print_r($tabInsertLiens2);
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - Insertion impossible sur 'jo.liens' 2 : ". mysql_error().EOL;
}
}
$lien['lienPublie']=1;
}
}
if ($codeRetour==210) {
$table='';
} else {
@$tabTypeData[$refDoc][$typeData]++;
$tabInsert=$lien;
$table='fedLiens';
}
break;
default:
echo date ('Y/m/d - H:i:s')." - ERREUR fichier $nomFichier, ligne $ligne : TypeData '$typeData' inconnu !".EOL;
break;
}
//echo "$nomFichier, $ligne, $codeRetour, $refDoc, $typeData (FIN)".EOL;
if ($table<>'') {
if (!$iDb2->insert($table, $tabInsert) && mysql_errno()<>1062)
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - Insertion impossible sur '$table' : ". mysql_error().EOL;
else {
if ($table=='fedDirigeants') $nbDirInsert++;
elseif ($table=='fedRib') $nbRibInsert++;
}
}
/** Contôle des informations **/
if ($table=='fedLiens') {
$refDoc=$lien['refDoc'];
$dateInfo=$lien['dateInfo'];
$entete="$nomFichier\t$ligne\t$siren1\t$refDoc\t$typeData\t";
if ($inversionActionnaire) {
$ligneDiff="$entete.inversion Actionnaire et non Participation\t$rs1";
$msgDiff[]=$ligneDiff;
echo $ligneDiff.EOL;
}
if ($lien['nbActions']>$lien['capital']) {
$ligneDiff="$entete.nbActions capital incohérentes\t".$lien['nbActions'];
$msgDiff[]=$ligneDiff;
echo $ligneDiff.EOL;
}
/** On ne fait les contrôles suivants que si l'acte est récent ou pas de modifs **/
$documentRecent=true;
if ( ($refDocPre==$refDoc || $documentRecent) &&
(round($lien['capital'])<>round($entrep['Capital']) ||
$lien['deviseCapital']<>$entrep['CapitalDev']) ) {
/* if ($lien['deviseCapital']=='FRF' && $entrep['CapitalDev']=='EUR'
&& round($lien['capital']/6.55957)==round($entrep['Capital']) )
else*/
$ligneDiff=$entete."capital différents\t".$lien['capital'].' '.$lien['deviseCapital']."\t".$entrep['Capital'].' '.$entrep['CapitalDev'];
$msgDiff[]=$ligneDiff;
echo $ligneDiff.EOL;
}
} elseif ($table=='fedDirigeants') {
$refDoc=$dir['refDoc'];
$dateInfo=$dir['dateInfo'];
$entete="$nomFichier\t$ligne\t$siren1\t$refDoc\t$typeData\t";
if ($dir['dirSirenValide']==1 && !$iInsee->sirenExiste($dir['dirSirenValide'])) {
$ligneDiff=$entete."dirSiren inexistant\t".$dir['dirSiren'];
$msgDiff[]=$ligneDiff;
echo $ligneDiff.EOL;
}
/** On ne fait les contrôles suivants que si l'acte est récent ou pas de modifs **/
$documentRecent=true;
if (($refDocPre==$refDoc || $documentRecent) &&
(strtoupper($dir['raisonSociale'])<>strtoupper($entrep['Nom']))) {
$lev = levenshtein(strtoupper($dir['raisonSociale']), strtoupper($entrep['Nom']));
$tmoy= strlen($dir['raisonSociale'].$entrep['Nom']);
$lt=round($lev/$tmoy,2);
if ($lt>0.5) {
$ligneDiff=$entete."raisonSociale différent\t".$dir['raisonSociale']."\t".$entrep['Nom'];
$msgDiff[]=$ligneDiff;
echo $ligneDiff.EOL;
}
}
}
$ligne++;
$a = utf8_decode(fgets($fp, 2048));
// Variables de contrôles
$refDocPre=$refDoc;
$dateInfoPre=$dateInfo;
}
if (bzip2($repCsvFedaso.$nomFichier, FEDASO_BACKUP_DIR.$nomFichier)) {
unlink($repCsvFedaso.$nomFichier);
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
}
}
if (count($mailReferentiel)>0) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Penser à modifier le référentiel", implode(EOL, $mailReferentiel));
}
if (count($msgDiff)>0) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Chargement des flux quotidiens", "Récapitulatif du traitement :
- $nbLiensInsert liens ajoutés
- $nbDirInsert dirigeants ajoutés
- $nbRibInsert RIB ajoutés
Liste des contrôles :".EOL.implode(EOL, $msgDiff));
}
/** Enlever ce die() quand on est prêt à valider les fichiers charger **/
//die();
/** Mise à jour des informations globales de retour : Dates, Types d'actes et structures lues
**/
foreach ($tabTypeActes as $refDoc=>$typeActes) {
// Transformation de la référence en réf. stockée en base (suppression siren, acte/bilan et .pdf)
$params=str_replace('.pdf','',preg_replace('/^(bilan|acte)-\d\d\d\d\d\d\d\d\d-/Ui','', $refDoc));
$tmp=explode('-', $refDoc);
$siren=$tmp[1];
$tabTypeData2=array();
if (isset($tabTypeData[$refDoc]))
foreach ($tabTypeData[$refDoc] as $typeD=>$nbD)
$tabTypeData2=array_merge($tabTypeData2, array('nbData'.$typeD=>$nbD));
echo date ('Y/m/d - H:i:s') . " - Mise à jour des infos retournées pour $refDoc...".EOL;
$typeActes=array_unique($typeActes);
if (!$iDb2->update('fedaso', array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes),
'dateRetour'=>$dateFichier)),"siren=$siren AND params='$params'")) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : ERREUR Fichier PDF non diffusé",
"siren=$siren AND params='$params'".EOL.
print_r(array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes), 'dateRetour'=>$dateFichier)),true));
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - MAJ impossible sur 'fedaso' : ". mysql_error().EOL;
if (substr($params,0,4)*1>1950) $pageAc='greffe_bilans';
else $pageAc='greffe_actes';
$iDb2->insert('fedaso', array( 'siren' => $siren,
'params' => $params,
'page' => $pageAc,
'dateEnvoi' => date('YmdHis'),
));
if (!$iDb2->update('fedaso', array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes),
'dateRetour'=>$dateFichier)),"siren=$siren AND params='$params'")) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : ERREUR Fichier PDF non diffusé",
"siren=$siren AND params='$params'".EOL.
print_r(array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes), 'dateRetour'=>$dateFichier)),true));
die();
}
}
}
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement du retour Fedaso.".EOL;
} else {
//$message.="Aucun fichier CSF à traiter !\r\n";
echo date ('Y/m/d - H:i:s') . " - Aucun fichier Fedaso à traiter !".EOL;
//if (count($argv)==1) die($strInfoScript);
}
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
?>

View File

@ -1,548 +0,0 @@
#!/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.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMFedaso.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;
}
$iDb=new WDB();
$iDb2=new WDB('sdv1');
$iInsee=new MInsee();
$fedaso=new MFedaso();
$iGreffes=new MGreffes();//getListeActes($siren)
$tabInfosGlobal=array();
define('FEDASO_BACKUP_DIR','/home/data/fedaso/bilans/');
define('BILANS_A_SAISIR_DIR', '/home/data/ftp/bilansext/send');
define('FEDASO_BILANS_TODO_DIR','/home/data/ftp/fedaso/bilans/recv');
define('FEDASO_BILANS_DONE_DIR','/home/data/ftp/fedaso/bilans/send/');
$nbEnvois=200;
$verFedasoFic='v0,6';
$verFedasoRef='v0,14';
$sep=',';
$eol=EOL;
$modeTest=false; // Ne pas envoyer de mails aux utilisateurs finaux de PROD
$modeDebug=false;
$genereDepot=false; // Génération du lot de traitement pour envoi vers FEDASO
$lastDepot=false; // Remettre à disposition le précédent envoi
$chargerRetour=true; // Charger le/les retours Fedaso
$initReferentiel=false; // Mettre à jour le référentiel des tables associées
$tabFichierIn=$tabFichLigneCmd=array();
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Gestion des échanges avec Fedaso.
Options :
-d(:XXX) Mettre à disposition les $nbEnvois documents à traiter par Fedaso (forcer le nombre à XXX).
-l Remettre à disposition les documents du précédent envoi.
-t Forcer la mise à jour hebdomadaire des tables associées.
-c Charger les documents traités et retournés par Fedaso (*)
-m Ne pas envoyer de mails en prod (mode test)
-v Mode verbose (ou debug)
(*) Option par défaut si aucun argument n'est passé.
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
-f Calculer les scores financiers
*/
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$genereDepot=true;
$nbEnvoisUti=substr($argv[$i],3)*1;
if ($nbEnvoisUti>0) $nbEnvois=$nbEnvoisUti;
if (date('N')==5) $initReferentiel=true;
break;
case 'r':
$chargerRetour=true;
break;
case 'v':
$modeDebug=true;
break;
case 'm':
$modeTest=true;
break;
case 'l':
$lastDepot=true;
break;
case 't':
$initReferentiel=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . ' inconnue !'.EOL);
break;
}
} else $tabFichLigneCmd[]=$argv[$i];
}
// 1: A supprimer quand Fedaso est nickel... d'ici
if (!$modeDebug) {
switch (''.date('d-m')) {
case '01-01':
case '01-05':
case '25-12':
die();
break;
default:
if (date('N')>5) // Nombre ISO-8601 du jour de la semaine (ajout PHP 5.1.0) de 1 à 7 : Lundi à Dimanche
die();
break;
}
}
$nbPdfEncours=$nbPdfInexist=0;
if (count($tabFichLigneCmd)==0) {
$dh = opendir(FEDASO_BILANS_DONE_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.txt')
$tabFichierIn[] = $filename;
}
sort($tabFichierIn);
} else $tabFichierIn=$tabFichLigneCmd;
// Lecture du dossier des dépots de bilans à demander en saisie
if ($genereDepot) {
$nbEncours=0;
$dh = opendir(BILANS_A_SAISIR_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.pdf') {
$filename2=str_replace('.pdf','',$filename);
$tabTmp=explode('_', str_replace('BS','',$filename2));
$siren = $tabTmp[0];
$dateClot= $tabTmp[1];
$dureeClot=$tabTmp[2];
$conf = $tabTmp[3];
$idUti = $tabTmp[4];
$idBddExt=@$tabTmp[5];
$env = ''.@$tabTmp[6];
$dateFic=date('YmdHis', filectime(BILANS_A_SAISIR_DIR.'/'.$filename));
$tabPdf=getPdfInfo(BILANS_A_SAISIR_DIR.'/'.$filename);
if ($tabPdf) {
$pdfSize= $tabPdf['pdfSize'];
$pdfVer = $tabPdf['version'];
$pdfPage= $tabPdf['nbPages'];
}
$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,
'confidentiel' => $conf,
'idUtilisateur' => $idUti,
'idExtranet' => $idBddExt,
'environnement' => $env,
'refDoc' => $filename,
'dateEntree' => $dateFic,
'dateEnvoi' => date('YmdHis'),
'pdfNum' => $nbEncours,
'pdfSize' => $pdfSize,
'pdfPage' => $pdfPage,
))) {
echo 'KO bdd'.mysql_error().EOL;
} else {
$nbEncours++;
bzip2(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BACKUP_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);
}
}
}
}
if (count($tabFichierIn)>0 || count($tabFichLigneCmd)>0) {
$messageErrCtrl=''; // Message listant les erreurs de saisie
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement du retour Bilans Fedaso.".EOL;
$mailReferentiel=$msgDiff=array();
for ($i=0; isset($tabFichierIn[$i]); $i++)
{
//IKI
$nomFichier =$tabFichierIn[$i];
$dateFichier=date('YmdHis', filectime(FEDASO_BILANS_DONE_DIR.$nomFichier));
$fp=fopen(FEDASO_BILANS_DONE_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));
}
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier ($nbLignes bilans à traiter) !".EOL;
$refDocPre=$refoc=$dateInfoPre=$dateInfo=false;
$ligne=1;
rewind($fp);
/** Traitement de la 1ère ligne **/
$a = utf8_decode(fgets($fp));
while (!feof($fp))
{
$ajoutMailRef=false;
$a=explode(',',$a);
$refDoc = trim($a[0]);
// On ignore la ligne d'entête
if ($refDoc<>'PdfId') {
$siren = trim($a[1])*1;
$nic = trim($a[2])*1;
//$typeData = strtoupper(trim(substr($a,9,1)));
//$typeActe = trim(substr($a,13,3));
$dateExercice = trim($a[3])*1;
$dureeExercice = trim($a[4])*1;
$dateExercicePre = trim($a[5])*1;
$devise = strtoupper(trim($a[6]));
if ($devise=='') $devise = 'EUR';
$liasse = trim($a[7])*1;
$typeBilan = strtoupper(trim($a[8]));
// Liste des codes retours
$codeRetour = trim($a[9]);
if (preg_match('/01/', $codeRetour)) $codeSai='01';
elseif (preg_match('/00/', $codeRetour)) $codeSai='00';
else $codeSai=substr($codeRetour,0,2);
$unite = strtoupper(trim($a[10]));
// Postes du bilans
$strPostes = trim($a[11]);
$tabPostes=array();
$tabTmp=explode(';',$strPostes);
foreach ($tabTmp as $tmpPoste) {
$tabTmp2=explode('=',$tmpPoste);
$tabPostes[$tabTmp2[0]]=$tabTmp2[1];
}
// Contrôle du siren retourné par Fedaso
if ($siren==0 || !$iInsee->valideSiren($siren)) {
$tmp=explode('-', $refDoc);
$siren=$tmp[1];
if ($siren==0 || !$iInsee->valideSiren($siren)) {
$tmp=explode('_', $refDoc);
$siren=preg_replace('/^BS/','',$tmp[0])*1;
}
if ($siren==0 || !$iInsee->valideSiren($siren))
die(date ('Y/m/d - H:i:s')." - ERREUR fichier $nomFichier, ligne $ligne : Siren $siren invalide dans $refDoc !".EOL);
}
$ret=$iDb->select('bilans', 'siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dureeExercice', "siren='$siren' AND typeBilan='$typeBilan' AND dateExercice='$dateExercicePre'", true, MYSQL_ASSOC);
if (isset($ret[0])) {
$bilanPre=$ret[0];
if ($bilanPre['dureeExercice']>0) $dureeExercicePre=$bilanPre['dureeExercice'];
elseif ($bilanPre['dureeExerciceCalc']>0) $dureeExercicePre=$bilanPre['dureeExerciceCalc'];
}
$tabInsert=array('siren'=>$siren,
'dateProvPartenaire'=>date('Ymd'),
'dateExercice'=>$dateExercice,
'dateExercicePre'=>$dateExercicePre,
'dureeExercice'=>$dureeExercice,
'dureeExercicePre'=>$dureeExercicePre,
'monnaie'=>$devise,
'typeBilan'=>$typeBilan,
'monnaieOrigine'=>$devise,
'unite'=>$unite,
'partenaire'=>19,
'postes'=>$strPostes);
if ($codeSai=='00' || $codeSai=='01') {
$ret=$iDb->select('bilans', 'partenaire, siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dureeExercice', "siren='$siren' AND typeBilan='$typeBilan' AND dateExercice='$dateExercice'", true, MYSQL_ASSOC);
// Il y a déjà ce bilan en base ?
if (1==0) {//isset($ret[0])) {
/* $bilanPre=$ret[0];
if ($bilanPre['partenaire']==7 ||
$bilanPre['partenaire']==8 ||
$bilanPre['partenaire']==9) {*/
$ret=$iDb->update('bilans', $tabInsert, "siren='$siren' AND typeBilan='$typeBilan' AND dateExercice='$dateExercice'");
$nbUpdate++;
//} else
// $nbNotUpdate++;
} else {
/** Tester sur les nouveaux bilans
* - CA x par 10 - 100
* - Sous-totaux
* - Total Bilan
**/
if ($typeBilan=='N' || $typeBilan=='S') {
$anoBilan=false;
$msgBilan='';
foreach ($tabCtrl[$typeBilan] as $ctrl=>$libCtrl) {
$tmpCtrl=preg_split('/(\+|\-|=)/', $ctrl, null, PREG_SPLIT_DELIM_CAPTURE);
$total=0;
$action='+';
$strEcho="$libCtrl :\t$ctrl";
foreach ($tmpCtrl as $strCtrl) {
switch($strCtrl) {
case '+': $action='+'; break;
case '-': $action='-'; break;
case '=': $action='='; break;
default:
if ($action=='+') $total+=@$tabPostes[$strCtrl];
elseif ($action=='-') $total-=@$tabPostes[$strCtrl];
elseif ($action=='=') {
if ($total>0) {
$totalMin=($total*0.995)-ECART_CTRL_MAX;
$totalMax=($total*1.005)+ECART_CTRL_MAX;
} elseif ($total<0) {
$totalMin=($total*1.005)-ECART_CTRL_MAX;
$totalMax=($total*0.995)+ECART_CTRL_MAX;
} else {
$totalMin=ECART_CTRL_MAX*(-1);
$totalMax=ECART_CTRL_MAX;
}
if (!((@$tabPostes[$strCtrl]*1)>=$totalMin && (@$tabPostes[$strCtrl]*1)<=$totalMax)) {
if (!$anoBilan)
$messageLigne="Fichier $fichier : ligne $ligne, $siren, $dateExercice - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
else
$messageLigne='';
$messageLigne.="$strEcho (saisi ".@$tabPostes[$strCtrl].' <> '.$total." calculé)".EOL;
echo $messageLigne;
$messageErrCtrl.=$messageLigne;
$msgBilan.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents";
if ($codeSai=='00') $anoBilan=5;
}
// else echo "ok\t(".@$tabPostes[$strCtrl].'='.$total.')'.EOL;
}
break;
}
}
}
}
/*
$mBil=new MBilans($sirenPre);
$tabBilans=@$mBil->listeBilans();
//echo 'Liste des Bilans en base :'.EOL;
//print_r($tabBilans);
$tabBilan=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$dateClP), $typeBilan);
echo "Bilan précédent datant du '$dateClP' :".EOL;
//print_r($tabBilan);
echo "Bilan à ajouter datant du '$dateCloturePre' :".EOL;
//print_r($tabInsert);
//print_r($tabPostes);
if ($typeBilan=='N') {
foreach ($tabCtrlInter[$typeBilan] as $ctrl=>$libCtrl) {
$total=@$tabBilan[$ctrl]*1;
$strEcho="PROBLEME D'UNITE ? $libCtrl :\t$ctrl";
if ($total>0) {
$totalMin1=($total*0.008)-ECART_CTRL_MAX;
$totalMax1=($total*0.0012)+ECART_CTRL_MAX;
$totalMin2=($total*800)-ECART_CTRL_MAX;
$totalMax2=($total*1200)+ECART_CTRL_MAX;
} elseif ($total<0) {
$totalMin1=($total*0.0012)-ECART_CTRL_MAX;
$totalMax1=($total*0.008)+ECART_CTRL_MAX;
$totalMin2=($total*1200)-ECART_CTRL_MAX;
$totalMax2=($total*800)+ECART_CTRL_MAX;
} else {
$totalMin1=$totalMin2=false;//ECART_CTRL_MAX*(-1);
$totalMax1=$totalMax2=false;//ECART_CTRL_MAX;
}
if (isset($tabBilan[$ctrl]) && // Il y a un poste
!$totalMin1 && // Des seuils min
!$totalMin2 && // ... et max
!((@$tabPostes[$ctrl]*1)>=$totalMin1 && (@$tabPostes[$ctrl]*1)<=$totalMax1)) {
if (!$anoBilan)
$messageLigne="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
else
$messageLigne='';
$messageLigne.="$strEcho (saisi en N ".@$tabPostes[$ctrl].' <> '.$total." présent en N-1 $dateClP)".EOL;
echo $messageLigne;
$messageErrCtrl.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents";
if ($codeSai=='00') $anoBilan=true;
//die();
}
}
}
// die();
*/
$ret=$iDb->insert('bilans', $tabInsert);
$nbInsert++;
print_r($tabInsert);
//die();
}
} else
print_r($tabInsert);
/** Mise à jour des informations de saisie **/
$nbPostes=count($tabPostes);
$tabUpdate=array( 'retNic' => $nic,
'retDateClot' => $dateExercice,
'retDuree' => $dureeExercice,
'retDatePre' => $dateExercicePre,
'retDevise' => $devise,
'retLiasse' => $liasse,
'retTypeBilan' => $typeBilan,
'retUnite' => $unite,
'retNbPostes' => $nbPostes,
'retPostes' => $strPostes,
'codeRetour' => $codeRetour,
'dateRetour' => $dateFichier,
'dateChargement'=> date('YmdHis'),
'retAnoSaisie' => $anoBilan,
'retAnoListes' => $msgBilan,
);
$iDb2->update('fedaso_bilans', $tabUpdate, "refDoc='$refDoc'");
/** Envoi du mail à l'utilisateur final **/
$filename2=str_replace('.pdf','',$refDoc);
$tabTmp=explode('_', $filename2);
$siren = preg_replace('/^BS/','',$tabTmp[0])*1;
$dateClot= $tabTmp[1];
$idUti = $tabTmp[4];
$rep=$iDb2->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom, referenceParDefaut', "id='$idUti'", true, MYSQL_ASSOC);
$emailEnvoi=$rep[0]['email'];
$tabIdentite=@$iInsee->getIdentiteLight($siren);
$sirenAff=implode(' ', str_split($siren,3));
$rs=substr($tabIdentite['Nom'],0,30).'...';
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
// Durée de l'exercice
if ($dureeExercice*1>0) $strDuree=" (durée : $dureeExercice mois)";
else $strDuree='';
$message.='Date de clôture : '. WDate::dateT('Ymd','d/m/Y',$dateExercice)."$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.="NOS SERVICES ONT EFFECTUE LA SAISIE DU BILAN POUR CETTE ENTREPRISE\r\n";
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
@sendMail('prod@scores-decisions.com', $emailEnvoi, "Saisie de Bilan $sirenAff : $rs", $message);
@sendMail('prod@scores-decisions.com', 'ylenaour@scores-decisions.com', "Saisie de Bilan $sirenAff : $rs", $message.EOL.EOL."--------------------------------------------------".EOL."Ce mail a été envoyé à $emailEnvoi.");
// Comptage des retours par codes saisies
@$tabNbCodeRet['_'.$codeSai]++;
}
$ligne++;
$a = utf8_decode(fgets($fp));
// Variables de contrôles
$refDocPre=$refDoc;
$dateInfoPre=$dateInfo;
}
if (bzip2(FEDASO_BILANS_DONE_DIR.$nomFichier, FEDASO_BACKUP_DIR.$nomFichier)) {
unlink(FEDASO_BILANS_DONE_DIR.$nomFichier);
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
}
}
/*
if (count($mailReferentiel)>0) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Penser à modifier le référentiel", implode(EOL, $mailReferentiel));
}
if (count($msgDiff)>0) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Liste des c'ontrôles", implode(EOL, $msgDiff));
}
/** Enlever ce die() quand on est prêt à valider les fichiers charger **/
//die();
/** Mise à jour des informations globales de retour : Dates, Types d'actes et structures lues
**/
/*
foreach ($tabTypeActes as $refDoc=>$typeActes) {
// Transformation de la référence en réf. stockée en base (suppression siren, acte/bilan et .pdf)
$params=str_replace('.pdf','',preg_replace('/^(bilan|acte)-\d\d\d\d\d\d\d\d\d-/Ui','', $refDoc));
$tmp=explode('-', $refDoc);
$siren=$tmp[1];
$tabTypeData2=array();
if (isset($tabTypeData[$refDoc]))
foreach ($tabTypeData[$refDoc] as $typeD=>$nbD)
$tabTypeData2=array_merge($tabTypeData2, array('nbData'.$typeD=>$nbD));
echo date ('Y/m/d - H:i:s') . " - Mise à jour des infos retournées pour $refDoc...".EOL;
$typeActes=array_unique($typeActes);
if (!$iDb2->update('fedaso', array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes),
'dateRetour'=>$dateFichier)),"siren=$siren AND params='$params'")) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : ERREUR Fichier PDF non diffusé",
"siren=$siren AND params='$params'".EOL.
print_r(array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes), 'dateRetour'=>$dateFichier)),true));
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - MAJ impossible sur 'fedaso' : ". mysql_error().EOL;
if (substr($params,0,4)*1>1950) $pageAc='greffe_bilans';
else $pageAc='greffe_actes';
$iDb2->insert('fedaso', array( 'siren' => $siren,
'params' => $params,
'page' => $pageAc,
'dateEnvoi' => date('YmdHis'),
));
if (!$iDb2->update('fedaso', array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes),
'dateRetour'=>$dateFichier)),"siren=$siren AND params='$params'")) {
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : ERREUR Fichier PDF non diffusé",
"siren=$siren AND params='$params'".EOL.
print_r(array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes), 'dateRetour'=>$dateFichier)),true));
die();
}
}
}
*/
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement du retour Fedaso.".EOL;
} else {
//$message.="Aucun fichier CSF à traiter !\r\n";
echo date ('Y/m/d - H:i:s') . " - Aucun fichier Fedaso à traiter !".EOL;
//if (count($argv)==1) die($strInfoScript);
}
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
?>

View File

@ -1,141 +0,0 @@
#!/bin/bash
################################################################################
# Utilitaire pour Pure-FTP
# PureFTPadmin v1.0 Feb 05 2003 written by : SkazeR <skazer_bop@yahoo.fr>
# this script is free software according to the GNU General Public License (see http://www.gnu.org/licenses/gpl.html)
################################################################################
################################################################################
# Configuration :
# adaptez cette ligne selon votre installation
PASSWDFILE=/etc/pureftpd.passwd
# adaptez selon les parametres que vous avez choisis pour votre serveur (laissez
# les guillemets)
PUREFTPCONF="/usr/local/sbin/pure-ftpd -B -1 -K -A -c 5 -C 1 -E -r -w -l puredb:/etc/pure-ftpd/pureftpd.pdb &"
# Adaptez selon l'UID de l'utilisateur userftp et le GID du groupe ftp groupe
# sur votre PC
NUMIDDEFTPUSER=501
NUMIDDEFTPGROUP=501
# répertoire chrooté des users créés
PATHACCES=/Download/Download/ftp/
#Fin de la configuration
################################################################################
CHOIX=0
clear
echo -e "\n\t\t\t***********************\n\t\t\t* Gestion de Pure-FTP *\n\t\t\t***********************\n"
while [ $CHOIX != 9 ]; do
echo -e "\t\t\tChoix possibles:\n\t\t1: Ajouter un utilisateur virtuel.\n\t\t2: Effacer un utilisateur virtuel.\n\t\t3: Voir les droits d'un utilisateur.\n\t\t4: Lister les utilisateurs.\n\t\t5: Changer le passwd d'un utilisateur.\n\t\t6: Voir les connections actives du serveur.\n\t\t7: Démarrer le serveur.\n\t\t8: Tuer le serveur.\n\t\t9: Quitter.\n\nTapez l'entier correspondant a votre choix:"
read CHOIX
echo ""
case $CHOIX in
1)
echo "Entrez le login à ajouter: "
read NICK
if [ "$NICK" = "" ];then
echo -e "Erreur, veuillez indiquer un login!\n"
else
if [ $NICK = root ];then
echo -e "Erreur, veuillez indiquer un login différent de root!\n"
else
if grep $NICK $PASSWDFILE > /dev/null
then
echo -e "$NICK a déjà un compte\n"
else
pure-pw useradd $NICK -u $NUMIDDEFTPUSER -g $NUMIDDEFTPGROUP -d $PATHACCES
echo -e "Utilisateur virtuel $NICK ajouté!\n"
pure-pw mkdb
fi
fi
fi
;;
2)
echo "Entrez le login à effacer: "
read NICK
if [ "$NICK" = "" ];then
echo -e "Erreur, veuillez indiquer un login!\n"
else
if grep $NICK $PASSWDFILE > /dev/null
then
pure-pw userdel $NICK
echo -e "Utilisateur virtuel $NICK supprimé!\n"
pure-pw mkdb
else
echo -e "L'utilisateur $NICK n'existe pas!\n"
fi
fi
;;
3)
echo "Entrez le login dont vous voulez vérifier les droits: "
read NICK
if [ "$NICK" = "" ];then
echo -e "Erreur, veuillez indiquer un login!\n"
else
if grep $NICK $PASSWDFILE > /dev/null
then
pure-pw show $NICK
else
echo -e "L'utilisateur $NICK n'existe pas!\n"
fi
fi
;;
4)
echo -e "\tLogin\t\t| UID\t| GID\t| path"
echo -e "\t----------------+-------+-------+-----------------------"
awk 'BEGIN { FS=":" } NF==0{next} {print " "$1 " \| " $3 " \| " $4 " \| " $6}' $PASSWDFILE
echo ""
;;
5)
echo "Entrez le login dont le passwd doit changer: "
read NICK
if [ "$NICK" = "" ];then
echo -e "Erreur, veuillez indiquer un login!\n"
else
if grep $NICK $PASSWDFILE > /dev/null
then
pure-pw passwd $NICK
echo -e "Le passwd de $NICK est changé!\n"
pure-pw mkdb
else
echo -e "L'utilisateur $NICK n'existe pas!\n"
fi
fi
;;
6)
pure-ftpwho -v
;;
7)
eval $PUREFTPCONF
echo -e "Serveur FTP\t\t\t[ON]\n"
;;
8)
for VAR in "`ps -A | grep pure-ftpd`"; do
if [ pure-ftpd = "`echo $VAR | gawk -F" " '{print $4}'`" ]; then
VAR=`echo "$VAR" | gawk -F" " '{print $1}'`
kill -9 $VAR
fi
done;
echo -e "Serveur FTP\t\t\t[OFF]\n"
;;
9)
clear
echo -e "\n\n\n\t\tA bientôt!\n"
sleep 2
clear
exit
;;
*)
echo -e "Votre choix n'est pas valide!"
CHOIX=0
;;
esac
echo "Press <Enter>"
read UNUSED
clear
done

File diff suppressed because one or more lines are too long

View File

@ -1,247 +0,0 @@
#!/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">&nbsp;(.*)</td>',
'bloomberg'=>'- Code Bloomberg : </td>\s+<td align="left" style="padding-left:10px;padding-top:5px">&nbsp;(.*)</td>',
'reuteurs'=>'- Code Reuters : </td>\s+<td align="left" style="padding-left:10px;padding-top:5px">&nbsp;(.*)</td>',
'datastream'=>'- Code Datastream : </td>\s+<td valign="top" align="left" style="padding-left:10px;padding-top:5px">&nbsp;(.*)</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();
?>

View File

@ -1,926 +0,0 @@
#!/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();
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,73 +0,0 @@
#!/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(FWK_PATH.'mail/sendMail.php');
global $iDb;
$iDb=new WDB('sdv1');
$iDb2=new WDB('sdv1');
$iInsee=new MInsee();
//include_once(INCLUDE_PATH.'insee/classMSigVille.php');
$cookie=$post=$referer='';
$timeout=300;
$url="http://www.aspic.interieur.gouv.fr/Acces_ASPIC/asAcces-000-Portail.php?mod=CONS";
$page=getUrl($url, $cookie, $post, $referer, false, 'www.aspic.interieur.gouv.fr', '', $timeout);
$cookie=$page['header']['Set-Cookie'];
$body=$page['body'];
$referer=$url;
if ($page['code']<>200) die('Code retour != de 200'.EOL);
if (!preg_match_all('/<li><a HREF="(.*)">(.*)\((.*)\)<\/a><\/li>/Uim', $body, $matches))
die();
foreach ($matches[3] as $i=>$dep) {
$urlDep=$matches[1][$i];
$nomDep=$matches[2][$i];
echo "$dep: $nomDep ($urlDep)".EOL;
$url="http://www.aspic.interieur.gouv.fr/Acces_ASPIC/".$urlDep;
$page=getUrl($url, $cookie, $post, $referer, false, 'www.aspic.interieur.gouv.fr', '', $timeout);
$referer=$url;
randsleep(1,2);
$url='http://www.aspic.interieur.gouv.fr/AspicExtract/asListeRequetes.php';
$page=getUrl($url, $cookie, $post, $referer, false, 'www.aspic.interieur.gouv.fr', '', $timeout);
$referer=$url;
$body=$page['body'];
if (preg_match_all("/<LI><a HREF='javascript\:SoumetFormulaire\((.*)\)'>(.*)<\/A>/Uim", $body, $matches2)) {
foreach ($matches2[1] as $j=>$reqId) {
$reqNom=$matches2[2][$j];
randsleep(1,2);
$post=array('Id'=>$reqId,
'cboFormat'=>'text/plain');
$url='http://www.aspic.interieur.gouv.fr/AspicExtract/asRequete.php';
$page=getUrl($url, $cookie, $post, $referer, false, 'www.aspic.interieur.gouv.fr', '', $timeout);
file_put_contents("/root/aspic/$dep-$reqId-$reqNom.txt",$page['body']);
$size=round(strlen($page['body'])/1024,1);
echo "$dep: $nomDep $reqId-$reqNom $size Ko".EOL;
}
$post='';
}
}
die();
for ($depIn=1; $depIn<96; $depIn++) {
if ($depIn*1<10) $depIn='0'.$depIn*1;
die();
$body=$page['body'];
}
/* if (preg_match_all('/<li id="(.*)">(.*) \((.*)\)<\/li>/Uim', $body, $matches)) {
foreach ($matches[1] as $j=>$cp) {
$ville=strip_tags(utf8_decode($matches[2][$j]));
echo $cp.'='.$ville.EOL;
$iDb->insert('zonesVilles', array( 'cp'=>$cp,
'commune'=>$ville));
randsleep(7,21);
*/
?>

View File

@ -1,675 +0,0 @@
#!/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.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'mail/sendMail.php');
$tabInfosGlobal=array();
$repPdfAssoCpt='/home/data/bilans_asso/';
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;
}
//print_r(getPdfInfo('/home/data/bilans_asso/333512119_31122006.pdf'));
//die();
/*$tabReg=array( '', // Test pour récupérer les manquants
'Aquitaine', // Aquitaine
'Alsace', // Alsace
'Auvergne', // Auvergne
'Basse-Normandie', // Basse-Normandie
'Bourgogne', // Bourgogne
'Bretagne', // Bretagne
'Centre', // Centre
'Champagne', // Champagne
'Corse', // Corse
'Franche-Comté', // Franche-Comté
'Haute-Normandie', // Haute-Normandie
'Île-de-France', // Île-de-France
'Languedoc-Roussillon', // Languedoc-Roussillon
'Limousin', // Limousin
'Lorraine', // Lorraine
'Midi Pyrénées', // Midi Pyrénées
'Nord-Pas-de-Calais', // Nord-Pas-de-Calais
'Outre-Mer', // Outre-Mer
'Pays-de-la-Loire', // Pays-de-la-Loire
'Picardie', // Picardie
'Poitou-Charentes', // Poitou-Charentes
'Provence-Alpes-Côte-d\'Azur', // Provence-Alpes-Côte-d'Azur
'Rhône-Alpes',); // Rhône-Alpes
);*/
global $tabDep;
$tabDep=array( 'Dordogne'=>'24',
'Gironde'=>'33',
'Landes'=>'40',
'Lot-et-Garonne'=>'47',
'Pyrénées-Atlantiques'=>'64',
'Bas-Rhin'=>'67',
'Haut-Rhin'=>'68',
'Allier'=>'03',
'Cantal'=>'15',
'Haute-Loire'=>'43',
'Puy-de-Dôme'=>'63',
'Calvados'=>'14',
'Manche'=>'50',
'Orne'=>'61',
'Côte-d\'Or'=>'21',
'Nièvre'=>'58',
'Saône-et-Loire'=>'71',
'Yonne'=>'89',
'Côtes-d\'Armor'=>'22',
'Finistère'=>'29',
'Ille-et-Vilaine'=>'35',
'Morbihan'=>'56',
'Cher'=>'18',
'Eure-et-Loir'=>'28',
'Indre'=>'36',
'Indre-et-Loire'=>'37',
'Loir-et-Cher'=>'41',
'Loiret'=>'45',
'Ardennes'=>'08',
'Aube'=>'10',
'Haute-Marne'=>'52',
'Marne'=>'51',
'Corse-du-sud'=>'2A',
'Haute-Corse'=>'2B',
'Doubs'=>'25',
'Haute-Saône'=>'70',
'Jura'=>'39',
'Territoire-de-Belfort'=>'90',
'Eure'=>'27',
'Seine-Maritime'=>'76',
'Essonne'=>'91',
'Hauts-de-Seine'=>'92',
'Paris'=>'75',
'Seine-et-Marne'=>'77',
'Seine-Saint-Denis'=>'93',
'Val-d\'Oise'=>'95',
'Val-de-Marne'=>'94',
'Yvelines'=>'78',
'Aude'=>'11',
'Gard'=>'30',
'Hérault'=>'34',
'Lozère'=>'48',
'Pyrénées-Orientales'=>'66',
'Corrèze'=>'19',
'Creuse'=>'23',
'Haute-Vienne'=>'87',
'Moselle'=>'57',
'Meurthe-et-Moselle'=>'54',
'Meuse'=>'55',
'Vosges'=>'88',
'Ariège'=>'09',
'Aveyron'=>'12',
'Gers'=>'32',
'Haute-Garonne'=>'31',
'Hautes-Pyrénées'=>'65',
'Lot'=>'46',
'Tarn'=>'81',
'Tarn-et-Garonne'=>'82',
'Nord'=>'59',
'Pas-de-calais'=>'62',
'Guadeloupe'=>'971',
'Guyane'=>'973',
'Martinique'=>'972',
'Réunion'=>'974',
'Saint-Pierre-et-Miquelon'=>'975',
'Mayotte'=>'976',
'Loire-Atlantique'=>'44',
'Maine-et-Loire'=>'49',
'Mayenne'=>'53',
'Sarthe'=>'72',
'Vendée'=>'85',
'Aisne'=>'02',
'Oise'=>'60',
'Somme'=>'80',
'Charente'=>'16',
'Charente-Maritime'=>'17',
'Deux-Sèvres'=>'79',
'Vienne'=>'86',
'Alpes-de-Haute-Provence'=>'04',
'Alpes-Maritimes'=>'06',
'Bouches-du-Rhone'=>'13',
'Hautes-Alpes'=>'05',
'Var'=>'83',
'Vaucluse'=>'84',
'Ain'=>'01',
'Ardèche'=>'07',
'Drôme'=>'26',
'Haute-Savoie'=>'74',
'Isère'=>'38',
'Loire'=>'42',
'Rhône'=>'69',
'Savoie'=>'73',);
/*$tabReg=array(//'R1', // ALSACE
'R2', // AQUITAINE
'R3', // AUVERGNE
'R4', // BOURGOGNE
'R5', // BRETAGNE
'R6', // CENTRE
'R7', // CHAMPAGNE-ARDENNES
'R8', // CORSE
'R9', // FRANCHE-COMTE;
'R10', // ILE-DE-FRANCE
'R11', // LANGUEDOC-ROUSSILLON
'R12', // LIMOUSIN
'R13', // LORRAINE
'R14', // MIDI-PYRENEES
'R15', // NORD-PAS-DE-CALAIS
'R16', // BASSE-NORMANDIE
'R17', // HAUTE-NORMANDIE
'R18', // PAYS-DE-LA-LOIRE
'R19', // PICARDIE
'R20', // POITOU-CHARENTES
'R21', // PROVENCE-ALPES-COTE-D'AZUR
'R22', // RHONE-ALPES
'R100', ); // OUTRE-MER
*/
function getInfosAnnonceAsso($annonceHtml, $depotComptes=false) {
$tabAnn=array();
global $tabDep;
global $iInsee;
$tabAnn['Assoc_Nom']=htm2txt(@getTextInHtml($annonceHtml, '<p>Association : <b>', '<b>', '</b>'));
if (substr($tabAnn['Assoc_Nom'],-1)=='.')
$tabAnn['Assoc_Nom']=substr($tabAnn['Assoc_Nom'],0,-1);
// $tabAnn['Siret']='';//@getTextInHtml($annonceHtml, '<p>No/Identifiant : <b>', '<b>', '</b>');
$tabAnn['Siren']=str_replace(' ','', strtr(htm2txt(@getTextInHtml($annonceHtml, '<p>Siren : <b>', '<b>', '</b>')),' .-/;,',' '))*1;
$tabAnn['sirenValide']=$iInsee->valideSiren($tabAnn['Siren']);
$tabAnn['Waldec']=strtoupper(@getTextInHtml($annonceHtml, '<p>Identification R.N.A. : <b>', '<b>', '</b>'));
$tabAnn['Annonce_Html']=str_replace('</p>','',str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<p align="LEFT"><br>', '<br>', '</p>'))));
if ($tabAnn['Annonce_Html']=='') // Les fondations n'ont pas le même corps HTML
$tabAnn['Annonce_Html']=str_replace('</p>','',str_replace(chr(160), ' ', html_entity_decode(@getTextInHtml($annonceHtml, '<p align="left"></p> <p align="left">', '</p> <p align="left">', '</p>'))));
if ($tabAnn['Annonce_Html']=='') // Les fondations n'ont pas le même corps HTML
$tabAnn['Annonce_Html']='#####'.str_replace(chr(160), ' ', html_entity_decode($annonceHtml));
if ($depotComptes) {
$tmp=@getTextInHtml($annonceHtml, 'Date de clôture de l\'exercice : <b>', '<b>', '</b>');
$tabAnn['dateCloture']=WDate::dateT('d/m/Y', 'Y-m-d', $tmp);
$tabAnn['pdfLink']=@getTextInHtml($annonceHtml, '<a href="/', '/', '">');
$tabAnn['typeCompte']=@getTextInHtml($annonceHtml, '<a href="/', '">>', '</a>');
$tabAnn['dateInsert']=date('YmdHis');
} else {
$tabAnn['nic']=0;
$tabAnn['nicValide']=0;
$tabAnn['Activite']=htm2txt(@getTextInHtml($annonceHtml, 'Activit&eacute;(s) : <b>', '<b>', '</b>'));
$tabAnn['Num_Annonce']=@getTextInHtml($annonceHtml, 'No d\'annonce : <b>', '<b>', '</b>');
$tmp=@getTextInHtml($annonceHtml, 'Paru le : <b>', '<b>', '</b>');
$tabAnn['Date_Parution']=substr($tmp,6,4).'-'.substr($tmp,3,2).'-'.substr($tmp,0,2);
$tabAnn['Num_Parution']=@getTextInHtml($annonceHtml, 'No de parution : <b>', '<b>', '</b>');
$depReg=trim(htm2txt(@getTextInHtml($annonceHtml, 'D&eacute;partement (R&eacute;gion) : <b>','<b>','</b></p>')));
$tabDepReg=explode('(', $depReg);
$dep=trim($tabDepReg[0]);
$numDep=$tabDep[$dep];
if ($numDep=='') echo date ('Y/m/d - H:i:s') ." - Attention, département '$dep' non trouvé !". EOL;
$region=trim(substr($tabDepReg[1],0,strlen($tabDepReg[1])-1));
$tabAnn['Departement']=$numDep;
$tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, '<p>Lieu parution : <b>Déclaration à la ', ' à la ', '</b>'));
$tabAnn['Type_Annonce']=htm2txt(@getTextInHtml($annonceHtml, 'Type d\'annonce : <b>', '<b>', '</b>'));
/** Recherche du type d'association
**/
if (preg_match('/ASL/i', $tabAnn['Type_Annonce']) || preg_match('/syndicale/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAsso']='ASL';
elseif (preg_match('/Fondation/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAsso']='FON';
elseif (preg_match('/dotation/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAsso']='FOD';
else
$tabAnn['typeAsso']='ASS';
/** Recherche du type d'insertion
**/
if (preg_match('/ANNULATION/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAnnonce']='Suppression';
elseif (preg_match('/RECTIFICATIF/i', $tabAnn['Type_Annonce']))
$tabAnn['typeAnnonce']='Rectificatif';
else
$tabAnn['typeAnnonce']='Insertion';
$tabAnn['Assoc_Duree']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Durée :', 'Durée :', '.<br>')));
$tabAnn['Assoc_Dotation']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Montant de la dotation initiale :', 'initiale :', '.<br>')));
$tabAnn['Assoc_ProgAction']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'action pluriannuel :', 'pluriannuel :', '.<br>')));
$tabAnn['Assoc_Fondateurs']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], ' de chacun des fondateurs :', 'fondateurs :', '.</p>')));
//<p align="LEFT">Autorisation administrative.</p> <p align="LEFT">
//Date de signature de statuts : 21 décembre 1992.<br>
//Date de la modification des statuts : 7 février 1996, autorisation délivrée par le préfet 16 mars 1996.</p> <p align="LEFT">Autorisation tacite.</p> <p align="LEFT">
//Date de la demande de modification des statuts : 7 février 1996, sollicitée auprès du préfet de Paris.</p>
$tabAnn['Assoc_Web']=@getTextInHtml($tabAnn['Annonce_Html'], 'ite Internet : </i>', '</i>', '<i>');
if (substr($tabAnn['Assoc_Web'],-1)=='.')
$tabAnn['Assoc_Web']=substr($tabAnn['Assoc_Web'],0,-1);
$tabAnn['Assoc_Mail']= @getTextInHtml($tabAnn['Annonce_Html'], '<i>Courriel : </i>', '</i>', '<i>');
if ($tabAnn['Assoc_Mail']=='')
$tabAnn['Assoc_Mail']= @getTextInHtml($tabAnn['Annonce_Html'], '<i>Mél. : </i>', '</i>', '<i>');
if (substr($tabAnn['Assoc_Mail'],-1)=='.')
$tabAnn['Assoc_Mail']=substr($tabAnn['Assoc_Mail'],0,-1);
$tabAnn['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Objet : </i>', '</i>', '<i>'));
if(trim($tabAnn['Assoc_Objet'])=='')
$tabAnn['Assoc_Objet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Objet : </i>', '</i>', '<br>'));
$tabAnn['Assoc_NObjet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Nouvel objet : </i>', '</i>', '<i>'));
$tabAnn['Assoc_AObjet']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Additif à l&#146;objet : </i>', '</i>', '<i>'));
$tabAnn['Assoc_NAdresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Transféré ; nouvelle adresse : </i>', '</i>', '. <i>'));
$tabAnn['Assoc_Fusion']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Fusion des associations : </i>', '</i>', '<i>'));
$tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Siège social : </i>', '</i>', '. <i>'));
// Fondations
if (trim($tabAnn['Assoc_Adresse'])=='')
$tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège : </i>', '</i>', '.<br>'));
if (trim($tabAnn['Assoc_Adresse'])=='')
$tabAnn['Assoc_Adresse']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Siège : </i>', '</i>', '.</p>'));
$tabAnn['Assoc_Date_Declaration']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Date de la déclaration : </i>', '</i>', '.'));
if ($tabAnn['Assoc_Date_Declaration']=='')
$tabAnn['Assoc_Date_Declaration']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Date de délivrance du récépissé : </i>', '</i>', '.'));
// Fondations
if(trim($tabAnn['Assoc_Date_Declaration'])=='') {
$tabAnn['Assoc_Date_Declaration']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'autorisation administrative :', 'administrative :', ',')));
if (trim($tabAnn['Assoc_Date_Declaration'])=='')
$tabAnn['Assoc_Date_Declaration']=trim(htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Date de la modification des statuts :', 'statuts :', ',')));
if(trim($tabAnn['Sous_Prefecture'])=='')
$tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, 'sollicitée auprès du', 'du', '<br>'));
if(trim($tabAnn['Sous_Prefecture'])=='')
$tabAnn['Sous_Prefecture']=htm2txt(@getTextInHtml($annonceHtml, 'sollicitée auprès du', 'du', '</p>'));
}
$tabAnn['Assoc_Date_Declaration2']=WDate::dateT('d M Y', 'Y-m-d', $tabAnn['Assoc_Date_Declaration']);
$tabAnn['Assoc_ANom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Ancien titre : </i>', '</i>', '<i>'));
$tabAnn['Assoc_Annulation']='Annulation '.htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '>Annulation', '</i>', '.'));
/*<i>Annulation </i>de l&#146;insertion n<sup>o</sup> 1014, parue au <i>Journal officiel </i>n<sup>o</sup> 25, du 24 juin 2006, page 3106.*/
if ($tabAnn['Assoc_Annulation']=='Annulation ') $tabAnn['Assoc_Annulation']='';
if ($tabAnn['Assoc_ANom']=='')
$tabAnn['Assoc_ANom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], 'Au lieu de : </i>', '</i>', '<i>'));
if (substr($tabAnn['Assoc_ANom'],-1)=='.')
$tabAnn['Assoc_ANom']=substr($tabAnn['Assoc_ANom'],0,-1);
$tabAnn['Assoc_NNom']=htm2txt(@getTextInHtml($tabAnn['Annonce_Html'], '<i>Nouveau titre :', '</i>', '<i>'));
if (substr($tabAnn['Assoc_NNom'],-1)=='.')
$tabAnn['Assoc_NNom']=substr($tabAnn['Assoc_NNom'],0,-1);
}
return $tabAnn;
}
$tempsMinEntreRequetes=5;
$tempsMaxEntreRequetes=30;
set_time_limit(0);
$lastJO=$dateDebut=$dateFin=$dateF=$dateCour=$verif=false;
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
Recupère les annonces Association sur le site du JO Association.
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 (*)
-c Dépôts des comptes 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 !
";
$depotComptes=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=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::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 'c':
$depotComptes=true;
break;
case '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
if ($depotComptes)
$tabReg=array( 'ASSOCIATION%2FCOMPTE',
'FONDATION%2FCOMPTE',
'FONDS+DE+DOTATION%2FCOMPTE',
'AUTRE%2FCOMPTE',
);
else
$tabReg=array( 'ASSOCIATION%2FCREATION',
'ASSOCIATION%2FMODIFICATION',
'ASSOCIATION%2FDISSOLUTION',
'ASL',
'FONDATION',
'DECISION+JUSTICE',
'AUTRE',
'FONDS+DE+DOTATION',
);
$iDb=new WDB();
$iInsee=new MInsee();
$referer='http://www.journal-officiel.gouv.fr/association/';
if ($verif) {
echo date('Y/m/d - H:i:s') ." - Comptage du nombre d'annonce présentes en base par date de parution...". EOL;
$AnnDb=$iDb->select('asso', 'Date_Parution, count(*) as nb', '1 GROUP BY Date_Parution');
foreach ($AnnDb as $i=>$tabDates) {
if ($tabDates[0]<>'0000-00-00') {
$parDate=$tabDates[0];
$parNb =$tabDates[1];
$dateFmt=str_replace('/', '%2F', WDate::dateT('Y-m-d', 'd/m/Y',$parDate));
$url="http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D=$dateFmt&JPA_D_F=".$dateFmt.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher';
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$body=$page['body'];
$ctx=@getTextInHtml($body, '<A href="index.php?ctx=', 'ctx=', '&'); // Clé de contexte entre chaque page
$nbAnnonces=@getTextInHtml($body, '<p>R&eacute;sultat de la recherche : <strong>', '<strong>', 'annonce(s)</strong>');
if ($nbAnnonces<>$parNb && $nbAnnonces<>0)
echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / $nbAnnonces annonces parues !". EOL;
elseif ($nbAnnonces==0)
echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / Plus d'annonces sur le site JO.". EOL;
//die(print_r($body));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
//die();
}
}
die();
}
if ($lastJO==true) {
$strLast=' dernier';
$strDates='';
}
else {
$strLast='';
if ($depotComptes) {
if ($dateDebut==false) {
$dateDeb= getNextDate(date('Ymd'),-5);
$dateDebut= WDate::dateT('Ymd', 'd/m/Y',$dateDeb);
}
if ($dateFin==false) {
$dateF= getNextDate(date('Ymd'),0);
$dateFin= WDate::dateT('Ymd', 'd/m/Y',$dateF);
}
$dateCour= $dateDeb;
}
if ($dateFin==false) {
$dateFin=date('d/m/Y');
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
}
if ($dateDebut==false)
die($strInfoProg);
else
$strDates=" du $dateDebut au $dateFin";
$dateCour=$dateDeb;
}
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération du$strLast JO Association$strDates".EOL;
echo date('Y/m/d - H:i:s') .' - La durée maximum entre chaque requête est de '. $tempsMaxEntreRequetes .' secondes.'. EOL;
flush();
while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
//echo date ('Y/m/d - H:i:s') ." - dateCour($dateCour) <= dateF($dateF) OU lastJO($lastJO)=true". $eol;
for ($i_reg=0; isset($tabReg[$i_reg]) || $lastJO; $i_reg++) { // Boucle sur les régions
if ($lastJO==true) { // Cas récup dernier JO
$region='';
$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=showLast';
} else { // On est pas dans la récupération du JO Assoc Jiur
$region=$tabReg[$i_reg];
$reg5=substr($region,0,5);
$dateFmt=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour));
if ($depotComptes)
$dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0)));
else
$dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour)));
//$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID='.urlencode($tabReg[$i_reg]).'&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2;//&rechercher.x=44&rechercher.y=6&rechercher=Rechercher
$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID='.$region.'&JTY_WALDEC=&JTY_SIREN=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher';
// http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=ASSOCIATION%2FCOMPT&JTY_WALDEC=&JTY_SIREN=&JPA_D_D=01%2F01%2F1990&JPA_D_F=31%2F12%2F2009&rechercher.x=40&rechercher.y=9&rechercher=Rechercher
$strLast='';
}
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$body=$page['body'];
//die(print_r($body));
$ctx=@getTextInHtml($body, '<A href="index.php?ctx=', 'ctx=', '&'); // Clé de contexte entre chaque page
$nbAnnonces=@getTextInHtml($body, 'R&eacute;sultat de la recherche :', ' :', 'annonce(s)');
$dateDerParution=@getTextInHtml($body, 'Annonce parue entre le :', ' et le ', '<br>'); // Date au format JJ/MM/AAAA
// 01/08/2010 et le 01/08/2010<br>
$nbPages=ceil($nbAnnonces/25);
if ($nbPages>100) {
echo date('Y/m/d - H:i:s') .' - ERREUR : Il y a plus de 100 pages d\'annonces !'. EOL;
die();
}
echo date('Y/m/d - H:i:s') ." - Clé de contexte = $ctx".EOL;
unset($AnnDb);
$nbAnnDb=0;
if ($lastJO==true) {
echo date('Y/m/d - H:i:s') .' - Derniere parution ASSO le '. $dateDerParution .' de '. $nbAnnonces .' annonces ('. $nbPages .' pages)'. EOL;
// 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=$iDb->select('asso', 'count(*) AS nb', "Date_Parution='$dateDb'", false, MYSQL_ASSOC);
$nbAnnDb=$AnnDb[0]['nb'];
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();
}
elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
$message=date('Y/m/d - H:i:s') .' - ATTENTION : Il n\'y a que '. $nbAnnDb .' annonces en base sur les '. $nbAnnonces .' annonces présentes au JO Association du '. $dateDerParution .' !'. EOL;
echo $message;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'JO Association', $message);
echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL;
}
} else {
// On recherche si nous n'avons pas déjà toutes ces annonces en base !
$dateDb=substr($dateCour,0,4).'-'.substr($dateCour,4,2).'-'.substr($dateCour,6,2);
$dateDerParution=WDate::dateT('Y-m-d', 'd/m/Y',$dateDb);
if ($depotComptes) {
switch ($region) {
case 'ASSOCIATION%2FCOMPTE': $strRegSql=" AND typeAsso='ASS' "; break;
case 'FONDATION%2FCOMPTE': $strRegSql=" AND typeAsso='FON' "; break;
case 'FONDS+DE+DOTATION%2FCOMPTE': $strRegSql=" AND typeAsso='FOD' "; break;
case 'AUTRE%2FCOMPTE': $strRegSql=" AND typeAsso='DIV' "; break;
}
$AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "Assoc_Date_Declaration='$dateDb' $strRegSql", false, MYSQL_ASSOC);
$strJO='depôts des comptes associations';
} else {
$AnnDb=$iDb->select('asso', 'count(*) AS nb', "Date_Parution='$dateDb'", false, MYSQL_ASSOC);
$strJO='associations';
}
$nbAnnDb=$AnnDb[0]['nb'];
if ($nbAnnDb>=$nbAnnonces) {
echo mysql_error().EOL;
echo date('Y/m/d - H:i:s') ." - Les $nbAnnonces annonces $strJO $reg5 du $dateDerParution ($dateDb) sont en base ($nbAnnDb) !". EOL;
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
continue;
}
elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
$message.=date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
echo date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL;
}
else {
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces présentes au JO du $dateDerParution !". EOL;
}
}
$tabAnnonces=explode('<div class="hr"><hr/></div>', $page['body']);
for ($j=1; $j<26 && isset($tabAnnonces[$j]); $j++)
$tabAnn[$j-1]=$tabAnnonces[$j];
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
$referer=$url;
for ($i=2; $i<=$nbPages; $i++)
{
if (!$lastJO) {
$data='';
$date1=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour));
if ($depotComptes)
$date2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0)));
else
$date2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour)));
$url='http://www.journal-officiel.gouv.fr/association/index.php?ctx='.$ctx.'&page='.$i.'&JRE_ID='.urlencode($region).'&JPA_D_D='.$date1.'&JPA_D_F='.$date2;
} else {
$date1='';$date2='';$data='1';
$url='http://www.journal-officiel.gouv.fr/association/index.php?ctx='.$ctx.'&page='.$i;
}
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$tabAnnonces=explode('<div class="hr"><hr/></div>', $page['body']);
for ($j=1; $j<26; $j++) {
$k=$j+(25*($i-1))-1;
if ($k<$nbAnnonces)
$tabAnn[$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;
else
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$tabActivites=array();
for ($i=0; $i<$nbAnnonces; $i++) {
$infoAnnBalo=getInfosAnnonceAsso($tabAnn[$i], $depotComptes);
$tabInfos=array();
preg_match_all("|<i>(.*)</i>|U", $infoAnnBalo['Annonce_Html'], $tabInfos);
$tabInfosGlobal=array_unique(array_merge($tabInfosGlobal, $tabInfos[1]));
// On recherche si nous n'avons pas déjà cette annonce en base !
if ($depotComptes) {
$AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "Siren=".$infoAnnBalo['Siren']." AND Waldec='".$infoAnnBalo['Waldec']."' AND dateCloture='".$infoAnnBalo['dateCloture']."'", false, MYSQL_ASSOC);
// $AnnDb[0][0]=0;
} else {
$AnnDb=$iDb->select('asso', 'count(*) AS nb', "Num_Annonce='".$infoAnnBalo['Num_Annonce']."' AND Date_Parution='".$infoAnnBalo['Date_Parution']."' AND Num_Parution='".$infoAnnBalo['Num_Parution']."'", false, MYSQL_ASSOC);
$dateAff=$infoAnnBalo['Date_Parution'];
}
$nbAnnDb=$AnnDb[0]['nb'];
$i2=$i+1;
$strRegion=', '. $region;
if ($depotComptes) {
$table='asso_bilans';
// Si le bilan PDF n'est pas déjà sur le disk, on va le chercher !
switch ($region) {
case 'ASSOCIATION%2FCOMPTE': $infoAnnBalo['typeAsso']='ASS'; break;
case 'FONDATION%2FCOMPTE': $infoAnnBalo['typeAsso']='FON'; break;
case 'FONDS+DE+DOTATION%2FCOMPTE': $infoAnnBalo['typeAsso']='FOD'; break;
case 'AUTRE%2FCOMPTE':
default: $infoAnnBalo['typeAsso']='DIV'; break;
}
$dateAff=$dateCour.' ('.$infoAnnBalo['dateCloture'].')';
$infoAnnBalo['Assoc_Date_Declaration']=$dateCour;
$tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']));
if (!$tabPdf) {
$page=getUrl('http://www.journal-officiel.gouv.fr/'.$infoAnnBalo['pdfLink'], '', '', '', false);
@mkdir($repPdfAssoCpt);
$fp=@fopen($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']), 'w');
if (!fwrite($fp, $page['body']) || !$fp) {
$message.=date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" !'.EOL;
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" !'.EOL;
}
@fclose($fp);
$tabPdf=getPdfInfo($repPdfAssoCpt.'/'.basename($infoAnnBalo['pdfLink']));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$infoAnnBalo['pdfSize'] = $tabPdf['pdfSize'];
$infoAnnBalo['pdfVer'] = $tabPdf['version'];
$infoAnnBalo['pdfPage'] = $tabPdf['nbPages'];
} else {
$table='asso';
$tabTmp=explode('/',$infoAnnBalo['Activite']);
$tabActivites=array_merge($tabActivites, $tabTmp);
}
if ($nbAnnDb==1) {
echo date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'" déjà en base !'.EOL;
// L'annonce est déjà en base !
continue;
} else {
$message.=date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'"... enregistrement'.EOL;
echo date('Y/m/d - H:i:s') ." - Parution du $dateAff $strRegion, Annonce $i2/$nbAnnonces, Association \"". $infoAnnBalo['Assoc_Nom'] .'"... enregistrement'.EOL;
}
if (!$iDb->insert($table, $infoAnnBalo))
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL;
}
if ($lastJO) {
print_r($tabInfosGlobal);
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();
}
unset($tabAnn);
} // Fin boucle région
if ($depotComptes)
$dateCour=getNextDate($dateCour,1);
else
$dateCour=getNextDate($dateCour);
} // Fin boucle Data
if ($depotComptes) {
//
$AnnDb=$iDb->select('annonces', 'MAX(dateSource) AS dateMAJ', "typeEven=3200", false, MYSQL_ASSOC);
$dateMaj=$AnnDb[0]['dateMAJ'];
// echo date('Y/m/d - H:i:s') ." - Dernière mise à jour des annonces dépots en collecte en date du $dateMaj.".EOL;
$AnnDb=$iDb->select('asso_bilans',
"Assoc_Nom AS raisonSociale, siren, sirenValide, dateCloture AS dateEffetFinP, Assoc_Date_Declaration AS dateJugement, dateInsert AS dateSource,
'3200' AS typeEven, 'DJOFFJ' AS tribunal, 'JS' AS source, Waldec",
"dateInsert>'$dateMaj' ORDER BY dateEffetFinP DESC", false, MYSQL_ASSOC);
$nbAnnonces=count($AnnDb);
$message.=date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonces dépots à mettre en collecte en date du $dateMaj.".EOL;
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnonces annonces dépots à mettre en collecte en date du $dateMaj.".EOL;
foreach ($AnnDb as $i=>$tabInsert) {
$tabTmp=$iInsee->getIdentiteLight($tabInsert['siren']);
$tabInsert['adresse'] = $tabTmp['Adresse'];
$tabInsert['codePostal']= $tabTmp['CP'];
$tabInsert['ville'] = $tabTmp['Ville'];
$tabInsert['dateInsert']= date('YmdHis');
if (trim($tabInsert['Waldec'])<>'')
$tabInsert['complement']= 'Identifiant Waldec : '.$tabInsert['Waldec'];
unset($tabInsert['Waldec']);
//print_r($tabInsert);
//die();
if (!$iDb->insert('annonces', $tabInsert))
echo '';//date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL;
}
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'JO Association Comptes', $message);
}
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
?>

View File

@ -1,313 +0,0 @@
#!/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.'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;
}
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, '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;
}
$repBalo='/home/data/balo/'; // Avec slash final SVP !!!
$repBaloComp='/home/data/balo/full/'; // Avec slash final SVP !!!
$tempsMinEntreRequetes=5;
$tempsMaxEntreRequetes=30;
set_time_limit(0);
$iDb=new WDB();/*
$iInsee=new MInsee();
$iBourse=new MBourse();
*/
$cookie='';
$dateDerParution=$dateCour=$dateF=false;
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
Recupère les dernières annonces BALO sur le site de la DJO.
Sans aucun paramètre, récupération des dernières Annonces.
Sinon:
-d:JJ/MM/AAAA Date de début de publication
-f:JJ/MM/AAAA Date de fin de publication
-l Dernière parution 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)
";
$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=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
$lastJO=false;
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
$lastJO=false;
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 '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
if ($lastJO==true) {
$strLast=' dernier';
$strDates='';
}
else {
$strLast='';
if ($dateFin==false) {
$dateFin=date('d/m/Y');
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
}
if ($dateDebut==false)
die($strInfoProg);
else
$strDates=" du $dateDebut au $dateFin";
$dateCour=$dateDeb;
}
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération du$strLast JO 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();
while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
//for ($i_reg=0; isset($tabReg[$i_reg]) || $lastJO; $i_reg++) { // Boucle sur les régions
if ($cookie=='') {
$referer='';
$url='http://www.journal-officiel.gouv.fr/balo/';
$page=getUrl($url, '', '', $referer);
$referer=$url;
$body=$page['body'];
$cookie=$page['header']['Set-Cookie'];
echo date('Y/m/d - H:i:s') .' - Cookie = "'. trim($cookie) .'"' . EOL;
$dateDerParution=@getTextInHtml($body, 'Derni&egrave;re parution</A>&nbsp;<span style="font-size:10px">(', '10px">(', ')</span></P>');
randsleep($tempsMinEntreRequetes,$tempsMaxEntreRequetes);
}
if ($lastJO==true) { // Cas récup dernier JO
$dateAff=$dateDerParution;
$url='http://www.journal-officiel.gouv.fr/balo/index.php?ACTION=showLast';
} else { // On est pas dans la récupération du JO Assoc Jiur
$dateAff=WDate::dateT('Ymd', 'd/m/Y',$dateCour);
$dateFmt=str_replace('/', '%2F', $dateAff);
$url="http://www.journal-officiel.gouv.fr/balo/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&SOCIETE_NAME=&WHAT=&RCS=&NUM_AFF=&JPA_D_D=$dateFmt&JPA_D_F=$dateFmt&ID_BALO=&rechercher.x=0&rechercher.y=0&rechercher=Rechercher";
}
$page=getUrl($url, $cookie, '', $referer);
$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&Eacute;SULTAT DE LA RECHERCHE :</h1>', 'recherche :', 'annonce(s) correspondent');
//die(print_r($body));
$nbPages=ceil($nbAnnonces/10);
if ($lastJO==true) echo date('Y/m/d - H:i:s') ." - Derniere parution BALO le $dateDerParution de $nbAnnonces annonces ($nbPages pages)...". EOL;
else echo date('Y/m/d - H:i:s') ." - Parution BALO du $dateAff de $nbAnnonces annonces ($nbPages pages)...". EOL;
if ($nbPages>100) {
echo date('Y/m/d - H:i:s') .' - ERREUR : Il y a plus de 100 pages d\'annonces !'. EOL;
die();
}
// On recherche si nous n'avons pas déjà toutes ces annonces en base !
$dateDb=substr($dateAff,6,4).'-'.substr($dateAff,3,2).'-'.substr($dateAff,0,2);
$AnnDb=$iDb->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 '. $dateAff .' sont en base !'. EOL;
if ($lastJO) {
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();
}
$dateCour=getNextDate($dateCour,1);
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
continue;
} 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('lenaoury@gmail.com', 'JO BALO', $message);
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();*/
}
$tabAnnonces=explode('<div class="hr"><hr/></div>', $page['body']);
for ($j=1; $j<11 && isset($tabAnnonces[$j]); $j++)
$tabAnnBalo[($j-1)]=$tabAnnonces[$j];
randsleep($tempsMinEntreRequetes,$tempsMaxEntreRequetes);
for ($i=2; $i<=$nbPages; $i++)
{
$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']);
for ($j=1; $j<11; $j++) {
//$k=$j+(10*($i-1));
$k=10*($i-1)+($j-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;
else
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
//print_r($tabAnnBalo[$i]);
//die();
for ($i=0; $i<$nbAnnonces; $i++){
$infoAnnBalo=getInfosAnnonceBalo($tabAnnBalo[$i]);
$anneeParution=substr($infoAnnBalo['Date_Parution'],0,4);
$i2=$i+1;
$siren=$infoAnnBalo['Societe_Rcs'];
$isin='';
if ($siren>1000000) {
/** Recherche du code ISIN / infos boursières **/
$iBourse=new MBourse($siren);
$isin=$iBourse->getCodeIsin($siren);
$strIsin="(Isin=$isin) ";
} else
$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);
$tabPdf=getPdfInfo($repBalo.$anneeParution.'/'.basename($infoAnnBalo['Url_Annonce_Pdf']));
if (!$tabPdf) {
$page=getUrl($infoAnnBalo['Url_Annonce_Pdf']);
@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);
$tabPdf=getPdfInfo($repBalo.$anneeParution.'/'.basename($infoAnnBalo['Url_Annonce_Pdf']));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$infoAnnBalo['pdfSize'] = $tabPdf['pdfSize'];
$infoAnnBalo['pdfVer'] = $tabPdf['version'];
$infoAnnBalo['pdfPage'] = $tabPdf['nbPages'];
if (!$iDb->insert('balo', $infoAnnBalo)) {
print_r($infoAnnBalo);
echo date ('Y/m/d - H:i:s') .' - ERREUR : Insertion impossible de l\'annonce 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($tempsMinEntreRequetes,$tempsMaxEntreRequetes);
$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;
$tabPdf=getPdfInfo($repBaloComp.$anneeParution.'/'.$anneeParution.'_'.sprintf("%03d", $numParution).'_monte_final.PDF');
if ($tabPdf) {
$taillePdf=$tabPdf['pdfSize']/1024;
echo date("Y/m/d - H:i:s") . ' - Fichier '.sprintf("%03d", $numParution).'_monte_final.PDF : '.$tabPdf['nbPages']." pages ($taillePdf ko, ".$tabPdf['version'].')'.EOL;
}
if ($lastJO) {
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();
}
$dateCour=getNextDate($dateCour,1);
}
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'JO BALO', $message);
?>

View File

@ -1,165 +0,0 @@
#!/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(INCLUDE_PATH.'partenaires/classMBilans.php');
$tabSiren=array(353151459,
947151239,
303217368,
409797230,
493200281,
378063903,
398862078,
308101591,
410645121,
389580606,
317898492,
405209099,
438732083,
442825410,
451439459,
337753149,
313525909,
379639420,
401136312,
403058415,
331503656,
418963005,
312904394,
332746718,
412442022,
421615295,
504873852,
342583796,
307016121,
408308120,
314843277,
391806056,
433887130,
709802599,
490257573,
438736407,
421131558,
450249040,
341209724,
796680668,
452643190,
388622086,
432919108,
440099059,
344202114,
320979834,
324569748,
334981735,
378441919,
430410969,
448310771,
452553175,
424232064,
420969164,
449718071,
433032661,
398989657,
422996280,
441029337,
302695325,
309917623,
310966650,
335218624,
338808785,
343712709,
348038357,
388830903,
390048700,
392466058,
410172159,
410971790,
414998906,
451257547,
303573927,
305009482,
326465028,
601720386,
380562918,
435088919,
315044321,
309979565,
331182691,
501870661,
408711075,
434855169,
483872289,
391448552,
393417522,
403547102,
555133172,
304975279,
350148532,
417790797,
636820201,
300434180,
344134796,
393660329,
433604691,
378502264,
440525376,
338385685,
301918371,
442639662,
397658931,
309004331,
408770758,
438026346,
409136272,
438549065,
430344150,
417949161,
479932428,
413496316,
573780905,
722780665,
424443893,
329690648,
451161806,
318732781,
403218449,
448929604,
300237633,
383751419,
408829224,
382626802,
421848789,
443574926,
479466062,
484026612,
349588541,
319587234,
380655548,
422593491,
341284099,
393852702,
403885320);
$fp=fopen('./bilansToyotaFS.csv', 'a');
fwrite($fp, "siren;mil;dateProvPartenaire;dateInsert;dureeExercice;dateExercicePre;dureeExercicePre;".EOL);
foreach ($tabSiren as $siren) {
$mBil=new MBilans($siren);
$tabBilans=@$mBil->listeBilans(true);
fwrite($fp, "$siren;");
foreach ($tabBilans as $mil=>$bilan) {
fwrite($fp, "$mil;". $bilan['dateProvPartenaire'].';'.
$bilan['dateInsert'].';'.
$bilan['dureeExercice'].';'.
$bilan['dateExercicePre'].';'.
$bilan['dureeExercicePre']);
break;
}
fwrite($fp, EOL);
}
?>

View File

@ -1,99 +0,0 @@
#!/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/classMLiens.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(FWK_PATH.'mail/sendMail.php');
$strInfoScript='Usage : '.basename($argv[0]). " <option> [FICHIERS]
Récupération des informations liées au dernier Bilans PDF ou statut PDF disponible pour une entreprise donnée.
Options :
-v Verbosité au maximum
-s Dernier Statut PDF disponible
-b Dernier Bilan PDF disponible
";
$modeDebug=$type=false;
$tabFichier=array();
$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 's': $type='S'; break;
case 'b': $type='B'; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break;
}
} else $tabFichier[]=$argv[$i];
}
if ($type<>'S' && $type<>'B') die('Type de pièces inconnue !');
$iGreffes=new MGreffes();
$iInsee=new MInsee();
foreach ($tabFichier as $i=>$fichier) {
$tabSiren=file($fichier);
foreach ($tabSiren as $iSiren=>$siren) {
$siren=explode(',',trim($siren));
$siren=$siren[0];
$tabIdentite=$iInsee->getIdentiteLight($siren);
$rs=$tabIdentite['Nom'];
$strBase="$iSiren,$siren,$rs";
if ($type=='B') {
$tabActes=@$iGreffes->getBilansImages($siren);
$bilan=@$tabActes[0];
$ref=$bilan['ref'];
$type=$bilan['type'];
$dateCloture=$bilan['dateCloture'];
echo $strBase.
$bilan['annee'].','.
$bilan['type'] .','.
$bilan['dateCloture'].','.
$bilan['depot_num'] .','.
$bilan['vecteurs'] .',';
if ($ref<>'') {
//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/greffe/bilan-$siren-$type-$dateCloture.pdf";
// http://extranet.scores-decisions.com/fichier//bilan-303217368-sociaux-2013-12-31.pdf
}
}
elseif ($type=='S') {
$tabActes=@$iGreffes->getListeActes($siren);
$tabActesTmp=array();
foreach ($tabActes as $j=>$acte)
if (preg_match('/STATUTS/',$acte['acte_lib']))
$tabActesTmp[$j]=$acte['acte_date'];
arsort($tabActesTmp);
reset($tabActesTmp);
$j=key($tabActesTmp);
$bilan=$tabActes[$j];
$ref=$bilan['ref'];
echo $strBase.
$bilan['depot_date'].','.
$bilan['acte_lib'] .','.
$bilan['acte_date'].','.
$bilan['depot_num'] .','.
$bilan['vecteurs'] .',';
if ($ref<>'') {
echo "http://extranet.scores-decisions.com/pieces/acte/siret/$siren/mode/T/ref/$ref";
echo ',';
echo "http://extranet.scores-decisions.com/fichier/pdf/acte-$siren-$ref.pdf";
}
}
echo EOL;
if (!$iGreffes->enCache) randsleep(1,3);
}
}
?>

View File

@ -1,356 +0,0 @@
#!/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(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(FWK_PATH.'mail/sendMail.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Récuperer les bilans déposés non encore en base.
Options :
-t Rechercher les bilans source Tessi (*)
-b Rechercher les bilans source Bodacc C (*)
-s Limiter la recherche aux bilans ou scores en surveillance (*)
-i:XXX Reprendre le traitement à la ligne n°XXX
-v Mode bavard ou debug
(*) Option par défaut si aucun argument n'est passé.
";
$tessi=$bodacc=$enSurveillance=$modeDebug=false;
$iReprise=0;
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 't': $tessi=true; break;
case 'b': $bodacc=true; break;
case 's': $enSurveillance=true; break;
case 'v': $modeDebug=true; break;
case 'i': $iReprise=substr($argv[$i],3); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break;
}
}
}
if (!$tessi && !$bodacc && !$enSurveillance) $tessi=$bodacc=$enSurveillance=true;
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de récupération des bilans WEB...".EOL;
$iDb=new WDB();
$iDb2=new WDB();
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;
}
$dateMax= getNextDate(date('Ymd'),-15).' 23:59:59';
$nbCache=$nbAcces=$nbRowsTot=$iRowTot=0;
if ($enSurveillance)
$strSirenPri=" AND siren IN (SELECT DISTINCT siren FROM surveillances_site WHERE source IN ('bilans','score')) ";
else
$strSirenPri='';
$tabQueries=array(
/* Collecte */
'collecte'=> "SELECT id, siren, nicSiege, dateProvPartenaire, dateExercice, dureeExercice, monnaie, chiffreAffaire, partenaire, dateInsert FROM bilans_deposes WHERE dateInsert>='2010-04-01 00:00:00' AND dateInsert<='$dateMax' AND dateRecupWeb IS NULL $strSirenPri",
/* Bodacc C */
'bodacc'=> "SELECT id, siren, 0 as nicSiege, Bodacc_Date_Parution*1 AS dateProvPartenaire, dateEffet*1 AS dateExercice, 0 AS dureeExercice, '' AS monnaie, NULL AS chiffreAffaire, 256 AS partenaire, dateInsert FROM bodacc_detail WHERE id>=11015970 AND Rubrique='comptes' $strSirenPri",
);
foreach ($tabQueries as $source=>$query) {
if ( ($tessi && $source=='collecte') ||
($bodacc && $source=='bodacc') )
echo date('Y/m/d - H:i:s') ." - Recherche des Bilans par la source '$source'...".EOL;
else
continue;
$strLastId='';
$lastPos=@file_get_contents(REP_TEMP.basename($argv[0]).'-'.$source.'.tmp');
if (!$lastPos) {
if ($modeDebug) echo date('Y/m/d - H:i:s') ." - ... pas de dernière position connue...".EOL;
} else {
echo date('Y/m/d - H:i:s') ." - ... dernière position connue : '$lastPos'...".EOL;
$strLastId=" AND id>=$lastPos";
}
// Tous les mois, on repart à 0 !
if (date('d')*1==1) $strLastId='';
$res=$iDb->query($query.$strLastId);
echo mysql_error().EOL;
$nbRows=mysql_num_rows($res);
$nbRowsTot+=$nbRows;
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows bilans à rechercher par la source '$source'...".EOL;
// Provisoirement
//continue;
$iRow=0;
while($bilan=$iDb->fetch(MYSQL_ASSOC)) {
$iRow++;
$iRowTot++;
if ($iRow<$iReprise) continue;
$siren=$bilan['siren'];
$dateExercice=$bilan['dateExercice'];
$dureeExercice=$bilan['dureeExercice'];
/** Ce bilan est il déjà en base ? **/
$ret=$iDb2->select('bilans', 'id, dateProvPartenaire, partenaire, dateInsert', "siren=$siren AND dateExercice='$dateExercice'", false, MYSQL_ASSOC);
$tabDeja=@$ret[0];
if (@$tabDeja['id']*1>0) {
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - $source $siren : $dateExercice déjà en base #".$tabDeja['id'].
' depuis le '.$tabDeja['dateProvPartenaire'].' (part='.$tabDeja['partenaire'].')'.EOL;
$iDb2->update('bilans_deposes', array('dateRecupWeb'=>$tabDeja['dateProvPartenaire']), "siren=$siren AND dateExercice='$dateExercice'", false);
$nbCache++;
continue;
} elseif ($modeDebug)
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - $source $siren : $dateExercice absent de la base Bilan".EOL;
/** Ce bilan est il déjà en base 2 ? **/
/*$ret=$iDb2->select('bilans2', 'id, dateProvPartenaire, partenaire, dateInsert', "siren=$siren AND dateExercice='$dateExercice'", false, MYSQL_ASSOC);
$tabDeja=@$ret[0];
if (@$tabDeja['id']*1>0) {
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - Siren $siren : $dateExercice déjà en base 2 #".$tabDeja['id'].
' depuis le '.$tabDeja['dateProvPartenaire'].' (part='.$tabDeja['partenaire'].')'.EOL;
$iDb2->update('bilans_deposes', array('dateRecupWeb'=>$tabDeja['dateProvPartenaire']), "siren=$siren AND dateExercice='$dateExercice'", false);
continue;
}*/
$chiffreAffaire=$bilan['chiffreAffaire'];
$dateProvPartenaire=$bilan['dateProvPartenaire'];
$monnaieDep=$bilan['monnaie'];
// dateProvPartenaire, dateExercice, dureeExercice, monnaie, chiffreAffaire, partenaire, dateInsert
$nic=$bilan['nicSiege'];
$siret="$siren".$nic;
$mil=substr($bilan['dateExercice'],0,4);
//print_r($bilan);
//$siren=504191230;
//$siren=380037671;
$referer='';
$url="http://www.bilansgratuits.fr/comptes/resultcontentComptes.php?motcle=$siren&codpos=&to_do=rechBila&T_option=siren&checkdirigeant=undefined";
$tDeb=microtime(true);
$page=getUrl($url, '', '', $referer, false, '', '', 60);
$duree=round(microtime(true)-$tDeb,3);
$body=$page['body'];
$taille=round(strlen($body)/1024,1);
$tabTmp=explode('","', $body);
$tabAnnees=$tabInfo=array();
foreach($tabTmp as $iTmp=>$tmp) {
if ($iTmp<2) continue;
if (preg_match('/bildates"\:"(.*)$/Ui',$tmp,$matches))
$tabInfo['millesimes']=explode(' ',$matches[1]);
$tabTmp2=explode('":"', $tmp);
switch($tabTmp2[0]) {
case 'libcom': $tabInfo['libcom'] = $tabTmp2[1]; break;
case 'siren': $tabInfo['siren'] = $tabTmp2[1]; break;
case 'nomen': $tabInfo['nomen'] = $tabTmp2[1]; break;
case 'apen700': $tabInfo['apen'] = $tabTmp2[1]; break;
case 'codpos': $tabInfo['codpos'] = $tabTmp2[1]; break;
case 'siret': $tabInfo['siret'] = $tabTmp2[1]; break;
case 'tefen': $tabInfo['tefen'] = $tabTmp2[1]; break;
case 'bildatesaffich': $tabInfo['refbil'] = $tabTmp2[1]; break;// <a class=\"exe\" onclick=\"javascript:montre('501448096_0','50144809600013','2009')\">2009<\/a>
}
}
if ($siret<>$tabInfo['siret']) $siret=$tabInfo['siret'];
$strMil=implode(', ', $tabInfo['millesimes']);
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - $source $siren : $dateExercice, $strMil.".EOL;
if (!$modeDebug) randsleep(3,7);
else randsleep(1,2);
//dateExercice, dureeExercice, monnaie, chiffreAffaire,
//print_r($tabInfo);
//continue;
foreach ($tabInfo['millesimes'] as $millesime) {
/** On ne récupère que le dernier bilan
@todo Récupérer tous les bilans non encore en base
**/
if(substr($dateExercice,0,4)<>substr($millesime,0,4)) continue;
/** Type de bilan **/
if (substr($millesime,4,1)=='S') $typeCpt='S';
elseif (substr($millesime,4,1)=='C') continue;//$typeCpt='C';
elseif (substr($millesime,4,1)=='') $typeCpt='';
else {
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - $source $siren : $dateExercice, $strMil - Type de bilan inconnue '".substr($millesime,4,1)."'".EOL;
die();
}
$url="http://www.bilansgratuits.fr/comptes/visucontentComptes.php?typcmpt=compte_annuel&siren=$siret&millesime=$mil".$typeCpt;
// URL=http://www.bilansgratuits.fr/comptes/visucontentComptes.php?typcmpt=compte_annuel&siren=50419123000011&millesime=2009S
$tDeb=microtime(true);
$page=getUrl($url, '', '', $referer, false, '', '', 60);
$duree=round(microtime(true)-$tDeb,3);
$body=$page['body'];
$taille=round(strlen($body)/1024,1);
// Raison Sociale
$rs=$nbMois=$naf=$dateClot=$monnaie='';
if (preg_match("/<td>D&eacute;signation de l'entreprise \: <b>(.*)<..b><..td>/Uis", $body, $matches))
$rs=$matches[1];
elseif (preg_match("/signation de l'entreprise \: <strong(?:.*)>(.*)<..strong>/Uis", $body, $matches))
$rs=$matches[1];
// Durée de l'exercice
if (preg_match("/<td>Dur&eacute;e de l'exercice\* \: <b>(.*)&nbsp;mois<..b><..td>/Uis", $body, $matches))
$nbMois=$matches[1];
elseif (preg_match("/e de l'exercice\* \: <strong(?:.*)>(.*)mois <..strong>/Uis", $body, $matches))
$nbMois=trim($matches[1]);
// NAF
if (preg_match("/<td>Code APE \: <b>(.*) -(?:.*)<..b><..td>/Uis", $body, $matches))
$naf=$matches[1];
elseif (preg_match("/>Code APE \: <strong>(.*)<..strong>/Uis", $body, $matches))
$naf=$matches[1];
if (preg_match("/<td>Date de cl&ocirc;ture \: <b>(.*)<..b><..td>/Uis", $body, $matches))
$dateClot=strtr($matches[1],array('\\'=>''));
else
$dateClot=$dateExercice;
if (preg_match("/<td>Unit&eacute; mon&eacute;taire \: <b>(.*)<..b><..td>/Uis", $body, $matches))
$monnaie=$matches[1];
else
$monnaie=$monnaieDep;
$tabPostes=array();
if (preg_match_all('/<tr(?:.*)<td(?:.*)([0-9A-Z]{2,3})(?:.*)td>(.*)<..tr>/Uis',$body,$matches)) {
foreach($matches[2] as $i=>$ligne) {
if ($i>4) {
if (preg_match_all('/<td(?:.*)>([ 0-9A-Z]{2,5})<..td>(?:.*)<strong(|....)>(.*)<..strong>/Uis', $ligne, $matches2)) {
//print_r($matches2);
foreach($matches2[0] as $iTmp=>$tmpPostes) {
//$tmpPostes=strtr($tmpPostes,array('\n'=>"\n",'\t'=>"\t",'\r'=>"\r",'\\'=>''));
/*if (trim($matches2[2][$iTmp])=='\r\n')*/ $pos=3;
//else $pos=2;
if (trim($matches2[$pos][$iTmp])<>'&nbsp;' && trim($matches2[$pos][$iTmp])<>'-')
if (preg_match('/^\((.*)\)$/Ui', trim($matches2[$pos][$iTmp]), $matchesPar))
$tabPostes[trim($matches2[1][$iTmp])]=strtr($matchesPar[1],array(' '=>''))*-1;
else
$tabPostes[trim($matches2[1][$iTmp])]=strtr($matches2[$pos][$iTmp],array(' '=>''));
// if (trim($matches2[1][$iTmp])=='EI')
// echo "$i : $ligne".EOL;
}
}
}
}
}
/** Affectation des zones absentes de l'actif
**/
if (!isset($tabPostes['AA2']) && isset($tabPostes['AA'])) $tabPostes['AA2']=$tabPostes['AA'];
if (!isset($tabPostes['AC1']) && (isset($tabPostes['AB'])||isset($tabPostes['AC']))) $tabPostes['AC1']=$tabPostes['AB']-$tabPostes['AC'];
if (!isset($tabPostes['AE1']) && (isset($tabPostes['AD'])||isset($tabPostes['AE']))) $tabPostes['AE1']=$tabPostes['AD']-$tabPostes['AE'];
if (!isset($tabPostes['AG1']) && (isset($tabPostes['AF'])||isset($tabPostes['AG']))) $tabPostes['AG1']=$tabPostes['AF']-$tabPostes['AG'];
if (!isset($tabPostes['AI1']) && (isset($tabPostes['AH'])||isset($tabPostes['AI']))) $tabPostes['AI1']=$tabPostes['AH']-$tabPostes['AI'];
if (!isset($tabPostes['AK1']) && (isset($tabPostes['AJ'])||isset($tabPostes['AK']))) $tabPostes['AK1']=$tabPostes['AJ']-$tabPostes['AK'];
if (!isset($tabPostes['AM1']) && (isset($tabPostes['AL'])||isset($tabPostes['AM']))) $tabPostes['AM1']=$tabPostes['AL']-$tabPostes['AM'];
if (!isset($tabPostes['AO1']) && (isset($tabPostes['AN'])||isset($tabPostes['AO']))) $tabPostes['AO1']=$tabPostes['AN']-$tabPostes['AO'];
if (!isset($tabPostes['AQ1']) && (isset($tabPostes['AP'])||isset($tabPostes['AQ']))) $tabPostes['AQ1']=$tabPostes['AP']-$tabPostes['AQ'];
if (!isset($tabPostes['AS1']) && (isset($tabPostes['AR'])||isset($tabPostes['AS']))) $tabPostes['AS1']=$tabPostes['AR']-$tabPostes['AS'];
if (!isset($tabPostes['AU1']) && (isset($tabPostes['AT'])||isset($tabPostes['AU']))) $tabPostes['AU1']=$tabPostes['AT']-$tabPostes['AU'];
if (!isset($tabPostes['AW1']) && (isset($tabPostes['AV'])||isset($tabPostes['AW']))) $tabPostes['AW1']=$tabPostes['AV']-$tabPostes['AW'];
if (!isset($tabPostes['AY1']) && (isset($tabPostes['AX'])||isset($tabPostes['AY']))) $tabPostes['AY1']=$tabPostes['AX']-$tabPostes['AY'];
if (!isset($tabPostes['CT1']) && (isset($tabPostes['CS'])||isset($tabPostes['CT']))) $tabPostes['CT1']=$tabPostes['CS']-$tabPostes['CT'];
if (!isset($tabPostes['CV1']) && (isset($tabPostes['CU'])||isset($tabPostes['CV']))) $tabPostes['CV1']=$tabPostes['CU']-$tabPostes['CV'];
if (!isset($tabPostes['BC1']) && (isset($tabPostes['BB'])||isset($tabPostes['BC']))) $tabPostes['BC1']=$tabPostes['BB']-$tabPostes['BC'];
if (!isset($tabPostes['BE1']) && (isset($tabPostes['BD'])||isset($tabPostes['BE']))) $tabPostes['BE1']=$tabPostes['BD']-$tabPostes['BE'];
if (!isset($tabPostes['BG1']) && (isset($tabPostes['BF'])||isset($tabPostes['BG']))) $tabPostes['BG1']=$tabPostes['BF']-$tabPostes['BG'];
if (!isset($tabPostes['BI1']) && (isset($tabPostes['BH'])||isset($tabPostes['BI']))) $tabPostes['BI1']=$tabPostes['BH']-$tabPostes['BI'];
if (!isset($tabPostes['BK1']) && (isset($tabPostes['BJ'])||isset($tabPostes['BK']))) $tabPostes['BK1']=$tabPostes['BJ']-$tabPostes['BK'];
if (!isset($tabPostes['BM1']) && (isset($tabPostes['BL'])||isset($tabPostes['BM']))) $tabPostes['BM1']=$tabPostes['BL']-$tabPostes['BM'];
if (!isset($tabPostes['BO1']) && (isset($tabPostes['BN'])||isset($tabPostes['BO']))) $tabPostes['BO1']=$tabPostes['BN']-$tabPostes['BO'];
if (!isset($tabPostes['BQ1']) && (isset($tabPostes['BP'])||isset($tabPostes['BQ']))) $tabPostes['BQ1']=$tabPostes['BP']-$tabPostes['BQ'];
if (!isset($tabPostes['BS1']) && (isset($tabPostes['BR'])||isset($tabPostes['BS']))) $tabPostes['BS1']=$tabPostes['BR']-$tabPostes['BS'];
if (!isset($tabPostes['BU1']) && (isset($tabPostes['BT'])||isset($tabPostes['BU']))) $tabPostes['BU1']=$tabPostes['BT']-$tabPostes['BU'];
if (!isset($tabPostes['BW1']) && (isset($tabPostes['BV'])||isset($tabPostes['BW']))) $tabPostes['BW1']=$tabPostes['BV']-$tabPostes['BW'];
if (!isset($tabPostes['BY1']) && (isset($tabPostes['BX'])||isset($tabPostes['BY']))) $tabPostes['BY1']=$tabPostes['BX']-$tabPostes['BY'];
if (!isset($tabPostes['CA1']) && (isset($tabPostes['BZ'])||isset($tabPostes['CA']))) $tabPostes['CA1']=$tabPostes['BZ']-$tabPostes['CA'];
if (!isset($tabPostes['CC1']) && (isset($tabPostes['CB'])||isset($tabPostes['CC']))) $tabPostes['CC1']=$tabPostes['CB']-$tabPostes['CC'];
if (!isset($tabPostes['CE1']) && (isset($tabPostes['CD'])||isset($tabPostes['CE']))) $tabPostes['CE1']=$tabPostes['CD']-$tabPostes['CE'];
if (!isset($tabPostes['CG1']) && (isset($tabPostes['CF'])||isset($tabPostes['CG']))) $tabPostes['CG1']=$tabPostes['CF']-$tabPostes['CG'];
if (!isset($tabPostes['CI1']) && (isset($tabPostes['CH'])||isset($tabPostes['CI']))) $tabPostes['CI1']=$tabPostes['CH']-$tabPostes['CI'];
if (!isset($tabPostes['CK1']) && (isset($tabPostes['CJ'])||isset($tabPostes['CK']))) $tabPostes['CK1']=$tabPostes['CJ']-$tabPostes['CK'];
if (!isset($tabPostes['CL2']) && isset($tabPostes['CL'])) $tabPostes['CL2']=$tabPostes['CL'];
if (!isset($tabPostes['CM2']) && isset($tabPostes['CM'])) $tabPostes['CM2']=$tabPostes['CM'];
if (!isset($tabPostes['CN2']) && isset($tabPostes['CN'])) $tabPostes['CN2']=$tabPostes['CN'];
if (!isset($tabPostes['1A1']) && (isset($tabPostes['CO'])||isset($tabPostes['1A']))) $tabPostes['1A1']=$tabPostes['CO']-$tabPostes['1A'];
/** Affectation des zones absentes du passif
**/
if (!isset($tabPostes['DC']) && isset($tabPostes['EK'])) { $tabPostes['DC']=$tabPostes['EK']; unset($tabPostes['EK']); }
if (!isset($tabPostes['DF']) && isset($tabPostes['B1'])) { $tabPostes['DF']=$tabPostes['B1']; unset($tabPostes['B1']); }
if (!isset($tabPostes['DG']) && isset($tabPostes['EJ'])) { $tabPostes['DG']=$tabPostes['EJ']; unset($tabPostes['EJ']); }
if (!isset($tabPostes['DV']) && isset($tabPostes['EI'])) { $tabPostes['DV']=$tabPostes['EI']; unset($tabPostes['EI']); }
if ($modeDebug) print_r($tabPostes);
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - $source $siren : Bilan $mil - $rs ($naf) $dateClot $nbMois mois en $monnaie ($duree s, $taille Ko)".EOL;
/*if ($taille<100) {
print_r($tabPostes);
print_r($page);
die();
}*/
//dureeExercice monnaie chiffreAffaire
/** Contrôle de cohérence **/
if (isset($tabPostes['FL']) && $chiffreAffaire<>$tabPostes['FL']
&& $source=='collecte') {
$ca1=$chiffreAffaire-1;
$ca2=$chiffreAffaire+1;
if ($ca1<>$tabPostes['FL'] && $ca2<>$tabPostes['FL']) {
echo date('Y/m/d - H:i:s') ." - Ligne $iRow/$nbRows - $source $siren : Attention $chiffreAffaire DIFFERENT de ".$tabPostes['FL'].' EUR !'.EOL;
continue;
}
}
if ($typeCpt=='') $typeCpt='N';
$strPostes='';
foreach($tabPostes as $poste=>$valeur)
$strPostes.="$poste=$valeur;";
$tabInsert=array('siren'=>$siren,
'dateProvPartenaire'=>$dateProvPartenaire,
'dateExercice'=>$dateExercice,
//'dateExercicePre'=>
'dureeExercice'=>$dureeExercice,
//'dureeExercicePre` tinyint( 2 ) unsigned NOT NULL default '0',
'monnaie'=>strtoupper($monnaie),
'typeBilan'=>$typeCpt,
'monnaieOrigine'=>'EUR',
'unite'=>'U',
'partenaire'=>7,
'postes'=>$strPostes);
$ret=$iDb->insert('bilans', $tabInsert);
$nbAcces++;
$iDb2->update('bilans_deposes', array('dateRecupWeb'=>date('Ymd')), "siren=$siren AND dateExercice='$dateExercice'", false);
if (!$modeDebug && date('Hi')*1>=1930) {
$nbTot=$nbAcces+$nbCache;
$pct=@round($nbCache/$nbTot*100,2);
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Pompe Bilans WEB - Traitement quotidien", "$nbTot/$nbRowTot bilans traités dont $nbCache en cache ($pct %)");
die();
}
if ($modeDebug) randsleep(1,2);
else randsleep(7,21);
}
if ($iRow%10==0)
file_put_contents(REP_TEMP.basename($argv[0]).'-'.$source.'.tmp', $bilan['id']);
}
}
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Pompe Bilans WEB - Traitement quotidien FIN", "Fin du traitement des $nbTot/$nbRowTot bilans dont $nbCache en cache ($pct %)");
@unlink(REP_TEMP.basename($argv[0]).'-'.$source.'.tmp');
?>

View File

@ -1,345 +0,0 @@
#!/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.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(FWK_PATH.'mail/sendMail.php');
$tabReg=array( 'Aquitaine',
'Alsace',
'Auvergne',
'Basse-Normandie',
'Bourgogne',
'Bretagne',
'Centre',
'Champagne-Ardenne',
'Corse',
'Franche-Comté',
'Haute-Normandie',
'Île-de-France',
'Languedoc-Roussillon',
'Limousin',
'Lorraine',
'Midi Pyrénées',
'Nord-Pas-de-Calais',
'Outre-Mer',
'Pays-de-la-Loire',
'Picardie',
'Poitou-Charentes',
'Provence-Alpes-Côte-d\'Azur',
'Rhône-Alpes',
'Etranger');
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;
}
$repPdf='/home/data/infosreg/djo_infos_fi/'; // Avec slash final SVP !!!
echo date('Y/m/d - H:i:s') .' - DEBUT du script'. EOL;
flush();
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;
}
$tempsMinEntreRequetes=5;
$tempsMaxEntreRequetes=30;
set_time_limit(0);
$lastJO=$dateDebut=$dateFin=$dateF=$dateCour=false;
$iDb=new WDB();
$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:
-d:JJ/MM/AAAA Date de début de publication
-f:JJ/MM/AAAA Date de fin de publication
-l Dernières parutions 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)
";
$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=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
$lastJO=false;
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
$lastJO=false;
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 '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
if ($lastJO) {
// Voir pour callibrer correctement les dates
$dateDeb=getNextDate(date('Ymd'), -4);
$dateF =getNextDate(date('Ymd'), 0);
} else {
if ($dateFin==false) {
$dateFin=date('d/m/Y');
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
}
if ($dateDebut==false)
die($strInfoProg);
}
$dateCour=$dateDeb;
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération des BOAMP du $dateDebut au $dateFin...".EOL;
echo date('Y/m/d - H:i:s') ." - La durée maximum entre chaque requête est de $tempsMaxEntreRequetes secondes.". EOL;
flush();
while ($dateCour<=$dateF/* || $lastJO*/) { // Boucle sur les dates
$dateDebut = WDate::dateT('Ymd', 'd/m/Y', $dateCour);
$dateFrom = str_replace('/','%2F', $dateDebut);
$dateFin = WDate::dateT('Ymd', 'd/m/Y', getNextDate($dateCour,1));
$dateTo = str_replace('/','%2F', $dateFin);
echo date('Y/m/d - H:i:s') ." - Traitement des annonces d'informations financières du $dateDebut au $dateFin...".EOL;
$userAgent='Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
/** Cookie de session **
$url='http://www.boamp.fr/index.php?action=afficherFormRechAvancee';
$referer='';
$page=getUrl($url, '', '', $referer, false);
$body=$page['body'];
$cookie=@$page['header']['Set-Cookie'];
$referer=$url;
echo date('Y/m/d - H:i:s') .' - Cookie = "'. trim($cookie) .'"' . EOL;
*/
foreach ($tabReg as $region) {
$tabPost=array( 'action'=>'rechercher',
'type_recherche'=>'March%E9s+en+cours',
'dep'=>'',
'mots'=>'',
'ref_ann'=>'',
'seuil%5B%5D'=>'',
'date_pub_min='=>str_replace('/20','/', $dateFrom),
'date_pub_max='=>str_replace('/20','/', $dateTo),
'date_reponse_min'=>'jj%2Fmm%2Faa',
'date_reponse_max'=>'jj%2Fmm%2Faa',
'dep%5B%5D'=>urlencode($region),
);
$strPost=implode('&', $tabPost);
exec('wget --save-cookies cookies.txt http://www.boamp.fr/index.php?action=afficherFormRechAvancee');
exec('wget --load-cookies cookies.txt --append-output=/tmp/wget2.log --keep-session-cookies --save-headers --output-document=/tmp/wget2.htm --post-data \''.$strPost.'\' "http://www.boamp.fr/index.php"');
$str=file_get_contents('/tmp/wget2.htm');
die($str);
//print_r($tabPost);
//die();
// $cookie=str_replace('; path=/', 'xtvrn=$397545$', $cookie);
// Cookie[PHPSESSID=f64cf6d8cebcf0cf4a55a176b61dba3d; xtvrn=$397545$]
$url="http://www.boamp.fr/index.php";
$page=getUrl($url, '',/*$cookie, */$tabPost, $referer);
$body=$page['body'];
print_r($page);
die();
}
die();
if (preg_match('/<div class="nb_resultats">(?:.*)\:(.*)<\/div>/Uim', $body, $matches))
$nbAnnonces=trim($matches[1]);
else
die('Erreur : Aucun résultat trouvé'.EOL);
$nbPages=round($nbAnnonces/10);
echo date('Y/m/d - H:i:s') . " - Nombre du publication du $dateDebut au $dateFin : $nbAnnonces soit $nbPages page(s)...". EOL;
if ($nbPages>100) {
echo date('Y/m/d - H:i:s') . " - ERREUR : Arrêt du traitement car il y a plus de 100 pages d'annonces !". EOL;
die();
}
if ($nbAnnonces>0) {
if (preg_match('/ href="search\.php\?action=changepage&c=(.*)&page=/mUis', $body, $matches)) {
$c=$matches[1];
echo date('Y/m/d - H:i:s') . " - Identifiant Sesssion = $c". EOL;
}
elseif ($nbAnnonces<=10)
// - de 10 annonces, pas de multipage
$c='...';
else {
print_r($page);
die('Erreur : Aucun numéro de session trouvé'.EOL);
}
$dateDb=WDate::DateT('Ymd','Y-m-d',$dateCour);
$AnnDb=$iDb->select('balo_ireg', 'count(*) AS nb', "docDate BETWEEN '$dateDb 00:00:00' AND '$dateDb 23:59:59'", false, MYSQL_ASSOC);
$nbAnnDb=$AnnDb[0]['nb'];
if ($nbAnnDb>=$nbAnnonces) {
echo date('Y/m/d - H:i:s') ." - Les $nbAnnonces annonces DJO infos financières du $dateDebut ($dateDb) sont en base ($nbAnnDb) !". EOL;
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
$dateCour=getNextDate($dateCour,1);
continue;
}
elseif ($nbAnnDb>0 && $nbAnnDb<$nbAnnonces) {
$message=date('Y/m/d - H:i:s') ." - ATTENTION : Il n'y a que $nbAnnDb annonce(s) DJO infos financières en base sur les $nbAnnonces annonces présentes au JO du $dateDebut !". EOL;
echo $message;
/*
mail('ylenaour@scores-decisions.com', 'JO Association', $message);
mail('lenaoury@gmail.com', 'JO Association', $message);
*/
echo date('Y/m/d - H:i:s') .' - Tentative de récupération des annonces...'. EOL;
}
else
echo date('Y/m/d - H:i:s') ." - Il y a $nbAnnDb annonce(s) DJO infos financières en base sur les $nbAnnonces annonces présentes au JO du $dateDebut !". EOL;
$tabAnnonces=explode('<div class="r_title">', $page['body']);
for ($j=1; $j<11 && isset($tabAnnonces[$j]); $j++)
$tabAnnBalo[($j-1)]=$tabAnnonces[$j];
if ($nbPages>=2)
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
/** Traitement des pages suivantes
**/
for ($i=2; $i<=$nbPages; $i++)
{
$url='http://www.info-financiere.fr/search.php?action=changepage&c='. $c .'&page='.$i;
$page=getUrl($url, $cookie, '', $referer);
$referer=$url;
$tabAnnonces=explode('<div class="r_title">', $page['body']);
for ($j=1; $j<11; $j++) {
$k=10*($i-1)+($j-1);
if ($k<$nbAnnonces)
$tabAnnBalo[$k]=$tabAnnonces[$j];
}
if ($i==2)
echo date('Y/m/d - H:i:s') ." - Page $i/$nbPages";
else
echo ", $i/$nbPages";
if ($i==$nbPages)
echo '.'.EOL;
else
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
/** On parse les annonces et on les stocks **/
for ($i=0; $i<$nbAnnonces; $i++){
$infoAnnBalo=getInfosAnnonce($tabAnnBalo[$i]);
$i2=$i+1;
$AnnDb=$iDb->select('balo_ireg', 'count(*) AS nb', "isin='".$infoAnnBalo['isin']."' AND docDate='".$infoAnnBalo['docDate']."' AND docLangue='".$infoAnnBalo['docLangue']."' AND pdfLink='".$infoAnnBalo['pdfLink']."'", false, MYSQL_ASSOC);
$nbAnnDb=$AnnDb[0]['nb'];
$tabPdf=getPdfInfo($repPdf.basename($infoAnnBalo['pdfLink']));
if (!$tabPdf) {
$page=getUrl($infoAnnBalo['pdfLink'], '', '', '', false);
@mkdir($repPdf);
$fp=@fopen($repPdf.basename($infoAnnBalo['pdfLink']), 'w');
if (!fwrite($fp, $page['body']) || !$fp) {
print_r($infoAnnBalo);
echo date('Y/m/d - H:i:s') .' - ERREUR : Problème de création du PDF '. basename($infoAnnBalo['pdfLink']) ." pour la parution du $dateAff, annonce n°$i2/$nbAnnonces, Isin = ". $infoAnnBalo['isin']." : \"". $infoAnnBalo['raisonSociale'] .'" !'.EOL;
}
@fclose($fp);
$tabPdf=getPdfInfo($repPdf.basename($infoAnnBalo['pdfLink']));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$infoAnnBalo['pdfSize'] = $tabPdf['pdfSize'];
$infoAnnBalo['pdfVer'] = $tabPdf['version'];
$infoAnnBalo['pdfPage'] = $tabPdf['nbPages'];
// Infos de debug
$infoAnnBalo['sitePage']= round($i2/10);
$infoAnnBalo['siteId'] = $i2;
if (strlen($infoAnnBalo['isin'])==12)
$infoAnnBalo['siren'] = @$iBourse->getCodeSiren($infoAnnBalo['isin']);
elseif (strlen($infoAnnBalo['isin'])==11) {
for($iIsin=0;$iIsin<10;$iIsin++) {
$siren=@$iBourse->getCodeSiren($infoAnnBalo['isin'].$iIsin);
if ($siren>0) {
$infoAnnBalo['siren'] = $siren;
break;
}
}
}
$dateAff=WDate::dateT('Y-m-d H:i:s', 'd/m/Y', $infoAnnBalo['docDate']);
if ($nbAnnDb==1) {
echo date('Y/m/d - H:i:s') ." - Parution du $dateAff, annonce n°$i2/$nbAnnonces, ". $infoAnnBalo['isin']."/".$infoAnnBalo['siren']." : \"". $infoAnnBalo['raisonSociale'] .'" déjà en base ('.$infoAnnBalo['docLangue'].') !'.EOL;
// L'annonce est déjà en base !
continue;
} else
echo date('Y/m/d - H:i:s') ." - Parution du $dateAff, annonce n°$i2/$nbAnnonces, ". $infoAnnBalo['isin']."/".$infoAnnBalo['siren']." : \"". $infoAnnBalo['raisonSociale'] .'"... enregistrement ('.$infoAnnBalo['docLangue'].') !'.EOL;
if (!$iDb->insert('balo_ireg', $infoAnnBalo) && mysql_error()<>1062)
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL;
}
}
$dateCour=getNextDate($dateCour,1);
}
echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL;
die();
/** 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;
?>

View File

@ -1,340 +0,0 @@
#!/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.'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;
}
$repPdf='/home/data/infosreg/djo_infos_fi/'; // Avec slash final SVP !!!
echo date('Y/m/d - H:i:s') .' - DEBUT du script'. EOL;
flush();
$repPdfJoMc='/home/data/jomc';
$urlBaseJoMC='http://cloud.gouv.mc';
$tabSrub=array( '(Appel À Candidature)'=> array('Even'=>''),
'(Association/Fondation)'=> array('CJ'=>92,'Even'=>''),
'(Autres)'=> array('Even'=>''),
'(Avis - Mise Au Nominatif)'=> array('Even'=>''),
'(Avis De Convocation)'=> array('Even'=>''),
'(Avis De Gérance)'=> array('Even'=>''),
'(Capital Social En Euros)'=> array('Even'=>''),
'(Cessation De Paiement)'=> array('Even'=>''),
'(Cessions De Commerces)'=> array('Even'=>''),
'(Cessions Droit Au Bail)'=> array('Even'=>''),
'(Changement De Nom)'=> array('Even'=>''),
'(Changement Régime Matrimonial)'=> array('Even'=>''),
'(Citations À Comparaître)'=> array('Even'=>''),
'(Dissolution Société)'=> array('Even'=>''),
'(Donation)'=> array('Even'=>''),
'(Extraits Judiciaires)'=> array('Even'=>''),
'(Fonds Communs De Placement)'=> array('Even'=>''),
'(Liquidation)'=> array('Even'=>''),
'(Modification Aux Statuts)'=> array('Even'=>''),
'(Résiliation/Droits Locatifs/Bail)'=> array('Even'=>''),
'(Sociétés Anonymes)'=> array('CJ'=>55, 'Even'=>''),
'(Sociétés Civiles Immobilières)'=> array('CJ'=>6540, 'Even'=>''),
'(Sociétés En Commandite)'=> array('CJ'=>53, 'Even'=>''),
'(Sociétés En Nom Collectif)'=> array('CJ'=>5202, 'Even'=>''),
'(S.A.R.L.)'=> array('CJ'=>5499, 'Even'=>''),
'(Ventes Aux Enchères)'=> array('Even'=>''),
'()'=> array('Even'=>''),
);
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;
}
$iReprise=0; // Reprendre au noeud n°0
$tempsMinEntreRequetes=5;
$tempsMaxEntreRequetes=30;
$modeDebug=false;
set_time_limit(0);
$lastJO=$dateDebut=$dateFin=$dateF=$dateCour=$load=false;
$iDb=new WDB();
$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 au noeud 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)
-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':
$iReprise=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 '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
if ($load) {
/** @todo Chargement structuré des annonces **/
$ret=$iDb->select('bo_monaco', 'id, numParution, dateParution, numAnnonce, titre, categorie, `desc` as description, /*annonceHtml,*/ annonceTxt, pdfLink, pdfNom, pdfSize, pdfVer, pdfPage, dateInsert', "titre='Insertions et Annonces Légales' AND categorie NOT LIKE '%Extraits%Judiciaires%'", false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabAnn) {
echo $tabAnn['id']."\t";
echo $tabAnn['categorie']."\t";
echo $tabAnn['description'].EOL;
if (preg_match('/^(.*) \- (.*)"(.*)"(.*)$/Uis',$tabAnn['description'],$matches)) {
print_r($matches);
}
//echo $tabAnn['id']."\t";
// print_r($tabAnn);
/* [titre] => Insertions et Annonces Légales
[categorie] => ( Modification aux statuts )
[description] => AUGMENTATION DE CAPITAL - MODIFICATION AUX STATUTS
SOCIETE A RESPONSABILITE LIMITEE "CONCILIUM S.A.R.L."
Etude de Me Henry REY - Notaire
2, rue Colonel Bellando de Castro - Monaco
[annonceTxt] => Aux termes d'un acte reçu par le notaire soussigné le 20 juillet 2009, il a été procédé à l'augmentation de capital de la société "CONCILI
UM S.A.R.L.", ayant son siège 29, rue du Portier, à Monaco, pour le porter de 15.000 EUROS à 30.000 EUROS, par création de 100 parts nouvelles de 150 EUROS ch
acune.
Une expédition dudit acte a été déposée au Greffe Général des Tribunaux de Monaco pour y être transcrite et affichée conformément à la loi, le 17 septembre 20
09.
Monaco, le 25 septembre 2009.
Signé : H. REY.
*/
}
}
/*
if ($lastJO) {
// Voir pour callibrer correctement les dates
$dateDeb=getNextDate(date('Ymd'), -4);
$dateF =getNextDate(date('Ymd'), 0);
} else {
if ($dateFin==false) {
$dateFin=date('d/m/Y');
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
}
if ($dateDebut==false)
die($strInfoProg);
}
$dateCour=$dateDeb;
*/
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération des annonces JO Monégasque du $dateDebut au $dateFin...".EOL;
echo date('Y/m/d - H:i:s') ." - La durée maximum entre chaque requête est de $tempsMaxEntreRequetes secondes.". EOL;
flush();
//while ($dateCour<=$dateF/* || $lastJO*/) { // Boucle sur les dates
$dateDebut = WDate::dateT('Ymd', 'd/m/Y', $dateCour);
$dateFrom = str_replace('/','%2F', $dateDebut);
$dateFin = WDate::dateT('Ymd', 'd/m/Y', getNextDate($dateCour,1));
$dateTo = str_replace('/','%2F', $dateFin);
echo date('Y/m/d - H:i:s') ." - Traitement des annonces du JO Monégasque du $dateDebut au $dateFin...".EOL;
/** Lecture des dates de JO **/
$nbAnnParPage=1000;//15;
$url="$urlBaseJoMC/DataWeb/jourmon.nsf/%28VDate%29!OpenView&Start=1&Count=$nbAnnParPage";
$referer='';
$page=getUrl($url, '', '', $referer, false);
$body=$page['body'];
$referer=$url;
if (preg_match_all('/<tr valign="top"><td nowrap align="right"><b><font size="2" color="#008000" face="Arial">(?:.*)<a href="(\/DataWeb\/jourmon\.nsf\/\(VDate\)\!OpenView&amp;Start=([0-9]{1,4})&amp;Count=([0-9]{1,4})&amp;Expand=([0-9]{1,4})#([0-9]{1,4}))" target="_self"><img src="\/icons\/expand.gif" border="0" height="16" width="16" alt="(?:.*)"><\/a><b><font size="2" color="#000080" face="Arial">([0-9]{1,4}) \((.*)\)<\/font><\/b><\/td><td><\/td><\/tr>/Uis', $body, $matches)) {
/*print_r($matches);
die();*/
foreach ($matches[1] as $i=>$urlBo) {
$tabBo[$i]=array( 'url'=>$urlBaseJoMC.strtr($urlBo, array('&amp;'=>'&',
//'Count='.$nbAnnParPage=>'Count=30',
//'Expand='.$matches[4][$i].'#'.$matches[5][$i]=>'Collapse='.$matches[4][$i],
)),
'date'=>$matches[7][$i],
'num'=>$matches[6][$i],
);
}
}
/* Referer=http://www.gouv.mc/DataWeb/jourmon.nsf/(VDate)!OpenView&Start=1&Count=30&Collapse=1
*/
foreach ($tabBo as $i=>$infoBo) {
if ($i<$iReprise) continue;
/** Cookie de session **/
$url=$infoBo['url'];
echo date('Y/m/d - H:i:s') ." - BO n° $i, url: $url".EOL;
$referer='';
$page=getUrl($url, '', '', $referer, false);
$body=$page['body'];
$cookie=@$page['header']['Set-Cookie'];
$referer=$url;
$urlFirstAnn=trim(@getTextInHtml($body, '<img src="/icons/ecblank.gif" border="0" height="1" width="16" alt=""><font size="2" face="Arial"><a href="', '">', '</a></font></td>'));
//OK : <font size="2" face="Arial"><a href="/DataWeb/jourmon.nsf/9bf97b0da6308cfdc12568c40037f873/14e63cc52a17f702c1257508004c2d1c!OpenDocument">SOMMAIRE JOURNAL DE MONACO (PDF) n° 7887 - Vendredi 21 novembre 2008
//BUG: <font size="2" face="Arial"><a href="/DataWeb/jourmon.nsf/9bf97b0da6308cfdc12568c40037f873/ba6aed63574ec802c1257501003300ba!OpenDocument">Ordonnance Souveraine n° 1.736 du 18 juillet 2008 portant nomination et titularisation du Chef du Se[root@srv_sd01 ~]#
if (preg_match('/<a href="(.*)">(.*)n°(.*)-(.*)$/Ui', $urlFirstAnn, $matches)) {
$urlFirstAnn=$urlBaseJoMC.trim($matches[1]); // /DataWeb/jourmon.nsf/9bf97b0da6308cfdc12568c40037f873/185efab4012d011ac1257642004eac8c!OpenDocument
$joMoLib=trim($matches[2]); // SOMMAIRE JOURNAL DE MONACO (PDF)
$joMoNum=trim($matches[3]); // 7932
$joMoDate=trim($matches[4]); // Vendredi 2 octobre 2009
$joMoDate2=ucwords(strtolower(trim(strtr($joMoDate,array('Lundi'=>'','Mardi'=>'','Mercredi'=>'','Jeudi'=>'','Vendredi'=>'','Samedi'=>'','Dimanche'=>'')))));
$joMoDateDb=WDate::dateT('d M Y', 'Ymd', $joMoDate2);
//die("$joMoDate2 => $joMoDateDb");
} elseif (preg_match('/<a href="(.*)">(.*)$/Ui', $urlFirstAnn, $matches)) {
$urlFirstAnn=$urlBaseJoMC.trim($matches[1]);
$joMoNum=$infoBo['num']*1;
$joMoDate=$infoBo['date'];
$joMoDate2=ucwords(strtolower(trim($infoBo['date'])));
$joMoDateDb=WDate::dateT('d M Y', 'Ymd', $joMoDate2)*1;
$joMoLib='### Pas de sommaire : '.$matches[2].' ###';
if ($joMoNum<7332 || $joMoDateDb<19980403) {
echo "Pas de ref 1 dans :$urlFirstAnn".EOL."Et date ou N° de JO Monegasque incohérente !".EOL;
continue;
}
}
echo date('Y/m/d - H:i:s') ." - $joMoLib$joMoNum du $joMoDate : $urlFirstAnn". EOL;
$numPage=0;
while (true) {
$numPage++;
$url=$urlFirstAnn;
if ($modeDebug)
echo date('Y/m/d - H:i:s') ." - $joMoLib$joMoNum du $joMoDate : page $numPage, url: $url".EOL;
/* $page=getUrl($url, '', '', $referer, false, 'www.gouv.mc');
if ($page['code']==302) {
$url=@$page['header']['Location'];
$page=getUrl($url, '', '', $referer, false, 'www.gouv.mc');
}
$body=$page['body'];
*/
exec('wget --tries=5 --timeout=7 --append-output=/tmp/wget2.log --keep-session-cookies --save-headers --output-document=/tmp/wget2.htm "'.$url.'"');
$body=file_get_contents('/tmp/wget2.htm');
$urlFirstAnn=$urlBaseJoMC.trim(@getTextInHtml($body, '</font></b></div></td><td width="76"><div align="center"><a href="', 'href="', '"><img src="/DataWeb/jourmon.nsf/btrech_r3_c2.gif'));
//die($urlFirstAnn);
$referer=$url;
$tabAnn=array();
$tabAnn['desc']=trim(strtr(html_entity_decode(strip_tags(@getTextInHtml($body, '<b><font size="2" color="#000080" face="Arial">', 'face="Arial">', '<img src="/DataWeb/jourmon.nsf/'))),array(chr(160)=>' ','&#8217;'=>"'", '&#8220;'=>'"', '&#8221;'=>'"', '&#8364;'=>'€')));
if (preg_match('/(SOMMAIRE JOURNAL DE MONACO(?:.*))n°(.*)-(.*)$/Ui', $tabAnn['desc'], $matches)) {
$joMoLib=trim($matches[1]);
$joMoNum=trim($matches[2]);
$joMoDate=ucwords(strtolower(trim(strtr(trim($matches[3]),array('Lundi'=>'','Mardi'=>'','Mercredi'=>'','Jeudi'=>'','Vendredi'=>'','Samedi'=>'','Dimanche'=>'')))));
$joMoDateDb=WDate::dateT('d M Y', 'Ymd', $joMoDate);
}
$tabAnn['numParution']=$joMoNum;
$tabAnn['numAnnonce']=$numPage;
$tabAnn['dateParution']=$joMoDateDb;
$titre=trim(strtr(html_entity_decode(@getTextInHtml($body, '<b><font size="2" color="#8f8f8f" face="Arial">', 'face="Arial">', '</font></div></td></tr>')),array(chr(160)=>' ','&#8217;'=>"'", '&#8220;'=>'"', '&#8221;'=>'"', '&#8364;'=>'€')));
$tmp=explode('</font></b>', $titre);
$tabAnn['titre']=$tmp[0];
$tabAnn['categorie']=strip_tags($tmp[1]);
$tabAnn['annonceHtml']=trim(strtr(html_entity_decode(@getTextInHtml($body, '<img src="/DataWeb/jourmon.nsf/JoLign01.gif!OpenImageResource" width="557" height="2"></div><br>', '</div>', '<div align="center"><font size="2" color="#800000" face="Arial">___________________________')),array(chr(160)=>' ','&#8217;'=>"'", '&#8220;'=>'"', '&#8221;'=>'"', '&#8364;'=>'€')));
if (preg_match('/<div align="center"><a href="(.*)\.pdf"><img src="(?:.*)" width="110" height="47" alt="(.*)" border="0"><\/a><\/div>/Ui', $tabAnn['annonceHtml'], $matches)) {
$tabAnn['pdfLink'] = trim($matches[1]).'.pdf';
$tabAnn['pdfNom'] = trim($matches[2]);
$tabPdf=getPdfInfo($repPdfJoMc.'/'.$joMoNum.'-'.$numPage.'.pdf');
if (!$tabPdf) {
$page=getUrl($urlBaseJoMC.$tabAnn['pdfLink'], '', '', '', false);
@mkdir($repPdfJoMc);
$fp=@fopen($repPdfJoMc.'/'.$joMoNum.'-'.$numPage.'.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($tabAnn['pdfLink']) ." pour la parution n°$joMoNum, page $numPage !".EOL;
@fclose($fp);
echo $repPdfJoMc.'/'.$joMoNum.'-'.$numPage.'.pdf';
$tabPdf=getPdfInfo($repPdfJoMc.'/'.$joMoNum.'-'.$numPage.'.pdf');
//randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
}
$tabAnn['pdfSize'] = $tabPdf['pdfSize'];
$tabAnn['pdfVer'] = $tabPdf['version'];
$tabAnn['pdfPage'] = $tabPdf['nbPages'];
}
//print_r($tabPdf);die();
$tabAnn['annonceTxt']=trim(strip_tags($tabAnn['annonceHtml']));
echo $body.EOL;
print_r($tabAnn);
//echo date('Y/m/d - H:i:s') ." - Page n° $numPage, titre : $titre".EOL;
//echo date('Y/m/d - H:i:s') ." - Page n° $numPage, desc : $desc".EOL;
echo date('Y/m/d - H:i:s') ." - $joMoLib$joMoNum du $joMoDate : page $numPage (".round(strlen($body)/1024,1)." ko)".EOL;
if ($modeDebug) {
echo $body.EOL;
print_r($tabAnn);
echo date('Y/m/d - H:i:s') ." - $joMoLib$joMoNum du $joMoDate : page $numPage, url suivante : $urlFirstAnn".EOL;
}
if ($tabAnn['titre']=='' && $tabAnn['categorie']=='' && $tabAnn['desc']=='' && $tabAnn['annonceHtml']=='') break;
//$saisie = trim(fgets(STDIN))*1;
if (!$iDb->insert('bo_monaco', $tabAnn) && mysql_error()<>1062)
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL;
randsleep($tempsMinEntreRequetes,$tempsMaxEntreRequetes);
}
}
echo date('Y/m/d - H:i:s') ." - Fin du traitement des annonces du JO Monégasque.".EOL;
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,97 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
//Define cookie file for storage
$ckfile = '/tmp/cookies.txt';
if (file_exists($ckfile)) unlink($ckfile);
if ($argc != 4){
echo $argv[0].' type annee num';
echo "\n";
exit;
}
$type = strtoupper($argv[1]);
$annee = $argv[2];
$num = $argv[3];
$c = strlen($num);
for($i=0;$i<4-$c;$i++){
$num = '0'.$num;
}
$annonce = 1;
function getPage($url, $curl_data = '', $verbose=false)
{
global $ckfile;
//$user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
//$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
$user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
$post = false;
$fields = '';
if (is_array($curl_data) && count($curl_data)>0) {
foreach($curl_data as $key=>$value) {
$fields .= $key.'='.$value.'&';
}
rtrim($fields,'&');
$post = true;
}
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => $user_agent, // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => $post, // i am sending post data
CURLOPT_POSTFIELDS => $fields, // this are my post vars
CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
CURLOPT_SSL_VERIFYPEER => false, //
CURLOPT_VERBOSE => $verbose , //
//CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => $ckfile,
CURLOPT_COOKIEJAR => $ckfile, // Stockage du cookie de session
);
$ch = curl_init($url);
curl_setopt_array($ch,$options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch) ;
$header = curl_getinfo($ch);
curl_close($ch);
// $header['errno'] = $err;
// $header['errmsg'] = $errmsg;
// $header['content'] = $content;
return array('header'=>$header, 'content'=>$content);
}
//==> Start
$debug = false;
echo $url = "http://www.bodacc.fr/index.php?action=voir&p=$type&n=$annee$num&a=$annonce";
echo "\n";
$result = getPage($url);
if ($debug) file_put_contents('bodacc1.html', $result['content']);
preg_match('/\<a href="index\.php\?action=pdf&amp;index=([0-9]{1,})"\>/', $result['content'], $matches);
echo $url = "http://www.bodacc.fr/index.php?action=pdf&index=".$matches[1];
echo "\n";
$result = getPage($url);
if (substr($result['content'],0,4)!='%PDF'){
if ($debug) file_put_contents('bodacc2.html', $result['content']);
echo 'Erreur : pas de PDF'.EOL;
exit;
}
echo strlen($result['content']).' octets'.EOL;
file_put_contents("BODACC_".$type."_".$annee."_".$num.".pdf", $result['content']);
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,558 +0,0 @@
#!/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');
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']);
*/
$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 \:&nbsp;<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);
if ($dep==97) {
$dep=substr($numInsee,0,3);
$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'];
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];
}
/*<b>01
- AIN / L' ABERGEMENT CLEMENCIAT</b></font></td>*/
$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');/*</b><br>
1 RUE JOSEPH BERNIER<br>
01000 BOURG EN BRESSE<br>
Tél : 04 74 32 13 00<br>
Fax : 04 74 21 42 63<br>
<a href="http://WWW.AIN.CCI.FR" target="_new">WWW.AIN.CCI.FR</a>
</font>*/
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 ($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&eacute;l&eacute;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('&nbsp;', $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.&nbsp;Hugues&nbsp;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();
?>

View File

@ -1,665 +0,0 @@
#!/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>
Chargement du flux Cedexa 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('insee');
$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];
if ($nomFichier<>'AMACDX38c-201001.txt.gz') continue;
$idFlux=strtr(strtoupper(basename($nomFichier)),array('EVE.DJ'=>'20'));
$fp=gzopen(AMABIS_LOCAL_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
$ret=$iDb->select($db_table, 'count(idFlux) as nb', "idFlux='$idFlux'");
$nbLoaded=$ret[0][0];
while (!gzeof($fp))
{
$nbLignes++;
$a = trim(gzgets($fp, 1024));
}
if ($nbLoaded>0) {
if (--$nbLignes<=$nbLoaded)
echo date ('Y/m/d - H:i:s')." - Le fichier n°$i, $nomFichier a déjà été chargé ($nbLoaded lignes) !".EOL;
else
die (date ('Y/m/d - H:i:s')." - ERREUR : le fichier n°$i, $nomFichier a été chargé partiellement $nbLignes<>$nbLoaded !".EOL);
continue;
}
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier ($nbLignes lignes à traiter) !".EOL;
$tabToIdentite[]=$idFlux;
flush();
$finFichier=false;
$nbLignes=$nbErreurs=0;
gzrewind($fp);
while (!gzeof($fp))
{
$nbLignes++;
$a = trim(gzgets($fp, 1024));
/* if ($finFichier) {
echo date ('Y/m/d - H:i:s') . " - Attention la fin de fichier a été trouvée à la ligne précédente !".EOL;//Nouveau format du fichier évènement (de Mai 2007) non géré !
die();
} elseif ($a=='')
break;
*/
$codeLigne = substr($a, 0, 1 )*1;
if ($nbLignes==1 && $codeLigne==0) {
$dateFlux =WDate::dateT('d-m-Y','Y-m-d', substr($a,1,10)); // Date au format jj-mm-ssaa
$libFlux = trim( substr($a, 11, 311 )); // Libellé du fichier
if ($libFlux=='CEDEXA COMPLET 38')
$typeFlux='stock';
elseif ($libFlux=='CEDEXA MISE A JOUR 38')
$typeFlux='maj38';
else {
echo date ('Y/m/d - H:i:s')." - Type de flux inconnue pour le fichier n°$i, $nomFichier ($libFlux) !".EOL;
die();
}
} elseif ($nbLignes>1 && $codeLigne==1) {
//unset($tabErreur); $nbErr=0;
$tabCedex=array('dateFlux'=>$dateFlux);
$tabCedex['contrat'] = trim( substr($a, 1, 7 )); // Matricule contrat cedex
$tabCedex['hexavia'] = trim( substr($a, 8, 8 )); // Matricule Hexavia de la voie
$tabCedex['codePostal'] = trim( substr($a, 16, 5 )); // Code Postal de l'adresse Géographique
$tabCedex['filler1'] = trim( substr($a, 21, 1 )); // FILLER
$tabCedex['l1_nom'] = trim( substr($a, 22, 38 )); // Raison Sociale
$tabCedex['l2_nomComp'] = trim( substr($a, 60, 38 )); // Complément de nom
$tabCedex['filler2'] = trim( substr($a, 98, 38 )); // FILLER
$tabCedex['l3_compGeo'] = trim( substr($a, 136, 38 )); // Complément au point géographique
$tabCedex['l4_numVoie'] = trim( substr($a, 174, 4 )); // Numéro dans la voie
$tabCedex['l4_indRep'] = trim( substr($a, 178, 1 )); // Extension du numéro de voie
$tabCedex['l4_libVoie'] = trim( substr($a, 179, 32 )); // Libellé de voie
$tabCedex['l5_distrib'] = trim( substr($a, 211, 20 )); // Mention spéciale de distribution
$tabCedex['l5_numMS'] = trim( substr($a, 231, 5 )); // numéro de mention spéciale
$tabCedex['l5_libCom'] = trim( substr($a, 236, 32 )); // Libellé de la commune
$tabCedex['l6_codCedex']= trim( substr($a, 268, 5 )); // Code Cedex
$tabCedex['l6_achCedex']= trim( substr($a, 273, 32 )); // Libellé de l'acheminement Cedex
$tabCedex['codeInsee'] = trim( substr($a, 305, 5 )); // Code Insee de la commune adresse Géographique
$tabCedex['filler3'] = trim( substr($a, 310, 1 )); // FILLER
$codeMaj = trim( substr($a, 311, 1 )); // Code de Mise à Jour
if ($codeMaj=='S') $tabCedex['actif']=0;
else $tabCedex['actif']=1;
$tabCedex['filler4'] = trim( substr($a, 312, 10 )); // FILLER
$rs=$tabCedex['l1_nom'];
$rs==preg_replace('/[^0-9A-Z]/', ' ', strtr($rs, 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝŸ', 'aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUYY'));
$rs=preg_replace("/^(MLLE |MELLE |MLE |MME |ME |M |MR )/",'', $rs);
$rs=trim(preg_replace("/ +/",' ', strtr(' '.$rs.' ',
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 '=>' ', ' ETS '=>' ',
' EARL '=>' ', ' EAR '=>' ', ' EA '=>' ',' SC '=>' ',
' DE '=>' ',' ET '=>' ',' LA '=>' ',' DU '=>'', ' DES '=>' ', ' L '=>' ', ' SOCIETE '=>' ',' SOC '=>' ', ' MONSIEUR '=>' ', ' MADAME '=>' ', ' STE '=>' ', ' CIVILE '=>' ', ' IMMOBILIERE '=>' ',' LIQUIDATION '=>' ', ' DISSOLUTION '=>' ',
))));
$adresse=preg_replace('/[^0-9A-Z]/', ' ', strtr($tabCedex['l4_libVoie'], 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝŸ', 'aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUYY'));
$adresse=trim(preg_replace("/ +/",' ', strtr(' '.$adresse.' ',
array(' DE '=>' ',' LA '=>' ',' L '=>' ',' BIS '=>' ', ' DU '=>'', ' DES '=>' ',' LES '=>' ', ' A '=>' '))));
$cp=$tabCedex['codePostal'];
$tabEtab=@$iInsee->rechercheEtab($rs,$tabCedex['l4_numVoie'].' '.$adresse, $cp,'','',1,0,10);
if ($tabEtab['nbReponses']==0)
$tabCedex['siren']=$tabCedex['nic']=0;
elseif ($tabEtab['nbReponses']==1) {
$tabCedex['siren']=$tabEtab['reponses'][0]['Siren'];
$tabCedex['nic']=$tabEtab['reponses'][0]['Nic'];
// print_r($tabEtab);
// die(print_r($tabCedex));
}
else
$tabCedex['siren']=$tabCedex['nic']=0;
$ret=$iDb->insert($db_table, $tabCedex);
if ($ret===false) {
echo date ('Y/m/d - H:i:s') . " - ERREUR n°". mysql_errno()." à l'insertion du cedexa ".$tabCedex['contrat']." : ".mysql_error().'!'.EOL;
$nbErreurs++;
flush();
} else
$updateInsee=true;
} else {
echo date ('Y/m/d - H:i:s') . " - Erreur : Il y a incohérence entre le code enregistrement '$codeLigne' et sa position dans le fichier : ligne n°$nbLignes !".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();
?>

View File

@ -1,294 +0,0 @@
#!/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&amp;id=(.*)&amp;parente=',
'fj'=>'<th>Forme juridique :(?:.*)<td>(.*)</td>',
'pays'=>'<th>Agr&eacute;&eacute; par (?:.*)<td>(.*)</td>',
'reseau'=>'<th>R&eacute;seau :(?:.*)<td>(.*)</td>',
'adh[nom,idAdh]'=>'<td style="padding-left:20px;">(?:.*)<strong>(.*)</strong>(?:.*)page=fiche&amp;id=(.*)&amp;r=&amp;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&amp;id=(.*)&amp;r=',
'nom'=>'page=fiche&amp;id=(?:.*)&amp;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();
*/
?>

View File

@ -1,721 +0,0 @@
#!/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.'bodacc/classMBodacc.php');
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');
function getPrevDate($dateCour, $nbJours=1) {
$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;
}
$tmin=10;
$tmax=60;
set_time_limit(0);
$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=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::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];
}
}
}
/** Une fois par mois, récupéreation de la liste des pays et de leur devises
**/
if($pays || date('d')*1==1) {
echo (date('Y/m/d - H:i:s') .' - Début de la mise à jour des pays et de leur devise !'. EOL);
$crea=$maj=0;
$url= 'http://fxtop.com/fr/showpays.php3';
$referer= '';
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
$body=$page['body'];
$referer='http://fxtop.com/fr/showpays.php3';
$strTmp=@getTextInHtml($body, '<TABLE border=1 cellpadding=0 cellSpacing=0 >', ' >', '</TABLE>');
$tabTmp=explode('<TR><TD>', $strTmp);
foreach ($tabTmp as $i=>$strTmp) {
$tabLigne=explode('</TD><TD>', $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;
} elseif ($i==1) {
// On vérifie que les noms de colonnes et les devises attendues sont les bonnes
if (trim(strip_tags($tabLigne[0]))<>'Pays')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Pays" attendue mais "'.strip_tags($tabLigne[0]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[1]))<>'Zone')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Zone" attendue mais "'.strip_tags($tabLigne[1]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[2]))<>'Devise')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Devise" attendue mais "'.strip_tags($tabLigne[2]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[3]))<>'Drapeau')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Drapeau" attendue mais "'.strip_tags($tabLigne[3]).'" trouvé !'. EOL);
if (trim(strip_tags($tabLigne[4]))<>'Code Nic')
die(date('Y/m/d - H:i:s') .' - ERREUR : Zone "Code Nic" attendue mais "'.strip_tags($tabLigne[4]).'" trouvé !'. EOL);
} else {
$libPays=trim(strip_tags($tabLigne[0]));
$libZone=trim(strip_tags($tabLigne[1]));
$devise =trim(strip_tags($tabLigne[2]));
$urlDrap=$tabLigne[3];
$strTmp=str_replace('<IMG SRC="../ico/', 'http://fxtop.com/ico/', $urlDrap);
$tabTmp2=explode('"', $strTmp);
$url=$tabTmp2[0];
$codPays=trim(strip_tags($tabLigne[4]));
$ficImgDrapeaux=basename($url);
if (!file_exists($repImgDrapeaux.$ficImgDrapeaux)) {
$page=getUrl($url, '', '', $referer, false, 'fxtop.com');
$body=$page['body'];
$fp=fopen($repImgDrapeaux.$ficImgDrapeaux, 'wb');
fwrite($fp, $page['body']);
fclose($fp);
$taille=filesize($repImgDrapeaux.$ficImgDrapeaux);
echo(date('Y/m/d - H:i:s') ." - Drapeaux $codPays : $ficImgDrapeaux ($libPays) créé ($taille octets).". EOL);
}
$tabUpdate=array( 'libPaysMajAuto'=>$libPays,
'zone'=>$libZone,
'drapeau'=>$ficImgDrapeaux,
'devise'=>$devise,
);
$tabInsert=array_merge($tabUpdate, array('codPays'=>$codPays, 'dateInsert'=>date('YmdHis')));
if (!$iDb2->insert('tabPays', $tabInsert)) {
if (!$iDb2->update('tabPays', $tabUpdate, "codPays='$codPays'", true)) {
if (mysql_errno()<>1062)
die(date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() . EOL);
} else
$maj++;
} else {
echo (date('Y/m/d - H:i:s') ." - Création du pays $libPays ($codPays) en $libZone !". EOL);
$crea++;
}
}
}
echo (date('Y/m/d - H:i:s') ." - Fin de la mise à jour des pays et de leur devise : $crea création(s) / $maj MAJ.". EOL);
}
/** 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/historique-taux-change.php';
$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 (!$iDb->update('devise_liste', $tabUpdate, "devIso='$devise'", true)) {
if (!$iDb->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=WDate::dateT('Ymd','d', $dateDeb);
$MM1=WDate::dateT('Ymd','m', $dateDeb);
$YYYY1=WDate::dateT('Ymd','Y', $dateDeb);
$DD2=WDate::dateT('Ymd','d', $dateF);
$MM2=WDate::dateT('Ymd','m', $dateF);
$YYYY2=WDate::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/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'];
$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 (!$iDb->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;
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;
}
?>

View File

@ -1,250 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
$table='rncs_dirigeants';
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');
//define('DIRIGEANTS_LOCAL_DIR', '/home/data/insee/even/');
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Chargement du/des fichier dirigeant en provenance de CSF.
Options :
-d Mode debug (Verbosité au maximum)
";
$iDb=new WDB('jo');
$iInsee=new MInsee();
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=0;
$modeDebug=false;
$ftpStep=true;
$updateInsee=true;
$tabFichier=array();
$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 'j': $ftpStep=false; break;
case 'u': $updateInsee=false; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichier[]=$argv[$i];
}
if (count($tabFichier)==0) die('Aucun fichier CSF à traiter'.EOL);
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement des dirigeants".EOL;
global $tabFctCSF;
$tabFctCSF=array(
'f0100'=>'Administrateur',
'f0101'=>'Administrateur délégué',
'f0108'=>'Administrateur provisoire',
'f0209'=>'Associé-gérant',
'f0400'=>'Co-gérant',
'f0603'=>'Contrôleur de gestion',
'f0709'=>'Directeur général',
'f0704'=>'Directeur général délégué',
'f0713'=>'Directeur général non administrateur',
'f0708'=>'Directeur général unique',
'f0900'=>'Gérant',
'f1650'=>'Gouverneur',
'f1900'=>'Liquidateur',
'f1300'=>'Président',
'f1301'=>'Président Directeur Général',
'f1306'=>'Président du conseil d\'administration',
'f1307'=>'Président du conseil de surveillance',
'f1308'=>'Président du directoire',
'f1401'=>'Représentant en France d\'une société étrangère',
'f1651'=>'Sous-gouverneur',
'f1800'=>'Vice-président',
);
/*
200 Gérant
300 Co-gérant
1200 Associé-gérant
600 Administrateur
100 Président
4100 Liquidateur
110 Président du conseil d'administration
400 Directeur général
120 Président Directeur Général
900 Président du conseil de surveillance
500 Vice-président
430 Directeur général délégué
4400 Représentant en France d'une société étrangère
1300 Contrôleur de gestion
700 Président du directoire
410 Directeur général non administrateur
4300 Administrateur provisoire
420 Directeur général unique
600 Administrateur délégué
150 Sous-gouverneur
Gouverneur
*/
function getFctCode($str) {
global $tabFctCSF;
$key=array_search($str, $tabFctCSF);
if ($key) {
return str_replace('f','',$key).'';
}
else return 0;
}
for ($i=0; isset($tabFichier[$i]); $i++)
{
$nomFichier =$tabFichier[$i];
$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))
{
$nbLignes++;
$a = trim(fgets($fp, 1024));
}
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier $nomFichier ($nbLignes lignes à traiter) !".EOL;
//$finFichier=false;
$nbLignes=0;
rewind($fp);
/** Traitement de la 1ère ligne **/
$a = trim(fgets($fp, 1024));
$tab=explode("\t", $a);
$erreur='';
if ($tab[0]<>'RCS') $erreur='Ligne 1, Champ 1 : libellé RCS attentu';
if ($tab[1]<>'RAISON_SOCIAL') $erreur='Ligne 1, Champ 2 : libellé RAISON_SOCIAL attentu';
if ($tab[2]<>'CIVILITE') $erreur='Ligne 1, Champ 3 : libellé CIVILITE attentu';
if ($tab[3]<>'NOM') $erreur='Ligne 1, Champ 4 : libellé NOM attentu';
if ($tab[4]<>'PRENOM') $erreur='Ligne 1, Champ 5 : libellé PRENOM attentu';
if ($tab[5]<>'NOM_NAISSANCE') $erreur='Ligne 1, Champ 6 : libellé NOM_NAISSANCE attentu';
if ($tab[6]<>'DATE_NAISSANCE') $erreur='Ligne 1, Champ 7 : libellé DATE_NAISSANCE attentu';
if ($tab[7]<>'LIEU_NAISSANCE') $erreur='Ligne 1, Champ 8 : libellé LIEU_NAISSANCE attentu';
if ($tab[8]<>'FONCTION') $erreur='Ligne 1, Champ 9 : libellé FONCTION attentu';
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();
}
$ret=$iDb->query("UPDATE $table SET actif=actif%10 WHERE source='csf'");
echo date ('Y/m/d - H:i:s') . " - Les dirigeants CSF sont OK pour la mise à jour ($ret).".EOL;
$dateInsert=date('YmdHis');
// $ret=$iDb->update($table, array('actif'=>0), '1');
// echo date ('Y/m/d - H:i:s')." - Tous les dirigeants ont été passés inactifs ($ret) !".EOL;
while (!feof($fp))
{
$nbLignes++;
$a = trim(fgets($fp, 1024));
//unset($tabErreur); $nbErr=0;
$tab=explode("\t", $a);
$tabDir=array();
$tabDir['siren'] = $tab[0];
if (!$iInsee->valideSiren($tabDir['siren'])) {
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs SIREN invalide ". $tabDir['siren'] .' !'.EOL;
$nbSiretInvalides++;
} else
$nbSiretValides++;
$tabDir['raisonSociale'] = $tab[1];
if (strlen($tabDir['raisonSociale'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs RAISON_SOCIALE de longueur ". strlen($tabDir['raisonSociale']) .' !'.EOL;
$tabDir['civilite'] = $tab[2];
if ($tabDir['civilite']<>'M' && $tabDir['civilite']<>'MME' && $tabDir['civilite']<>'MLLE' && $tabDir['civilite']<>'')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CIVILITE inconnu '". $tabDir['civilite'] ."' !".EOL;
$tabDir['nom'] = $tab[3];
if (strlen($tabDir['nom'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs NOM de longueur ". strlen($tabDir['nom']) .' !'.EOL;
$tabDir['prenom'] = $tab[4];
if (strlen($tabDir['prenom'])>30)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs PRENOM de longueur ". strlen($tabDir['prenom']) .' !'.EOL;
$tabDir['naissance_nom'] = $tab[5];
if (strlen($tabDir['naissance_nom'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs NOM_NAISSANCE de longueur ". strlen($tabDir['naissance_nom']) .' !'.EOL;
$dateIn = $tab[6];
$dateOut=@WDate::dateT('m/d/Y','Y-m-d',$dateIn);
if ($dateIn<>'')
$tabDir['naissance_date']=$dateOut;
else
$tabDir['naissance_date']='0000-00-00';
//die(date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs DATE_NAISSANCE in $dateIn donne en out ". $tabDir['naissance_date'] .' !'.EOL);
$tabDir['naissance_lieu'] = $tab[7];
if (strlen($tabDir['naissance_lieu'])>35)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs LIEU_NAISSANCE de longueur ". strlen($tabDir['naissance_lieu']) .' !'.EOL;
$tabDir['fonction_lib'] = trim($tab[8]);
$tabDir['fonction_code'] = ''.getFctCode($tabDir['fonction_lib']);
if ($tabDir['fonction_code']=='' && $tabDir['fonction_lib']=='')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs FONCTION vide !".EOL;
elseif ($tabDir['fonction_code']=='' && $tabDir['fonction_lib']<>'')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs FONCTION inconnu '". $tabDir['fonction_lib'] ."' !".EOL;
$tabDir['actif']=11;
$tabDir['dateInsert']=$dateInsert;
$tabDir['source']='csf';
$tabTmp=$iDb->select($table, 'count(*)',"siren='". $tabDir['siren'] ."' AND ".
"civilite='". $tabDir['civilite'] ."' AND ".
"nom='". addslashes($tabDir['nom']) ."' AND ".
"prenom='". addslashes($tabDir['prenom']) ."' AND ".
"naissance_nom='". addslashes($tabDir['naissance_nom'])."' AND ".
"naissance_date='". $tabDir['naissance_date'] ."' AND ".
"fonction_lib='". addslashes($tabDir['fonction_lib']) ."'");
if ($tabTmp[0][0]==0) {
$iDb->insert($table, $tabDir);
$nbInsert++;
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Insertion du dirigeant ". $tabDir['nom']." ".$tabDir['prenom'].", siren=".$tabDir['siren'] .'!'.EOL;
} else {
$iDb->update($table, $tabDir, "siren='". $tabDir['siren'] ."' AND ".
"civilite='". $tabDir['civilite'] ."' AND ".
"nom='". addslashes($tabDir['nom']) ."' AND ".
"prenom='". addslashes($tabDir['prenom']) ."' AND ".
"naissance_nom='". addslashes($tabDir['naissance_nom'])."' AND ".
"naissance_date='". $tabDir['naissance_date'] ."' AND ".
"fonction_lib='". addslashes($tabDir['fonction_lib']) ."'");
$nbUpdate++;
if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - MAJ ". $tabDir['nom']." ".$tabDir['prenom'].", siren=".$tabDir['siren'] .'!'.EOL;
}
//echo '?';
//$line = trim(fgets(STDIN));
}
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;
}
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes traitées dont $nbSiretInvalides siren/siret invalides !".EOL;
$ret=$iDb->update($table, array('actif'=>0), "actif=1 AND source='csf'");
echo date ('Y/m/d - H:i:s') . " - $ret dirigants CSF on été passés à inactif (car non transmis depuis le dernier chargement) !".EOL;
$ret=$iDb->update($table, array('actif'=>1), "actif=11 AND source='csf'");
echo date ('Y/m/d - H:i:s') . " - Passage à actif de tous les dirigeants CSF chargés ($ret).".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des dirigeants".EOL;
die();
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
$argv=$_SERVER['argv'];
if ($_SERVER['argc']<>2) die('Usage : '.basename($argv[0]). " nom_database.nom_table\nRécupère le nombre de valeurs distinctes pour chaque colonne d'une table.\n");
$param=$argv[1];
$tabParam=explode('.', $param);
$db=$tabParam[0];
$table=$tabParam[1];
$iDb=new WDB($db);
$ret=$iDb->select($table,'*', '1 LIMIT 0,1', false, MYSQL_ASSOC);
if (!$ret) die ("ERREUR : Table $table inexistante : " . mysql_error());
$tabNameRows=array_keys($ret[0]);
//print_r($tabNameRows);
foreach ($tabNameRows as $i=> $nameRow) {
//if ($i<=29) continue;
$retV=$iDb->select($table,"COUNT(*) as NbDiff, $nameRow", "1 GROUP BY $nameRow LIMIT 0,1000", true);
$retT=$iDb->select($table,"MAX(LENGTH($nameRow))", '1', true);
if (count($retV)>=1000)
echo "$db.$table, $nameRow : + de 1000 valeur(s) différente(s). Longueur maxi : ".$retT[0][0]."\n";
else
echo "$db.$table, $nameRow : ".count($retV)." valeur(s) différente(s). Longueur maxi : ".$retT[0][0]."\n";
flush();
}
?>

View File

@ -1,110 +0,0 @@
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** Ce script récupère les informations relatives à un Domaine .fr
** Les domaines .fr doivent être contenu dans un fichier texte séparateur ; ou |
**/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'common/curl.php');
$referer='';
$iDb=new WDB();
/*
$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']);
*/
$strInfoScript='Usage : '.basename($argv[0]). " <option>
Extraction des informations Whois Html de l'Afnic.
Options :
-d Mode debug (Verbosité au maximum)
";
$iDb=new WDB('jo');
$iInsee=new MInsee();
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=0;
$modeDebug=false;
$tabFichier=array();
$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");
}
} else $tabFichier[]=$argv[$i];
}
if (count($tabFichier)==0) die('Aucun fichier CSF à traiter'.EOL);
echo date ('Y/m/d - H:i:s') . " - Début du traitement des Domaines".EOL;
foreach ($tabFichier as $i=>$fichier) {
$fileDomaines=file($fichier);
$fp=fopen($fichier.'.out','a');
$fic=basename($fichier);
foreach ($fileDomaines as $j=>$ligne) {
if (strpos(trim($ligne),'#')!==0 && strpos(trim($ligne),';')!==0) {
$tabTmp=split('[\||;]', $ligne);
$dom=trim($tabTmp[0]);
$nom=strtoupper(trim($tabTmp[1]));
$tabRet=array( 'raisonSociale'=>$nom,
'web'=>'www.'.$dom,
);
$query=$iDb->select('infos_entrep', 'siren, raisonSociale', "web like '%.$dom%'");
if (count($query)==0) {
$page=getUrl('http://www.afnic.fr/outils/whois/'.$dom, '', '', '', false, 'www.afnic.fr');
$siren=$tel=$mail='';
$strTmp=$page['body'];
if (preg_match('/<span class=h1> Nom de domaine \: <\/span><span class=bleuvif>(.*)<img src="\/images\/x_orange.gif" border="0" align="middle" height="2" width="50%"><\/p>/Uis', $strTmp, $matches2))
$strTmp=$matches2[1];
// die($strTmp);
if (preg_match('/<b>Date de création : <\/b>(.*)<br>/Uis', $strTmp, $matches2))
$dateCre=$matches2[1];
if (preg_match('/<b>Date anniversaire : <\/b>(.*)<br>/Uis', $strTmp, $matches2))
$dateAnn=$matches2[1];
if (preg_match('/<span class=h1>Titulaire : <\/span><span class=bleuvif>(?:.*)Téléphone : <\/b>(.*)<br>(?:.*)<span class=h1> Contact administratif : <\/span><span class=bleuvif>/Uis', $strTmp, $matches2))
$tel=str_replace(' ','.',trim(str_replace('+33 ','0',$matches2[1])));
if (preg_match('/<span class=h1>Titulaire : <\/span><span class=bleuvif>(?:.*)<b>Courrier électronique : <\/b>(.*)<br>(?:.*)<span class=h1> Contact administratif : <\/span><span class=bleuvif>/Uis', $strTmp, $matches2))
$mail=trim(strip_tags($matches2[1]));
if (preg_match('/http\:\/\/www\.euridile\.com\/index_vitrine\.ow\?afnic_numrcs=(.*)"/Ui', $strTmp,$matches2))
$siren=$matches2[1];
elseif (preg_match('/SIREN (.*) INSEE"/Ui', $strTmp,$matches2))
die(print_r($matches2));
$tabRet['siren']=$siren;
$str=";$fic;$j;$dom;$siren;$tel;$mail;$dateCre;$dateAnn;$nom";
$query=$iDb->select('infos_entrep', 'raisonSociale, web, tel, mail', "siren='$siren'");
if (count($query)==0) {
$iDb->insert('infos_entrep', $tabRet);
$nbInsert++;
echo date ('Y/m/d - H:i:s') . " $str ... AJOUT\n";
} elseif (/*strlen($query[0]['web'])<8*/
levenshtein($nom, preg_replace('/\.FR$/',strtoupper($dom)))<5
)
$iDb->update('infos_entrep', $tabRet, "siren='$siren'");
$nbUpdate++;
echo date ('Y/m/d - H:i:s') . " $str ... MAJ\n";
} else echo date ('Y/m/d - H:i:s') . " $str ... SITE DEJA EXISTANT pour ce SIREN\n";
fwrite($fp, $str."\n");
//die(print_r(($query)));
randsleep(7,21);
}
else
echo date ('Y/m/d - H:i:s') . " ;$fic;$j;$dom;SIREN;TEL;MAIL;CREA;RENEW;$nom DEJA EN BASE";
}
fclose($fp);
}
?>

View File

@ -1,157 +0,0 @@
#!/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='ecoartisan';
$urlBase='http://www.eco-artisan.net/renovation/je-trouve-un-eco-artisan-r.html?no_cache=1&ecoartisan=';
$tabZones=array(
'fj'=>'<dt>Forme juridique :</dt><dd>(.*)</dd>', //
'raiSoc'=>'<dt>Raison sociale :</dt><dd>(.*)</dd>', //
'siret'=>'<dt>SIRET : </dt><dd>(.*)</dd>', //
'chef'=>'<dt>Nom du chef d\'entreprise :</dt><dd>(.*)</dd>', //
'chefCiv'=>'<dt>Civilit(?:.*) du chef d\'entreprise :</dt><dd>(.*)</dd>',
'adresse'=>'<dt>Adresse :</dt><dd>(.*)</dd>', //
'adresse2'=>'<dt>Compl(?:.*)ment d\'adresse :</dt><dd>(.*)</dd>',
'cp'=>'<dt>Code postal :</dt><dd>(.*)</dd>', //
'ville'=>'<dt>Ville :</dt><dd>(.*)</dd>', //
'tel'=>'<dt>T(?:..?)l :</dt><dd>(.*)</dd>', //
'fax'=>'<dt>Fax :</dt><dd>(.*)</dd>', //
'mail'=>'<dt>E-mail :</dt><dd>(.*)<', //
'web'=>'<dt>Site internet :</dt><dd>(.*)<', //
'mob'=>'<dt>Mobile :</dt><dd>(.*)</dd>',
'zoneInter'=>'<dt>Zone d\'intervention :</dt><dd>(.*)</dd>',
'activitePri'=>'<dt>Activit(?:.*)principale :</dt><dd>(.*)</dd>', //
'activite[actCode,actLib]'=>'\t\t\t\t\t\t\t<dt>(.*) :</dt><dd>(.*)</dd>',
);
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$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 entreprise '$table' = $iDeb".EOL;
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;
$body=$page['body'];
//die($body);
$tabHtml=html2array($body, $tabZones);
// print_r($tabHtml);
// die();
foreach ($tabHtml as $zone=>$data) {
if (is_array($data)) {
foreach ($data as $j=>$tabInsert2) {
// Deb spécifique ecoartisan
$tmp=explode(' ',$tabInsert2['actCode']);
$last=end($tmp);
if ($last*1==0) continue;
// Fin spécifique ecoartisan
$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']=='' || substr($tabInsert['raiSoc'],0,3)=='###') {
$nbVides++;
if ($nbVides<50) 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['activite']);
/*
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();
?>

Some files were not shown because too many files have changed in this diff Show More