diff --git a/batch/base64decode.php b/batch/base64decode.php new file mode 100644 index 00000000..f2954b44 --- /dev/null +++ b/batch/base64decode.php @@ -0,0 +1,815 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +'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(); + ?> diff --git a/batch/bodacc/Bodacc_Bilan_Redif_V06.xsd b/batch/bodacc/Bodacc_Bilan_Redif_V06.xsd new file mode 100644 index 00000000..57aec030 --- /dev/null +++ b/batch/bodacc/Bodacc_Bilan_Redif_V06.xsd @@ -0,0 +1,488 @@ + + + + + + + + + + + + + Composant Annonce Modifications générales et Radiation pour les Reffuseurs + + + + + + Numero de la parution + + + + + Date de la parution + + + + + + + + + + + Type de l'annonce + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Numéro d'identification J.O. + + + + + + + + + + Numéro de l'avis dans la parution + + + + + + + + + + N° de département du Greffe + + + + + Code Greffe qui a procédé à l'avis - + + + + + + + + N° d'identification au format NNN NNN NNN + + + + + + + + + + valeur fixée à "RCS" + + + + + + + + + + Greffe d'immatriculation du dossier + + + + + + + + Dénomination + + + + + Sigle + + + + + Forme juridique (Ex : Société Anonyme, SARL, EURL,...) + + + + + Adresse + + + + + + Adresse en France de la société + + + + + Adresse à l'étranger + + + + + + + + + Information sur l'avis à rectifier + + + + + + + Numéro de la parution précédente + + + + + Date de la parution précédente + + + + + Numéro de l'avis dans la parution précédente + + + + + + + + + + + + + + + + + + type simple format date YYYY-MM-DD + + + + + + + + format YYYY-MM-DDTHH:MM:SS + + + + + + + + + type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]* + + + + + + + + type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]* + + + + + + + + + type N : tous les chiffres + + + + + + + + + type anySimpleType + + + + + + + + + type anySimpleType + + + + + + + + Code Postal + + + + + + + + code département + + + + + + + + + + code Greffe + + + + + + + + + + dérivé de Alpha_Type + + + + + + + + + + + + + + + + Nom d'adresse à l'étranger + + + + + + + + + + + Nom du pays + + + + + + + + + + + + + + + + + + Numéro de la voie +Ex : 4 + + + + + + + + + + Type de la voie +Ex : rue + + + + + + + + + + Nom de la voie +Ex : d'Enfer + + + + + + + + + + Complément gépgraphique +Ex : Résidence Bel-Air + + + + + + + + + + + Boîte postale +Ex : BP 14192 + + + + + + + + + + + Localité +Ex : Saint-Chéron + + + + + + + + + + + Code Postal +Ex : 51290 + + + + + Ville/Bureau distributeur +Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson + + + + + + + + + + + + + NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris) + + + + + N° d'identification au format NNN NNN NNN + + + + + + + + + + + valeur fixée à "RCS" + + + + + + + + + + + Greffe d'immatriculation du dossier + + + + + + + définition d'un dépôt + + + + + + + + Date de clôture des comptes + + + + + Enumération : Comptes annuels et rapports +Comptes consolidés et rapports +Comptes annuels et consolidés et rapports + + + + + + + + + + + + Descriptif à publier +Ex : Cette société a également déposé une déclaration de confidentialité des comptes annuels en application du premier alinéa de l'article L.232-25. + + + + + + + + diff --git a/batch/bodacc/Bodacc_Divers_Redif_2011_12_07_V01.xsd b/batch/bodacc/Bodacc_Divers_Redif_2011_12_07_V01.xsd new file mode 100644 index 00000000..bfa1e840 --- /dev/null +++ b/batch/bodacc/Bodacc_Divers_Redif_2011_12_07_V01.xsd @@ -0,0 +1,134 @@ + + + + + + + + + + Composant Annonce diverse pour les Reffuseurs + + + + + + Numero de la parution + + + + + Date de la parution + + + + + + + + + + + Type de l'annonce + + + + + + + + + + + + + + + + Numéro d'identification J.O. + + + + + + + + + + Numéro de l'avis dans la parution + + + + + + + + + + Titre de l'annonce + + + + + Contenu de l'annonce + + + + + + + + + + + + + + + type simple format date YYYY-MM-DD + + + + + + + + format YYYY-MM-DDTHH:MM:SS + + + + + + + + + type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]* + + + + + + + + type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]* + + + + + + + + + type N : tous les chiffres + + + + + + + + + + + + diff --git a/batch/bodacc/Bodacc_PCL_Redif_V13.xsd b/batch/bodacc/Bodacc_PCL_Redif_V13.xsd new file mode 100644 index 00000000..49904006 --- /dev/null +++ b/batch/bodacc/Bodacc_PCL_Redif_V13.xsd @@ -0,0 +1,616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Composant Annonce Procédure Collective pour les Reffuseurs + + + + + + Numero de la parution + + + + + Date de la parution + + + + + + + + + + + Type de l'annonce + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Numéro J.O. + + + + + + + + + + Numéro de l'avis dans la parution + + + + + N° de département du Greffe + + + + + Code Greffe qui a procédé à l'avis - A transmettre dans le fichier Retour + + + + + Identifiant unique + + + + + + + + + + Dénomination + + + + + Forme juridique (Ex : Société Anonyme, SARL, EURL,...) + + + + + Sigle + + + + + + + + + + + + Nom de famille (naissance) + + + + + Prénom + + + + + Nom d'usage + + + + + + + + + + + + + + + N° d'identification au format NNN NNN NNN ( A transmettre dans le fichier de retour des parutions) + + + + + + + + + + valeurs RCS, RSEIRL, RA, RSAC + + + + + + + + + + + Greffe d'immatriculation du dossier + + + + + + + + + + + + + + + + + + + + + Adresse + + + + + + Adresse en France de la société + + + + + + Code Greffe qui a procédé à l'avis - A transmettre dans le fichier Retour + + + + + Type de la voie +Ex : rue + + + + + Nom de la voie +Ex : d'Enfer + + + + + Complément gépgraphique +Ex : Résidence Bel-Air + + + + + Boîte postale +Ex : 192 + + + + + Localité +Ex : Saint-Chéron + + + + + Code Postal +Ex : 51290 + + + + + Ville/Bureau distributeur +Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson + + + + + + + + Adresse à l'étranger + + + + + + Nom d'adresse à l'étranger + + + + + Nom du pays + + + + + + + + + + + + + Publicité + + + + + + + Information sur l'avis à rectifier + + + + + + + Numéro de la parution précédente + + + + + Date de la parution précédente + + + + + Numéro de l'avis dans la parution précédente + + + + + + + + + + + + + + + + + + type simple format date YYYY-MM-DD + + + + + + + + format YYYY-MM-DDTHH:MM:SS + + + + + + + + + type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]* + + + + + + + + type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]* + + + + + + + + + type N : tous les chiffres + + + + + + + + + VXX (XX=num de version) + + + + + + + + + + type anySimpleType + + + + + + + + dérivé de AlphaNum_Type + + + + + + + + dérivé de AlphaNum_Type + + + + + + type anySimpleType + + + + + + + + dérivé de AlphaNum_Type + + + + + + Code Postal + + + + + + + + code département + + + + + + + + + + code Greffe + + + + + + + + + + dérivé de Alpha_Type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Annonce de Procédure Collective + + + + + Famille de jugement +Ex : Jugement d'ouverture, extrait de jugement, ... + + + + + + + + + + + + + + + + + Nature du jugement +Ex : Jugement d'ouverture de redressement judiciaire, jugement nommanbt un organe, ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Date du jugement + + + + + Complément du jugement + + + + + + + + + + diff --git a/batch/bodacc/Bodacc_RCI_Redif_2013_05_27_V10.xsd b/batch/bodacc/Bodacc_RCI_Redif_2013_05_27_V10.xsd new file mode 100644 index 00000000..611c766b --- /dev/null +++ b/batch/bodacc/Bodacc_RCI_Redif_2013_05_27_V10.xsd @@ -0,0 +1,830 @@ + + + + + + + + + + + + + + + + + + + Composant Annonce Immatriculations, Ventes et Créations pour les Reffuseurs + + + + + + Numero de la parution + + + + + Date de la parution + + + + + + + + + + + Type de l'annonce + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Numéro d'identification J.O. + + + + + + + + + + Numéro de l'avis dans la parution + + + + + + + + + + N° de département du Greffe + + + + + Code Greffe qui a procédé à l'avis - + + + + + + + + + + + + + + + + + + + + + + + + Dénomination + + + + + Forme juridique (Ex : Société Anonyme, SARL, EURL,...) + + + + + + + + + + Nom commercial + + + + + + + + + + Sigle + + + + + nouvelle situation,ex: Gérants : Dumoulin Bernard + + + + + + + + + + + + + + + Nom de famille (naissance) + + + + + + + + + + + Prénom + + + + + + + + + + + Nom d'usage + + + + + + + + + + + + + + + + + + + + + + + + + + + Capital de la société + + + + + + + Montant du capital + + + + + + + + + + Devise (conforme à la norme ISO 4217) + + + + + + Capital variable + + + + + + + + + + + Adresse + + + + + + Adresse en France de la société + + + + + Adresse à l'étranger + + + + + + + + + + + + + + + + + + Origine du fonds +Ex : Fonds principal acquis par achat au prix stipulé de 28 940 euros, Cette société se constitue, Moitié indivise dépendante d'un fonds complémentaire acquise par apport au montant évalué à 55 000 euros, Création, Fonds acquis par achat, ... + + + + + Siège social, Etablissement principal, Etablissemennt complémentaire, ..., Fonds complémentaire, Fonds secondaire + + + + + + + + + + + + + + + + + + + + + + + + + + Héritier, indivisaire + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Héritier, indivisaire + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information sur l'avis à rectifier + + + + + + + Numéro de la parution précédente + + + + + Date de la parution précédente + + + + + Numéro de l'avis dans la parution précédente + + + + + + + + + + + + + + + + + + + Date de début d'activité + + + + + Descriptif de la modification + + + + + + + + + + + + + Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice + + + + + Date de début d'activité + + + + + Descriptif de la modification + + + + + + + + + + + + + Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice + + + + + Date de début d'activité + + + + + Journal d'annonces légales + + + + + + + + + + + + + + + Descriptif de la modification + + + + + + + + + + + + + + + + + + + + + type simple format date YYYY-MM-DD + + + + + + + + format YYYY-MM-DDTHH:MM:SS + + + + + + + + + type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]* + + + + + + + + type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]* + + + + + + + + + type N : tous les chiffres + + + + + + + + + VXX (XX=num de version) + + + + + + + + + + type anySimpleType + + + + + + + + + dérivé de AlphaNum_Type + + + + + + + + + type anySimpleType + + + + + + + + dérivé de AlphaNum_Type + + + + + + Code Postal + + + + + + + + code département + + + + + + + + + + code Greffe + + + + + + + + + + dérivé de Alpha_Type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nom d'adresse à l'étranger + + + + + + + + + + + Nom du pays + + + + + + + + + + + + + + + + + + Numéro de la voie +Ex : 4 + + + + + + + + + + + Type de la voie +Ex : rue + + + + + + + + + + Nom de la voie +Ex : d'Enfer + + + + + + + + + + + Complément gépgraphique +Ex : Résidence Bel-Air + + + + + + + + + + + Boîte postale +Ex : BP 14192 + + + + + + + + + + + Localité +Ex : Saint-Chéron + + + + + + + + + + + Code Postal +Ex : 51290 + + + + + Ville/Bureau distributeur +Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson + + + + + + + + + + + + + NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris) + + + + + N° d'identification au format NNN NNN NNN + + + + + + + + + + + valeur fixée à "RCS" + + + + + + + + + + + Greffe d'immatriculation du dossier + + + + + diff --git a/batch/bodacc/Bodacc_RCM_Redif_2013_05_27_V11.xsd b/batch/bodacc/Bodacc_RCM_Redif_2013_05_27_V11.xsd new file mode 100644 index 00000000..1e871a12 --- /dev/null +++ b/batch/bodacc/Bodacc_RCM_Redif_2013_05_27_V11.xsd @@ -0,0 +1,794 @@ + + + + + + + + + + + + + + + + + + + + + + + + Composant Annonce Modifications générales et Radiation pour les Reffuseurs + + + + + + Numero de la parution + + + + + Date de la parution + + + + + + + + + + + Type de l'annonce + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Numéro d'identification J.O. + + + + + + + + + + Numéro de l'avis dans la parution + + + + + + + + + + N° de département du Greffe + + + + + Code Greffe qui a procédé à l'avis - + + + + + + + + + + + + + + + + Dénomination + + + + + + + + + + Forme juridique (Ex : Société Anonyme, SARL, EURL,...) + + + + + Capital de la société + + + + + + + Montant du capital + + + + + + + + + + Devise (conforme à la norme ISO 4217) + + + + + + Capital variable + + + + + + + + + + + Nom commercial + + + + + nouvelle situation,ex: Gérants : Dumoulin Bernard + + + + + + + + + + Sigle + + + + + + + + + + + Nom de famille (naissance) + + + + + + + + + + + Prénom + + + + + + + + + + + Nom d'usage + + + + + + + + + + + + + + + + + + + + + + + + + + + + N° d'identification au format NNN NNN NNN + + + + + + + + + + valeur fixée à "RCS" + + + + + + + + + + Greffe d'immatriculation du dossier + + + + + + + + + + + Adresse + + + + + + Adresse en France de la société + + + + + Adresse à l'étranger + + + + + + + + Siège social de la société + + + + + + + + + + + Etablissement principal de la société + + + + + + + + + + + + + + + + + + + + + + + + + Precedent exploitant pour une personne morale + + + + + + + + + + + + + + + + + + + + Precedent exploitant pour une personne physique + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Descriptif de la modification + + + + + + + + + + Date de début d'activité + + + + + Date d'effet utilisée pour les greffes dépendants du Ministère de la Justice + + + + + + + + + + + + Radiation pour les Personnes Physiques + + + + + + Date de cessation d'activité pour les Personnes Physiques + + + + + + + + Radiation pour les Personnes Morales + + + + + + + + + + + Commentaire pour les radiations + + + + + + + + + + + + + + Information sur l'avis à rectifier + + + + + + + Numéro de la parution précédente + + + + + Date de la parution précédente + + + + + Numéro de l'avis dans la parution précédente + + + + + + + + + + + + + + + + + + type simple format date YYYY-MM-DD + + + + + + + + format YYYY-MM-DDTHH:MM:SS + + + + + + + + + type A : tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]* + + + + + + + + type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]* + + + + + + + + + type N : tous les chiffres + + + + + + + + + VXX (XX=num de version) + + + + + + + + + + type anySimpleType + + + + + + + + + dérivé de AlphaNum_Type + + + + + + + + + type anySimpleType + + + + + + + + dérivé de AlphaNum_Type + + + + + + Code Postal + + + + + + + + code département + + + + + + + + + + code Greffe + + + + + + + + + + dérivé de Alpha_Type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nom d'adresse à l'étranger + + + + + + + + + + + Nom du pays + + + + + + + + + + + + + + + + + + Numéro de la voie +Ex : 4 + + + + + + + + + + Type de la voie +Ex : rue + + + + + + + + + + Nom de la voie +Ex : d'Enfer + + + + + + + + + + Complément gépgraphique +Ex : Résidence Bel-Air + + + + + + + + + + + Boîte postale +Ex : BP 14192 + + + + + + + + + + + Localité +Ex : Saint-Chéron + + + + + + + + + + + Code Postal +Ex : 51290 + + + + + Ville/Bureau distributeur +Ex : Saint-Rémy-en-Bouzemont-Saint-Genest-et-Isson + + + + + + + + + + + + + NNN NNN NNN RCS XXXXXX avec NNN NNN NNN N° d'identification et XXXXXXX Greffe d'immatriculation du dossier (Ex : 324 568 789 RCS Paris) + + + + + N° d'identification au format NNN NNN NNN + + + + + + + + + + + valeur fixée à "RCS" + + + + + + + + + + + Greffe d'immatriculation du dossier + + + + + diff --git a/batch/bodacc/OCTDE_EXPORT_JAL_V3.8.xsd b/batch/bodacc/OCTDE_EXPORT_JAL_V3.8.xsd new file mode 100644 index 00000000..f3c7c160 --- /dev/null +++ b/batch/bodacc/OCTDE_EXPORT_JAL_V3.8.xsd @@ -0,0 +1,578 @@ + + + + + + + + Alphabétique : Caractères, ponctuations et symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} & < >]* + + + + + + + + Alphanumérique : Caractères, chiffres, ponctuations et symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} & < >]* + + + + + + + + Numérique + + + + + + + + Booléen (0 ou 1) + + + + + + + + M : Personne Morale; P : Personne Physique + + + + + + + + + Type de capital : MINinmum, FIXe, VARiable ou LIBéré (en totalité) + + + + + + + + + + + Type de rubrique : CoMPTes, CREAtions, MODIFications, PROCedures COLlectives, RADiations, ventes, DIVers,CESsation + + + + + + + + + + + + + + + Type d'annonce : Rectificatif, Additif, Suppression, AnnuleEtRemplace, Insertion, Creation + + + + + + + + + + + + + + + + + + Ligne d'adresse au format RNVP selon la norme 38 caractères + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ste : Société; Dr : Docteur; M : Monsieur; Mme : Madame; Mlle : Mademoiselle; Me : Maître + + + + + + + + + + + + + AB : Societe Absorbante; AC : Acquereur; CD : Cedant; NE : Nouvel Exploitant; PE : Précédent Exploitant + + + + + + + + A : Administrateur; C :Commissaire au plan; H : Huissier*; J : Juge commissaire; K : Juge commissaire suppléant; L : Liquidateur; M : Mandataire; N : Notaire*; O : Opposition*; R : Représentant des créanciers ; T : conciliaTeur; V : aVocat*; Les intervenants avec une * sont spécifiques aux annonces de ventes + + + + + + + + Adresses structurées. Le tag adresseTexte est utilisé quand l'adresse n'est pas disponible de façon structurée, par exemple pour les adresses à l'étranger. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Elément racine + + + + + + + + + + + Metadonnées de la livraison + + + + + + + + Ce tag peut le cas échéant contenir un code permettant d'identifier la livraison fournie. + + + + + + + + Les annonces de la livraison + + + + + + + + + + Description d'une annonce + + + + + + + + + + + + + + Metadonnées de l'annonce. Certains de ces tags sont specifiques aux Jal (ex: journalID), d'autres spécifiques au Bodacc (ex: nojo), d'autres étant communs à diverses sources + + + + + + + + Nom du fichier PDF contenant l'annonce OCRisée avec lien vers la page de l'annonce si multipage (exemple: myfile.pdf#page=4) + + + + + + + + + + + + + + + + Les personnes d'une annonce + + + + + + + + + + Infos associées à la personne concernée + + + + + + + + + + + identité d'une personne Physique ou Morale + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description d'un établissement + + + + + + + + + + + + Les dirigeants d'une entreprise + + + + + + + + + + Description d'un dirigeant + + + + + + + + + + + + + + + + + + + + + + + + + + + Date d'effet de début de mission d'un dirigeant (notamment pour les CAC) + + + + + + + Date d'effet passée ou à venir de la fin de + mission d'un dirigeant (notamment pour les + CAC) + + + + + + + + + + + + Zonage des informations liées à chaque mandataire ou autre intervenant de l'annonce + + + + + + + + + + + Pour cet intervenant, il s'agit d'une fin de mission + + + + + + + + Les intervenants d'une procédure collective + + + + + + + + + + Les évènements d'une annonce + + + + + + + + + + Description d'un evenement + + + + + + + + + + + + + + + + + + + + Description d'une Procédure Collective + + + + + + + + Pour les annonces de plans ou les annonces avec périodes d'observation, selon les annonces, la durée du plan ou de la période d'observation est communiqué (36 mois, 8 ans, etc...) ou alors la dateFinPlanObs + + + + + + + + + Description d'un rectificatif ou annulation + + + + + + + + + + + + + + Les acteurs d'une cession + + + + + + + + + + + + + + identité d'une personne Physique ou Morale + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Les établissements concernés par une cession + + + + + + + + diff --git a/batch/consolideDiri.php b/batch/consolideDiri.php index 1b4bd4e5..a7d32698 100644 --- a/batch/consolideDiri.php +++ b/batch/consolideDiri.php @@ -72,8 +72,15 @@ if ($all) { $baseInpi=$baseBodacc=$baseBodaccHisto=true; } -$iDb=new WDB('jo'); +$iDbSdv1=new WDB('sdv1'); +$ret = $iDbSdv1->insert('sphinx_idx', array('nom'=>'jo.dirigeants', 'createBegin'=>date('YmdHis'))); +$consolidationId = null; +if (is_int($ret) ) { + $consolidationId = $ret; +} +echo date ('Y/m/d - H:i:s')." - Sphinx Idx id=".$consolidationId.EOL; +$iDb=new WDB('jo'); echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table dirigeants.".EOL; if (!$iDb->query("DROP TABLE IF EXISTS jo.dirigeants_tmp;")) die($iDb->getLastError()); @@ -155,6 +162,13 @@ if ($baseBodaccHisto) { $strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbEtab dirigeants BODACC Histo consolidés.".EOL; } +$iDb->query("ALTER TABLE jo.dirigeants_tmp PACK_KEYS=1;"); +echo date ('Y/m/d - H:i:s')." - Commpression des Index de la table OK.".EOL; + +if ( $consolidationId !== null ) { + $ret = $iDbSdv1->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$consolidationId"); +} + echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Dirigeants".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Dirigeants".EOL; diff --git a/batch/consolideEtab.php b/batch/consolideEtab.php index 65b99679..28e4efc6 100644 --- a/batch/consolideEtab.php +++ b/batch/consolideEtab.php @@ -15,9 +15,9 @@ include_once(INCLUDE_PATH.'partenaires/classMRncs.php'); include_once(FWK_PATH.'mail/sendMail.php'); $all=true; -$joAsso=$joBodacc=$baseInsee=$baseInpi=$reset=$pageRankOnly=$iGreffe=false; +$joAsso=$joBodacc=$baseInsee=$baseInpi=$reset=$pageRankOnly=$iGreffe=$iLiens=false; // Compteurs -$nbInsertAsso=$nbInsertRncs1=$nbInsertRncs2=$nbInsertBod=$nbConjoints=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=0; +$nbInsertAsso=$nbInsertAssoAdr2=$nbInsertRncs1=$nbInsertRncs2=$nbInsertBod=$nbConjoints=$nbInsertBodNS=$nbInsertGreffes=$nbInsertMarques=$nbUpdateAsso=$nbInsertLiens=0; $table='etablissements_tmp'; @@ -31,6 +31,7 @@ Options : -i Consolider les infos SIRENE (Insee) -n Consolider les infos RNCS (Inpi) -g Consolider les entreprises en provenance des Greffes + -l Consolider les entreprises issues de la base Liens -m Mettre à jour les données sur les marques -r Reconstruire complètement la base -p traiter uniquement la construction du 'page rank' @@ -43,46 +44,19 @@ if ($_SERVER['argc']>1) for ($i=1; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { - case 'a': - $all=false; - $joAsso=true; - break; - case 'g': - $all=false; - $iGreffe=true; - break; - case 'm': - $all=false; - $iMarques=true; - break; - case 'b': - $all=false; - $joBodacc=true; - break; - case 'i': - $all=false; - $baseInsee=true; - break; - case 'n': - $all=false; - $baseInpi=true; - break; - case 'r': - $reset=true; - break; - case 'p': - $pageRankOnly=true; - break; - case 't': - $table=strtolower(substr($argv[$i],3)); - break; - case '-': - case '?': - die($strInfoScript); - break; - default: - die('Option '. $argv[$i] . " inconnue !\n"); - break; + case 'a': $all=false; $joAsso=true; break; + case 'g': $all=false; $iGreffe=true; break; + case 'l': $all=false; $iLiens=true; break; + case 'm': $all=false; $iMarques=true; break; + case 'b': $all=false; $joBodacc=true; break; + case 'i': $all=false; $baseInsee=true; break; + case 'n': $all=false; $baseInpi=true; break; + case 'r': $reset=true; break; + case 'p': $pageRankOnly=true; break; + case 't': $table=strtolower(substr($argv[$i],3)); break; + case '-': + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); break; } } } @@ -96,7 +70,7 @@ if (file_exists(REP_TEMP.'stockInsee.lock')) { /** Par défaut, on consolide toutes les sources **/ if ($all) { - $joAsso=$joBodacc=$baseInsee=$baseInpi=$iGreffe=$iMarques=true; + $joAsso=$joBodacc=$baseInsee=$baseInpi=$iGreffe=$iLiens=$iMarques=true; } $iDb=new WDB('jo'); @@ -165,57 +139,68 @@ $iInsee=new MInsee(); echo date ('Y/m/d - H:i:s')." - Création de la nouvelle table établissements.".EOL; + +$iDbSdv1=new WDB('sdv1'); +$ret = $iDbSdv1->insert('sphinx_idx', array('nom'=>'jo.etablissements', 'createBegin'=>date('YmdHis'))); +$consolidationId = null; +if (is_int($ret) ) { + $consolidationId = $ret; +} +echo date ('Y/m/d - H:i:s')." - Sphinx Idx id=".$consolidationId.EOL; + if (!$iDb->query("DROP TABLE IF EXISTS jo.etablissements_tmp;")) die($iDb->getLastError()); if (!$iDb->query("CREATE TABLE jo.etablissements_tmp ( - `id` bigint(20) NOT NULL auto_increment, - `source` tinyint(3) unsigned zerofill NOT NULL, - `source_id` bigint(20) unsigned NOT NULL, - `triCode` varchar(6) NOT NULL, - `autre_id` varchar(15) NOT NULL, - `siren` int(9) unsigned zerofill NOT NULL, - `nic` mediumint(5) unsigned zerofill NOT NULL, - `actif` tinyint(1) NOT NULL, - `siege` tinyint(1) unsigned NOT NULL, - `raisonSociale` varchar(80) NOT NULL, - `enseigne` varchar(40) NOT NULL, - `sigle` varchar(20) NOT NULL, - `identite_pre` varchar(255) NOT NULL, - `marques` TEXT NOT NULL, - `adr_num` smallint(4) unsigned zerofill NOT NULL, - `adr_btq` char(1) NOT NULL, - `adr_typeVoie` char(4) NOT NULL, - `adr_libVoie` varchar(32) NOT NULL, - `adr_comp` varchar(38) NOT NULL, - `adr_cp` mediumint(5) unsigned zerofill NOT NULL, - `adr_ville` varchar(32) NOT NULL, - `adr_dep` char(3) NOT NULL, - `adr_com` smallint(3) unsigned zerofill NOT NULL, - `tel` bigint(10) unsigned zerofill NOT NULL, - `fax` bigint(10) unsigned zerofill NOT NULL, - `cj` smallint(4) unsigned zerofill NOT NULL, - `capital` bigint(15) unsigned zerofill NOT NULL, - `capitalDev` char(3) NOT NULL, - `capitalSrc` tinyint(3) unsigned zerofill NOT NULL, - `ape_etab` char(5) NOT NULL, - `ape_entrep` char(5) NOT NULL, - `age_entrep` tinyint(3) unsigned NOT NULL, - `age_etab` tinyint(3) unsigned NOT NULL, - `tca` tinyint(1) unsigned zerofill NULL, - `tcaexp` tinyint(1) unsigned zerofill NOT NULL, - `teff_entrep` tinyint(2) unsigned NULL, - `teff_etab` tinyint(2) unsigned NULL, - `rang` smallint unsigned NOT NULL, - `dateInsert` datetime NOT NULL, - `dateUpdate` timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `source` (`source`,`source_id`), - KEY `idxTel` (`tel`), - KEY `idxFax` (`fax`), - KEY `idxSiret` (`siren`,`nic`,`actif`,`siege`), - KEY `idxAutreId` (`autre_id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1;", true)) + id bigint(20) NOT NULL auto_increment COMMENT 'Identifiant dans la table (pas unique pour l''établissement)', + source tinyint(3) unsigned zerofill NOT NULL COMMENT 'Code source de l''entité/établissement', + source_id bigint(20) unsigned NOT NULL COMMENT 'Identifiant de l''établissement/entité dans la source (source+source_id étant invariable=identifiant S&D)', + triCode varchar(6) NOT NULL COMMENT 'Code Tribunal de l''entreprise', + autre_id varchar(15) NOT NULL COMMENT 'Autre identifiant comme Numéro RCS, Waldec/RNA', + siren INT(9) unsigned zerofill NOT NULL COMMENT 'SIREN de l''entreprise', + nic mediumint(5) unsigned zerofill NOT NULL COMMENT 'NIC de l''établissement (SIREN+NIC=SIRET)', + actif tinyint(1) unsigned NOT NULL COMMENT 'Etablissement actif ou inactif (1=actif, 0=inactif)', + siege tinyint(1) unsigned NOT NULL COMMENT 'Type d''établissement (0=Secondaire, 1=Siège, 2=Principal)', + raisonSociale varchar(160) NOT NULL COMMENT 'Raison Sociale de l''entreprise', + enseigne varchar(200) NOT NULL COMMENT 'Enseigne de l''établissement', + sigle varchar(20) NOT NULL COMMENT 'Sigle de l''entreprise', + identite_pre TEXT NOT NULL COMMENT 'Liste des Raisons Sociales précédentes de l''entreprise', + marques TEXT NOT NULL COMMENT 'Liste des marques déposées sur le SIREN', + adr_num SMALLINT(4) UNSIGNED ZEROFILL NOT NULL, + adr_btq CHAR(1) NOT NULL, + adr_typeVoie CHAR(4) NOT NULL, + adr_libVoie VARCHAR(32) NOT NULL, + adr_comp VARCHAR(38) NOT NULL, + adr_cp mediumint(5) UNSIGNED ZEROFILL NOT NULL, + adr_ville VARCHAR(32) NOT NULL, + adr_dep CHAR(3) NOT NULL, + adr_com SMALLINT(3) UNSIGNED ZEROFILL NOT NULL, + rivoli CHAR(5) NOT NULL, + tel bigint(10) UNSIGNED ZEROFILL NOT NULL, + fax bigint(10) UNSIGNED ZEROFILL NOT NULL, + cj SMALLINT(4) UNSIGNED ZEROFILL NOT NULL, + capital bigint(15) UNSIGNED ZEROFILL NOT NULL, + capitalDev CHAR(3) NOT NULL, + capitalSrc TINYINT(3) UNSIGNED ZEROFILL NOT NULL, + ape_etab CHAR(5) NOT NULL, + ape_entrep CHAR(5) NOT NULL, + age_entrep TINYINT(3) UNSIGNED NOT NULL, + age_etab TINYINT(3) UNSIGNED NOT NULL, + tca TINYINT(1) UNSIGNED ZEROFILL NULL COMMENT 'Tranche de Chiffre d''Affaires (INSEE)', + tcaexp TINYINT(1) UNSIGNED ZEROFILL NOT NULL COMMENT 'Tranche de Chiffre d''Affaires à l''export (INSEE)', + teff_entrep TINYINT(2) UNSIGNED NULL, + teff_etab TINYINT(2) UNSIGNED NULL, + rang SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Nombre de consultation de l''entreprise dans la base S&D', + dateInsert DATETIME NOT NULL, + dateUpdate timestamp NOT NULL default '0000-00-00 00:00:00' on update CURRENT_TIMESTAMP, + PRIMARY KEY idxIdSphinx(id), + UNIQUE KEY idxSource (source, source_id), + KEY idxTel(tel), + KEY idxFax(fax), + KEY idxSiret(siren,nic,actif,siege), + KEY idxAutreId(autre_id) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT 'Liste des établissements (Pour la recherche)';", true)) +/** @todo Si la construction de la table est trop longue, faire un ALTER TABLE ... PACK_KEYS=1 à la fin du chargement des données **/ die($iDb->getLastError()); $strMailInfo=date ('Y/m/d - H:i:s')." - Consolidation des établissements.".EOL; @@ -251,11 +236,11 @@ if ($baseInsee) { ' ',REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ENSEIGNE,'@','A'), '&',' ET '),'/',''),',',''),'-',''),'.','') */ $iDb->query("INSERT INTO jo.etablissements_tmp SELECT 0 AS id, '2' AS source, id AS source_id, e.triCode AS triCode, IF(e.numRC2 IS NOT NULL OR e.numRC2<>'', e.numRC2, i.NUMRC) AS autre_id, i.SIREN AS siren, i.NIC AS nic, i.ACTIF%10 as actif, - SIEGE as siege, i.NOM as raisonSociale, i.ENSEIGNE AS enseigne, i.SIGLE AS sigle, TRIM(CONCAT_WS(' ',i.IDENTITE_PRE,i.NOM2,e.raisonSociale,e.sigle)) AS identite_pre, '' AS marques, ADR_NUMVOIE as adr_num, + SIEGE as siege, IF(LENGTH(i.NOMEN_LONG)>0, i.NOMEN_LONG, i.NOM) AS raisonSociale, i.ENSEIGNE AS enseigne, i.SIGLE AS sigle, TRIM(CONCAT_WS(' ',i.IDENTITE_PRE,i.NOM,i.NOM2,e.raisonSociale,e.sigle,i.NOMEN_LONG,i.NOM_COM)) AS identite_pre, '' AS marques, ADR_NUMVOIE as adr_num, ADR_BTQ as adr_btq, ADR_TYPVOIE as adr_typevoie, ADR_LIBVOIE as adr_libvoie, ADR_COMP as adr_comp, - ADR_CP as adr_cp, ADR_LIBCOM as adr_ville, IF(ADR_DEP=97 OR ADR_DEP=98, SUBSTRING(ADR_CP,1,3), ADR_DEP) AS adr_dep, ADR_COM as adr_com, + ADR_CP as adr_cp, ADR_LIBCOM as adr_ville, IF(ADR_DEP=97 OR ADR_DEP=98, SUBSTRING(ADR_CP,1,3), ADR_DEP) AS adr_dep, ADR_COM as adr_com, CODEVOIE AS rivoli, TEL as tel, FAX as fax, i.CJ as cj, IF(e.capitalMontant IS NOT NULL OR e.capitalMontant>0, e.capitalMontant, i.CAPITAL) AS capital, IF(e.capitalDevIso IS NOT NULL OR e.capitalDevIso<>'', e.capitalDevIso, i.CAPITAL_DEV) AS capitalDev, IF(e.capitalMontant IS NOT NULL OR e.capitalMontant>0, 5, 2) AS capitalSrc, APE_ETAB as ape_etab, APE_ENT as apen_entrep, YEAR(NOW())-YEAR(DCREN) as age_entrep, YEAR(NOW())-YEAR(DCRET) as age_etab, -TCA as tca, TCAEXP as tcaexp, IF(TEFF_ENT='NN', NULL, TEFF_ENT*1) AS teff_entrep, IF(TEFF_ET='NN', NULL, TEFF_ET*1) AS teff_etab, + TCA as tca, TCAEXP as tcaexp, IF(TEFF_ENT='NN', NULL, TEFF_ENT*1) AS teff_entrep, IF(TEFF_ET='NN', NULL, TEFF_ET*1) AS teff_etab, 0 as rank, DATE_MAJ as dateInsert, 0 as dateUpdate FROM insee.identite i LEFT JOIN jo.rncs_entrep e ON i.siren=e.siren"); $retTmp=$iDb->select('jo.etablissements_tmp', 'COUNT(*) AS nbEtab', '1', false,MYSQL_ASSOC); @@ -380,6 +365,8 @@ if ($baseInpi) { 'adr_cp'=>$tabEt['cp'], 'adr_ville'=>$tabEt['commune'], 'adr_dep'=>$dep, + // 'adr_com'=> + // 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']); 'tel'=>'', 'fax'=>'', 'cj'=>$tabEntrep['cj'], @@ -443,6 +430,8 @@ if ($baseInpi) { 'adr_cp'=>$tabEt['cp'], 'adr_ville'=>$tabEt['commune'], 'adr_dep'=>$dep, + // 'adr_com'=> + // 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']); 'tel'=>'', 'fax'=>'', 'cj'=>$tabEntrep['cj'], @@ -579,6 +568,8 @@ if ($joBodacc) { 'adr_cp'=>$adr_cp, 'adr_ville'=>$adr_ville, 'adr_dep'=>$dep, + // 'adr_com'=> + // 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']); 'tel'=>'', 'fax'=>'', 'cj'=>$cj, @@ -715,6 +706,8 @@ if ($joBodacc) { 'adr_cp'=>$adr_cp, 'adr_ville'=>$adr_ville, 'adr_dep'=>$dep, + // 'adr_com'=> + // 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']); 'tel'=>'', 'fax'=>'', 'cj'=>$cj, @@ -1013,6 +1006,8 @@ if ($joAsso) { 'adr_cp'=>@$adr['cp'], 'adr_ville'=>trim(strtoupper(@$adr['ville'])), 'adr_dep'=>$dep, + // 'adr_com'=> + // 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']); 'tel'=>'', 'fax'=>'', 'cj'=>$cj, @@ -1023,16 +1018,43 @@ if ($joAsso) { 'ape_entrep'=>$naf, 'dateInsert'=>$dateInsert, ); - $ret=$iDb->insert('etablissements_tmp',$tabEtab); if (!$ret && mysql_errno()<>1062) { echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Associations sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); } else $nbInsertAsso++; + + /** On enregistre l'autre adresse de l'association **/ + if ($tabAsso['Assoc_NAdresse']<>'' && $tabAsso['Assoc_Adresse']<>'') { + $adr=$iInsee->structureVoie($tabAsso['Assoc_Adresse']); + $adrComp=strtoupper(@$adr['adrComp0']); + if (@$adr['adrComp1']<>'') $adrComp.=' '.strtoupper(@$adr['adrComp1']); + $adr['adrComp0']=$adrComp; + $dep=floor(@$adr['cp']/1000); + if ($dep>96) $dep=floor(@$adr['cp']/100); + $tabEtab['source'] = 3; + $tabEtab['adr_num'] = @$adr['num']; + $tabEtab['adr_btq'] = @$adr['indRep']; + $tabEtab['adr_typeVoie']= @$adr['typeVoie']; + $tabEtab['adr_libVoie'] = strtoupper(@$adr['libVoie']); + $tabEtab['adr_comp'] = @$adr['adrComp0']; + $tabEtab['adr_cp'] = @$adr['cp']; + $tabEtab['adr_ville'] = trim(strtoupper(@$adr['ville'])); + $tabEtab['adr_dep'] = $dep; + + $ret=$iDb->insert('etablissements_tmp',$tabEtab); + if (!$ret && mysql_errno()<>1062) { + echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Associations sur le siren ". $tabBodacc['siren'] .' : '. $tabBodacc['raisonSociale'] .' ('. $tabBodacc['id'].') !'.EOL; + echo date ('Y/m/d - H:i:s'). mysql_error(); + } else { + $nbInsertAsso++; + $nbInsertAssoAdr2++; + } + } } - echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL; - $strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés.".EOL; + echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés (dont $nbInsertAssoAdr2 suite à déménagement).".EOL; + $strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertAsso établissements Associations consolidés (dont $nbInsertAssoAdr2 suite à déménagement).".EOL; echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis le JO Association Sirené (Waldec, etc...)".EOL; @@ -1046,7 +1068,7 @@ if ($joAsso) { while ($tabAsso=$iDb->fetch(MYSQL_ASSOC)) { $tabEtab=array( 'triCode'=>$tabAsso['Sous_Prefecture'], // Gérer la table des préfecture 'autre_id'=>$tabAsso['Waldec'], - 'identite_pre'=>$tabAsso['Assoc_Nom'], +// 'identite_pre'=>$tabAsso['Assoc_Nom'], ); $ret=$iDb->update('etablissements_tmp',$tabEtab, 'siren='.$tabAsso['siren']); if (!$ret || mysql_errno()<>0) { @@ -1101,6 +1123,8 @@ if ($iGreffe) { 'adr_cp'=>$adr_cp, 'adr_ville'=>strtoupper(@$tabBodacc['ville']), 'adr_dep'=>$dep, + // 'adr_com'=> + // 'rivoli'=>$iInsee->getCodeVoieRivoli($ligne['insDEPCOM'], $ligne['insTYPVOIE'], $ligne['insLIBVOIE']); 'tel'=>'', 'fax'=>'', 'cj'=>$tabBodacc['fj'], @@ -1123,6 +1147,78 @@ if ($iGreffe) { $strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertGreffes établissements Greffes consolidés.".EOL; } +if ($iLiens) { + $iRncs=new MRncs(); + echo date ('Y/m/d - H:i:s')." - Mise à jour de la nouvelle table établissements depuis les Liens Financiers.".EOL; + + $dateInsert=date('YmdHis'); + $nbBodS=$iDb->select('liensRef l LEFT JOIN tabPays p ON l.adresse_pays=p.codPays3', 'l.id, l.siren, l.sirenValide, l.source, l.actif, l.PpPm, l.RS, l.sigle, l.civilite, l.nom, l.prenom, l.nom_usage, l.naissance_date, l.naissance_dept_pays, l.naissance_lieu, l.nat, l.adresse_num, l.adresse_btq, l.adresse_codvoie, l.adresse_libvoie, l.adresse_comp, l.adresse_cp, l.adresse_ville, l.adresse_pays, l.tel, l.fax, l.web, l.email, l.dateSaisie, l.cj, l.ape, l.categorie, l.capital, l.deviseCapital, l.dateCapital, l.nbActions, l.dateNbActions, l.idLoc1Type, l.idLoc1Num, l.idLoc2Type, l.idLoc2Num, l.idLoc3Type, l.idLoc3Num, l.bilMillesime, l.bilDev, l.bilFL, l.bilHN, l.bilFPr, l.bilEE, l.grpTop, l.grpNom, l.dateInsert, p.codePaysInsee, p.libPays', "l.siren<1000 AND l.dateSuppr=0", false,MYSQL_ASSOC,true); + + echo date ('Y/m/d - H:i:s')." - Il y a $nbBodS entreprises en provenance de la base Liens absentes de l'insee à consolider depuis $last_id...".EOL; + + while ($tabBodacc=$iDb->fetch(MYSQL_ASSOC)) { +// l.id, l.siren, l.sirenValide, l.source, l., l.naissance_date, l.naissance_dept_pays, +// l.naissance_lieu, l.nat, l., l., l., l., l., l., l., l.adresse_pays, +// l.web, l.email, l.dateSaisie, l.categorie, l.dateCapital, l.nbActions, l.dateNbActions, l.idLoc1Type, +// l.idLoc2Type, l.idLoc2Num, l.idLoc3Type, l.idLoc3Num, l.bilMillesime, l.bilDev, l.bilFL, l.bilHN, l.bilFPr, l.bilEE, l.grpTop, l.grpNom, l.dateInsert + if ($tabBodacc['PpPm']=='PM') { + $raisonSociale=$tabBodacc['RS']; + } else { + $raisonSociale=trim($tabBodacc['civilite'].' '.strtoupper($tabBodacc['nom']).' '.$tabBodacc['prenom']); + if ($tabBodacc['cj']*1==0) $cj=1900; + else $cj=$tabBodacc['cj']; + } + if ($tabBodacc['adresse_pays']<>'' && $tabBodacc['adresse_pays']<>'FRA') { + $dep=99; + $com=$tabBodacc['codePaysInsee']; + } else { + $dep=floor($tabBodacc['adresse_cp']/1000); + if ($dep>96) $dep=floor($tabBodacc['adresse_cp']/100); + $com=''; + } + + $tabEtab=array( 'source'=>7, + 'source_id'=>$tabBodacc['id'], + 'siren'=>$tabBodacc['siren'], + 'nic'=>0, + 'triCode'=>'', + 'autre_id'=>$tabBodacc['idLoc1Num'], + 'siege'=>1, + 'actif'=>$tabBodacc['actif'], + 'raisonSociale'=>$raisonSociale, + 'enseigne'=>'',// + 'sigle'=>$tabBodacc['sigle'], + 'identite_pre'=>$tabBodacc['nom_usage'], + 'adr_num'=>$tabBodacc['adresse_num'], + 'adr_btq'=>$tabBodacc['adresse_btq'], + 'adr_typeVoie'=>$tabBodacc['adresse_codvoie'], + 'adr_libVoie'=>$tabBodacc['adresse_libvoie'], + 'adr_comp'=>$tabBodacc['adresse_comp'], + 'adr_cp'=>$tabBodacc['adresse_cp'], + 'adr_ville'=>strtoupper($tabBodacc['adresse_ville']), + 'adr_dep'=>$dep, + 'adr_com'=>$com, + 'tel'=>$tabBodacc['tel'], + 'fax'=>$tabBodacc['fax'], + 'cj'=>$tabBodacc['cj'], + 'capital'=>$tabBodacc['capital'], + 'capitalDev'=>$tabBodacc['deviseCapital'], + 'capitalSrc'=>6, + 'ape_etab'=>$tabBodacc['ape'], + 'ape_entrep'=>$tabBodacc['ape'], + 'dateInsert'=>$dateInsert, + ); + + $ret=$iDb->insert('etablissements_tmp',$tabEtab); + if (!$ret && mysql_errno()<>1062) { + echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations Liens sur le siren ". $tabBodacc['siren'] .' : '. $raisonSociale .' ('. $tabBodacc['id'].') !'.EOL; + echo date ('Y/m/d - H:i:s'). mysql_error(); + } else + $nbInsertLiens++; + } + echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertLiens établissements Liens consolidés.".EOL; + $strMailInfo.=date ('Y/m/d - H:i:s')." - Il y a $nbInsertLiens établissements Liens consolidés.".EOL; +} if ($iMarques) { echo date ('Y/m/d - H:i:s')." - Mise à jour des marques.".EOL; @@ -1134,17 +1230,17 @@ if ($iMarques) { $strMarques=''; while ($tabMarques=$iDb->fetch(MYSQL_ASSOC)) { $siren =$tabMarques['Siren']; - $strMarques.=' '.$tabMarques['Marques']; if ($sirenPre<>$siren && $sirenPre<>false) { /** Il faut mettre à jour l'ensemble des marques pour ce siren **/ $tabUpdate=array( 'marques'=>trim($strMarques)); - $ret=$iDb->update($table,$tabUpdate, "siren=$siren"); + $ret=$iDb->update($table,$tabUpdate, "siren=$sirenPre"); if (!$ret) { - echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations MARQUES sur le siren $siren impossible ($strMarques) !".EOL; + echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno()." : Insertion des informations MARQUES sur le siren $sirenPre impossible ($strMarques) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); } else $nbInsertMarques++; $strMarques=''; } + $strMarques.=' '.$tabMarques['Marques']; $sirenPre=$siren; } echo date ('Y/m/d - H:i:s')." - Il y a $nbInsertMarques établissements avec Marques consolidés.".EOL; @@ -1197,6 +1293,8 @@ while ($tabRank=$iDbRanks->fetch(MYSQL_ASSOC)) { if (!$pageRankOnly) { echo date ('Y/m/d - H:i:s')." - Mise en place des tables pour l'indexation.".EOL; +// $iDb->query("ALTER TABLE jo.etablissements_tmp PACK_KEYS=1;"); +// echo date ('Y/m/d - H:i:s')." - Commpression des Index de la table OK.".EOL; $iDb->query("DROP TABLE jo.etablissements_old;"); echo date ('Y/m/d - H:i:s')." - Suppression de la table etablissements_old : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL; //$iDb->query("RENAME TABLE jo.etablissements TO jo.etablissements_old;"); @@ -1204,6 +1302,11 @@ if (!$pageRankOnly) { //$iDb->query("RENAME TABLE jo.etablissements_tmp TO jo.etablissements;"); //echo date ('Y/m/d - H:i:s')." - Passage en production de la table tmp : Debug erreur n°".mysql_errno().' - '.mysql_error().EOL; } + +if ( $consolidationId !== null ) { + $ret = $iDbSdv1->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$consolidationId"); +} + echo date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Etablissements".EOL; @@ -1212,6 +1315,6 @@ $strMailInfo.=date ('Y/m/d - H:i:s')." - FIN de la consolidation de la base Et if ($nb>0) die(0); else die(1);*/ -sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Consolidation des établissements', $strMailInfo); +sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'Consolidation des établissements', $strMailInfo); die(); ?> \ No newline at end of file diff --git a/batch/convertCsv2Txt.php b/batch/convertCsv2Txt.php new file mode 100644 index 00000000..bf4bfdf5 --- /dev/null +++ b/batch/convertCsv2Txt.php @@ -0,0 +1,138 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +$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); +} + ?> \ No newline at end of file diff --git a/batch/convertSdCsv2.php b/batch/convertSdCsv2.php new file mode 100644 index 00000000..de352d67 --- /dev/null +++ b/batch/convertSdCsv2.php @@ -0,0 +1,602 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +0, 'creations'=>0, 'mmd'=>0, 'procol'=>0, 'radiations'=>0, 'ventes'=>0); +$procoltot=array('CONC'=>0, 'SAUV'=>0, 'RJ'=>0, 'LJ'=>0, 'SUITE'=>0); + +foreach ($tabFichier as $iFic=>$fichier) { + + $ligne001=$ligne100=$ligne104=$ligne200=$ligne999=0; + $ligne100chap=array('comptes'=>0, 'creations'=>0, 'mmd'=>0, 'procol'=>0, 'radiations'=>0, 'ventes'=>0); + $procol=array('CONC'=>0, 'SAUV'=>0, 'RJ'=>0, 'LJ'=>0, 'SUITE'=>0); + $tabLignes=file($fichier); + $fp=fopen($fichier.'.csv', 'w'); + + foreach ($tabLignes as $i=>$ligne) { + $ligne=strtr($ligne,';',' '); + $ecrireLignePre=false; + $typeLigne=substr($ligne, 0, 3)*1; + switch ($typeLigne) { + case 1: // Ligne ignorée + // if ($csvAnn && !$csvId) + // Ecriture de l'entête + $siren ='Siren'; + $nic ='Nic'; + $ref ='Référence'; + $numPar ='Parution'; + $bodacc ='Bodacc'; + $datePar='Date parution'; + $numAnn ='Numéro Annonce'; + $cor ='Type Annonce'; + $libTri ='Tribunal'; + $numRC ='Numéro RCS'; + $raisonS='Raison sociale'; + $catEven='Chapitre'; + $txtEven='Evènement(s)'; + $txtAnn ='Texte Annonce'; + + $codeTri ='Code Tribunal'; + $actifEt ='Etab. Actif'; + $siege ='Siège'; + $nomCom ='Nom Commercial'; + $enseigne ='Enseigne'; + $sigle ='Sigle'; + $adrEtNum ='Adresse Num'; + $adrEtBtq ='Adresse Btq'; + $adrEtTypV ='Adresse Type Voie'; + $adrEtVoie ='Adresse Lib Voie'; + $adrEtComp ='Complèment adresse'; + $adrEtDisp ='Adresse Distribution Spéciale'; + $adrEtCp ='Adresse CP'; + $adrEtVille ='Adresse Ville'; + $adrEtPays ='Adresse Pays'; + $capital ='Capital'; + $capitalDev =''; + $cj ='Forme Juridique'; + $civilite ='Civilité'; + $nbEtab ='Nb Etab'; + $dateMaj ='Date MAJ'; + $sitJur ='Situation Juridique'; + $depCom ='Code Commune'; + $rivoli ='Fantoir'; + $iris ='IRIS'; + $ilot ='Ilot'; + $indDom ='Domiciliation'; + $tel ='Téléphone'; + $fax ='Fax'; + $web ='Web'; + $mail ='Mail'; + $auxil ='Auxiliarité'; + $saisonat ='Saisonnalité'; + $activnat ='Nature Activité'; + $origine ='Origine création'; + $typexploit ='Type Exploitation'; + $lieuact ='Lieu Activité'; + $actisurf ='Type magasin'; + $prodpart ='ProdPart'; + $arronet ='Arrondissemeent'; + $ctonet ='Canton'; + $tcd ='Tranche commune'; + $zemet ='Zone Emploi'; + $du ='Dépt Unité Urbaine'; + $tu ='Taille Unité Urbaine'; + $uu ='Numéro Unité Urbaine'; + $dcret ='Date création étab.'; + $apet ='NAF étab.'; + $nacet ='NACE étab'; + $dapet ='Année NAF étab'; + $effet ='Effectif étab.'; + $teffet ='Tranche Eff. ét.'; + $defet ='Année effectif étab.'; + $modet ='Modalité APE étab.'; + $explet ='Etab. exploitant'; + $rpet ='Région étab.'; + $dreactet ='Date réactivation étab.'; + $dateferet ='Date fermeture étab.'; + $eaeant ='Année EAE'; + $eaeapet ='APE1 EAE'; + $eaesec1t ='APE2 EAE'; + $eaesec2t ='APE3 EAE'; + $dcren ='Date création ent.'; + $apen ='NAF ent.'; + $nacen ='NACE ent.'; + $dapen ='Année NAF ent.'; + $effen ='Effectif ent.'; + $teffen ='Tranche Eff. ent'; + $defen ='Année effectif ent.'; + $moden ='Modalité APE ent.'; + $explen ='Ent. exploitante'; + $rpen ='Région ent.'; + $dreacten ='Date réactivation ent.'; + $dateferen ='Date fermeture ent.'; + $dateImma ='Date Immatriculation'; + $dateRad ='Date Radiation'; + $tca ='Tranche CA'; + $tcaExp ='Tranche CA Exp.'; + $zus ='ZUS'; + $zru ='ZRU'; + $zfu ='ZFU'; + $cucs ='CUCS'; + $afr ='AFR'; + $zrr ='ZRR'; + $tva ='TVA'; + $isin ='ISIN'; + $dir1nom ='Dirigeant 1 nom'; + $dir1prenom ='Dirigeant 1 prénom'; + $dir1cfct ='Dirigeant 1 code Fct'; + $dir2nom ='Dirigeant 2 nom'; + $dir2prenom ='Dirigeant 2 prénom'; + $dir2cfct ='Dirigeant 2 code Fct'; + $bilanClot ='Date dernier bilan'; + $bilanDuree ='Durée bilan'; + $bilanCA ='Dernier CA'; + $bilanRES ='Dernier Résultat'; + + $ligneOut=''; + $ligne001++; + $ligne001tot++; + break; + case 200: // Structure Identité + if (!$csvId) break; + $ligneOut ="$siren;$nic;$codeTri;$libTri;$numRC;$actifEt;$siege;$raisonS;$nomCom;$enseigne;$sigle;"; + $ligneOut.="$adrEtNum;$adrEtBtq;$adrEtTypV;$adrEtVoie;$adrEtComp;$adrEtDisp;$adrEtCp;$adrEtVille;$adrEtPays;"; + $ligneOut.="$capital $capitalDev;$cj;$civilite;$nbEtab;$dateMaj;$sitJur;$depCom;$rivoli;$iris;$ilot;$indDom;"; + $ligneOut.="$tel;$fax;$web;$mail;$auxil;$saisonat;$activnat;$origine;$typexploit;$lieuact;$actisurf;$prodpart;"; + $ligneOut.="$arronet;$ctonet;$tcd;$zemet;$du;$tu;$uu;$dcret;$apet;$nacet;$dapet;$effet;$teffet;"; + $ligneOut.="$defet;$modet;$explet;$rpet;$dreactet;$dateferet;$eaeant;$eaeapet;$eaesec1t;$eaesec2t;"; + $ligneOut.="$dcren;$apen;$nacen;$dapen;$effen;$teffen;$moden;$explen;$rpen;$dreacten;$dateferen;$dateImma;$dateRad;$tca;$tcaExp;"; + $ligneOut.="$zus;$zru;$zfu;$cucs;$afr;$zrr;$tva;$isin;$dir1nom;$dir1prenom;$dir1cfct;$dir2nom;$dir2prenom;$dir2cfct;"; + $ligneOut.="$bilanClot;$bilanDuree;$bilanCA;$bilanRES"; + $ligne200++; + $ligne200tot++; + + $siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise + $nic = trim(substr($ligne, 22, 5 )); // Nic de l'établissement + /* + $ref = trim(substr($ligne, 71, 18 )); // Référence Client + $numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année + $bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C + $datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ + $numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc + $typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce + $corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion + $corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ + $corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion + $corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion + $cor=''; + if ($typeAnn<>'I') + $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate); + switch($typeAnn) { + case 'I': $cor='Insertion'.$cor; break; + case 'A': $cor='Additif'.$cor; break; + case 'R': $cor='Rectificatif'.$cor; break; + case 'S': $cor='Suppression'.$cor; break; + default: break; + } + */ + $codeTri=trim(substr($ligne, 41 , 6 )); // Code Tribunal Codification interne utilisée par le Bodacc + $libTri=@$iBodacc->getTribunalNom($codeTri); + + $adrEtNum= trim(substr($ligne, 513 , 4)); // Adresse de l'établissement : Numéro dans la voie + $adrEtBtq= trim(substr($ligne, 517 , 1 )); // ADR_BTQ Indicateur de répétition (Bis, Ter, etc...) + $adrEtTypV= trim(substr($ligne, 518 , 4 )); // ADR_TYPVOIE Type de voie + $adrEtVoie= trim(substr($ligne, 522 , 32 )); // Adresse de l'établissement : Libellé de la voie + $adrEtComp= trim(substr($ligne, 591 , 38 )); // ADR_COMP Complément d'adresse + $adrEtDisp = trim(substr($ligne, 629 , 38 )); // ADR_DISTSP Distribution spéciale + $adrEtCp= trim(substr($ligne, 586 , 5 )); // Code Postal de l'établissement + $adrEtVille=trim(substr($ligne, 554 , 32 )); // Ville de l'établissement + $adrEtPays = trim(substr($ligne, 667 , 38 )); // PAYS Pays + + $numRC = trim(substr($ligne, 31 , 10 )); // Numéro de RC (Registre du Commerce) de l'entreprise + $raisonS= trim(substr($ligne, 73 , 160 )); // Raison sociale de l'entreprise + /* + $siren = substr($ligne, 3 , 10 ); // ID Numéro unique d'identification interne d'un établissement S&D + $siren = substr($ligne, 27 , 3 ); // SOURCE Source de la fiche d'identité + $siren = substr($ligne, 30 , 1 ); // SIRETVALIDE Siren/siret valide + */ + $dateMaj= substr($ligne, 47 , 8 ); // DATEMAJ Date de la dernière mise à jour dans la base S&D + $actifEt = substr($ligne, 55 , 1 ); // ACTIF Établissement juridiquement actif + $actifEco= substr($ligne, 56 , 1 ); // ACTIFECO Établissement économiquement actif + $sitJur = trim(substr($ligne, 57 , 2 )); // SITJUR Situation Juridique de l'entreprise + $codeEve = substr($ligne, 59 , 3 ); // EVE Dernier événement Insee recensé + $dateEve = substr($ligne, 62 , 8 ); // DATEVE Date du dernier événement Insee recensé + // $siren = substr($ligne, 70 , 2 ); // TYPETAB Type d'établissement concerné par l'événement + $siege = substr($ligne, 72 , 1 ); // SIEGE Établissement siège, secondaire ou principal + $nomCom = trim(substr($ligne, 233 , 160 )); // NOMCOM Nom commercial + $enseigne = trim(substr($ligne, 393 , 80 )); // ENSEIGNE Enseigne de l'établissement + $sigle = trim(substr($ligne, 473 , 40 )); // SIGLE sigle de l'entreprise + $depCom = substr($ligne, 707 , 5 ); // ADR_DEP Département de l'établissement + $rivoli = trim(substr($ligne, 712 , 5 )); // CODEVOIE Code voie de l'établissement + $iris = trim(substr($ligne, 717 , 4 )); // CODEIRIS Code Iris de l'établissement + $ilot = trim(substr($ligne, 721 , 5 )); // CODEILOT Code Ilot de l'établissement + $indDom = trim(substr($ligne, 726 , 1 )); // ADRESSEDOM Indicateur d'adresse de domiciliation + $tel= trim(substr($ligne, 727 , 15 )); // TEL Numéro de téléphone + $fax = trim(substr($ligne, 742 , 15 )); // FAX Numéro de télécopie + $web = trim(substr($ligne, 757 , 80 )); // WEB Site Web + $mail = trim(substr($ligne, 837 , 80 )); // MAIL Adresse Email de contact générique + $auxilt = trim(substr($ligne, 917 , 1 )); // AUXILT Auxiliarité de l'activité de l'établissement + $saisonat= trim(substr($ligne, 918 , 1 )); // SAISONAT Saisonnalité de l'établissement + $activnat= trim(substr($ligne, 919 , 2 )); // ACTIVNAT Nature de l'activité de l'établissement + $origine= trim(substr($ligne, 921 , 2 )); // ORIGINE Origine de la création de l'établissement + $typexploit= trim(substr($ligne, 923 , 2 )); // TYPEXPLOIT Type d'exploitation + $lieuact=trim(substr($ligne, 925 , 2 )); // LIEUACT Lieu de l'activité de l'établissement + $actisurf=trim(substr($ligne, 927 , 2 )); // ACTISURF Type de magasin + $prodpart=trim(substr($ligne, 929 , 1 )); // PRODPART Participation particulière à la production de l'établissement + $arronet=trim(substr($ligne, 930 , 2 )); // ARRONET Arrondissement de l'établissement + $ctonet = trim(substr($ligne, 932 , 3 )); // CTONET Canton + $tcd=trim(substr($ligne, 935 , 2 )); // TCD Tranche de commune détaillée + $zemet= trim(substr($ligne, 937 , 2 )); // ZEMET Zone d'emploi + $du= trim(substr($ligne, 939 , 2 )); // DU Département de l'unité urbaine de localisation + $tu= trim(substr($ligne, 941 , 1 )); // TU Taille de l'unité urbaine + $uu= trim(substr($ligne, 942 , 2 )); // UU Numéro de l'untié urbaine + $dcret = substr($ligne, 944 , 8 ); // DCRET Date de création de l'établissement + $apet = substr($ligne, 952 , 5 ); // APE_ETAB Code activité dans la NAF rév2 de l'établissement + $nacet= trim(substr($ligne, 957 , 5 )); // NACE_ETAB Code activité NACE de l'établissement + $dapet = trim(substr($ligne, 962 , 4 )); // DAPET Année de validité de l'activité principale de l'établissement + $effet = trim(substr($ligne, 966 , 7 ))*1; // EFF_ET Effectif de l'établissement + $teffet = substr($ligne, 973 , 2 ); // TEFF_ET Tranche d'effectif de l'établissement + $defet = trim(substr($ligne, 975 , 4 )); // DEFET Année de mise à jour de l'effectif établissement + $modet = trim(substr($ligne, 979 , 1 )); // MODET Modalité de l'activité pricipale de l'établissement + $explet= trim(substr($ligne, 980 , 1 )); // EXPLET Etablissement exploitant tout ou partie des moyens de production + $rpet = trim(substr($ligne, 981 , 2 )); // RPET Région de localisation de l'établissement + $dreactet = trim(substr($ligne, 983 , 8 )); // DREACTET Date de réactivation de l'établissement + $dateferet = trim(substr($ligne, 991 , 8 )); // DATEFERET Date de fermeture de l'établissement + $eaeant = trim(substr($ligne, 999 , 4 )); // EAEANT Année de validité des rubriques de niveau Etab provenant des EAE* + $eaeapet = trim(substr($ligne, 1003 , 5 )); // EAEAPET Activité principale de l'établissement issue des EAE + $eaesec1t = trim(substr($ligne, 1008 , 5 )); // EAESEC1T Activité secondaire de l'établissement issue des EAE + $eaesec2t = trim(substr($ligne, 1013 , 5 )); // EAESEC2T Autre activité secondaire de l'établissement issue des EAE + $dcren = substr($ligne, 1018 , 8 ); // DCREN Date de création de l'entreprise + $apen = substr($ligne, 1026 , 5 ); // APE_ENT Code activité dans la NAF rév2 de l'entreprise + $nacen = substr($ligne, 1031 , 5 ); // NACE_ENT Code activité NACE de l'entreprise + $dapen = substr($ligne, 1036 , 4 ); // DAPEN Année de validité de l'activité principale de l'entreprise + $effen = trim(substr($ligne, 1040 , 7 ))*1; // EFF_ENT Effectif de l'entreprise + $teffen = substr($ligne, 1047 , 2 ); // TEFF_ENT Tranche d'effectif de l'entreprise + $defen = substr($ligne, 1049 , 4 ); // DEFEN Année de mise à jour de l'effectif entreprise + $moden = substr($ligne, 1053 , 1 ); // MODEN Modalité de l'activité pricipale de l'entreprise + $explen = substr($ligne, 1054 , 1 ); // EXPLEN Entreprise exploitant tout ou partie des moyens de production + $rpen = substr($ligne, 1055 , 2 ); // RPEN Région de localisation du siège de l'entreprise + $dreacten = substr($ligne, 1057 , 8 ); // DREACTEN Date de réactivation de l'entreprise + $dateferen = substr($ligne, 1065 , 8 ); // DATEFEREN Date de fermeture de l'entreprise + $dateImma = substr($ligne, 1073 , 8 ); // DATEIMMAT Date d'immatriculation de l'entreprise au RCS + $dateRad = substr($ligne, 1081 , 8 ); // DATERAD Date de radiation de l'entreprise du RCS + $capital = trim(substr($ligne, 1089 , 15 ))*1; // CAPITAL Montant du capital de l'entreprise + $capitalTyp= substr($ligne, 1104 , 1 ); // CAPITALTYPE Type de capital + $capitalDev= trim(substr($ligne, 1105 , 3 )); // CAPITALDEV Devise du capital + $cj = substr($ligne, 1108 , 4 ); // CJ Catégorie Juridique de l'entreprise + $civilite= trim(substr($ligne, 1112 , 1 )); // CIVILITE Civilité de l'entreprise si Personne Physique + $nbEtab = trim(substr($ligne, 1113 , 4 ))*1; // NBETAB Nombre d'établissements actifs de l'entreprise + $tca= substr($ligne, 1117 , 1 ); // TCA Tranche de chiffre d'affaire + $tcaExp = substr($ligne, 1118 , 1 ); // TCAEXP Tranche de chiffre d'affaire à l'export + $aprm = substr($ligne, 1119 , 6 ); // APRM Activité principale au registre des métiers + $monoreg= substr($ligne, 1125 , 1 ); // MONOREG Mono-régionalité de l'entreprise + $regimp = substr($ligne, 1126 , 2 ); // REGIMP Principale région d'implantation de l'entreprise + $monoact = substr($ligne, 1128 , 1 ); // MONOACT Mono-activité de l'entreprise + $nicsiege = substr($ligne, 1129 , 5 ); // NICSIEGE Nic de l'établissement siège + $recme = substr($ligne, 1134 , 1 ); // RECME Répertoire des Entreprises Contrôlées Majoritairement par l’État + $siretLie = substr($ligne, 1135 , 14 ); // SIRETLIE Siret lié : prédécesseur, successeur, doublon, autre + $siretLieType = substr($ligne, 1149 , 1 ); // SIRETLIETYPE Type de sitet lié + $nicPrec = substr($ligne, 1150 , 5 ); // NICPREC Nic de l'établissement prédécesseur (dans le cadre d'un transfert) + $nicSuiv = substr($ligne, 1155 , 5 ); // NICSUIV Nic de l'établissement successeur (dans le cadre d'un transfert) + /* + $siren = substr($ligne, 1160 , 2 ); // insDESTINAT Destination Insee + $siren = substr($ligne, 1162 , 5 ); // insDEPCOMEN Code commune Insee du siège de l'entreprise + $siren = substr($ligne, 1167 , 1 ); // insMNICSIEGE Indicateur de MAJ du NIC SIEGE + $siren = substr($ligne, 1168 , 1 ); // insMNOMEN Indicateur de MAJ de la Raison Sociale + $siren = substr($ligne, 1169 , 1 ); // insMCJ Indicateur de MAJ de la Forme Juridique + $siren = substr($ligne, 1170 , 1 ); // insMAPEN Indicateur de MAJ du NAF entreprise + $siren = substr($ligne, 1171 , 1 ); // insMENSEIGNE Indicateur de MAJ de l'ENSEIGNE + $siren = substr($ligne, 1172 , 1 ); // insMAPET Indicateur de MAJ du NAF établissement + $siren = substr($ligne, 1173 , 1 ); // insMADRESSE Indicateur de MAJ de l'ADRESSE de l'établissement + $siren = substr($ligne, 1174 , 1 ); // insMAUXILT Indicateur de MAJ de l'AUXILIARITE + $siren = substr($ligne, 1175 , 1 ); // insMSIGLE Indicateur de MAJ du SIGLE + $siren = substr($ligne, 1176 , 1 ); // insMEXPLEN Indicateur de MAJ du caractère EXPLOITANT entrep + $siren = substr($ligne, 1177 , 1 ); // insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab + */ + $adr_rnvp = substr($ligne, 1178 , 1 ); // ADR_RNVP Type de Prestation RNVP si RNVP + $adrL1 = substr($ligne, 1179 , 38 ); // L1_nomen Ligne 1 : Nom de l'entreprise + $adrL2 = substr($ligne, 1217 , 38 ); // L2_COMP Ligne 2 : Complément de nom + $adrL3 = substr($ligne, 1255 , 38 ); // L3_CADR Ligne 3 : Complément d'adresse + $adrL4 = substr($ligne, 1293 , 38 ); // L4_VOIE Ligne 4 : Adresse + $adrL5 = substr($ligne, 1331 , 38 ); // L5_DISP Ligne 5 : Distribution spéciale + $adrL6 = substr($ligne, 1369 , 38 ); // L6_POST Ligne 6 : Code Postal, commune, etc.. + $adrL7 = substr($ligne, 1407 , 38 ); // L7_ETRG Ligne 7 : Pays si étranger + /* + $siren = substr($ligne, 1445 , 4 ); // EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE* + $siren = substr($ligne, 1449 , 5 ); // EAEAPEN Activité principale de l'entreprise issue des EAE + $siren = substr($ligne, 1454 , 5 ); // inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE + $siren = substr($ligne, 1459 , 5 ); // inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE + $siren = substr($ligne, 1464 , 5 ); // inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE + $siren = substr($ligne, 1469 , 5 ); // inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE + */ + $gpsX = substr($ligne, 1474 , 12 ); // GPSX Latitude en ° et décimales de ° (format WGS1984) + $gpsY = substr($ligne, 1486 , 12 ); // GPSY Longitude en ° et décimales de ° (format WGS1984) + $gpSP = substr($ligne, 1498 , 1 ); // GPSP Niveau de précision du géocodage (de 0 à 9) + $zus = trim(substr($ligne, 1499 , 10 )); // ZUS Identifiant de la Zone Urbaine Sensible + $zru = trim(substr($ligne, 1509 , 10 )); // ZRU Identifiant de la Zone de Rénovation Urbaine + $zfu = trim(substr($ligne, 1519 , 10 )); // ZFU Identifiant de la Zone Franche Urbaine + $cucs = trim(substr($ligne, 1529 , 10 )); // CUCS Identifiant de la Zone Contrat Urbain de Cohésion Social + $afr = trim(substr($ligne, 1539 , 10 )); // AFR Identifiant de la Zone AFR + $zrr = trim(substr($ligne, 1549 , 10 )); // ZRR Identifiant de la ZRR + $tva = trim(substr($ligne, 1559 , 15 )); // TVA Numéro de TVA Intracommunataire + $tvaValide = substr($ligne, 1574 , 1 ); // TVAVALIDE Numéro de TVA validé + // $siren = substr($ligne, 1575 , 1 ); // ANCIENSIEGE Ancien siège + $isin= trim(substr($ligne, 1576 , 12 )); // CODEISIN Code ISIN de l'entreprise si cotation en bourse + $dir1nom = trim(substr($ligne, 1588 , 40 )); // PPDIR1NOM Nom du principal dirigeant + $dir1prenom = trim(substr($ligne, 1628 , 30 )); // PPDIR1PRENOM Prénom du principal dirigeant + $dir1naissn = substr($ligne, 1658 , 40 ); // PPDIR1NNAISS Nom de naissance du ppl dirigeant + $dir1naissd = substr($ligne, 1698 , 8 ); // PPDIR1DNAISS Date de naissance + $dir1naissl = substr($ligne, 1706 , 35 ); // PPDIR1LNAISS Lieu de Naissance + $dir1cfct= substr($ligne, 1741 , 4 ); // PPDIR1FONC Code Fonction + // $siren = substr($ligne, 1745 , 8 ); // PPDIR1MAJ Date de MAJ du ppl dirigeant + $dir2nom= trim(substr($ligne, 1753 , 40 )); // PPDIR2NOM Nom du seconde principal dirigeant + $dir2prenom = trim(substr($ligne, 1793 , 30 )); // PPDIR2PRENOM Prénom du 2ème principal dirigeant + $dir2naissn = substr($ligne, 1823 , 40 ); // PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant + $dir2naissd = substr($ligne, 1863 , 8 ); // PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant + $dir2naissl = substr($ligne, 1871 , 35 ); // PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant + $dir2cfct = substr($ligne, 1906 , 4 ); // PPDIR2FONC Code Fonction du 2ème ppl dirigeant + // $siren = substr($ligne, 1910 , 8 ); // PPDIR2MAJ Date de MAJ du 2ème ppl dirigeant + $bilanClot= trim(substr($ligne, 1918 , 8 ))*1; // BILANCLOT Date de dernière clôture de bilan disponible + $bilanDuree = trim(substr($ligne, 1926 , 2 ))*1; // BILANDUREE Durée du dernier exercice disponible + $bilanCA= trim(substr($ligne, 1928 , 15 ))*1; // BILANCA Chiffre d'affaires au dernier bilan disponible + $bilanRES = trim(substr($ligne, 1943 , 15 ))*1; // BILANRES Résultat au dernier bilan disponible + // $siren = substr($ligne, 1958 , 41 ); // FILLER1 Zone libre + $ecrireLignePre=true; + break; + + case 100: // Structure Bodacc + $ligne100++; + $ligne100tot++; + + if (!$csvAnn) break; + $ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn"; + + $siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce + $nic = trim(substr($ligne, 22, 5 )); // Nic + $ref = trim(substr($ligne, 71, 18 )); // Référence Client + $numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année + $bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C + $datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ + $numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc + $typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce + $corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion + $corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ + $corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion + $corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion + $cor=''; + if ($typeAnn<>'I') + $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate); + switch($typeAnn) { + case 'I': $cor='Insertion'.$cor; break; + case 'A': $cor='Additif'.$cor; break; + case 'R': $cor='Rectificatif'.$cor; break; + case 'S': $cor='Suppression'.$cor; break; + default: break; + } + $codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc + $libTri=$iBodacc->getTribunalNom($codeTri); + + $adrEtNum= substr($ligne, 596 , 4 ); // Adresse de l'établissement : Numéro dans la voie + $adrEtVoie= substr($ligne, 606 , 50 ); // Adresse de l'établissement : Libellé de la voie + $adrEtCp= substr($ligne, 746 , 5 ); // Code Postal de l'établissement + $adrEtVille=substr($ligne, 751 , 45 ); // Ville de l'établissement + $adrEnNum= substr($ligne, 796 , 4 ); // Adresse de l'établissement : Numéro dans la voie + $adrEnVoie= substr($ligne, 806 , 50 ); // Adresse de l'établissement : Libellé de la voie + $adrEnCp= substr($ligne, 946 , 5 ); // Code Postal de l'établissement + $adrEnVille=substr($ligne, 951 , 45 ); // Ville de l'établissement + + $numRC = trim(substr($ligne, 95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise + $raisonS= trim(substr($ligne, 104 , 150 )); // Raison sociale de l'entreprise + $even=array(); + $even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN + $even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN + $even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN + $even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN + $even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN + $even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN + $even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN + $even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN + $txtEven=''; + foreach ($even as $codeEven) + if ($codeEven<>0) { + $txtEven.=$iBodacc->getEvenement($codeEven).', '; + $catEven=$iBodacc->getChapitreEvenement($codeEven); + } + else + $txtEven.=''; + if ($catEven=='procol') { + switch($codeEven) { + case 1050: + case 1055: $procol['CONC']++; $procoltot['CONC']++; break; + case 1100: $procol['SAUV']++; $procoltot['SAUV']++; break; + case 1200: + case 1201: + case 1211: + case 1212: $procol['RJ']++; $procoltot['RJ']++; break; + case 1300: + case 1301: + case 1302: + case 1303: + case 1304: + case 1305: + case 1306: + case 1307: + case 1311: + case 1312: + case 1313: $procol['LJ']++; $procoltot['LJ']++; break; + default: $procol['SUITE']++; $procoltot['SUITE']++; break; + } + } + @$ligne100chap[$catEven]++; + @$ligne100chaptot[$catEven]++; + $txtEven=substr($txtEven,0,strlen($txtEven)-2); + $txtAnn=''; + $ecrireLignePre=true; + break; + case 104: // Annonce + $ligne104++; + $ligne104tot++; + $txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce + break; + case 999: // Ligne ignorée + if ($csvId) { + $ligneOut ="$siren;$nic;$codeTri;$libTri;$numRC;$actifEt;$siege;$raisonS;$nomCom;$enseigne;$sigle;"; + $ligneOut.="$adrEtNum;$adrEtBtq;$adrEtTypV;$adrEtVoie;$adrEtComp;$adrEtDisp;$adrEtCp;$adrEtVille;$adrEtPays;"; + $ligneOut.="$capital $capitalDev;$cj;$civilite;$nbEtab;$dateMaj;$sitJur;$depCom;$rivoli;$iris;$ilot;$indDom;"; + $ligneOut.="$tel;$fax;$web;$mail;$auxil;$saisonat;$activnat;$origine;$typexploit;$lieuact;$actisurf;$prodpart;"; + $ligneOut.="$arronet;$ctonet;$tcd;$zemet;$du;$tu;$uu;$dcret;$apet;$nacet;$dapet;$effet;$teffet;"; + $ligneOut.="$defet;$modet;$explet;$rpet;$dreactet;$dateferet;$eaeant;$eaeapet;$eaesec1t;$eaesec2t;"; + $ligneOut.="$dcren;$apen;$nacen;$dapen;$effen;$teffen;$moden;$explen;$rpen;$dreacten;$dateferen;$dateImma;$dateRad;$tca;$tcaExp;"; + $ligneOut.="$zus;$zru;$zfu;$cucs;$afr;$zrr;$tva;$isin;$dir1nom;$dir1prenom;$dir1cfct;$dir2nom;$dir2prenom;$dir2cfct;"; + $ligneOut.="$bilanClot;$bilanDuree;$bilanCA;$bilanRES"; + } elseif ($csvAnn) + $ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn"; + $ligne999++; + $ligne999tot++; + $ecrireLignePre=true; + break; + default: // Ligne non gérée + break; + } + if ($ecrireLignePre) + fwrite($fp, $ligneOut.EOL); + if ($ajoutNic && ($typeLigne==1 || $typeLigne==999 || $catEven=='procol' || + ($catEven<>'comptes' && + (preg_match('/VITRY.*SEINE/i', $adrEtVille) || preg_match('/VITRY.*SEINE/i', $adrEnVille))) + )) { + // $nic=0; + if ($siren*1>1000) { + $tabEt=$iInsee->getEtablissements($siren, '', 0, 200, 200, 94); + //print_r($tabEt); + //die(); + } + if ($tabEt['nbReponsesTotal']==1) { + // 1 seul établissement connu : on le valide en auto @todo : Vérifier adresser + $nic=$tabEt['reponses'][0]['Nic']; + } elseif ($tabEt['nbReponsesTotal']==0) { + continue; + } else { + $nicTrouve=$nbNic=0; + foreach ($tabEt['reponses'] as $iEt=>$tabIdEt) { + $villeRec=$tabIdEt['Ville']; + $numRec=substr($tabIdEt['Adresse'],0,4)*1; + $numDemEt=$adrEtNum*1; + $numDemEn=$adrEnNum*1; + if (($numDemEt==0 && $numDemEn==0) || $numRec==0) continue; + if ($numDemEt==$numRec && preg_match('/VITRY.*SEINE/i', $villeRec)) { + $nicTrouve=$tabIdEt['Nic']; + $nbNic++; + } elseif ($numDemEn==$numRec && preg_match('/VITRY.*SEINE/i', $villeRec)) { + $nicTrouve=$tabIdEt['Nic']; + $nbNic++; + } + } + //if ($nbNic==1) { + $nic=$nicTrouve; + //} + } + + echo substr($ligne,0,22).initstr($nic*1,5,'0',ALIGN_RIGHT).substr($ligne,27,2000); + } + } + if ($ajoutNic) echo EOL; + fclose($fp); + if ($verbose) echo date ('Y/m/d - H:i:s')." - Conversion terminée de $fichier ($ligne100 annonces)" . EOL; + elseif ($sortieCSV) { + echo "$fichier;$ligne100;"; + foreach ($ligne100chap as $chap=>$nb) echo "$nb;"; + foreach ($procol as $chap=>$nb) echo "$nb;"; + echo EOL; + } +} + +if ($sortieCSV) { + echo "$iFic fichiers;$ligne100tot;"; + foreach ($ligne100chaptot as $chap=>$nb) echo "$nb;"; + foreach ($procoltot as $chap=>$nb) echo "$nb;"; + echo EOL; +} else +echo date ('Y/m/d - H:i:s')." - Conversion terminée : $iFic fichiers, $ligne001tot entêtes, $ligne200tot etab., $ligne100tot annonces, $ligne104tot lignes de texte, $ligne999tot fin de fichier !" . EOL; + +die(); + + ?> \ No newline at end of file diff --git a/batch/convertSdFBoissons.php b/batch/convertSdFBoissons.php new file mode 100644 index 00000000..faa5b42d --- /dev/null +++ b/batch/convertSdFBoissons.php @@ -0,0 +1,606 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +'fb.ne.contentieux@heineken.fr,stephane.bisiaux@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST0C'=>'fb.ne.contentieux@heineken.fr,eric.gerbaud@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST0D'=>'fb.ne.contentieux@heineken.fr,severine.poulain@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST0E'=>'fb.ne.contentieux@heineken.fr,eric.debuyzer@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST0F'=>'fb.ne.contentieux@heineken.fr,sylvain.michoux@france-boissons.fr', + 'ST05'=>'fb.ne.contentieux@heineken.fr,dominique.husson@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST06'=>'fb.ne.contentieux@heineken.fr,nathalie.heyer@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST07'=>'fb.ne.contentieux@heineken.fr,annick.guyot@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST08'=>'fb.ne.contentieux@heineken.fr,annick.guyot@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST00'=>'fb.ne.contentieux@heineken.fr,valerie.baechler@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST0A'=>'fb.ne.contentieux@heineken.fr,valerie.baechler@france-boissons.fr,sylvain.michoux@france-boissons.fr', + 'ST09'=>'fb.ne.contentieux@heineken.fr,laurence.hassler@france-boissons.fr,sylvain.michoux@france-boissons.fr', +// Région BRETAGNE NORMANDIE + 'SJ04'=>'fb.bn.contentieux@heineken.fr,marie-francoise.beneat@france-boissons.fr', //thierry.hacques@france-boissons.fr,linda.bourges fb.bn.contentieux@heineken.fr,thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr + 'SJ0A'=>'fb.bn.contentieux@heineken.fr,celine.dorion@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges + 'SJ0C'=>'fb.bn.contentieux@heineken.fr,celine.dorion@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr', + 'SJ0D'=>'fb.bn.contentieux@heineken.fr,celine.dorion@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr', + 'SJ06'=>'fb.bn.contentieux@heineken.fr,angelique.thomas@france-boissons.fr', // thierry.hacques,linda.bourges@france-boissons.fr', + 'SJ07'=>'fb.bn.contentieux@heineken.fr,thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr', + 'SJ05'=>'fb.bn.contentieux@heineken.fr,genevieve.gales@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr', + 'SJ00'=>'fb.bn.contentieux@heineken.fr,nadine.dutheil@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr + 'SJ08'=>'fb.bn.contentieux@heineken.fr,nadine.dutheil@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@france-boissons.fr', + 'SJ09'=>'fb.bn.contentieux@heineken.fr,denise.gillard@france-boissons.fr', // thierry.hacques@france-boissons.fr,linda.bourges@ +// Région ILE DE FRANCE + 'NO00'=>'francoise.andre@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'NO02'=>'francoise.andre@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'NO04'=>'amandine.vergnaud@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'NO06'=>'annie.bontemps@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'NO0E'=>'murielle.pinte@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'NO0F'=>'laurence.braquehais@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'NO0G'=>'catherine.simon@france-boissons.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'PB00'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'PB01'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'PB02'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'PB03'=>'fabrice.amriou@sabertrand.fr,fb.idf.contentieux@heineken.fr,ctx-idf@france-boissons.fr', + 'PB0A'=>'fb.idf.contentieux@heineken.fr', + 'PB0C'=>'fb.idf.contentieux@heineken.fr', + 'PB0D'=>'fb.idf.contentieux@heineken.fr', + 'PB0E'=>'fb.idf.contentieux@heineken.fr', + 'PB0F'=>'fb.idf.contentieux@heineken.fr', + 'PB0G'=>'fb.idf.contentieux@heineken.fr', + +// LOIRE SUD OUEST + 'BO00'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO01'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO02'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO03'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO04'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO05'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO06'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO07'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO08'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO09'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0B'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0C'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0D'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0E'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0F'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0G'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0H'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0I'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0J'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', + 'BO0K'=>'fb.lso.contentieux@heineken.fr,sabine.ageon@france-boissons.fr,christian.tesson@france-boissons.fr,martine.desgrippes@france-boissons.fr', +// Région CENTRE RHONE ALPES + 'LY05'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,sylvie.lambert@france-boissons.fr', + 'LY06'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,sylvie.lambert@france-boissons.fr', + 'LY07'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,sylvie.lambert@france-boissons.fr', + 'LY08'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr', + 'LY0A'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr', + 'LY0B'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr', + 'LY0C'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,virginie.charbonnier@france-boissons.fr', + 'LY0E'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0H'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0I'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0J'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0L'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0M'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0P'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0Q'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0R'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY0V'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr', + 'LY00'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,nathalie.rodier@france-boissons.fr,virginie.charbonnier@france-boissons.fr', + // Ajouté le 05/11/2013 pour CRA + 'LE00'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr', + 'LE05'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr', + 'LE06'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr', + 'LE07'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr', + 'LE08'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr', + 'LE09'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr', +// Région SUD EST + 'LY0F'=>'fb.cra.contentieux@heineken.fr,CTX-CRA@france-boissons.fr,fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA00'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA01'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA02'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA03'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA04'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0B'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0C'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0D'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0F'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0H'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0I'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0J'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0L'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0M'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MA0T'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', + 'MO00'=>'fatiha.daifi@france-boissons.fr,fb.sudest.contentieux@heineken.fr', +); + +//define('VERSION_FICHIER_BODACC','0106'); +define('DIR_RECORDATI_IN','/mnt/samba/partage/production/'); + +/** + * @todo + * 1. Numéroter toutes les procédures OK + * 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc + * 101 Commentaire + * 102 Activite déclaré au Bodacc + * 103 texte rectificatif + * 104 Annonce complète au format texte + * 105 Structure Dirigeants BODACC + * 106 Libellé du Périmètre de la vente + * 3. + * 5. JugesCommissaires à intégrer correctement + + Noms et prénoms des dirigeants de l'entreprise ' Anum. ? + + Raison sociale du vendeur Anum. 255 + Siren du vendeur (en cas de Vente/Cessions) Num. 9 + Indicateur de correction du SIREN vendeur (si C, le siren diffusé au BODACC est faut mais S&D a affecté le bon SIREN) ' Car. 1 + */ +include_once(FWK_PATH.'common/chiffres.php'); +include_once(FWK_PATH.'common/dates.php'); +include_once(INCLUDE_PATH.'bodacc/classMBodacc.php'); +include_once(FWK_PATH.'mail/sendMail.php'); + +$iBodacc=new MBodacc(); + +$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] +Conversion d'un flux surveillance/diffusion Bodacc S&D en fichier spécifique Bouchara-Recordati. + +";/*Options : +-d Clients en Diffusion Bodacc (par défaut) +-s Clients en Surveillance Bodacc +-e Ne pas tenir compte de la date de dernière exécution du script +-i Ne pas incrémenter les numéros de tour (pour les tests). +";*/ + +$tabFichLigneCmd=$tabFichier=array(); +$sortieCSV=true; + +$argv=$_SERVER['argv']; +for ($i=1; isset($argv[$i]); $i++) { + if (substr($argv[$i],0,1)=='-') { + switch (substr($argv[$i],1,1)) { + case '-': + case '?': + die($strInfoScript); + break; + default: + die('Option '. $argv[$i] . " inconnue !\n"); + break; + } + } else $tabFichLigneCmd[]=$argv[$i]; +} +if (count($tabFichLigneCmd)==0) { + $dh = opendir(DIR_RECORDATI_IN); + while (false !== ($filename = readdir($dh))) { + if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.txt' && + substr($filename, 0,40)=='surveillanceBodacc_SURBODPRDFTPFBOISSON_') + $tabFichier[] = $filename; + } + sort($tabFichier); +} else $tabFichier=$tabFichLigneCmd; + +if (count($tabFichier)==0 && count($tabFichLigneCmd)==0) die(date ('Y/m/d - H:i:s') . " - Aucun fichier France Boisson à traiter !".EOL); +//print_r($tabFichier); +//die(); +$ligne001tot=$ligne100tot=$ligne104tot=$ligne999tot=0; +$ligne100chaptot=array('comptes'=>0, 'creations'=>0, 'mmd'=>0, 'procol'=>0, 'radiations'=>0, 'ventes'=>0); +$procoltot=array('CONC'=>0, 'SAUV'=>0, 'RJ'=>0, 'LJ'=>0, 'SUITE'=>0); + +for ($iFic=0; isset($tabFichier[$iFic]); $iFic++) +{ + $nomFichier =$tabFichier[$iFic]; + + $ligne001=$ligne100=$ligne104=$ligne999=0; + $ligne100chap=array('comptes'=>0, 'creations'=>0, 'mmd'=>0, 'procol'=>0, 'radiations'=>0, 'ventes'=>0); + $procol=array('CONC'=>0, 'SAUV'=>0, 'RJ'=>0, 'LJ'=>0, 'SUITE'=>0); + $tabLignes=file(DIR_RECORDATI_IN.$nomFichier); + $message=$tabNbAnn=array(); + $lignesCsv=array(); + + foreach ($tabLignes as $i=>$ligne) { + $ecrireLignePre=false; + $typeLigne=substr($ligne, 0, 3)*1; + switch ($typeLigne) { + case 1: // Ligne ignorée + // Ecriture de l'entête + $siren ='Siren'; + $nic ='Nic'; + $ref ='Référence'; + $numPar ='Parution'; + $bodacc ='Bodacc'; + $datePar='Date parution'; + $numAnn ='Numéro Annonce'; + $cor ='Type Annonce'; + $libTri ='Tribunal'; + $numRC ='Numéro RCS'; + $raisonS='Raison sociale'; + $catEven='Chapitre'; + $txtEven='Evènement(s)'; + $txtAnn ='Texte Annonce'; + + $ligneOut=''; + $ligne001++; + $ligne001tot++; + break; + case 100: // Structure Bodacc + $lignesCsv[$ref1][]="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn"; + + // Mail de surveillance + $sirenAff=implode(' ', str_split($siren,3)); + $message[$ref1].="Siren : $sirenAff\r\n".'Raison Sociale : '.$raisonS."\r\n"; + if (trim($ref)<>'') + $message[$ref1].="Votre référence : $ref\r\n"; + $message[$ref1].="Source : BODACC n°$numPar $bodacc du $datePar. "; + if (trim($dateInsert)<>'') + $message[$ref1].='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n"; + $message[$ref1].="Tribunal : $libTri"."\r\n"; + $message[$ref1].="\r\n"; + $message[$ref1].="$txtEven"."\r\n"; + $message[$ref1].="\r\n"; + $message[$ref1].=$txtAnn."\r\n"; + $message[$ref1].="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n"; + + $ligne100++; + $ligne100tot++; + + $siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce + $nic = trim(substr($ligne, 22, 5 )); // Nic + $ref = trim(substr($ligne, 71, 18 )); // Référence Client + $ref=explode('-',$ref); + $ref1=$ref[1]; + $ref=$ref[0]; + + if (!isset($message[$ref1]) || @$message[$ref1]=='') { + //$fp[$ref1]=fopen(DIR_RECORDATI_IN.$nomFichier."-$ref1.csv", 'w'); + //fwrite($fp[$ref1], 'Siren;Nic;Référence;Parution;Bodacc;Date parution;Numéro Annonce;Type Annonce;Tribunal;Numéro RCS;Raison sociale;Chapitre;Evènement(s);Texte Annonce'.EOL); + $message[$ref1]='Bonjour, + +Veuillez trouver ci-joint la liste des modifications relatives à votre abonnement Scores & Décisions. + +'; + } + @$tabNbAnn[$ref1]++; + + // die(EOL."$ref1\t$ref2".EOL); + + $numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année + $bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C + $datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ + $numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc + $typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce + $corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion + $corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ + $corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion + $corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion + $cor=''; + if ($typeAnn<>'I') + $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate); + switch($typeAnn) { + case 'I': $cor='Insertion'.$cor; break; + case 'A': $cor='Additif'.$cor; break; + case 'R': $cor='Rectificatif'.$cor; break; + case 'S': $cor='Suppression'.$cor; break; + default: break; + } + $codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc + $libTri=$iBodacc->getTribunalNom($codeTri); + + $adrEtNum= substr($ligne, 596 , 4 ); // Adresse de l'établissement : Numéro dans la voie + $adrEtVoie= substr($ligne, 606 , 50 ); // Adresse de l'établissement : Libellé de la voie + $adrEtCp= substr($ligne, 746 , 5 ); // Code Postal de l'établissement + $adrEtVille=substr($ligne, 751 , 45 ); // Ville de l'établissement + $adrEnNum= substr($ligne, 796 , 4 ); // Adresse de l'établissement : Numéro dans la voie + $adrEnVoie= substr($ligne, 806 , 50 ); // Adresse de l'établissement : Libellé de la voie + $adrEnCp= substr($ligne, 946 , 5 ); // Code Postal de l'établissement + $adrEnVille=substr($ligne, 951 , 45 ); // Ville de l'établissement + $adresse= trim(preg_replace('/ +/',' ',substr($ligne, 596 , 4 ).' '. + substr($ligne, 600 , 1 ).' '. + substr($ligne, 601 , 5 ).' '. + substr($ligne, 606 , 50 ).' '. + substr($ligne, 656 , 50 ).' '. + substr($ligne, 706 , 40 ).', '. + substr($ligne, 746 , 5 ).' '. + substr($ligne, 751 , 45 ))); + $venteDt= WDate::dateT('Ymd','d/m/Y',substr($ligne,1161,8)); + $venteMt= substr($ligne, 1169 , 15 ); + $venteDev=substr($ligne, 1184 , 3 ); + $dateInsert=substr($ligne, 1910 , 8 ); + + $numRC = trim(substr($ligne, 95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise + $raisonS= trim(substr($ligne, 104 , 150 )); // Raison sociale de l'entreprise + $even=array(); + $even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN + $even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN + $even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN + $even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN + $even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN + $even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN + $even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN + $even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN + $txtEven=''; + foreach ($even as $codeEven) + if ($codeEven<>0) { + $txtEven.=$iBodacc->getEvenement($codeEven).', '; + $catEven=$iBodacc->getChapitreEvenement($codeEven); + } + else + $txtEven.=''; + if ($catEven=='procol') { + switch($codeEven) { + case 1050: + case 1055: $procol['CONC']++; $procoltot['CONC']++; break; + case 1100: $procol['SAUV']++; $procoltot['SAUV']++; break; + case 1200: + case 1201: + case 1211: + case 1212: $procol['RJ']++; $procoltot['RJ']++; break; + case 1300: + case 1301: + case 1302: + case 1303: + case 1304: + case 1305: + case 1306: + case 1307: + case 1311: + case 1312: + case 1313: $procol['LJ']++; $procoltot['LJ']++; break; + default: $procol['SUITE']++; $procoltot['SUITE']++; break; + } + } + @$ligne100chap[$catEven]++; + @$ligne100chaptot[$catEven]++; + $txtEven=substr($txtEven,0,strlen($txtEven)-2); + $txtAnn=''; + break; + case 104: // Annonce + $ligne104++; + $ligne104tot++; + $txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce + break; + case 999: // Ligne ignorée + $lignesCsv[$ref1][]="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn"; + + // Mail de surveillance + $sirenAff=implode(' ', str_split($siren,3)); + $message[$ref1].="Siren : $sirenAff\r\n".'Raison Sociale : '.$raisonS."\r\n"; + if (trim($ref)<>'') + $message[$ref1].="Votre référence : $ref\r\n"; + $message[$ref1].="Source : BODACC n°$numPar $bodacc du $datePar. "; + if (trim($dateInsert)<>'') + $message[$ref1].='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n"; + $message[$ref1].="Tribunal : $libTri"."\r\n"; + $message[$ref1].="\r\n"; + $message[$ref1].="$txtEven"."\r\n"; + $message[$ref1].="\r\n"; + $message[$ref1].=$txtAnn."\r\n"; + $message[$ref1].="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n"; + + $ligne999++; + $ligne999tot++; + break; + default: // Ligne non gérée + break; + } + } + + print_r($message); + foreach ($message as $ref=>$msg) { + if ($ref<>'') { + // Ecriture des CSV + $fp=fopen(DIR_RECORDATI_IN.$nomFichier."-$ref.csv", 'w'); + fwrite($fp, 'Siren;Nic;Référence;Parution;Bodacc;Date parution;Numéro Annonce;Type Annonce;Tribunal;Numéro RCS;Raison sociale;Chapitre;Evènement(s);Texte Annonce'.EOL); + foreach ($lignesCsv[$ref] as $iLigne=>$ligneCsv) { + fwrite($fp, $ligneCsv.EOL); + } + fclose($fp); + copy(DIR_RECORDATI_IN.$nomFichier."-$ref.csv", '/tmp/Sed_FBoissons_'.date('Ymd')."_$ref.csv"); + @move(DIR_RECORDATI_IN.$nomFichier."-$ref.csv", '/home/data/clients/france boissons/'.$nomFichier."-$ref.csv"); + + $tabAttached=array('/tmp/Sed_FBoissons_'.date('Ymd')."_$ref.csv"); + // Envoi des mails + if (isset($tabMailDepot[$ref]) && $tabMailDepot[$ref]<>'') { + @sendMail('infoslegales@scores-decisions.com', $tabMailDepot[$ref].',support@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons $ref)", $msg, '', $tabAttached); + $azerty=0; + } + elseif (!isset($tabMailDepot[$ref]) || $tabMailDepot[$ref]=='') { + $msg="ATTENTION, CE DEPOT N'A PAS DE MAIL RENSEIGNE !".EOL.EOL.$msg; + @sendMail('infoslegales@scores-decisions.com', 'flora.durandeau@france-boissons.fr,emmanuel.przystaniak@france-boissons.fr,support@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons $ref)", "ATTENTION, CE DEPOT N'A PAS DE MAIL RENSEIGNE !".EOL.EOL.$msg, '', $tabAttached); + $azerty=0; + } + $nbAnnTmp=$tabNbAnn[$ref]; + @$nbAnnTot+=$nbAnnTmp; + @sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons $ref)", $msg.EOL.EOL.date('Y/m/d H:i:s'). + " - Les $nbAnnTmp annonce(s) ont été envoyés à ".$tabMailDepot[$ref]." (Dépôt n°$ref).", '', $tabAttached); + @$nbDepots++; + + @unlink('/tmp/Sed_FBoissons_'.date('Ymd')."_$ref.csv"); + } + } + + if ($verbose) echo date ('Y/m/d - H:i:s')." - Conversion terminée de $nomFichier ($ligne100 annonces sur $nbDepots dépôts)" . EOL; + elseif ($sortieCSV) { + echo "$nomFichier;$ligne100;"; + foreach ($ligne100chap as $chap=>$nb) echo "$nb;"; + foreach ($procol as $chap=>$nb) echo "$nb;"; + echo EOL; + } + + @sendMail('infoslegales@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', "Surveillance Annonces Legales (S&D/FrBoissons)", $msgGlobal.EOL.EOL.date('Y/m/d H:i:s'). + " - Les $nbAnnTot/$ligne100tot annonce(s) ont été envoyés aux $nbDepots dépôts."); + + if (bzip2(DIR_RECORDATI_IN.$nomFichier, DIR_RECORDATI_IN.$nomFichier)) { + unlink(DIR_RECORDATI_IN.$nomFichier); + echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL; + } + +} + +if ($sortieCSV) { + echo "$iFic fichiers;$ligne100tot;"; + foreach ($ligne100chaptot as $chap=>$nb) echo "$nb;"; + foreach ($procoltot as $chap=>$nb) echo "$nb;"; + echo EOL; +} else +echo date ('Y/m/d - H:i:s')." - Conversion terminée : $iFic fichiers, $ligne001tot entêtes, $ligne100tot annonces, $ligne104tot lignes de texte, $ligne999tot fin de fichier !" . EOL; + +die(); + +/* + + + +$ligneOut="$idannPre;$sirenV;$raisonSV;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$sirenA;$raisonSA;$catEven;$txtEven;$adresseFond;$montantVente;$deviseVente;$dateVente;$opposition;$txtAnn"; + +if ($idannPre<>'Identifiant Annonce') { +$sirenAffV=implode(' ', str_split($sirenV,3)); +if ($sirenA*1>0) $sirenAffA='(Siren : '.implode(' ', str_split($sirenA,3)).')'; +else $sirenAffA=''; +$message.="Siren : $sirenAffV\r\n".'Raison Sociale : '.$raisonSV."\r\n"; +$message.="Source : BODACC n°$numPar $bodacc du $datePar. "; +if (trim($dateInsert)<>'') +$message.='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n"; +$message.="Tribunal : $libTri"."\r\n"; +$message.="\r\n"; +if (trim($raisonSA)<>'') { +$message.="Acheteur : $raisonSA $sirenAffA"."\r\n"; +if ($montantVente*1>0) +$message.="Montant de la vente : $montantVente $deviseVente en date du $dateVente."."\r\n"; +$message.="\r\n"; +} +$message.="$txtEven"."\r\n"; +$message.="\r\n"; +$message.=$txtAnn."\r\n"; +$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n"; +} +$sirenA=$raisonSA=$sirenV=$raisonSV=$adresseFond=$montantVente=$deviseVente=$dateVente=''; +} +$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce +$nic = trim(substr($ligne, 22, 5 )); // Nic +$ref = trim(substr($ligne, 71, 18 )); // Référence Client +$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année +$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C +$datePar= WDate::dateT('Ymd','d/m/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ +$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc +$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce +$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion +$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ +$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion +$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion +$adresse= trim(preg_replace('/ +/',' ',substr($ligne, 596 , 4 ).' '. +substr($ligne, 600 , 1 ).' '. +substr($ligne, 601 , 5 ).' '. +substr($ligne, 606 , 50 ).' '. +substr($ligne, 656 , 50 ).' '. +substr($ligne, 706 , 40 ).', '. +substr($ligne, 746 , 5 ).' '. +substr($ligne, 751 , 45 ))); +$venteDt= WDate::dateT('Ymd','d/m/Y',substr($ligne,1161,8)); +$venteMt= substr($ligne, 1169 , 15 ); +$venteDev=substr($ligne, 1184 , 3 ); +$dateInsert=substr($ligne, 1910 , 8 ); + +$cor=''; +if ($typeAnn<>'I') +$cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate); +switch($typeAnn) { +case 'I': $cor='Insertion'.$cor; break; +case 'A': $cor='Additif'.$cor; break; +case 'R': $cor='Rectificatif'.$cor; break; +case 'S': $cor='Suppression'.$cor; break; +default: break; +} + +$even=array(); +$even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN +$even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN +$even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN +$even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN +$even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN +$even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN +$even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN +$even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN +$txtEven=''; +$inter='Vendeur'; // Par défaut, nous sommes avec un vendeur +foreach ($even as $codeEven) +if ($codeEven<>0) { +$txtEven.=$iBodacc->getEvenement($codeEven).', '; +$catEven=$iBodacc->getChapitreEvenement($codeEven); +if ($codeEven==5700) { +$inter='Acheteur'; // L'interlocuteur est l'acheteur ! +$sirenA=$siren; +$raisonSA=$raisonS; +$adresseFond=$adresse; +$montantVente=$venteMt; +$deviseVente=$venteDev; +$dateVente=$venteDt; +} +} +else +$txtEven.=''; +if ($inter=='Vendeur') { +$sirenV=$siren; +$raisonSV=$raisonS; +} + +$txtEven=substr($txtEven,0,strlen($txtEven)-2); +$txtAnn=''; +if ($idannPre<>$idann) $ecrireLignePre=true; +else $ecrireLignePre=false; +$idannPre=$idann; +break; +case 104: // Annonce +$ligne104++; +$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce +break; +case 999: // Ligne ignorée +//$ligneOut="$idann;$sirenV;$raisonSV;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$sirenA;$raisonSA;$catEven;$txtEven;$adresseFond;$montantVente;$deviseVente;$dateVente;$txtAnn"; +$opposition=preg_replace('/.*Oppositions \:/i','', $txtAnn); +$ligneOut="$idann;$sirenV;$raisonSV;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$sirenA;$raisonSA;$catEven;$txtEven;$adresseFond;$montantVente;$deviseVente;$dateVente;$opposition;$txtAnn"; +// $ligneOut="$idann;$siren;$nic;$inter;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$txtAnn"; +if ($idann<>'Identifiant Annonce') { +$sirenAffV=implode(' ', str_split($sirenV,3)); +if ($sirenA*1>0) $sirenAffA='(Siren : '.implode(' ', str_split($sirenA,3)).')'; +else $sirenAffA=''; +$message.="Siren : $sirenAffV\r\n".'Raison Sociale : '.$raisonSV."\r\n"; +$message.="Source : BODACC n°$numPar $bodacc du $datePar. "; +if (trim($dateInsert)<>'') +$message.='Entrée en base S&D : '. WDate::dateT('Ymd','d/m/Y',$dateInsert)."\r\n"; +$message.="Tribunal : $libTri"."\r\n"; +$message.="\r\n"; +if (trim($raisonSA)<>'') { +$message.="Acheteur : $raisonSA $sirenAffA"."\r\n"; +if ($montantVente*1>0) +$message.="Montant de la vente : $montantVente $deviseVente en date du $dateVente."."\r\n"; +$message.="\r\n"; +} +$message.="$txtEven"."\r\n"; +$message.="\r\n"; +$message.=$txtAnn."\r\n"; +$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n"; +} +$ligne999++; +$ecrireLignePre=true; +break; +default: // Ligne non gérée +break; +} +if ($ecrireLignePre) +fwrite($fp, $ligneOut.EOL); + +} + +if ($catEven<>'Chapitre') { +//sendMail('infoslegales@scores-decisions.com', 'c.ferault@bouchara-recordati.fr,f.hadjadj@bouchara-recordati.fr,a.mandar@bouchara-recordati.fr', "Surveillance Annonces Legales ($catEven)", $message); +sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com,fzicaro@scores-decisions.com', "Surveillance Annonces Legales ($catEven)", $message); +} + +fclose($fp); + +if (bzip2(DIR_RECORDATI_IN.$nomFichier, DIR_RECORDATI_IN.$nomFichier)) { +unlink(DIR_RECORDATI_IN.$nomFichier); +echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL; +} +}*/ +echo date ('Y/m/d - H:i:s')." - Conversion terminée !" . EOL; +die(); + +?> \ No newline at end of file diff --git a/batch/convertSdRecordati.php b/batch/convertSdRecordati.php index ffddbb4b..dc74b6f3 100644 --- a/batch/convertSdRecordati.php +++ b/batch/convertSdRecordati.php @@ -306,8 +306,8 @@ foreach ($tabLignes as $i=>$ligne) { } if ($catEven<>'Chapitre') { - sendMail('infoslegales@scores-decisions.com', 'c.ferault@bouchara-recordati.fr,f.hadjadj@bouchara-recordati.fr,a.mandar@bouchara-recordati.fr', "Surveillance Annonces Legales ($catEven)", $message); - sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com,fzicaro@scores-decisions.com', "Surveillance Annonces Legales ($catEven)", $message); + sendMail('infoslegales@scores-decisions.com', 'c.ferault@bouchara-recordati.fr,s.ambroise@bouchara-recordati.fr,c.jourdain@bouchara-recordati.fr,suivi@scores-decisions.com', "Surveillance Annonces Legales ($catEven)", $message); +// sendMail('infoslegales@scores-decisions.com', '', "Surveillance Annonces Legales ($catEven)", $message); } fclose($fp); diff --git a/batch/convertSdSO2000.php b/batch/convertSdSO2000.php index b3caa204..f2fa5832 100644 --- a/batch/convertSdSO2000.php +++ b/batch/convertSdSO2000.php @@ -763,7 +763,39 @@ for ($iFic=0; isset($tabFichier[$iFic]); $iFic++) } fclose($fp); -// die('FIN PROVISOIRE !'.EOL); + exec('/var/www/batch/convertSdCsv.php "'.DIR_SOFID_IN.$nomFichierIn.'"'); + $fichierCSV=substr(DIR_SOFID_IN.$nomFichierIn,0,-4).'.csv'; + move(DIR_SOFID_IN.$nomFichierIn.'.csv',$fichierCSV); + $tabAttached=array($fichierCSV); + $messageInfo="Bonjour, + + Veuillez trouver le fichier d'annonces relatif à votre abonnement Scores & Décisions. + + Bien Cordialement, + Le service Support. + + + ATTENTION : Cet email est un message automatique. Merci de ne pas y répondre. Pour toute question nous vous invitons à contacter notre support à l'adresse support@scores-decisions.com. + + --- + + SCORES & DECISIONS + Service support + 1, rue de Clairefontaine - 78120 RAMBOUILLET + tél : 33 (0)1 75 43 80 10 + fax : 33 (0)1 75 43 85 74 + support@scores-decisions.com + http://www.scores-decisions.com/ + Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises + + Pensez à l'environnement avant d'imprimer ce message ! + Save paper - think before you print"; + + + sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com,suivi@scores-decisions.com,eliane.juhel@kronenbourg.com,anne.obrecht@kronenbourg.com,nathalie.schilling@kronenbourg.com', "Surveillance Annonces Legales SOFID", $messageInfo, '', $tabAttached); + + //die('FIN PROVISOIRE !'.EOL); + if (bzip2(DIR_SOFID_IN.$nomFichierIn, DIR_SOFID_IN.$nomFichierIn)) { unlink(DIR_SOFID_IN.$nomFichierIn); echo date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic, $nomFichierIn vient d'être historisé.".EOL; @@ -778,7 +810,7 @@ for ($iFic=0; isset($tabFichier[$iFic]); $iFic++) } } -sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID", "Conversion terminée. Penser à déposer le fichier !!!"); +sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID", "Conversion terminée."); echo date ('Y/m/d - H:i:s')." - Conversion terminée !" . EOL; die(); diff --git a/batch/convertSdVerdoso.php b/batch/convertSdVerdoso.php index deaa9b2d..5d0eecdf 100644 --- a/batch/convertSdVerdoso.php +++ b/batch/convertSdVerdoso.php @@ -454,8 +454,7 @@ if (date('w')==5) { Pensez à l'environnement avant d'imprimer ce message ! Save paper - think before you print"; - //$emailEnvoi='vfahmy@verdoso.com,contact@scores-decisions.com'; - $emailEnvoi='ylenaour@scores-decisions.com'; + $emailEnvoi='vfahmy@verdoso.com,suivi@scores-decisions.com,ylenaour@scores-decisions.com'; if ($catEven<>'Chapitre') { sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Annonces Legales", $messageInfo, '', $tabAttached); //sendMail('infoslegales@scores-decisions.com', 'jean.frederic.lambert@gmail.com', "Surveillance Annonces Legales", $messageInfo, '', $tabAttached); diff --git a/batch/creationsComptes.php b/batch/creationsComptes.php new file mode 100644 index 00000000..4793cd60 --- /dev/null +++ b/batch/creationsComptes.php @@ -0,0 +1,166 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini + loginUserDroits FICHIER.csv +Création automatisée de comptes utilisateurs Extranet + +Options : + -v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles) + -m Ne pas envoyer le mail à l'utilisateur + +"; + +$argv=$_SERVER['argv']; +$tabFichiers=array(); +for ($i=1,$j=0; isset($argv[$i]); $i++) { + if (substr($argv[$i],0,1)=='-') { + switch (substr($argv[$i],1,1)) { + case 'v': $modeDebug=true; break; + case 'm': $sendMail=false; break; + case '-': + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); + } + } else $tabFichiers[]=$argv[$i]; +} + +$loginUserDroits=@$tabFichiers[0]; +if (!isset($tabFichiers[0])) + die("Compte Extranet/WS non communiqué !".EOL); + +$ret=$iDb->select('utilisateurs', 'login,formatMail,pref,droits,lienExtranetMail,nbReponses', "login='$loginUserDroits'", false); +$profil=@$ret[0]; +if (!isset($profil['login'])) die("Compte Extranet/WS inexistant : $loginUserDroits !".EOL); +if (!isset($tabFichiers[1])) die("Aucun fichier CSV communiqué !".EOL); + +$tabLignes=file($tabFichiers[1]); +$nbLignes=count($tabLignes); + +foreach($tabLignes as $i=>$ligne) { + $tabCells=explode("\t", $ligne); + //print_r($tabCells); + if ($i==0 && $tabCells[0]<>'idClient') die('idClient non trouvé en 1ère celule de la 1ère ligne !'.EOL); + elseif ($i==0) continue; + $login=trim(preg_replace('/\s+/','',$tabCells[1])); + $password=trim(preg_replace('/\s+/','',$tabCells[2])); + $email=trim(preg_replace('/\s+/','',$tabCells[3])); + + + $tabInsert=array( 'idClient' => $tabCells[0], + 'login' => $login, + 'password' => $password, + 'email' => $email, + 'referenceParDefaut'=> $tabCells[4],//RéférenceParDéfaut + 'nom' => $tabCells[5], + 'prenom' => $tabCells[6], + 'actif' => 1, + 'deleted' => 0, + 'typeCompte' => 'PROD', // 'TEST' + 'profil' => 'Utilisateur', + 'filtre_ip' => '', + 'civilite' => 'M', // 'Mme', 'Mlle' + 'lang' => 'fr', + 'formatMail' => $profil['formatMail'], // 'txt1', 'txt2', 'htm', 'csv', 'xls', 'pdf', 'pdf1' + 'pref' => $profil['pref'], // 'naf4 nace news mappy cartes', + 'droits' => $profil['droits'], // 'searchent searchdir identite liens etablissements groupe eveninsee avisinsee dirigeants indiscore monprofil', + 'lienExtranetMail' => $profil['lienExtranetMail'], + 'nbReponses' => $profil['nbReponses'], + 'dateDebutCompte' => date('Ymd'), + 'dateInsert' => date('YmdHis'), + ); +/* raisonSociale + siret + adrNum + adrIndRep + adrTypeVoie + adrLibVoie + adrCp + adrVille + adrComp + tel + fax + mobile + dateInscription + dateValidation +*/ + echo date('Y/m/d - H:i:s'). " - Compte n°$i/$nbLignes '".$login."', "; + + if ($iDb->insert('utilisateurs', $tabInsert, false)) { + $message="Bonjour, + +Dans le cadre du Contrat établi entre UTC Fire & Security Services et Scores & Décisions, nous avons le plaisir de vous remettre les éléments nécessaires afin que vous puissiez utiliser notre extranet. + +Adresse site : +http://extranet.scores-decisions.com + +Codes d'accès et mot de passe : +Identifiant : ".$login." +Mot de passe : ".$password." (nous vous conseillons de faire un copier/coller de ce mot de passe) + +Lors de vos premières connexions, nous vous invitons à modifier votre mot de passe. +=> menu \"OPTIONS\" +=> onglet \"Mes options\" +=> cliquer sur 'Modifier le mot de passe.' +=> saisir votre mot de passe (alphanumérique) et cliquer sur 'modifier' +=> pour valider il est impératif de cliquer sur \"Sauver\" tout en bas de page + +Cet accès vous permet : +> la consultation de la base de données +> la consultation des IndiScore, + + +Nous vous souhaitons bonne réception de ces informations. + +Votre interlocuteur privilégié, Monsieur Julien Proust et toute l'équipe support de Scores & Décisions (support@scores-decisions.com) restent à votre écoute. + +Bien cordialement + +Amel + +-- + +Service Support +SCORES ET DECISIONS +1, rue Clairefontaine - 78120 RAMBOUILLET +tél. support : +33 (0)1 48 00 04 52 +tél. standard : +33 (0)1 75 43 80 10 +fax bureau : +33 (0)1 75 43 85 74 +support@scores-decisions.com +http://www.scores-decisions.com +Scores & Décisions est l'acteur nouvelle génération de l’information et de l'évaluation des entreprises + +Pensez à l'environnement avant d'imprimer ce message ! +Save paper - think before you print"; + if ($sendMail) { + @sendMail('support@scores-decisions.com', $email, "Codes Accès Extranet Scores et Décisions", $message); + @sendMail('support@scores-decisions.com', 'ylenaour@scores-decisions.com', "Codes Accès Extranet Scores et Décisions", $message); + echo "Créé et e-mail envoyé à ".$tabCells[3].EOL; + } else + echo "Créé sans envoi d'e-mail à ".$tabCells[3].EOL; + + } elseif (mysql_errno()==1062) + echo "Login déjà existant !".EOL; + else + die('Erreur SQL n° '.mysql_errno().' : '.mysql_error().EOL); + + //die(); +} + +?> \ No newline at end of file diff --git a/batch/crontab.txt b/batch/crontab.txt new file mode 100644 index 00000000..97a6de82 --- /dev/null +++ b/batch/crontab.txt @@ -0,0 +1,126 @@ +#*/15 * * * * cd /var/www/html/crm; php -f cron.php > /dev/null 2>&1 +0 10-22/4 * * 1-6 /var/www/batch/getInfosReg.php >> /var/www/log/getInfosReg.log +0 7 * * * /var/www/batch/getInpi2009.php >> /var/www/log/getInpi2009.log +30 18 * * * /var/www/batch/getInpi2009.php >> /var/www/log/getInpi2009Soir.log +###30 8 * * * /var/www/batch/getInpiDecisions.php >> /var/www/log/getInpiDecisions.log +###30 19 * * * /var/www/batch/getInpiDecisions.php >> /var/www/log/getInpiDecisionsSoir.log +55 4 * * * /var/www/batch/getInseeEven.php >> /var/www/log/getInseeEven.log +0 18 * * * /var/www/batch/getInseeEven.php >> /var/www/log/getInseeEvenSoir.log +10 5 * * * /var/www/batch/consolideEtab.php >> /var/www/log/consolideEtab.log +45 8 * * * /var/www/batch/getDefaillances.php -i >> /var/www/log/getDefaillances.log +0 9 * * * /var/www/batch/getAnnoncesTessi.php -i >> /var/www/log/getAnnoncesTessi.log +0 9-21/4 * * 1-6 /var/www/batch/getBodacc.php -s -i -n >> /var/www/log/getBodacc.log +30 9-21/4 * * * /var/www/batch/sirenage.php >> /var/www/log/sirenage.log +30 19 4 * * /home/data/dila/getDilaStock.sh >> /home/data/dila/getDilaStock.log +30 23 * * * /home/data/dila/getDilaFlux.sh >> /home/data/dila/getDilaFlux.log +30 9 * * * /var/www/batch/getBalo.php >> /var/www/log/getBalo.log +#0 9 * * 1-5 /var/www/batch/getAsso.php -c >> /var/www/log/getAsso.log +#0 8 * * * /var/www/batch/getTelFaxIdentite.php >> /var/www/log/getTelFaxIdentite.log +30 12 * * 1-5 /var/www/batch/getInfosFin.php >> /var/www/log/getInfosFin.log +5 0 * * * /var/www/batch/clients/exportPCL.sh >> /var/www/batch/clients/exportPCL.log +30 0 * * 1-5 reboot -f +0 0 * * * rm -f /var/spool/clientmqueue/* +###40 0 * * 1-5 /etc/init.d/mysqld start +###0 21 * * 0 /root/scripts/netbackup.sh >> /root/scripts/netbackup.log +###30 23 * * 1-5 /home/backup/sql/syncroQuoti.sh >> /home/backup/sql/syncroQuotiSh.log +###30 16 * * 0 /home/backup/sql/syncroHebdo.sh >> /home/backup/sql/syncroHebdoSh.log +###0 16 * * 0 /home/backup/sql/syncroMensuel.sh >> /home/backup/sql/syncroMensuelSh.log +0 21 * * 1-5 /var/www/batch/loadSurveillances.php >> /var/www/log/loadSurveillances.log +40 0 * * 1-5 /var/www/batch/diffusionBodacc.php -s >> /var/www/log/surveillanceBodacc.log +0 2 * * 1-5 /var/www/batch/surveillanceBodaccSite.php -m >> /var/www/log/surveillanceBodaccSite.log +0 5 * * 1-5 /var/www/batch/surveillanceInseeSite.php >> /var/www/log/surveillanceInseeSite.log +30 22 * * * /var/www/batch/consolideTelFaxIdentite.php >> /var/www/log/consolideTelFaxIdentite.log +0 8-22/2 * * * /var/www/batch/getRSS.php >> /var/www/log/getRSS.log +0 2 * * * /var/www/batch/calculRatios.php >> /var/www/log/calculRatios.log +30 6 * * * /var/www/batch/calculScores.php >> /var/www/log/calculScores.log +###0 20 * * * /var/www/batch/calculScoreSurv.php >> /var/www/log/calculScoreSurv.log +0 7 * * 1-5 /var/www/batch/surveillanceScoreSite.php >> /var/www/log/surveillanceScoreSite.log +45 9 * * 1-5 /var/www/batch/surveillanceActesSite.php >> /var/www/log/surveillanceActesSite.log +15 10 * * 1-5 /var/www/batch/surveillanceDirSite.php >> /var/www/log/surveillanceDirSite.log +0 17 * * 1-5 /var/www/batch/surveillanceLiensSite.php >> /var/www/log/surveillanceLiensSite.log +0 23 * * 1-5 /var/www/batch/surveillanceBilanSite.php >> /var/www/log/surveillanceBilanSite.log +30 9 * * 1-5 /var/www/batch/surveillancePrivSite.php >> /var/www/log/surveillancePrivSite.log +###30 19 * * 1-5 /var/www/batch/fedaso.php -d:100 >> /var/www/log/fedasoOut.log +15 19 * * 1-5 /var/www/batch/fedasoBilans.php -d >> /var/www/log/fedasoBilans.log +30 6 * * 2-6 /var/www/batch/getIsin.php -h >> /var/www/log/getIsinMatin.log +0 23 * * 1-5 /var/www/batch/getIsin.php -s >> /var/www/log/getIsinSoir.log +30 8 * * * /var/www/batch/getDevises.php >> /var/www/log/getDevises.log +0-59/30 9-18 * * 1-5 /var/www/batch/getIsin.php >> /var/www/log/getIsin.log +50 23 * * * /var/www/batch/getBilansInpi.php -p >> /var/www/log/getBilansInpi.log +10 1 * * 1-4 /var/www/batch/getBilansInpi.php -p >> /var/www/log/getBilansInpi.log +15 13 * * * /var/www/batch/getTelSources.php >> /var/www/log/getTelSources.log +## Mensuels +0 20 1 * * /var/www/batch/facturation.php >> /var/www/log/facturation.log +0 1 1 * * /var/www/batch/calculRedevances.php >> /var/www/log/calculRedevances.log +0 11 25 * * /var/www/batch/getInflation.php >> /var/www/log/getInflation.log +0 10 15 * * /var/www/batch/getImportExport.php >> /var/www/log/getImportExport.log +0 9 * * 1 /var/www/batch/getIsin.php -a -n -r >> /var/www/log/getIsinSociete.log +#0 12 20 * * /var/www/batch/peps/getPepCia.php >> /var/www/log/getPepCia.log +30 12 1 * * /var/www/batch/getLiens.php >> /var/www/log/getLiens.log +## Hebdomadaire +0 18 * * 1 /var/www/batch/getBoMonaco.php >> /var/www/log/getBoMonaco.log +## Provisoire à revoir +0 9 * * 1-5 /var/www/batch/getPrivileges.php >> /var/www/log/getPrivilegesMatin.log +0 19 * * 1-5 /var/www/batch/getPrivileges.php >> /var/www/log/getPrivilegesSoir.log +0 3 * * 1-5 /var/www/batch/diffusionBodacc.php >> /var/www/log/diffusionBodacc.log +30 7 * * 1-5 /var/www/batch/convertSdRecordati.php >> /var/www/log/convertSdRecordati.log +0 13 * * 1-5 /var/www/batch/convertSdVerdoso.php >> /var/www/log/convertSdVerdoso.log +30 8 * * 1-5 /var/www/batch/convertSdSO2000.php >> /var/www/log/convertSdSO2000.log +30 18 * * * /var/www/batch/geoCodeAdresses.php >> /var/www/log/geoCodeAdresses.log +30 9 * * 5 /var/www/batch/getOrias.php >> /var/www/log/getOrias.log +30 8 * * 1-6 /var/www/batch/getQualibat.php >> /var/www/log/getQualibat.log +#30 7 * * * /var/www/batch/repriseDirigeants.php >> /var/www/log/repriseDirigeants.log +30 8 * * 1-5 /var/www/batch/getTribunaux.php >> /var/www/log/getTribunaux.log +#0 9 * * 1-6 /var/www/batch/getAnnoncesJal.php >> /var/www/log/getAnnoncesJal.log +45 8 * * 1-5 /root/scripts/miseEnCacheSirenage.sh +#0 18 * * 1-5 /var/www/batch/majIMR.php >> /var/www/log/majIMR.log +#30 8 * * 1-5 /var/www/batch/getBilansWeb.php >> /var/www/log/getBilansWeb.log +0 8 * * * /var/www/batch/repriseSirenBodaccHisto.php -o >> /var/www/log/repriseSirenBodaccHistOcr.log +20 8 * * * /var/www/batch/repriseSirenBodaccHisto.php >> /var/www/log/repriseSirenBodaccHistB.log +10 8 * * 1-5 /var/www/batch/getMarques.php -b >> /var/www/log/getMarques.log +###############0 22 * * * /var/www/batch/rapportsTextes.php -d >> /var/www/log/rapportsTextesWeb.log +###############0 23 * * * /var/www/batch/rapportsTextes.php -f >> /var/www/log/rapportsTextesFtp.log +15 9 * * * /var/www/batch/majArtisans.php >> /var/www/log/majArtisans.log +30 19 * * 5 /var/www/batch/clients/doEtabAct.sh >> /var/www/batch/clients/doEtabAct.log +###0 3 * * 0 /var/www/batch/clients/indexFileGiant.sh >> /var/www/batch/clients/indexFileGiant.log +###0 7 1-6 1,4,7,10 * /var/www/batch/clients/stockKadeal.sh >> /var/www/batch/clients/stockKadeal.log +0 2 * * * /var/www/batch/clients/proceduresQ.sh >> /var/www/batch/clients/proceduresQ.log +30 21 * * 1-6 /var/www/batch/majAdressesDom.php >> /var/www/log/majAdressesDom.log +*/15 * * * * /var/www/batch/getLogos.php >> /var/www/log/getLogos.log +30 8 * * * /var/www/batch/getLogos.php -b >> /var/www/log/getLogosBing.log +0 20 * * 1-6 /var/www/batch/consolideDiri.php >> /var/www/log/consolideDiri.log +30 9 * * * /var/www/batch/getInfosHotelerie.php >> /var/www/log/getInfosHotelerie.log +###0 20 * * 5 /root/geoCodeHisto.sh +###0 1 * * * /var/www/batch/genereEpl.php -t >> /var/www/log/genereEpl.log +###1 1 * * * /var/www/batch/testWorldCheck.php -o +###0 1 * * * /var/www/batch/testWorldCheck.php +30 11 * * 3 /var/www/batch/getEcoArtisan.php >> /var/www/log/getEcoArtisan.log +35 11 * * 3 /var/www/batch/getQualifelec.php >> /var/www/log/getQualifelec.log +40 11 * * 3 /var/www/batch/getQualiPaysage.php >> /var/www/log/getQualiPaysage.log +45 0 9 * * /var/www/batch/clients/kompass.sh >> /var/www/batch/clients/kompass.log +###46 0 2-8 * * /var/www/batch/exportKompass.php -5 >> /var/www/batch/clients/kompass5.log +45 0 1 2,5,8,11 * /var/www/batch/clients/stockCorporama.sh >> /var/www/batch/clients/stockCorporama.log +29 0 * * * /root/psxa.sh +##############0 7 10 * * /var/www/batch/getInfosGE.php >> /var/www/log/getInfosGE.log +0 9 * * * /var/www/batch/getAnnoncesJal.php >> /var/www/log/getAnnoncesJal.log +40 6 * * * /var/www/batch/convertSdFBoissons.php >> /var/www/log/convertSdFBoissons.log +30 5 * * 1-5 /var/www/batch/diffusionEntrepA6cmo.php -d >> /var/www/log/diffusionEntrepA6cmo.log +0 9 * * * cp --force /tmp/diffusionBodacc_DIFBOD*FTSA6CMO* /home/data/clients/a6cmo +0 11 * * * /var/www/batch/getInpi2009.php -v -j -m >> /var/www/log/getInpi2009siren.log +15 16 * * * /var/www/batch/getMarques.php -s -a +30 16 * * * /var/www/batch/getBodacc.php -t:DEFAO2014_009005.taz -s -w -p -v >> /var/www/log/getBodaccSiren.log +0 8 * * 2,4 /var/www/batch/getRSS.php -b >> /var/www/log/getRSSisin.log +0 9 * * 1-5 /var/www/batch/getRcMonaco.php >> /var/www/log/getRcMonaco.log +0 17 * * 1-5 /var/www/batch/getRcMonaco.php -d >> /var/www/log/getRcMonaco.log +30 13 * * * /var/www/batch/giantMonitoring.php -v >> /var/www/log/giantMonitoring.log +30 8 4-10 * * /var/www/batch/clients/doAdecco.sh +0 13 15 * * /var/www/batch/clients/doCoface.sh +0 19 * * * /var/www/batch/majLiens.php -i >> /var/www/log/majLiens.log +30 5 * * 1 /var/www/batch/surveillanceIsin.php >> /var/www/log/surveillanceIsin.log +30 8 * * * /var/www/batch/specifiqueReco.php >> /var/www/log/specifiqueReco.log +15 9 * * 1-5 /var/www/batch/getBanques.php >> /var/www/log/getBanques.log +30 8 5 * * /var/www/batch/diffusionCegedim.php >> /var/www/log/diffusionCegedim.log +0 5 * * 1 /var/www/batch/clients/proceduresH.sh >> /var/www/batch/clients/proceduresH.log +30 7 * * 1-5 /var/www/batch/testCptsPub.php >> /var/www/log/testCptsPub.log +###45 7 * * * /var/www/batch/testMixData.php >> /var/www/log/testMixData.log +###40 0 * * * /var/www/batch/diffusionEntrepA6cmo.php -s -c=21 >> /var/www/log/stockA6CMO.log diff --git a/batch/diffusionActes.php b/batch/diffusionActes.php new file mode 100644 index 00000000..71ebe2a3 --- /dev/null +++ b/batch/diffusionActes.php @@ -0,0 +1,379 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +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=''.str_replace("---------------------------------------------------------------------------",'', strtr($message, array("\r\n"=>'
'))).'
'; + $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
$url
\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=''.str_replace("---------------------------------------------------------------------------",'', strtr($message, array("\r\n"=>'
'))).'
'; + $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(); + ?> \ No newline at end of file diff --git a/batch/diffusionBodacc.php b/batch/diffusionBodacc.php index 73f9b31f..ce177df0 100644 --- a/batch/diffusionBodacc.php +++ b/batch/diffusionBodacc.php @@ -14,6 +14,7 @@ include_once(FWK_PATH.'common/dates.php'); include_once(INCLUDE_PATH.'bodacc/classMBodacc.php'); include_once(INCLUDE_PATH.'insee/classMInsee.php'); include_once(INCLUDE_PATH.'conversion/bilAltares.php'); +include_once(INCLUDE_PATH.'partenaires/classMRnvp.php'); include_once(FWK_PATH.'mail/sendMail.php'); @@ -21,7 +22,7 @@ $repProduction='/mnt/samba/partage/production/'; $incrementationDesTour=true; $typePrestaton='diffusionBodacc'; -$ignoreDateDerExec=$retroActivite=false; +$ignoreDateDerExec=$forceExec=$retroActivite=false; $codeAdherent=''; $strInfoScript='Usage : '.basename($argv[0]). " [OPTION] @@ -55,6 +56,9 @@ if ($_SERVER['argc']>1) case 'e': $ignoreDateDerExec=true; break; + case 'f': + $forceExec=true; + break; case 'r': $retroActivite=substr($argv[$i],3,strlen($argv[$i])-3); break; @@ -77,7 +81,12 @@ $iDb=new WDB('jo'); $iDb2=new WDB('jo'); $iInsee=new MInsee(); $iBodacc=new MBodacc(); -global $iInsee, $a; +$iRnvp=new MRnvp(); + +global $iInsee, $a, $iRnvp; + +//echo genereLigne200('950571802', '00053'); +//die(); function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) { $lonLigne=LONGUEUR_LIGNE_SORTIE-90; @@ -188,14 +197,14 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations /** Le client souhaite une compression du fichier ? **/ - if (strpos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip'; - elseif (strpos($tabAdherent['optionSupport'], 'zip')) $optionZip='zip'; - else $optionZip='none'; + if (stripos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip'; + elseif (stripos($tabAdherent['optionSupport'], 'zip')) $optionZip='zip'; + else $optionZip='none'; /** Le client préfère un paramétrage UNIX ou Window pour ses fins de lignes **/ - if (strpos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n"; - elseif (strpos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n"; - else $optionEOL=EOL; + if (stripos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n"; + elseif (stripos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n"; + else $optionEOL=EOL; $tabOptOutput=array(); @@ -241,11 +250,13 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations }// Bloc a décommenter /** Livraison Quotidienne ou autre ? **/ - if ($tabAdherent['freqEnvois']=='h' && date('w')<>1) { + if ($tabAdherent['freqEnvois']=='h' && date('w')<>1 && !$ignoreDateDerExec && !$forceExec) { /** Le client souhaite une livraison hebdo, pour l'instant elle se fera le lundi... **/ echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement hebdomadaire en attente (dernier traitement le $dateDernierTraitement)".EOL; + //if ($dateDernierTraitement<>20130610004000) continue; - } elseif ($tabAdherent['freqEnvois']=='m' && date('w')<>1 && date('d')*1>7) { + } elseif ($tabAdherent['freqEnvois']=='m' && (date('w')<>1 || date('d')*1>7) && !$ignoreDateDerExec) { +// } elseif ($codeAdherent=='DIFBODPRDFTSA6CMOADACL40MACS') { /** Le client souhaite une livraison mensuelle, pour l'instant elle se fera le 1er lundi du mois... **/ echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement mensuel en attente (dernier traitement le $dateDernierTraitement)".EOL; continue; @@ -277,57 +288,61 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations **/ $strRubrique=''; $tabRubCollecte=array(); - if (strpos($tabAdherent['optionPrestation'], 'comptes')) { // Export du Bodacc C - Dépôt des comptes - $strRubrique.="'comptes',"; - $tabRubCollecte[]=" typeEven LIKE '3%' "; + if (stripos($tabAdherent['optionPrestation'], 'Rubrique')!==false) { + if (stripos($tabAdherent['optionPrestation'], 'comptes')) { // Export du Bodacc C - Dépôt des comptes + $strRubrique.="'comptes',"; + $tabRubCollecte[]=" typeEven LIKE '3%' "; + } + if (stripos($tabAdherent['optionPrestation'], 'creations')) { // Export des créations + $strRubrique.="'creations',"; + $tabRubCollecte[]=" typeEven LIKE '4%' "; + } + if (stripos($tabAdherent['optionPrestation'], 'mmd')) { // Export des MMD + $strRubrique.="'mmd',"; + $tabRubCollecte[]=" typeEven LIKE '2%' "; + } + if (stripos($tabAdherent['optionPrestation'], 'procol')) { // Export des ProCol + $strRubrique.="'procol',"; + $tabRubCollecte[]=" typeEven LIKE '1%' "; + } + if (stripos($tabAdherent['optionPrestation'], 'radiations')) { // Export des radiations + $strRubrique.="'radiations',"; + $tabRubCollecte[]=" typeEven LIKE '6%' "; + } + if (stripos($tabAdherent['optionPrestation'], 'ventes')) { // Export des ventes cessions + $strRubrique.="'ventes',"; + $tabRubCollecte[]=" typeEven LIKE '5%' "; + } } - if (strpos($tabAdherent['optionPrestation'], 'creations')) { // Export des créations - $strRubrique.="'creations',"; - $tabRubCollecte[]=" typeEven LIKE '4%' "; + + if (stripos($tabAdherent['optionPrestation'], 'lignesOutput')!==false) { + if (strpos($tabAdherent['optionPrestation'], '101')) // Commentaire inclus dans l'annonce si nécessaire + $tabOptOutput[101]=true; else $tabOptOutput[101]=false; + if (strpos($tabAdherent['optionPrestation'], '102')) // Activite déclaré au Bodacc + $tabOptOutput[102]=true; else $tabOptOutput[102]=false; + if (strpos($tabAdherent['optionPrestation'], '104')) // Annonce complète au format texte + $tabOptOutput[104]=true; else $tabOptOutput[104]=false; + if (preg_match('/lignesOutput.*105/Ui', $tabAdherent['optionPrestation'])) // Structure Dirigeants BODACC + $tabOptOutput[105]=true; else $tabOptOutput[105]=false; + if (strpos($tabAdherent['optionPrestation'], '200')) // Structure Identité Insee S&D + $tabOptOutput[200]=true; else $tabOptOutput[200]=false; + if (preg_match('/lignesOutput.*400/Ui', $tabAdherent['optionPrestation'])) // Structure Bilans + $tabOptOutput[400]=true; else $tabOptOutput[400]=false; } - if (strpos($tabAdherent['optionPrestation'], 'mmd')) { // Export des MMD - $strRubrique.="'mmd',"; - $tabRubCollecte[]=" typeEven LIKE '2%' "; - } - if (strpos($tabAdherent['optionPrestation'], 'procol')) { // Export des ProCol - $strRubrique.="'procol',"; - $tabRubCollecte[]=" typeEven LIKE '1%' "; - } - if (strpos($tabAdherent['optionPrestation'], 'radiations')) { // Export des radiations - $strRubrique.="'radiations',"; - $tabRubCollecte[]=" typeEven LIKE '6%' "; - } - if (strpos($tabAdherent['optionPrestation'], 'ventes')) { // Export des ventes cessions - $strRubrique.="'ventes',"; - $tabRubCollecte[]=" typeEven LIKE '5%' "; - } - - 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; - if (strpos($tabAdherent['optionPrestation'], '200')) // Structure Identité Insee S&D - $tabOptOutput[200]=true; else $tabOptOutput[200]=false; - if (strpos($tabAdherent['optionPrestation'], '400')) // Structure Bilans - $tabOptOutput[400]=true; else $tabOptOutput[400]=false; - + // Naf inclus $tabNaf=array(); $posNaf=stripos($tabAdherent['optionPrestation'], 'NAF='); if ($posNaf!==false) { if (preg_match('/NAF=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) - $tabNaf=preg_split('(;|,)', $matches[1]); + $tabNaf=preg_split('(;|,)', trim($matches[1])); } // Naf exclus $posNaf=stripos($tabAdherent['optionPrestation'], 'NAF-='); if ($posNaf!==false) { $tabNafAll=$iInsee->getCodesNaf(); if (preg_match('/NAF\-=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) { - $tabNafSuppr=preg_split('(;|,)', $matches[1]); + $tabNafSuppr=preg_split('(;|,)', trim($matches[1])); $tabNaf=array_diff($tabNafAll, $tabNafSuppr); } } @@ -337,14 +352,14 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $posCJ=stripos($tabAdherent['optionPrestation'], 'CJ='); if ($posCJ!==false) { if (preg_match('/CJ=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) - $tabCJ=preg_split('(;|,)', $matches[1]); + $tabCJ=preg_split('(;|,)', trim($matches[1])); } // FJ exclues $posCJ=stripos($tabAdherent['optionPrestation'], 'CJ-='); if ($posCJ!==false) { $tabCJAll=$iInsee->getCodesFJ(); if (preg_match('/CJ-=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) { - $tabCJSuppr=preg_split('(;|,)', $matches[1]); + $tabCJSuppr=preg_split('(;|,)', trim($matches[1])); $tabCJ=array_diff($tabCJAll, $tabCJSuppr); } //die(print_r($tabCJ,1)); @@ -354,18 +369,35 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $posNaf=stripos($tabAdherent['optionPrestation'], 'CodeCom='); if ($posNaf!==false) { if (preg_match('/CodeCom=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) - $tabCodeCom=preg_split('(;|,)', $matches[1]); + $tabCodeCom=preg_split('(;|,)', trim($matches[1])); /////die(print_r($tabCodeCom)); } + // Codes Evènements S&D inclus $tabEve=array(); $posEve=stripos($tabAdherent['optionPrestation'], 'codeEven='); if ($posEve!==false) { if (preg_match('/codeEven=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) - $tabEve=preg_split('(;|,)', $matches[1]); + $tabEve=preg_split('(;|,)', trim($matches[1])); //die(print_r($tabCJ)); } + // Codes Evènements S&D exclus + $posEve=stripos($tabAdherent['optionPrestation'], 'codeEven-='); + if ($posEve!==false) { + $tabEveAll=$iBodacc->getListeCodeEven(); + if (preg_match('/codeEven-=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) { + $tabEveSuppr=preg_split('(;|,)', trim($matches[1])); + $tabEve=array_diff($tabEveAll, $tabEveSuppr); + } + } +/* print_r($tabAdherent['optionPrestation']); + print_r($tabCodeCom); + print_r($tabCJ); + print_r($tabEve); + print_r($tabOptOutput); + die();*/ + $versionEvenClient=0; if (preg_match('/^versionEven=(.*)$/mUi', $tabAdherent['optionPrestation'], $matches)) $versionEvenClient=$matches[1]*1; @@ -378,15 +410,15 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $posMailSuivi=stripos($tabAdherent['optionPrestation'], 'mailSuivi='); if ($posMailSuivi!==false) { if (preg_match('/mailSuivi=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) - $mailSuivi=preg_replace('/;|,/', ',', $matches[1]); + $mailSuivi=preg_replace('/;|,/', ',', trim($matches[1])); //die(print_r($mailSuivi)); } $mailTo=false; - $posMailTo=stripos($tabAdherent['optionPrestation'], 'mailTo='); + $posMailTo=stripos($tabAdherent['optionSupport'], 'mailTo='); if ($posMailTo!==false) { - if (preg_match('/mailTo=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) - $mailTo=preg_replace('/;|,/', ',', $matches[1]); + if (preg_match('/mailTo=(.*)(?:$|\n|\r)/i',$tabAdherent['optionSupport'],$matches)) + $mailTo=preg_replace('/;|,/', ',', trim($matches[1])); //die(print_r($mailSuivi)); } @@ -448,9 +480,16 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations }*/ - $where.=" AND Bodacc_Date_Parution>'2010-05-11' "; /** @todo A supprimer après le 19 juillet 2010 ... **/ + $where.=" AND Bodacc_Date_Parution>'2010-05-11' AND d.dateSuppr=0 "; /** @todo A supprimer après le 19 juillet 2010 ... **/ $whereCol.=" AND a.dateSource>'2010-05-12 02:00:00' AND a.dateSuppr=0 "; // Idem ... (Prev: après la rétro du 22 mai 2008) + //echo "'$clientNumTourFichier'".EOL; + if ($clientNumTourFichier>1) { // @todo a tester !!!!! && !$retroActivite) { // Ne pas empecher d'envoyer les annonces sirenée ou intégrées avec du retard ! + $where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; + $whereCol.=" AND DATEDIFF(NOW(), dateJugement)<=60 "; + //die('ici'); + } + if ($typePrestaton=='diffusionBodacc') { echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : diffusion...".EOL; $tables='bodacc_detail d'; @@ -461,13 +500,12 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations if (count($tabNaf)>0 || count($tabCJ)>0 || count($tabCodeCom)>0) { $strNaf=$strCJ=''; - $fields="'BOD' AS src, d.id"; - $fieldsCol="'COL' AS src, a.id"; + $fields="'BOD' AS src, d.id, e.siren, e.nic, e.actif, e.ape_etab, e.ape_entrep, e.adr_dep, e.adr_com, e.cj"; + $fieldsCol="'COL' AS src, a.id, e.siren, e.nic, e.actif, e.ape_etab, e.ape_entrep, e.adr_dep, e.adr_com, e.cj"; $tables='bodacc_detail d, etablissements e'; $tablesCol='annonces a, etablissements e'; - $where.=" AND d.siren=e.siren AND d.siren>1000 AND (d.nic=e.nic OR e.siege=1) AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; - $whereCol.=" AND a.siren=e.siren AND a.siren>1000 AND DATEDIFF(NOW(), dateJugement)<=60 "; - + $where.=" AND d.siren=e.siren AND d.siren>1000 AND (d.nic=e.nic OR e.siege=1) "; + $whereCol.=" AND a.siren=e.siren AND a.siren>1000 "; } if (count($tabNaf)>0) { @@ -477,12 +515,13 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } if (count($tabCodeCom)>0) { $where.=" AND ("; + $whereCol.=" AND ("; foreach($tabCodeCom as $iCom=>$codeCom) { $dep=substr($codeCom,0,2); if ($dep<>'2A' && $dep<>'2B') { $dep=$dep*1; if ($dep<10) $strDep="'$dep','0$dep','00$dep'"; - elseif ($dep>96)$strDep="'$dep'"; + elseif ($dep>96)$strDep="'$dep','".substr($codeCom,0,3)."'"; else $strDep="'$dep','0$dep'"; } else $strDep="'$dep'"; $com=substr($codeCom,2,3)*1; @@ -530,7 +569,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } } elseif ($typePrestaton=='surveillanceBodacc') { - $tabSiren=$iDb->select('surveillances_listes', 'siren, ref', "idClient='$clientIdentifiant' AND dateSuppr='0000-00-00'", true, MYSQL_ASSOC); + $tabSiren=$iDb->select('surveillances_listes', 'siren, ref, refInfos', "idClient='$clientIdentifiant' AND dateSuppr='0000-00-00'", true, MYSQL_ASSOC); $nbSirenClient=count($tabSiren); echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbSirenClient unités en surveillance...".EOL; $fields.=', s.ref'; @@ -540,10 +579,10 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $where.=" AND d.siren=s.siren AND s.siren>1000 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' "; $whereCol.=" AND a.siren=s.siren AND a.siren>1000 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' "; // if ($clientIdentifiant<>'SURBODPRDFTSMEDERIC') { - if (!$retroActivite) { +/* if (!$retroActivite) { $where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; $whereCol.=" AND DATEDIFF(NOW(), dateJugement)<=60 "; - } + }*/ // } else { $where.=" AND d.dateInsert>s.dateDerEnvoi "; $whereCol.=" AND a.dateInsert>s.dateDerEnvoi "; @@ -582,6 +621,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations //echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client en version $versionEvenClient...".EOL; //if ($collecte) die(); + //die(); if (count($tabNaf)>0 || count($tabCJ)>0 || count($tabCodeCom)>0) { $fields="d.id, d.siren, d.sirenValide, CONCAT('BOD-',SUBSTRING(d.Rubrique_Bodacc,1,1)) as source, d.Bodacc_Num, d.Bodacc_Date_Parution, d.Num_Annonce, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.corrNum_Annonce, d.corrBodacc_Date_Parution, d.corrPage, d.corrNumParution, d.corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, d.Tribunal_Code, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, d.ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, administration, activite, typeEven, commentaires, dateEffet, publication, publicationNom, publicationDate, fusion, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, Numero, VenteMt, VenteDev, bienAcqui, 'M' As inter1type, 0 AS inter1id, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, 'R' As inter2type, 0 AS inter2id, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, 'A' As inter3type, 0 AS inter3id, administrateur, admNom, admRepr, admAdresse, admCP, admVille, 'O' AS inter4type, 0 AS inter4id, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert"; @@ -590,13 +630,30 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $tablesCol='annonces a'; $where='d.id IN (0'; $whereCol='a.id IN (0'; + $fpDebug=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debug', 'w'); + $fpDebug2=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debugExclu', 'w'); + $tabNic=array(); while ($annonce=$iDb->fetch(MYSQL_ASSOC)) { if ($annonce['src']=='BOD') $where.=','.$annonce['id']; else $whereCol.=','.$annonce['id']; + $codeComCour=substr(trim($annonce['adr_dep']),0,2).$annonce['adr_com']; + $txtDebug="Annonce n°".$annonce['id'].", siret=".$annonce['siren'].' '.$annonce['nic'].", Actif=".$annonce['actif'].", APET=".$annonce['ape_etab'].", APEN=".$annonce['ape_entrep'].", Commune=$codeComCour, CJ=".$annonce['cj']; + $tabNic['_'.$annonce['id'].'_'.$annonce['siren']]=array('nic'=>$annonce['nic'], + 'adr_dep'=>$annonce['adr_dep'], + 'adr_com'=>$annonce['adr_com'], + 'actif'=>$annonce['actif']); + fwrite($fpDebug, $txtDebug.EOL); + // Si hors périmètre des communes géographique et A6CMO + if ((strpos($clientIdentifiant, 'A6CMO')>0 || strpos($clientIdentifiant, 'ACTDEV')>0) && (!in_array($codeComCour, $tabCodeCom) || $annonce['actif']==0)) { + fwrite($fpDebug2, $txtDebug.EOL); + continue; + } } $where.=')'; $whereCol.=')'; - + fclose($fpDebug); + fclose($fpDebug2); + if ($collecte) { $query ="SELECT $fields FROM $tables WHERE $where UNION SELECT $fieldsCol FROM $tablesCol WHERE $whereCol"; echo date ('Y/m/d - H:i:s')." - $query;".EOL; @@ -619,6 +676,9 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations //echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL; //while(=$iDb->fetch(MYSQL_ASSOC)) { + $fpDebug=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debugProd', 'w'); + $fpDebug2=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.debugProdExclu', 'w'); + while ($annonce=$iDb->fetch(MYSQL_ASSOC)) { /** Marquer les liens REF/SIREN envoyées à chaque client @@ -698,16 +758,32 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations if ($avecMand) { /** On doit recherche des mandataires absent ou non décodés de l'annonce Bodacc Texte **/ $tabTypes=array('A','C','L','M','R','O'); - for($iInter=1; $iInter<4; $iInter++) { - $tabMand=$iDb2->select('annonces', 'inter'.$iInter.'type, inter'.$iInter.'id, inter'.$iInter.'nom, complement', 'siren='.$annonce['siren']." AND inter".$iInter."type IN ('".implode("','", $tabTypes)."') AND (inter".$iInter."id>0 OR inter".$iInter."nom<>'' OR complement LIKE 'Mandataire%') ORDER BY dateInsert DESC", false, MYSQL_ASSOC); + //for($iInter=1; $iInter<4; $iInter++) { + for($iInter=1; $iInter<3; $iInter++) { + $tabMand=$iDb2->select( + /*'annonces', 'inter'.$iInter.'type, inter'.$iInter.'id, inter'.$iInter.'nom, complement', + 'siren='.$annonce['siren']." AND inter".$iInter."type IN ('".implode("','", $tabTypes)."') AND (inter".$iInter."id>0 OR inter".$iInter."nom<>'' OR complement LIKE 'Mandataire%') ORDER BY dateInsert DESC", + false, MYSQL_ASSOC);*/ + 'rncs_jugements', 'adm'.$iInter.'type AS inter'.$iInter.'type, adm'.$iInter.'id AS inter'.$iInter.'id, adm'.$iInter.'nom AS inter'.$iInter."nom, '' AS complement".', adm'.$iInter.'adrNum, adm'.$iInter.'adrInd, adm'.$iInter.'adrType, adm'.$iInter.'adrLibVoie, adm'.$iInter.'adrVoie, adm'.$iInter.'adr1, adm'.$iInter.'adr2, adm'.$iInter.'adr3, adm'.$iInter.'adrCP, adm'.$iInter.'adrVille', + 'siren='.$annonce['siren']." AND adm".$iInter."type IN ('".implode("','", $tabTypes)."') AND (adm".$iInter."id>0 OR adm".$iInter."nom<>'') ORDER BY dateInsert DESC", + false, MYSQL_ASSOC); + //print_r($tabMand); + //die(mysql_error()); $interNom=$interTel=$interCp=$interVille=''; $interSiren=0; foreach ($tabMand as $mand) { // As t'on déjà traité ce type de mandataire ? if (in_array($mand['inter'.$iInter.'type'],$interType)) continue; - - //print_r($annonce); $mandId=$mand['inter'.$iInter.'id']; + $interNom=strtoupper($mand['inter'.$iInter.'nom']); + $inter[$numInter]['Repr']=''; + //, , , , adm'.$iInter.'adrVoie, adm'.$iInter.'adr1, adm'.$iInter.'adr2, adm'.$iInter.'adr3, ', + $inter[$numInter]['adrNum']=$mand['adm'.$iInter.'adrNum']; + $inter[$numInter]['adrBis']=$mand['adm'.$iInter.'adrInd']; + $inter[$numInter]['adrType']=trim(strtoupper($mand['adm'.$iInter.'adrType'])); + $inter[$numInter]['adrLib']=trim(strtoupper($mand['adm'.$iInter.'adrLibVoie'])); + $inter[$numInter]['CP']=$mand['adm'.$iInter.'adrCP']; + $inter[$numInter]['Ville']=trim(strtoupper($mand['adm'.$iInter.'adrVille'])); if ($mandId>0) { // Il y a un mandataire avec un identifiant numérique $tabTmp=$iDb2->select( 'tabMandataires', 'id, sirenGrp, sirenMand, Nom, Prenom, type, adresse, adresseComp, cp, ville, tel, fax, email, web', 'id='.$mandId, true, MYSQL_ASSOC); @@ -719,7 +795,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $interCp=$mand2['cp']*1; $interVille=strtoupper($mand2['ville']); $interTel=strtr($mand2['tel'],array(' '=>'',','=>'','.'=>'', '-'=>'/','-'=>''))*1; - } else { + /* else { // Il y a un mandataire sans identifiant numérique if (trim($mand['inter'.$iInter.'nom'])=='' && substr($mand['complement'],0,10)=='Mandataire') @@ -740,7 +816,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } // echo $mand['inter'.$iInter.'nom']." : Nom=$interNom, Tél=$interTel, Adresse="; // print_r($adr); - } + }*/ $inter[$numInter]['type']=$mand['inter'.$iInter.'type']; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo $inter[$numInter]['SIRET']=$interSiren.'00000'; $inter[$numInter]['Nom']=trim(strtoupper($interNom)); @@ -758,6 +834,10 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } } } + + //print_r($inter); + //print_r($interType); + //die(); $tribunalCode=$annonce['Tribunal_Code']; $refLigneClient=@$annonce['ref']; @@ -805,6 +885,24 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } } + // Récupération des informations de l'établissement + $annonce['nic']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['nic']; + $annonce['adr_dep']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['adr_dep']; + $annonce['adr_com']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['adr_com']; + $annonce['actif']=$tabNic['_'.$annonce['id'].'_'.$annonce['siren']]['actif']; + + $codeComCour=substr(trim($annonce['adr_dep']),0,2).$annonce['adr_com']; + + $txtDebug="Annonce n°".$annonce['id'].", siret=".$annonce['siren'].' '.$annonce['nic'].", Actif=".$annonce['actif'].", APET=".$annonce['ape_etab'].", APEN=".$annonce['ape_entrep'].", Commune=$codeComCour, CJ=".$annonce['cj']; + fwrite($fpDebug, $txtDebug.EOL); + + // Si l'annonce A6CMO est hors périmètre notamment des communes géographique, ne pas produire $str + if ((strpos($clientIdentifiant, 'A6CMO')>0 || strpos($clientIdentifiant, 'ACTDEV')>0) && (!in_array($codeComCour, $tabCodeCom) || $annonce['actif']==0)) { + fwrite($fpDebug2, $txtDebug.EOL); + continue; + } + + if ($tabOptOutput[200]==true) { $str=genereLigne200($annonce['siren'], $annonce['nic']); fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL); @@ -814,6 +912,7 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations $str=genereLignes400($annonce['siren'], $nbLignes, $optionEOL); fwrite($fp, $str); } + //$annonce['nic'].", APET=".$annonce['ape_etab'].", APEN=".$annonce['ape_entrep'].", Commune=".$annonce['adr_dep'].$annonce['adr_com'].", CJ=".$annonce['cj'].EOL; $str= initstr('100', 3, '0', ALIGN_RIGHT) . // Type de ligne initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce @@ -966,6 +1065,9 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n"; } + + fclose($fpDebug); + fclose($fpDebug2); /** ** On génère la ligne de fin de fichier @@ -982,15 +1084,40 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE)); // Pas de fin de ligne sur la dernière ligne fclose($fp); echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient :Fichier client terminé.".EOL; + //die(); /** Mise à jour des numéros de tour et des date de dernières exécutions **/ if ($incrementationDesTour) { $iDbCrm=new WDB('sugarcrm'); - $rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>date('YmdHis'), 'trtnumerotour_c'=> $clientNumTourFichier), + $rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>$dateFinFichier, 'trtnumerotour_c'=> $clientNumTourFichier), "id_c='".$tabAdherent['idPrestationBdd']."'"); } + if ($clientIdentifiant=='SURBODPRDSFTPSFRBT') { + // Copie du fichier pour SFR + $fichierIn=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'; + if (!copy(REP_TEMP.$fichierIn, '/mnt/data/clients/sfrbtr/recv/'.$fichierIn)) + echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fichierIn impossible pour le spécifique SFR !".EOL; + else + echo date ('Y/m/d - H:i:s')." - Le fichier $fichierIn a été créé pour SFR...".EOL; + + // Remplissage de la table sdv1.flux_fileout avec les informations de traitement SFR + $tabSFR=array( 'client' => 'sfrbtr', + 'name' => 'FICH_RCE', + 'nbLines' => $nbLignes, // Nombre de ligne du fichier + 'dateBegin' => $dateDebFichier, // Date de début du traitement Y-m-d H:i:s + 'dateEnd' => $dateFinFichier, // Date de fin du traitement Y-m-d H:i:s + 'fileOut' => basename($fichierIn), //Nom du fichier uniquement + 'depotType' => 'SFTP', + 'depotDir' => 'recvsurv', + 'depotDate' => '0000-00-00 00:00:00', + ); + $iDb3=new WDB('sdv1'); + $iDb3->insert('flux_fileout', $tabSFR, false); + } + + /** Conversion du fichier si nécessaire en CSV **/ if ($tabAdherent['formatEnvois']=='csv') { @@ -1223,6 +1350,39 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } } + /** Envoi du fichier produit par mail + **/ + if ($mailTo) { + switch($tabAdherent['formatEnvois']) { + case 'csv': $tabAttached=array($repBakClient.'/'.$ficProduction_csv); break; + case 'specifique': $tabAttached=array($repBakClient.'/'.$ficProduction_bil); break; + default: $tabAttached=array($repBakClient.'/'.$ficProduction); break; + } + + $messageInfo="Bonjour, + + Veuillez trouver le fichier d'annonces Scores & Décisions relatives à votre abonnement. + + Bien Cordialement, + Le service Support. + + -- + + SCORES & DECISIONS + Service support + 1, rue de Clairefontaine - 78120 RAMBOUILLET + tél : 33 (0)1 75 43 80 10 + fax : 33 (0)1 75 43 85 74 + support@scores-decisions.com + http://www.scores-decisions.com/ + Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises + + Pensez à l'environnement avant d'imprimer ce message ! + Save paper - think before you print"; + + @sendMail('production@scores-decisions.com', $mailTo.',support@scores-decisions.com', "$txtPrestaton Annonces S&D", $messageInfo, '', $tabAttached); + } + /** Si FTP, déplacement dans les dossiers adéquats **/ if ($tabAdherent['supportPrestation']=='ftp' || $tabAdherent['supportPrestation']=='web') {//$repProduction.$ficProduction $repFtpClient='/home/data/ftp/'.strtolower($tabAdherent['nomClient']); @@ -1252,32 +1412,6 @@ foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations } } } - - if ($mailTo) { - $tabAttached=array($repBakClient.'/'.$ficProduction); - $messageInfo="Bonjour, - -Veuillez trouver le fichier d'annonces Scores & Décisions relatives à votre abonnement. - -Bien Cordialement, -Le service Support. - --- - -SCORES & DECISIONS -Service support -1, rue de Clairefontaine - 78120 RAMBOUILLET -tél : 33 (0)1 75 43 80 10 -fax : 33 (0)1 75 43 85 74 -support@scores-decisions.com -http://www.scores-decisions.com/ -Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises - -Pensez à l'environnement avant d'imprimer ce message ! -Save paper - think before you print"; - - sendMail('production@scores-decisions.com', $mailTo.',contact@scores-decisions.com', "$txtPrestaton Annonces S&D", $messageInfo, '', $tabAttached); - } if ($mailSuivi) { $strAnnRubs=''; @@ -1302,7 +1436,7 @@ Informations compl (*) : une même annonce pouvant être ventillée dans plusieurs chapitres, il est possible que la somme des rubriques dépasse le nombre d'annonces du fichier ";/*@todo Nombre d'annonces et ventilation par chapitre !*/ - sendMail('production@scores-decisions.com', $mailSuivi, "$txtPrestaton Annonces S&D en télétransmission", $txtMsgPresta); + @sendMail('production@scores-decisions.com', $mailSuivi.',support@scores-decisions.com', "$txtPrestaton Annonces S&D en télétransmission", $txtMsgPresta); } } @@ -1314,11 +1448,49 @@ echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n"; die(); function genereLigne200($siren, $nic) { - global $iInsee, $a; + global $iInsee, $a, $iDb2, $iRnvp; $a=$iInsee->getIdentiteEntreprise($siren,$nic); $b=$iInsee->getInfosNotice($siren,$nic); $c=$iInsee->getAdresse($siren,$nic); + $tmp=$iDb2->select('jo.etablissements_act', 'bilType, bilAnnee, bilTca, bilFL', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC, false); + if (count($tmp)>0) { + $tcaSED=$tmp[0]['bilTca']; + $tcaSEDtype=$tmp[0]['bilType']; + $tcaSEDannee=$tmp[0]['bilAnnee']; + $tcaSEDmt=$tmp[0]['bilFL']; + } else { + $tcaSED=' '; + $tcaSEDtype='I'; + $tcaSEDannee='0000'; + $tcaSEDmt=0; + } + + // Forcage pour idclient=3 nimes metropole !!! +// if ($idClient==3 && $tcaSED<>' ') $a['TrancheCA']=$tcaSED; + + $tabRnvp=$iRnvp->getAdresseRnvpSource(2, $a['SourceId']); + $codeRnvp=$tabRnvp['CQAdrRnvp']*1; + if ($codeRnvp>0) { + $L1rnvp=strtr($tabRnvp['L1rnvp'],'/*',' '); + $L2rnvp=$tabRnvp['L2rnvp']; + $L3rnvp=$tabRnvp['L3rnvp']; + $L4rnvp=$tabRnvp['L4rnvp']; + $L5rnvp=$tabRnvp['L5rnvp']; + $L6rnvp=$tabRnvp['L6rnvp']; + $L7rnvp=$tabRnvp['L7rnvp']; + } else { + $L1rnvp=strtr($c['L1_NOM'],'/*',' '); + $L2rnvp=$c['L2_NOM2']; + $L3rnvp=$c['L3_ADRCOMP']; + $L4rnvp=$c['L4_VOIE']; + $L5rnvp=$c['L5_DISTSP']; + $L6rnvp=$c['L6_POST']; + $L7rnvp=$c['L7_PAYS']; + } + + // Forcage pour idclient=3 nimes metropole !!! + //if ($idClient==3 && $tcaSED<>' ') $a['TrancheCA']=$tcaSED; $str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise @@ -1448,22 +1620,22 @@ function genereLigne200($siren, $nic) { initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab */ '00000000000'. - initstr(1, 1 ) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP - initstr($c['L1_NOM'], 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise - initstr($c['L2_NOM2'], 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom - initstr($c['L3_ADRCOMP'], 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse - initstr($c['L4_VOIE'], 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse - initstr($c['L5_DISTSP'], 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale - initstr($c['L6_POST'], 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc.. - initstr($c['L7_PAYS'], 38 ) . // Facultatif L7_ETRG Ligne 7 : Pays si étranger + initstr($codeRnvp, 1 , '0', ALIGN_RIGHT) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP + initstr($L1rnvp, 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise + initstr($L2rnvp, 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom + initstr($L3rnvp, 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse + initstr($L4rnvp, 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse + initstr($L5rnvp, 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale + initstr($L6rnvp, 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc.. + initstr($L7rnvp, 38 ) . initstr($b['insEAEANN'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE* initstr($b['insEAEAPEN'], 5 ) . // Facultatif EAEAPEN Activité principale de l'entreprise issue des EAE initstr($b['insEAESEC1N'], 5 ) . // Facultatif inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE initstr($b['insEAESEC2N'], 5 ) . // Facultatif inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE initstr($b['insEAESEC3N'], 5 ) . // Facultatif inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE initstr($b['insEAESEC4N'], 5 ) . // Facultatif inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE - initstr($a['GeoLat'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984) - initstr($a['GeoLon'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984) + initstr($a['GeoLat'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984) + initstr($a['GeoLon'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984) initstr($a['GeoPrecis'], 1 , '0', ALIGN_RIGHT) . // Facultatif GPSP Niveau de précision du géocodage initstr($a['GeoInfos']['NZUS'], 10 ) . // Facultatif ZUS Identifiant de la Zone Urbaine Sensible initstr($a['GeoInfos']['NZRU'], 10 ) . // Facultatif ZRU Identifiant de la Zone de Rénovation Urbaine @@ -1475,28 +1647,31 @@ function genereLigne200($siren, $nic) { initstr($a['TvaAttribue'], 1 , '0', ALIGN_RIGHT) . // Facultatif TVAVALIDE Numéro de TVA validé initstr($a['AncienSiege'], 1 , '0', ALIGN_RIGHT) . // Facultatif ANCIENSIEGE Ancien siège initstr($a['Isin'], 12 ) . // Facultatif CODEISIN Code ISIN de l'entreprise si cotation en bourse - // A voir - initstr($a['dir1NomPrenom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant - initstr('', 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant - initstr('', 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant - initstr(str_replace('-','',$a['dir1DateNaiss']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1DNAISS Date de naissance - initstr($a['dir1LieuNaiss'], 35 ) . // Facultatif PPDIR1LNAISS Lieu de Naissance - initstr($a['dir1Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1FONC Code Fonction - initstr(str_replace('-','',$a['dir1DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant - // A voir - initstr($a['dir2NomPrenom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant - initstr('', 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant - initstr('', 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant - initstr(str_replace('-','',$a['dir2DateNaiss']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant - initstr($a['dir2LieuNaiss'], 35 ) . // Facultatif PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant - initstr($a['dir2Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2FONC Code Fonction du 2ème ppl dirigeant - initstr(str_replace('-','',$a['dir2DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2MAJ Date de MAJ du 2ème ppl dirigeant + initstr($a['dir1Nom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant + initstr($a['dir1Prenom'], 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant + initstr($a['dir1NomUsage'], 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant + initstr(str_replace('-','',$a['dir1DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR1DNAISS Date de naissance + initstr($a['dir1LieuNaiss'], 35 ) . // Facultatif PPDIR1LNAISS Lieu de Naissance + initstr($a['dir1Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1FONC Code Fonction + initstr(str_replace('-','',$a['dir1DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant + initstr($a['dir2Nom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant + initstr($a['dir2Prenom'], 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant + initstr($a['dir2NomUsage'], 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant + initstr(str_replace('-','',$a['dir2DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant + initstr($a['dir2LieuNaiss'], 35 ) . // Facultatif PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant + initstr($a['dir2Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2FONC Code Fonction du 2ème ppl dirigeant + initstr(str_replace('-','',$a['dir2DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2MAJ Date de MAJ du 2ème ppl dirigeant initstr(str_replace('-','',$a['bilanDate']), 8 , '0', ALIGN_RIGHT) . // Facultatif BILANCLOT Date de dernière clôture de bilan disponible initstr($a['bilanMois'], 2 , '0', ALIGN_RIGHT) . // Facultatif BILANDUREE Durée du dernier exercice disponible initstr($a['bilanFL'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANCA Chiffre d'affaires au dernier bilan disponible initstr($a['bilanHN'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANRES Résultat au dernier bilan disponible - initstr('', 41 ) ; // Facultatif FILLER1 Zone libre - + initstr($tcaSED, 1 ) . // Tranche de CA SED + initstr($tcaSEDtype, 1 ) . // Type de tranche de CA : (R)éel, (I)nconnu ou (E)stimé + initstr($tcaSEDannee, 4 ) . // Année du CA + initstr($a['dir1Genre'], 1 ) . // PPDIR1 Genre + initstr($a['dir2Genre'], 1 ) . // PPDIR2 Genre + initstr(' ', 33 ) ; // Facultatif FILLER1 Zone libre + return $str; } diff --git a/batch/diffusionCegedim.php b/batch/diffusionCegedim.php new file mode 100644 index 00000000..bd171e86 --- /dev/null +++ b/batch/diffusionCegedim.php @@ -0,0 +1,99 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +1) +{ + for ($i=1; isset($argv[$i]); $i++) { + if (substr($argv[$i],0,1)=='-') { + switch (strtolower(substr($argv[$i],1,1))) { + case 'v': $modeDebug=true; break; + case '-': + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); break; + } + } else $tabFichier[]=$argv[$i]; + } +} + +// Si pas de date de début alors on prend le 1er jour du mois précédent +$mailTo='yves.lauliac@cegedim.fr,didier.pelet@cegedim.fr,chantal.labbe@cegedim.fr,isabelle.huge@cegedim.fr,ylenaour@scores-decisions.com'; +//$mailTo='ylenaour@scores-decisions.com'; +$nomFichier='/tmp/radiationCegedimSetD_'.substr($dateDebut,0,7).'.csv'; + +echo date('Y/m/d - H:i:s') ." - Début de la production du fichier Cegedim pour la période $dateDebut à $dateFin.".EOL; + +$nbRows=$iDb->select('bodacc_detail', + "siren, nic, LPAD(IF(codePostal=0, codePostalSiege,codePostal),5,'0') as codePostal", + "id>=18000000 AND Bodacc_Date_Parution BETWEEN '$dateDebut' AND '$dateFin' AND Rubrique='radiations'", false, MYSQL_ASSOC, true); +echo date('Y/m/d - H:i:s') ." - Il y a $nbRows radiations Cegedim...".EOL; +$nbLignes=0; +$fp=fopen($nomFichier,'w'); +fwrite($fp, "siren;nic;cp".EOL); +while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { + $siren=$tabTmp['siren']; + $nic=$tabTmp['nic']; + $cp=$tabTmp['codePostal']; + fwrite($fp, "$siren;$nic;$cp".EOL); + $nbLignes++; +} +fclose($fp); + +echo date('Y/m/d - H:i:s') ." - Fin de la production du fichier Cegedim ($nbLignes lignes/$nbRows).".EOL; + +$tabAttached=array($nomFichier); +$nomFichierBase=basename($nomFichier); + +$messageInfo="Bonjour, + +Veuillez trouver ci-joint le fichier Scores & Décisions relatif à votre prestation contractuelle. +Le fichier se nomme $nomFichierBase et contient $nbLignes lignes. + +Bien Cordialement, +Le service Support. + +-- + +SCORES & DECISIONS +Service support +1, rue de Clairefontaine - 78120 RAMBOUILLET +tél : 33 (0)1 75 43 80 10 +fax : 33 (0)1 75 43 85 74 +support@scores-decisions.com +http://www.scores-decisions.com/ +Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises + +Pensez à l'environnement avant d'imprimer ce message ! +Save paper - think before you print"; + +@sendMail('production@scores-decisions.com', $mailTo, "Prestation Cegedim Radiation", $messageInfo, '', $tabAttached); + +die(); + + ?> \ No newline at end of file diff --git a/batch/diffusionEntrep.php b/batch/diffusionEntrep.php index 79047207..dc691590 100644 --- a/batch/diffusionEntrep.php +++ b/batch/diffusionEntrep.php @@ -1,13 +1,5 @@ #!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini "'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>'')); @@ -82,123 +74,29 @@ echo date ('Y/m/d - H:i:s')." - Il y a $nbRows communes avec des adresses de dom while($tabCom=$iDb->fetch(MYSQL_ASSOC)) $tabComDom['_'.$tabCom['depComEt']]=1; - -/* -$nbRows=$iDb->select('etablissements_act', 'DISTINCT sirenGrp', 'sirenGrp>1000', false, MYSQL_ASSOC, true); -echo date ('Y/m/d - H:i:s')." - Il y a $nbRows groupes à mettre à jour...".EOL; -while($entrep=$iDb->fetch(MYSQL_ASSOC)) { - $siren=$entrep['sirenGrp']; - $iDb2->update('etablissements_act', array('sirenGrp'=>$siren), "siren=$siren") or die('Err4:'.mysql_error()); -} - -die(); -* -$fields='id, siren, nic, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com'; - -$nbRows=$iDb->select('etablissements_act', 'COUNT(*) AS nb', '1', true, MYSQL_ASSOC); -$nbRowsTot=$nbRows[0]['nb']; -echo date('Y/m/d - H:i:s') ." - Début de l'export des $nbRowsTot établissements actifs...".EOL; -$iLimitNb=100000; - -for ($iLimit=8100000; $iLimit<$nbRowsTot; $iLimit+=$iLimitNb) { -$nbRows=$iDb->select('etablissements_act', $fields, "1 LIMIT $iLimit, $iLimitNb", true, MYSQL_ASSOC, true); -if (mysql_errno()>0) die(date('Y/m/d - H:i:s') ." - Erreur SQL : ".mysql_error().EOL); - -echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises à diffuser ($iLimit, $iLimitNb)...".EOL; - -while($entrep=$iDb->fetch(MYSQL_ASSOC)) { - $numRow++; - $siren=$entrep['siren']; - $nic=$entrep['nic']; - $siret=$siren.$nic; - $dep=$entrep['adr_dep']; - $com=$entrep['adr_com']; - if ($dep*1>0 && $dep*1<10) { $dep=$dep*1; $depCom='0'.$dep.$com; } - else $depCom=substr(''.$dep,0,2).$com; - if (@$tabComDom['_'.$depCom]==1) { - //echo date('Y/m/d - H:i:s') ." - $depCom dans \$tabCom...".EOL; - - $tabDom=@$iInsee->infoAdresseDom( $entrep['adr_num'], - $entrep['adr_btq'], - $entrep['adr_typeVoie'], - $entrep['adr_libVoie'], - $entrep['adr_comp'], - $entrep['adr_cp'], - $entrep['adr_ville']); - if (is_array($tabDom) && count($tabDom)>0) { - $nbDom++; - $tabUpdate=array('adrDom'=>1); - if (preg_match('/^CHEZ (.*)$/i',$entrep['adr_comp'], $matches) && - !preg_match('/ M | M. | MR | MME | MLLE /i',$entrep['adr_comp'])) - $tabUpdate=array('adrDom'=>2); - - $iDb->update('etablissements_act', $tabUpdate, "siren=$siren AND nic=$nic"); - } - }// else echo date('Y/m/d - H:i:s') ." - $depCom hors \$tabCom...".EOL; -} -} - -die(); -*/ - $iBilan=new MBilans(0); $iCotation=new ICotation(array()); $iLiens=new MLiens(0); echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion des Etablissements.\n"; -/* -// DEBUT TEST maisonMere -//$nbRows=$iDb->select('etablissements_act', 'DISTINCT siren', 'nbActio>0 AND siren>10000 AND sirenGrp IS NULL', true, MYSQL_ASSOC, true); -$nbRows=$iDb->select('etablissements_act', 'DISTINCT siren', 'nbActio>0 AND siren>439752767 AND sirenGrp IS NULL', true, MYSQL_ASSOC, true); -$j=0; -$tabSirenVisites=array(); -while($entrep=$iDb->fetch(MYSQL_ASSOC)) { - $j++; - $siren=$entrep['siren']; - echo date ('Y/m/d - H:i:s')." - $j/$nbRows - Siren $siren : "; - if (isset($tabSirenVisites[$siren*1])) { - $sirenMere=$tabSirenVisites[$siren]; - if ($siren<>$sirenMere) - echo "maison mère $sirenMere (EN CACHE)"; - } else { - $sirenMere=@$iLiens->getMaisonMereFr($siren); - if ($siren<>$sirenMere) { - echo "maison mère $sirenMere"; - foreach ($iLiens->tabSirenVisites as $siren1) { - $tabSirenVisites[$siren1*1]=$sirenMere; - } - } - } - echo EOL; - if ($siren<>$sirenMere) - $iDb2->update('etablissements_act', array('sirenGrp'=>$sirenMere), "siren=$siren") or die('Err3:'.mysql_error()); -} -die("$nbRows traitées".EOL); -// FIN TEST maisonMere -*/ -/* -$tabBilans=array(); -$nbRows=$iDb->select('bilans', 'DISTINCT siren', "dateExercice>=20080101 AND typeBilan IN('N','S')", true, MYSQL_ASSOC, true); -echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises avec Bilans...".EOL; -while($tabBilan=$iDb->fetch(MYSQL_ASSOC)) { - $tabBilans[]=$tabBilan['siren']; -}*/ $fields='id, source, source_id, triCode, autre_id, siren, nic, siege, raisonSociale, enseigne, sigle, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com, tel, fax, cj, capital, capitalDev, capitalSrc, ape_etab, ape_entrep, age_entrep, age_etab, tca, tcaexp, -ape4_etab, ape4_entrep, dateCrea_etab, teff_entrep, teff_etab, eff_entrep, eff_etab, distSP, achPost, -dirCiv, dirNom, dirPrenom, dirFct, nbEtab, nbActio, bilType, bilEE, bilFL, bilFK, bilFR, bilGF, bilGP, bilGU, bilGW, bilHD, bilHH, bilHL, bilHM, bilHN, bilYP, tvaIntraValide, tvaIntraCle'; +ape4_etab, ape4_entrep, dateCrea_etab, dateCrea_ent, dateImmat, teff_entrep, teff_etab, eff_entrep, eff_etab, distSP, achPost, +dirCiv, dirNom, dirPrenom, dirFct, nbEtab, nbActio, bilType, bilAnnee, bilCloture, bilDuree, bilTca, +bilEE, bilFL, bilFK, bilFR, bilGF, bilGP, bilGU, bilGW, bilHD, bilHH, bilHL, bilHM, bilHN, bilYP, +tvaIntraValide, tvaIntraCle'; //if (0) { -$nbRows=$iDb->select('etablissements_actmp', 'COUNT(*) AS nb', '1', false, MYSQL_ASSOC); +$nbRows=$iDb->select('etablissements_act_tmp', 'COUNT(*) AS nb', '1', false, MYSQL_ASSOC); $nbRowsTot=$nbRows[0]['nb']; echo date('Y/m/d - H:i:s') ." - Début de l'export des $nbRowsTot établissements actifs...".EOL; $iLimitNb=100000; $fp=fopen('./veolia_'.date('Ymd').'.txt','w'); for ($iLimit=0; $iLimit<$nbRowsTot; $iLimit+=$iLimitNb) { -$nbRows=$iDb->select('etablissements_actmp', $fields, "1 LIMIT $iLimit, $iLimitNb", false, MYSQL_ASSOC, true); +$nbRows=$iDb->select('etablissements_act_tmp', $fields, "1 LIMIT $iLimit, $iLimitNb", false, MYSQL_ASSOC, true); if (mysql_errno()>0) die(date('Y/m/d - H:i:s') ." - Erreur SQL : ".mysql_error().EOL); echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises à diffuser ($iLimit, $iLimitNb)...".EOL; @@ -206,6 +104,9 @@ echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises $numRow=$sirenPre=0; $tabTva=array(); $anneeEstime=date('Y')-2; +$clotureEstime=$anneeEstime.'-12-31'; +$clotureEstimeYmd=$anneeEstime.'1231'; + $tabSirenVisites=array(); while($entrep=$iDb->fetch(MYSQL_ASSOC)) { @@ -264,25 +165,43 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) { $strOutput.=exporte(sprintf("%10s",preg_replace('/( |\-|\.)/', '', $entrep['tel'])), 10); $strOutput.=exporte(sprintf("%10s",preg_replace('/( |\-|\.)/', '', $entrep['fax'])), 10); $strOutput.=exporte($entrep['dateCrea_etab'], 8); + + $dateCreationEnt=$entrep['dateCrea_ent']; + /*if $dateCreationEnt=$entrep['dateCrea_ent']; + dateCrea_etab, dateCrea_ent, dateImmat + dateCrea_*/ + if (($entrep['siege']*1)==1) $strOutput.=exporte('01', 2); else $strOutput.=exporte('02', 2); $strOutput.=exporte($entrep['nbEtab'], 5); $strOutput.=exporte($entrep['cj'], 4); + $fJur=$entrep['cj']; $strOutput.=exporte($entrep['capital'], 13); if ($entrep['capitalDev']=='EUR' || $entrep['capitalDev']=='') $strOutput.=exporte('Euro', 10); else $strOutput.=exporte($entrep['capitalDev'], 10); - $naf4=$entrep['ape4_etab']; - $naf5=$entrep['ape_etab']; - if ($naf4=='') $naf4=@$iCotation->tabNaf21[$naf5]; - $naf4lib=@$iInsee->getLibelleNaf($naf4); - if ($naf4lib=='') $tabNaf4inconnu[]=$naf4; - $strOutput.=exporte($naf4, 4); // NAF4 - $strOutput.=exporte($naf4lib, 90); - $tabNace=array( 'NaceEtab'=>@$iInsee->getCodeNace($entrep['ape_etab']), - 'NaceEntrep'=>@$iInsee->getCodeNace($entrep['ape_entrep'])); + $tabNace=array(); + $naf5et=$entrep['ape_etab']; + $naf5en=$entrep['ape_entrep']; + $naf4et=$entrep['ape4_etab']; + $naf4en=$entrep['ape4_entrep']; + if ($naf4et=='' || $naf4et=='000Z') $tabNace['ape4_etab']=$naf4et=@$iCotation->tabNaf21[$naf5et]; + if ($naf4en=='' || $naf4en=='000Z') $tabNace['ape4_entrep']=$naf4en=@$iCotation->tabNaf21[$naf5en]; + $naf4etlib=@$iInsee->getLibelleNaf($naf4et); + if ($naf4etlib=='') $tabNaf4inconnu[]=$naf4et; + $strOutput.=exporte($naf4et, 4); // NAF4 + $strOutput.=exporte($naf4etlib, 90); + + $naf5etlib=@$iInsee->getLibelleNaf($naf5); + if ($naf5etlib=='') $tabNaf5inconnu[]=$naf5et; + $strOutput.=exporte($naf5et, 5); + $strOutput.=exporte($naf5etlib, 90); + + $tabNace['NaceEtab']=@$iInsee->getCodeNace($entrep['ape_etab']); + $tabNace['NaceEntrep']=@$iInsee->getCodeNace($entrep['ape_entrep']); + if (@$tabComDom['_'.$depCom]==1) { $tabDom=@$iInsee->infoAdresseDom( $entrep['adr_num'], $entrep['adr_btq'], @@ -326,7 +245,7 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) { } // Lecture du dernier bilan - $uniteMultiple=1; + /*$uniteMultiple=1; $tabPostes=array(); //if (in_array($siren, $tabBilans)) { $tabBilan=$iDb2->select('bilans', 'siren, dateExercice, dureeExercice, unite, typeBilan, postes', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 1", false, MYSQL_ASSOC); @@ -344,73 +263,60 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) { } if ($tabBilan['typeBilan']=='S') $tabPostes=@$iBilan->bilanSimplifie2Normal($tabPostes); + */ } - $effectifFr=@$tabPostes['YP']*1; + $effectifFr=@$entrep['bilYP']*1; if ($effectifFr==0) $effectifFr=$entrep['eff_entrep']; $strOutput.=exporte($effectifFr, 6); $strOutput.=exporte($entrep['eff_etab'], 6); - if (@count($tabPostes)>10) { - $montantCA=@$tabPostes['FL']*$uniteMultiple; - $strOutput.=exporte('R', 1); // Réel , Inconnu, Estimé - $strOutput.=exporte(str_replace('NS','', @$tabPostes['FL']*$uniteMultiple), 13); - $strOutput.=exporte(str_replace('NS','', @$tabPostes['FK']*$uniteMultiple), 13); - $strOutput.=exporte(str_replace('NS','', @$tabPostes['HN']*$uniteMultiple), 13); + if ($entrep['bilAnnee']>1900) { + $montantCA=@$entrep['bilFL']; - $iDb2->update('etablissements_actmp', - array_merge($tabTva, $tabNace, - array( 'bilType' =>'R', - 'bilAnnee' =>@substr($tabBilan['dateExercice'],0,4), - 'bilCloture'=>@$tabBilan['dateExercice'], - 'bilDuree' =>@$tabBilan['dureeExercice'], - 'bilTca' =>$iInsee->getTca($montantCA), - 'bilEE' =>@$tabPostes['EE']*$uniteMultiple, - 'bilFL' =>$montantCA, - 'bilFK' =>@$tabPostes['FK']*$uniteMultiple, - 'bilFR' =>@$tabPostes['FR']*$uniteMultiple, - 'bilGF' =>@$tabPostes['GF']*$uniteMultiple, - 'bilGP' =>@$tabPostes['GP']*$uniteMultiple, - 'bilGU' =>@$tabPostes['GU']*$uniteMultiple, - 'bilGW' =>@$tabPostes['GW']*$uniteMultiple, - 'bilHD' =>@$tabPostes['HD']*$uniteMultiple, - 'bilHH' =>@$tabPostes['HH']*$uniteMultiple, - 'bilHL' =>@$tabPostes['HL']*$uniteMultiple, - 'bilHM' =>@$tabPostes['HM']*$uniteMultiple, - 'bilHN' =>@$tabPostes['HN']*$uniteMultiple, - 'bilYP' =>@$tabPostes['YP'])), - "siren=$siren AND nic=$nic") or die('Err1:'.mysql_error()); - - } elseif ($naf5<>'' && $naf5<>'0000Z' && $effectifFr>0) { - $caEstime=$iInsee->getCAnafEffectif($naf5, $effectifFr); + $strOutput.=$entrep['bilType']; // Réel , Inconnu, Estimé + $strOutput.=exporte(str_replace('NS','', @$entrep['bilFL']), 13); + $strOutput.=exporte(str_replace('NS','', @$entrep['bilFK']), 13); + $strOutput.=exporte(str_replace('NS','', @$entrep['bilHN']), 13); + + $montantEBE=@$entrep['bilEBE']; + + $tabUpdate=array_merge($tabTva, $tabNace);//, array('bilTca'=>$iInsee->getTca($montantCA))); + + } elseif ($naf5en<>'' && $naf5en<>'0000Z' && ($effectifFr>0 || ($fJur<2000 && $effectifFr==0)) && $dateCreationEnt<$clotureEstimeYmd) { + /** On estime le CA si : + * - NAF valide, + * - effectif>0 ou CJ=1xxx + * - date de création >= date de cloture estimée + **/ + if ($fJur<2000 && $effectifFr==0) + $caEstime=$iInsee->getCAnafEffectif($naf5en, 1); + else + $caEstime=$iInsee->getCAnafEffectif($naf5en, $effectifFr); $strOutput.=exporte('E', 1); // Réel , Inconnu, Estimé $strOutput.=exporte($caEstime, 13); // CA France $strOutput.=exporte('', 13); // CA Export $strOutput.=exporte('', 13); // Résultat Net - $iDb2->update('etablissements_actmp', - array_merge($tabTva, $tabNace, + + $tabUpdate=array_merge($tabTva, $tabNace, array( 'bilType' =>'E', 'bilAnnee' =>$anneeEstime, - 'bilCloture'=>$anneeEstime.'-12-31', + 'bilCloture'=>$clotureEstime, 'bilDuree' =>12, 'bilTca' =>$iInsee->getTca($caEstime), - 'bilFL' =>$caEstime)), - "siren=$siren AND nic=$nic") or die('Err2'); + 'bilFL' =>$caEstime)); } else { $strOutput.=exporte('I', 1); // Réel , Inconnu, Estimé $strOutput.=exporte('', 13); $strOutput.=exporte('', 13); $strOutput.=exporte('', 13); - $iDb2->update('etablissements_actmp', array_merge($tabTva, $tabNace), "siren=$siren AND nic=$nic") or die('Err3:'.mysql_error()); + $tabUpdate=array_merge($tabTva, $tabNace); } - - $strOutput.=exporte($naf5, 5); - $naf5lib=@$iInsee->getLibelleNaf($naf5); - if ($naf5lib=='') $tabNaf5inconnu[]=$naf5; - $strOutput.=exporte($naf5lib, 90); - + + $iDb2->update('etablissements_act_tmp', $tabUpdate, "siren=$siren AND nic=$nic") or die('Err3:'.mysql_error()); + fwrite($fp, $strOutput.EOL); $sirenPre=$siren; if ($numRow%10000==0) @@ -418,11 +324,11 @@ while($entrep=$iDb->fetch(MYSQL_ASSOC)) { } } -$nbRows=$iDb->select('etablissements_actmp', 'DISTINCT sirenGrp', 'sirenGrp>1000', false, MYSQL_ASSOC, true); +$nbRows=$iDb->select('etablissements_act_tmp', 'DISTINCT sirenGrp', 'sirenGrp>1000', false, MYSQL_ASSOC, true); echo date ('Y/m/d - H:i:s')." - Il y a $nbRows groupes à mettre à jour...".EOL; while($entrep=$iDb->fetch(MYSQL_ASSOC)) { $siren=$entrep['sirenGrp']; - $iDb2->update('etablissements_actmp', array('sirenGrp'=>$siren), "siren=$siren") or die('Err4:'.mysql_error()); + $iDb2->update('etablissements_act_tmp', array('sirenGrp'=>$siren), "siren=$siren") or die('Err4:'.mysql_error()); } $tabNaf5inconnu=array_unique($tabNaf5inconnu); @@ -430,28 +336,26 @@ $tabNaf4inconnu=array_unique($tabNaf4inconnu); //} /** Mise à jour de la date de fin de création de la table **/ +unset($iDb); + $iDb=new WDB('sdv1'); -$ret=$iDb->select('sphinx_idx', 'id', "nom='jo.etablissements_act' AND createBegin IS NOT NULL AND createBeginselect('sphinx_idx', 'id', "nom='jo.etablissements_act' AND createBegin IS NOT NULL AND createBeginupdate('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$id") or die('Err5:'.mysql_error()); +$iDb->update('sphinx_idx', array('createEnd'=>date('YmdHis')), "id=$id"); +echo mysql_error().EOL; echo date ('Y/m/d - H:i:s')." - Historisation des anciens établissements...".EOL; -if (!$iDb->query("INSERT IGNORE INTO jo.etablissements_act_histo SELECT * FROM jo.etablissements_act;")) -die($iDb->getLastError()); +if (!$iDb->query("INSERT IGNORE INTO jo.etablissements_act_histo SELECT * FROM jo.etablissements_act;")) die($iDb->getLastError()); echo date ('Y/m/d - H:i:s')." - Rotation des tables 'etablissements_act'...".EOL; -if (!$iDb->query("DROP TABLE jo.etablissements_act_old;")) -die($iDb->getLastError()); -if (!$iDb->query("RENAME TABLE jo.etablissements_act TO jo.etablissements_act_old;")) -die($iDb->getLastError()); -if (!$iDb->query("RENAME TABLE jo.etablissements_actmp TO jo.etablissements_act;")) -die($iDb->getLastError()); +if (!$iDb->query("DROP TABLE jo.etablissements_act_old;")) die($iDb->getLastError()); +if (!$iDb->query("RENAME TABLE jo.etablissements_act TO jo.etablissements_act_old;")) die($iDb->getLastError()); +if (!$iDb->query("RENAME TABLE jo.etablissements_act_tmp TO jo.etablissements_act;")) die($iDb->getLastError()); echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion des Entreprises.\n"; sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Diffusion Entreprise", "$numRow établissements actifs diffusés".EOL.print_r($tabNaf5inconnu, true) .EOL. print_r($tabNaf4inconnu,true) ); -// etablissements_act_old die(); - ?> + ?> \ No newline at end of file diff --git a/batch/diffusionEntrepA6cmo.php b/batch/diffusionEntrepA6cmo.php index bbee0ede..cb64e472 100644 --- a/batch/diffusionEntrepA6cmo.php +++ b/batch/diffusionEntrepA6cmo.php @@ -4,109 +4,947 @@ if (!defined('VERSION_FICHIER_IDENTITE')) define('VERSION_FICHIER_IDENTITE','0106'); +$tLibFreq=array('Q'=>'Quotidien','H'=>'Hebdo','M'=>'Mensuel'); + /** * @todo - * 2. Pouvoir faire du multiligne avec : 106 Libellé du Périmètre de la vente - * 5. JugesCommissaires à intégrer correctement -*/ + * + * Lors de la fusion des prestations CRM Bodacc et A6CMO, prendre en compte la date de dernière exécution du traitmenent afin de ne pas renvoyer 2 fois la même information. + * Zipper les fichiers envoyés par mail + * +**/ include_once(FWK_PATH.'common/chiffres.php'); include_once(FWK_PATH.'common/dates.php'); include_once(INCLUDE_PATH.'bodacc/classMBodacc.php'); include_once(INCLUDE_PATH.'insee/classMInsee.php'); include_once(INCLUDE_PATH.'conversion/bilAltares.php'); +include_once(INCLUDE_PATH.'partenaires/classMRnvp.php'); include_once(FWK_PATH.'mail/sendMail.php'); $optionEOL=EOL; $stock=$dateDebut=$idClientTodo=false; +$dateDebutCmd=$listePresta=$forceExec=false; +$envoyerMail=true; $tabPrestas=array( 0=>array( - 'nomClient'=> 'ComComMuretain', - 'typePrestaton'=>'diffusionInsee', - 'clientIdentifiant'=>'DIFINSPRDFTSA6CMOMURETAIN', + 'nomClient'=> 'ComComMuretain', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMURETAIN', 'clientNumTourFichier'=>4, - 'nbBilansMax'=>0, - 'typeLigneBilan'=>401, - 'CodeCom'=> '31165,31248,31253,31287,31395,31421,31420,31433,31460,31475,31486,31499,31533,31580', - 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,'. - '7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,'. - '7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '31165,31248,31253,31287,31395,31421,31420,31433,31460,31475,31486,31499,31533,31580,31187,31181', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9223,9224', 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', - 'mailTo'=> 'ylenaour@scores-decisions.com', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'economie@agglo-muretain.fr,jean.louis.bouttier@agglo-muretain.fr', ), 1=>array( - 'nomClient'=> 'CAMontauban', - 'typePrestaton'=>'diffusionInsee', - 'clientIdentifiant'=>'DIFINSPRDFTSA6CMOMONTAUBAN', + 'nomClient'=> 'CAMontauban', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMONTAUBAN', 'clientNumTourFichier'=>1, - 'nbBilansMax'=>3, - 'typeLigneBilan'=>401, + 'nbBilansMax'=> 0, + 'typeLigneBilan'=> 401, 'CodeCom'=> '82121,82025,82124,82044,82195,82167,82001,82090', 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', 'CJ-'=> '1800,2700,3110,3205,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', - //'mailTo'=>'gaguade@ville-montauban.fr,support@scores-decisions.com', - 'mailTo'=> 'ylenaour@scores-decisions.com', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'cthau@ville-montauban.fr', ), 2=>array( - 'nomClient'=> 'CAHeninCarvin', - 'typePrestaton'=>'diffusionInsee', - 'clientIdentifiant'=>'DIFINSPRDFTSA6CMOHENINCARVIN', + 'nomClient'=> 'CAHeninCarvin', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOHENINCARVIN', 'clientNumTourFichier'=>1, - 'nbBilansMax'=>2, - 'typeLigneBilan'=>401, - 'CodeCom'=> '62148,62215,62249,62250,62274,62277,62321,62427,62497,62587,62624,62637,62724,62907', - 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', - 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', - //'mailTo'=>'gaguade@ville-montauban.fr,support@scores-decisions.com', - 'mailTo'=> 'ylenaour@scores-decisions.com', + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '62148,62215,62249,62250,62274,62277,62321,62427,62497,62907,62587,62624,62637,62724', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,9411Z,9412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,3210,3220,4110,4120,4130,4140,4150,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'celine.ort@agglo-henincarvin.fr,jean-pierre.ciesielski@agglo-henincarvin.fr,maxime.delacourt@agglo-henincarvin.fr', ), 3=>array( - 'nomClient'=> 'CANimesMetropole', - 'typePrestaton'=>'diffusionInsee', - 'clientIdentifiant'=>'DIFINSPRDFTSA6CMONIMESMETRO', + 'nomClient'=> 'CANimesMetropole', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMONIMESMETRO', 'clientNumTourFichier'=>1, - 'nbBilansMax'=>2, - 'typeLigneBilan'=>401, - 'CodeCom'=> '30047,30189,30060,30125,30169,30075,30156,30189,30061,30155,30211,30356,30128,30138,30145,30245,30036,30039,30082,30249,30206,30057,30257,30241,30102,30228,30317', + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '30047,30189,30060,30125,30169,30075,30156,30189,30061,30155,30211,30356,30128,30138,30145,30245,30036,30039,30082,30249,30206,30057,30257,30258,30241,30102,30228,30317', 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', - //'mailTo'=>'gaguade@ville-montauban.fr,support@scores-decisions.com', - 'mailTo'=> 'ylenaour@scores-decisions.com', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'pierre.rouzet@ville-nimes.fr', ), 4=>array( - 'nomClient'=> 'ADACL40', - 'typePrestaton'=>'diffusionInsee', - 'clientIdentifiant'=>'DIFINSPRDFTSA6CMOADACL40', + 'nomClient'=> 'ADACL40MACS', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOADACL40MACS', 'clientNumTourFichier'=>1, - 'nbBilansMax'=>2, - 'typeLigneBilan'=>401, - 'CodeCom'=> '40', - 'mailTo'=> 'ylenaour@scores-decisions.com,lestanguet.celluleprojet@adacl40.fr', + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '40004,40021,40036,40065,40129,40133,40168,40181,40187,40213,40261,40264,40271,40272,40284,40291,40292,40293,40296,40304,40310,40317,40328', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=>'M', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'duvignau.observatoire@adacl40.fr',//sig@adacl40.fr, ), 5=>array( - 'nomClient'=> 'CATerresDeFrance', - 'typePrestaton'=>'diffusionInsee', + 'nomClient'=> 'CATerresDeFrance', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, 'clientIdentifiant'=>'DIFINSPRDFTSA6CMOCATDF', 'clientNumTourFichier'=>1, - 'nbBilansMax'=>2, - 'typeLigneBilan'=>401, + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, 'CodeCom'=> '93071,93078,93073', 'CJ'=>'3110,3120,4110,4120,4130,4140,4150,4160,5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5385,5410,5415,5422,5426,5430,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5485,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5585,5599,5605,5610,5615,5620,5622,5625,5630,5631,5632,5642,5643,5646,5647,5648,5651,5652,5653,5654,5655,5658,5659,5660,5685,5699,5710,5720,5785,5800,6100,6210,6220,6316,6317,6318,6411,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,6901', - 'mailTo'=> 'ylenaour@scores-decisions.com,cendrine.lebouffant@caterresdefrance.fr', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien +//'mailTo'=> 'ylenaour@scores-decisions.com,cendrine.lebouffant@caterresdefrance.fr', ), 6=>array( - 'nomClient'=> 'CACLichyMontf', - 'typePrestaton'=>'diffusionInsee', - 'clientIdentifiant'=>'DIFINSPRDFTSA6CMOCLICHYM', + 'nomClient'=> 'CACLichyMontf', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCLICHYM', 'clientNumTourFichier'=>1, - 'nbBilansMax'=>2, - 'typeLigneBilan'=>401, + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, 'CodeCom'=> '93014,93047', 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', - 'mailTo'=> 'ylenaour@scores-decisions.com,julien.aumand@cacm93.fr,jrose.louisds@cacm93.fr', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'julien.aumand@cacm93.fr,jrose.louisds@cacm93.fr', ), - /* + 7=>array( + 'nomClient'=> 'CAEvryCentreEssonne', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOEVRYCE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '91086,91182,91228,91340,91521,91659', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1700,1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'damien.le.mee@agglo-evry.fr', + ), + 8=>array( + 'nomClient'=> 'CASQY', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOSQY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '78208,78297,78356,78423,78621,78644,78688', + //'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'NAF-'=> '2711Z,4781Z,4782Z,4789Z,4799A,4932Z,5221Z,6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + //'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'CJ-'=> '1800,2700,6539,6540,6541,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'Jonathan.CRUSSON@agglo-sqy.fr', + ), +/*8=>array( + 'nomClient'=> 'CASQY', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOSQY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '78208,78297,78356,78423,78621,78644,78688', + 'NAF-'=> '4782Z,4789Z,4799A,4932Z,5221Z,6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,6539,6540,6541,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'mailTo'=> 'ylenaour@scores-decisions.com', +),*/ + 9=>array( + 'nomClient'=> 'ComValenton', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOVALENTON', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 94074, + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'ali.laouari@ville-valenton.fr', + ), + 10=>array( + 'nomClient'=> 'ComComVallonsTour', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOVALLONS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=>'38064,38148,38162,38076,38509,38296,38341,38377,38381,38401', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'danielle.guicherd@lesvallonsdelatour.fr,matthieu.bodart@lesvallonsdelatour.fr', + ), + 11=>array( + 'nomClient'=> 'CAChotelais', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCHOTELAIS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=>'49099,49332,49269,49343,49070,49299,49260,49355,49371,49231,49352,49193,49195', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', +// 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', +// 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'twargnier@agglo-choletais.fr,lcharotte@agglo-choletais.fr', + ), + 12=>array( + 'nomClient'=> 'CAValDeBievres', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSTSTFTSA6CMOVALDEBIEVRES', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=>'94003,94016,94034,94037,94043,94038,94076', + //'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ'=>'5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5370,5385,5410,5415,5422,5426,5430,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5470,5485,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5570,5585,5599,5605,5610,5615,5620,5622,5625,5630,5631,5632,5642,5643,5646,5647,5648,5651,5652,5653,5654,5655,5658,5659,5660,5670,5685,5699,5710,5720,5770,5785', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + //'mailTo'=>'twargnier@agglo-choletais.fr', + ), + 13=>array( + 'nomClient'=> 'Anthony', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOANTHONY', + 'clientNumTourFichier'=>2, + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '92002', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + //'mailTo'=>'twargnier@agglo-choletais.fr', + ), + /*14=>array( + 'nomClient'=> 'CUB', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSTSTFTSA6CMOMOMCUB', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=>'33003,33004,33013,33032,33039,33056,33063,33065,33075,33096,33119,33162,33167,33192,33069,33200,33519,33249,33273,33273,33312,33318,33376,33434,33449,33487,33522,33550', + 'NAF-'=>'4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + //'mailTo'=>'ylenaour@scores-decisions.com', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + ),*/ + 14=>array( + 'nomClient'=> 'PaysDesCouleurs', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPAYSCOULEURS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=>'38014,38022,38050,38054,38055,38083,38135,38139,38247,38261,38295,38297,38320,38458,38465,38483,38525,38541,38543,38124', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'directiondeveloppement@lepaysdescouleurs.fr', + ), + 15=>array( + 'nomClient'=> 'Oleron', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPMOLERON', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=>'17058,17185,17189,17219,17265,17351,17406,17093,17140,17323,17337,17385,17411,17485,17486', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=>'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'p.hedin@marennes-oleron.com', + ), + 16=>array( + 'nomClient'=> 'Rosny', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOROSNY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '93064', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'economie@mairie-rosny-sous-bois.fr', + ), + 17=>array( + 'nomClient'=> 'CAParisis', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPARISIS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '95051,95060,95176,95252,95257,95306,95424,95488,95582,95607,95306,95424,95488,95582,95607', + 'NAF-'=>'6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'xavier.garnier@agglo-leparisis.fr', + ), + 18=>array( + 'nomClient'=> 'CCdesHERBIERS', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOHERBIERS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '85017,85082,85109,85144,85153,85242,85259,85301', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'eco@cc-paysdesherbiers.fr', + ), + 19=>array( + 'nomClient'=> 'CAVersaillesGP', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOGRANDPARC', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '78043,91064,78073,78117,78143,78242,78322,78343,78455,78518,78524,78545,78620,78646,78686,78092,78126,78158', + 'CJ-'=> '6539,6540,6541,9150,9210,9220,9221,9222,9223,9224,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'anne.klaric-burban@grandparc.fr', + ), + 20=>array( + 'nomClient'=> 'CAurop\'Essonne', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOEUROPE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '91044,91136,91161,91216,91339,91345,91363,91377,91425,91458,91587,91661,91665,91666', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'doua.diawara@europessonne.fr', + ), + 21=>array( + 'nomClient'=> 'CCLandivisiau', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOLANDIVIS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, + //'typeLigneBilan'=> 401, + 'CodeCom'=> '29010,29038,29068,29074,29097,29105,29128,29131,29187,29193,29204,29210,29213,29244,29262,29264,29271,29277,29301', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'n.jezequel-abernot@pays-de-landivisiau.com', + ), +/*22=>array( + 'nomClient'=> 'CCLandivisiau', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOLANDIVIS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, +//'typeLigneBilan'=> 401, + 'CodeCom'=> '29097', + 'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=>'n.jezequel-abernot@pays-de-landivisiau.com', +),*/ + 22=>array( + 'nomClient'=> 'ADACL40', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOADACL40', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=>3, + 'typeLigneBilan'=>401, + 'CodeCom'=> '40', +// 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', +// 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'mailTo'=> 'maubourguet.observatoire@adacl40.fr', //duvignau.observatoire@adacl40.fr + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + ), + 23=>array( + 'nomClient'=> 'FONTENAY', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOFONTENAY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 94033, + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,9411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,3210,3220,4110,4120,4130,4140,4150,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'jeanchristophe.zussa@fontenay-sous-bois.fr,nathalie.chapelle@fontenay-sous-bois.fr', + ), + 24=>array( + 'nomClient'=> 'PLAINECVM94', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPLAINECVM', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 2, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '94002,94028,94044', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z,8425Z,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260,3210,3220,4110,4120,4130,4140,4150,7340,7344,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'sdespots@agglo-plainecentrale94.fr,agondouinleble@agglo-plainecentrale94.fr', + ), + 25=>array( + 'nomClient'=> 'CACentreMartinique', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCACEM', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '97209,97213,97224,97229', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'georgina.clouet@cacem-mq.com', + ), + 26=>array( + 'nomClient'=> 'TremblayEnFrance', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOTREMBLAY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, + //'typeLigneBilan'=> 401, + 'CodeCom'=> '93073', + 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1400,1700,1800,2110,2120,2210,2220,2310,2320,2385,2400,2700,2900,3110,3205,3210,3220,3290,4110,4120,4130,4140,4150,4160,5191,5192,5193,5194,5195,5196,5202,5203,6316,6317,6318,6411,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,6901,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8210,8250,8290,8310,8311,8410,8420,8450,8470,8490,8510,8520,9110,9150,9210,9220,9221,9222,9223,9224,9230,9240,9260,9300,9900,9970', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'developpement.economique@tremblayenfrance.fr,e.kwiatkowski@tremblayenfrance.fr', + ), + 27=>array( + 'nomClient'=> 'CCCentreMauges', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCCCMAUGES', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, + //'typeLigneBilan'=> 401, + 'CodeCom'=> '49006,49023,49027,49072,49151,49162,49165,49239,49243,49312,49375', +// 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'm.thibaudeau@cc-centre-mauges.fr', + ), + 28=>array( + 'nomClient'=> 'AUDSeineAval', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOAUDAS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '78123,78140,78138,78624,78642,78015,78090,78033,78029,78238,78451,78327,78401,78403,78460,78609,78638,78113,78317,78189,78049,78010,78196,78672,78415,78227,78431,78384,78382,78380,78368,78305,78261,78206,78172,78299,78440,78466,78643,78498,78005,78362,78531,78528,78118,78202,78239,78354,78361,78391,78437,78501,78291,78057,78089,78255,78276,78320,78068,78337,78410,78344,78385,78444,78147,78107,78188,78082,78558,78559,78668,78324,78530,78484,78503,78325,78536,78567,78647,78677,78597,78230,78020,78031,78070,78072,78104,78231,78234,78245,78246,78281,78290,78296,78300,78314,78402,78335,78217,78267,78608', +// 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', +// 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 's.longfier@agglo2rs.fr,sbelkadi@ville-poissy.fr,sacomat@mairie-lesmureaux.fr,p.lecomte@mde-mantois.fr', + ), + 29=>array( + 'nomClient'=> 'CAPlaineCommune', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPLAINEC', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '93001,93031,93027,93039,93059,93066,93070,93072,93079',//,75119.3259', +// 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> 1800, + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'sandra.laurol@plainecommune.com.fr', + ), + /*31=>array( + 'nomClient'=> 'CAPlaineCommune', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 0, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMO', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '91064', +// 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '6539,6540,6541,9150,9210,9220,9221,9222,9223,9224,9230,9240,9260', + 'mailTo'=> 'aferreira@scores-decisions.com', + ),*/ + 30=>array( + 'nomClient'=> 'CCParthenay', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPARTHENAY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '79202,79080,79002,79118,79322,79071,79213', +// 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,1900', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'becotca@cc-parthenay-gatine.fr', + ), + 31=>array( + 'nomClient'=> 'CANimesMetro', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 0, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMONIMESMETRO', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 30258, + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + //'mailTo'=> '', + ), + 32=>array( + 'nomClient'=> 'A6CMOTest94', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, // Fin du test le 15/07/2014 + 'clientIdentifiant'=> 'DIFINSTSTFTSA6CMOTEST', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 94081, + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'prestatest_c'=> 1, + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + //'mailTo'=> '', + ), + 33=>array( + 'nomClient'=> 'A6CMOMontfortCom', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMONTFORT', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 0, + //'typeLigneBilan'=> 401, + 'CodeCom'=> '35023,35040,35133,35188,35203,35227,35277,35331', + //'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1700,1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'pae@cc-montfort.fr', + ), + 34=>array( + 'nomClient'=> 'A6CMOGrandTroyes', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 0, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOTROYES', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '10060,10067,10173,10081,10321,10265,10260,10297,10325,10333,10343,10344,10357,10362,10340,10387,10363,10381,10406', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z ,9411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,3210,3220,4110,4120,4130,4140,4150,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'olivier.alves@grand-troyes.fr,lauriane.sauvadet@grand-troyes.fr', + ), + 35=>array( + 'nomClient'=> 'CAChotelais', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 0, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCHOTELAIS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '49099,49332,49269,49343,49070,49299,49260,49355,49371,49231,49352,49193,49195', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'twargnier@agglo-choletais.fr,lcharotte@agglo-choletais.fr', + ), + 36=>array( + 'nomClient'=> 'CcPaysDeNay', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPAYSNAY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '64067,64413,64023,64054,64058,64068,64091,64101,64109,64119,64133,64137,64138,64145,64148,64191,64257,64270,64302,64339,64386,64400,64417,64444,64469,64498,65176,65018', + 'NAF-'=> '4799A,4950Z,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'f.gonnet@paysdenay.fr', + ), + 37=>array( + 'nomClient'=> 'CcPaysDeNay', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 0, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPAYSNAY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '64067,64413,64023,64054,64058,64068,64091,64101,64109,64119,64133,64137,64138,64145,64148,64191,64257,64270,64302,64339,64386,64400,64417,64444,64469,64498,65176,65018', + 'NAF'=> '4781Z,4782Z,4789Z,6820A,6820B', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + //'mailTo'=> '', + ), + 38=>array( + 'nomClient'=> 'CcEstTourangeau', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 0, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOESTTOUR', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '37015,37124,37273,37267,37156', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'soufiane.khachlaa@cc-est-tourangeau.fr', + ), + 39=>array( + 'nomClient'=> 'CAValMaubuée', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMAUBUEE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '77468,77083,77337,77258,77169,77146', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,6539,6540,6541,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'observatoire@valmaubuee.fr', + ), + 40=>array( + 'nomClient'=> 'CACergy', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCERGY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '78382,95074,95127,95183,95218,95323,95388,95450,95476,95500,95510,95572,95637', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,9411Z,9412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,8310,8311,8410,8420,8450,8490', + //'CJ'=> '9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'amandine.masse@cergypontoise.fr,blandine.gaombalet@cergypontoise.fr,romaric.moyon@cergypontoise.fr', + ), + 41=>array( + 'nomClient'=> 'CAPlateauSaclay', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCAPS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '91477,91471,91272,91122,91312,91692,91275,91534,91679,91635,91538', + 'NAF-'=> '4110D,4950Z,6420Z,6430Z,6619A,6820A,6820B,6832B,7010Z,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,3210,4110,4120,4130,4140,4150,4160,6539,6540,6541,6542,6543,6544,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,9110,9150,9210,9220,9222,9223,9230,9240,9260,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'drissa.kone@caps.fr', + ), + 42=>array( + 'nomClient'=> 'ComMerignac', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMERIGNAC', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 33281, + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'economie@merignac.com,c.pamelard@merignac.com', + ), + 43=>array( + 'nomClient'=> 'CUB', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRODFTSA6CMOMOMCUB', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '33003,33004,33013,33032,33039,33056,33063,33065,33075,33096,33119,33162,33167,33192,33069,33200,33519,33249,33273,33273,33312,33318,33376,33434,33449,33487,33522,33550', + 'NAF-'=> '4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'Q', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'dirfapagde@cu-bordeaux.fr', + ), + 44=>array( + 'nomClient'=> 'CC Vallet', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOVALLET', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '44032,44108,44117,44140,44212,44016', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'cjousseaume@cc-vallet.fr,sruaud@cc-vallet.fr', + ), + 45=>array( + 'nomClient'=> 'Sartrouville', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOSARTROUVIL', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 78586, + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'economique@ville-sartrouville.fr', + ), + 46=>array( + 'nomClient'=> 'CA Seine Amont', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOAMONT', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '94041,94081,94022', + //'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,6539,6540,6541,9210,9240,9260', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'charles.seban@seine-amont.fr', + ), + 47=>array( + 'nomClient'=> 'CC Lacs Essonne', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOLACS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '91286,91687', + 'CJ-'=> '1800,2700,6200,6210,6220,6511,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,7111,7112,7113,7120,7130,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,9110,9150,9210,9220,9221,9222,9223,9224,9230,9240,9260,9300,9900,9970', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'o.drouen@leslacsdelessonne.fr', + ), + 48=>array( + 'nomClient'=> 'CA La Brie Francilienne', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOBRIE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '77390,77373', + 'CJ-'=> '1800,2700,6200,6210,6220,6511,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,7111,7112,7113,7120,7130,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,9110,9150,9210,9220,9221,9222,9223,9224,9230,9240,9260,9300,9900,9970', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'b.amar@briefrancilienne.fr', + ), + 49=>array( + 'nomClient'=> 'CAPlaineCommuneAmelia', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOPLAINECTEST', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> // '93001,93031,93027,93039,93059,93066,93070,93072,93079, + '75119.3259,75118.6128,75118.7846,75118.2819,75117.9359,75117.3880,75117.4610', + // 75119.3259 - Rue Emile Reynaud + // 75118.6128 - Impasse MArteau + // 75118.7846 - Rue du prof gosset + // 75118.2819 - Rue du dr babinski + // 75117.9359 - Rue toulouse lautrec + // 75117.3880 - Rue fructidor + // 75117.4610 - Rue herault de seychelles + + // 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> 1800, + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'aferreira@scores-decisions.com,ylenaour@scores-decisions.com', + ), + 50=>array( + 'nomClient'=> 'MEIFE93', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMEIFE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '93005,93007,93071,93073,93078', +// 'NAF-'=> '6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', +// 'CJ-'=> 1800, + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'fzahaf@meife-93.com,fsalah@meife-93.com', + ), + 51=>array( + 'nomClient'=> 'CC_MONTESQUIEU', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMONTESQ', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '33501,33474,33454,33448,33274,33238,33213,33206,33109,33080,33077,33037,33023', + 'NAF-'=> '8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,8411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,3210,3220,4110,4120,4130,4140,4150,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9230,9240,9260,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'assistant-economie@cc-montesquieu.fr', + ), + 52=>array( + 'nomClient'=> 'CC_PaysChallans', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOCHALLANS', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '85024,85047,85062,85095,85096,85280', + 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260,9300', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'resp-eco@cc-paysdechallans.fr', + ), + 53=>array( + 'nomClient'=> 'Gennevilliers', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOGENVIL', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> 92036, + 'NAF-'=> '6420Z,6430Z,6612Z,6810Z,6820Z', + 'CJ-'=> '1800,6539,6540,6541', + 'freqenvois'=> 'H', // H:Hebdo, M=Mensuel, Q=Quotidien + 'mailTo'=> 'service-economique@ville-gennevilliers.fr', + ), +/* + 1000=>array( + 'nomClient'=> 'CC_MONTROUGE', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOMONTROUGE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '92049', + 'NAF-'=> '8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,8411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ'=> '5720', + 'freqenvois'=> 'S', // H:Hebdo, M=Mensuel, Q=Quotidien, S=Sans fréquence/Non défini (pour les tests) + 'mailTo'=> 'support@scores-decisions.com', + ), + 1001=>array( + 'nomClient'=> 'CC_ALES', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOALES', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '30007', + 'NAF-'=> '8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,8411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ'=> '5720', + 'freqenvois'=> 'S', // H:Hebdo, M=Mensuel, Q=Quotidien, S=Sans fréquence/Non défini (pour les tests) + 'mailTo'=> 'support@scores-decisions.com', + ), + 1002=>array( + 'nomClient'=> 'CCValIlle', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOILLE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '35193', + 'NAF-'=> '8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,8411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ'=> '5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5370,5385,5410,5415,5422,5426,5430,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5470,5485,5488,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5570,5585,5599,5605,5610,5615,5620,5622,5625,5630,5631,5632,5642,5643,5646,5647,5648,5651,5652,5653,5654,5655,5658,5659,5660,5670,5685,5699,5710,5720,5770,5785,5800', + 'freqenvois'=> 'S', // H:Hebdo, M=Mensuel, Q=Quotidien, S=Sans fréquence/Non défini (pour les tests) + 'mailTo'=> 'support@scores-decisions.com', + ), + 1003=>array( + 'nomClient'=> 'CCSudPaysBasque', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOSUDBASQUE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '64260', + 'NAF-'=> '8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8425Z,8430A,8430B,8430C,8510Z,8520Z,8531Z,8532Z,8541Z,8542Z,8411Z,8412Z,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ'=> '5710,5720,5770,5785', + 'freqenvois'=> 'S', // H:Hebdo, M=Mensuel, Q=Quotidien, S=Sans fréquence/Non défini (pour les tests) + 'mailTo'=> 'support@scores-decisions.com', + ), + 1004=>array( + 'nomClient'=> 'CULilleMetro', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOLILLE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '59328', + 'CJ'=> '5710', + 'freqenvois'=> 'S', // H:Hebdo, M=Mensuel, Q=Quotidien, S=Sans fréquence/Non défini (pour les tests) + 'mailTo'=> 'support@scores-decisions.com', + ), + 1005=>array( + 'nomClient'=> 'CCOuestGuyane', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOGUYANE', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '97306', + 'CJ'=> '5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5570,5585,5599,5605,5610,5615,5620,5622,5625,5630,5631,5632,5642,5643,5646,5647,5648,5651,5652,5653,5654,5655,5658,5659,5660,5670,5685,5699,5710,5720,5770,5785', + 'freqenvois'=> 'S', // H:Hebdo, M=Mensuel, Q=Quotidien, S=Sans fréquence/Non défini (pour les tests) + 'mailTo'=> 'support@scores-decisions.com', + ), +/*8=>array( + 'nomClient'=> 'CASQY', + 'typePrestaton'=> 'diffusionInsee', + 'prestaActive'=> 1, + 'clientIdentifiant'=> 'DIFINSPRDFTSA6CMOSQY', + 'clientNumTourFichier'=>1, + 'nbBilansMax'=> 3, + 'typeLigneBilan'=> 401, + 'CodeCom'=> '78208,78297,78356,78423,78621,78644,78688', + 'NAF-'=> '4782Z,4789Z,4799A,4932Z,5221Z,6820A,6820B,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z', + 'CJ-'=> '1800,2700,6539,6540,6541,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', + 'mailTo'=> 'ylenaour@scores-decisions.com,Jonathan.CRUSSON@agglo-sqy.fr', +), +/* 4=>array( 'nomClient'=> 'Tremblay', 'typePrestaton'=>'diffusionInsee', @@ -117,28 +955,24 @@ $tabPrestas=array( 'CodeCom'=> '30047,30189,30060,30125,30169,30075,30156,30189,30061,30155,30211,30356,30128,30138,30145,30245,30036,30039,30082,30249,30206,30057,30257,30241,30102,30228,30317', 'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z', 'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260', - //'mailTo'=>'gaguade@ville-montauban.fr,support@scores-decisions.com', + //'mailTo'=>'e.kwiatkowski@tremblayenfrance.fr', 'mailTo'=> 'ylenaour@scores-decisions.com', - ),/* Les vallons de la tour - $nbBilansMax=1; - $typeLigneBilan=401;//400; - $nbEtab=$iDb->select('etablissements_old', 'siren, nic', "source=2 AND actif=1 AND siege IN (0,1) AND adr_dep IN ('38','038') AND adr_com IN (064,148,162,076,509,296,341,377,381,401)", true, MYSQL_ASSOC, true); - - // Anthony - $nbBilansMax=2; - $typeLigneBilan=401; - $nbEtab=$iDb->select('etablissements_old', 'siren, nic', "source=2 AND actif=1 AND cj NOT IN($strFJ) AND ape_etab NOT IN($strNAF) AND siege IN (0,1) AND adr_dep IN ('92','092') AND adr_com IN (2)", true, MYSQL_ASSOC, true); - */ + ), + */ ); $strInfoScript='Usage : '.basename($argv[0]). " [OPTION] -Production de stock/Diffusion des bases A6CMO. +Production de stock/Diffusion des bases A6CMO (ce traitement ce lance automatiquement pour les diffusions le lundi). Options : -s Génération du stock -d=SSAAMMJ(JHHIISS) Diffusion depuis le SSAAMMJJ ou SSAAMMJJHHIISS -c=XXX N° de client/prestation + -l Liste des clients/prestations -v Verbosité maximum + -m Ne pas envoyer d'email + -f Forcer l'exécution + -r=XXX Reprendre le traitement au client/prestation n°XXX "; $argv=$_SERVER['argv']; @@ -147,33 +981,72 @@ 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 's': $stock=true; break; - case 'v': $debug=true; break; - case 'd': $dateDebut=strtr(substr($argv[$i],3),array('-'=>'',':'=>'')); break; + case 's': $stock=true; break; + case 'v': $debug=true; break; + case 'f': $forceExec=true; break; + case 'd': $dateDebutCmd=strtr(substr($argv[$i],3),array('-'=>'',':'=>''))*1; break; case 'c': $idClientTodo=substr($argv[$i],3); break; + case 'r': $iRepriseClient=substr($argv[$i],3); break; + case 'l': $listePresta=true; break; + case 'm': $envoyerMail=false; break; case '-': - case '?': die($strInfoScript); break; - default: die('Option '. $argv[$i] . " inconnue !\n"); - break; + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); break; } } else $tabFichier[]=$argv[$i]; } } -if ($dateDebut) { - if (strlen($dateDebut)==8) - $dateDebut=WDate::dateT('Ymd','Y-m-d',$dateDebut).' 00:00:00'; - elseif (strlen($dateDebut)==14) - $dateDebut=WDate::dateT('YmdHis','Y-m-d H:i:s',$dateDebut); - else die('Format de date incorrecte !'.EOL); +/* +$ACTIVNAT=' '; +echo '$ACTIVNAT=\''. $ACTIVNAT."'\t"; +if ($ACTIVNAT>'00' && $ACTIVNAT<'99' && $ACTIVNAT<>'NN') + echo 'VRAI'.EOL; +else + echo 'FAUX'.EOL; + +die(); +*/ + +if ($listePresta) { + foreach ($tabPrestas as $idClient=>$tabPresta) { + $nomClient=$tabPresta['nomClient']; + $typePrestaton=$tabPresta['typePrestaton']; + $clientIdentifiant=$tabPresta['clientIdentifiant']; + $strDepCom=$tabPresta['CodeCom']; + $nbBilansMax=$tabPresta['nbBilansMax']; + $typeLigneBilan=$tabPresta['typeLigneBilan']; + $prestaActive=$tabPresta['prestaActive']; + if($prestaActive) echo "Actif\t"; + else echo "INACTIF\t"; + $freq=$tLibFreq[$tabPresta['freqenvois']]; + echo "n°$idClient\t$clientIdentifiant\t$nomClient\t$tabDepCom\t$nbBilansMax bilans\t$freq".EOL; + } + die(); +} + +if ($dateDebutCmd!==false) { + if (strlen($dateDebutCmd)==8) + $dateDebut=WDate::dateT('Ymd','Y-m-d',$dateDebutCmd).' 00:00:00'; + elseif (strlen($dateDebutCmd)==14) + $dateDebut=WDate::dateT('YmdHis','Y-m-d H:i:s',$dateDebutCmd); + elseif ($dateDebutCmd==0) + $dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -7)).' 00:00:00'; + else + die('Format de date incorrecte !'.EOL); } $iDb=new WDB('jo'); $iDb2=new WDB('jo'); $iInsee=new MInsee(); $iBodacc=new MBodacc(); +$iRnvp=new MRnvp(); + +$tabProduction=array(); foreach ($tabPrestas as $idClient=>$tabPresta) { + if ($iRepriseClient>$idClient) continue; + $numPrestation=$idClient; $nomClient=$tabPresta['nomClient']; $typePrestaton=$tabPresta['typePrestaton']; @@ -186,14 +1059,52 @@ foreach ($tabPrestas as $idClient=>$tabPresta) { $tabDepCom=explode(',',$tabPresta['CodeCom']); $nbBilansMax=$tabPresta['nbBilansMax']; $typeLigneBilan=$tabPresta['typeLigneBilan']; + $prestaActive=$tabPresta['prestaActive']; - if ($idClientTodo && $idClientTodo<>$idClient) { + if (($idClientTodo && $idClientTodo<>$idClient) || $prestaActive===0 && $forceExec==false) { echo date('Y/m/d - H:i:s') ." - On ignore le traitement pour '$nomClient'...".EOL; continue; + } elseif (@$tabPresta['freqenvois']=='M' && (!$stock || !$forceExec)) { + // Fréquence Mensuelle : le 1er lundi du mois + if((date('w')<>1 || date('d')*1>7) && $forceExec==false) { + echo date('Y/m/d - H:i:s') ." - On ignore le traitement Mensuel pour '$nomClient'...".EOL; + continue; + } elseif ($dateDebutCmd==false) { + // Si aucune date de début de périmètre alors on force au mois précédent + $dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -31)).' 00:00:00'; + //$dateDebut=20130101; + } + } elseif ((@$tabPresta['freqenvois']=='H' || @$tabPresta['freqenvois']=='') && !$stock) { + // Fréquence Hebdomadaire (par défaut) : le lundi + if(date('w')<>1 && !$forceExec) { + echo date('Y/m/d - H:i:s') ." - On ignore le traitement Hebdo pour '$nomClient'...".EOL; + continue; + } elseif ($dateDebutCmd==false) { + // Si aucune date de début de périmètre alors on force au mois précédent + $dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -7)).' 00:00:00'; + //$dateDebut=20130101; + } + } elseif (@$tabPresta['freqenvois']=='Q' && !$stock) { + // Fréquence Quotidienne : du lundi au vendredi + if((date('w')==0 || date('w')==6) && !$forceExec) { + echo date('Y/m/d - H:i:s') ." - On ignore le traitement Quotidien pour '$nomClient'...".EOL; + continue; + } elseif ($dateDebutCmd==false) { + if (date('w')==1) + $dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -3)).' 00:00:00'; + else + $dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -1)).' 00:00:00'; + } + } + + if ($idClientTodo && $idClientTodo==$idClient) { + $nomClientTodo=$nomClient; + $numPrestationTodo=$numPrestation; + } + + if (@$tabPresta['prestatest_c']==1) { + echo date('Y/m/d - H:i:s') ." - Prestation pour '$nomClient' en TEST (@todo ne pas compter les RDV Insee)...".EOL; } - /* - 'mailTo'=> 'ylenaour@scores-decisions.com', - */ /** ** On génère la ligne d'entête @@ -201,14 +1112,20 @@ foreach ($tabPrestas as $idClient=>$tabPresta) { $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); + $dateDeb=date('YmdHis'); $str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne - initstr(date('YmdHis'), 14) . // Date de génération du fichier + initstr($dateDeb, 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_IDENTITE, 4) . // Type de prestation initstr(FILLER, 1901) . // FILLER ''; + $tabProduction[$idClient]['nomClient']=$nomClient; + $tabProduction[$idClient]['dateDeb']=$dateDeb; + $tabProduction[$idClient]['dateRetro']=$dateDebut; + $tabProduction[$idClient]['frequence']=@$tabPresta['freqenvois']; + $timeDeb = microtime(true); fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes=1; @@ -228,21 +1145,48 @@ foreach ($tabPrestas as $idClient=>$tabPresta) { else $strNAF =''; - $strDepCom="'".implode("','",$tabDepCom)."'"; - $strDepComStock=''; + /* @modif du 08/10/2014 + * $strDepCom="'".implode("','",$tabDepCom)."'"; + * par : + * insDEPET et + insCOMET + */ + $strDepCom=$strDepComStock=''; foreach ($tabDepCom as $idepcom=>$depcom) { - if ($idepcom==0) { - $strDepComStock.="AND adr_dep IN ('".substr($depcom,0,2)."','0".substr($depcom,0,2)."') "; - if (trim(substr($depcom,3,2))<>'') $strDepComStock.="AND adr_com IN (".substr($depcom,2,3); - } else { - if (trim(substr($depcom,3,2))<>'') $strDepComStock.=substr($depcom,2,3); + /** @todo Vérifier si les DOM fonctionnent **/ + if ($idepcom==0) { + $strDepCom.="AND ("; + $strDepComStock.="AND ("; } - if (isset($tabDepCom[$idepcom+1])) $strDepComStock.=','; - elseif (trim(substr($depcom,3,2))<>'') $strDepComStock.=')'; + $strDepCom.="(insDEPET IN ('".substr($depcom,0,2)."','0".substr($depcom,0,2)."'"; + $strDepComStock.="(adr_dep IN ('".substr($depcom,0,2)."','0".substr($depcom,0,2)."'"; + if (substr($depcom,0,2)>96) { + $strDepCom.=",'".substr($depcom,0,3)."'"; + $strDepComStock.=",'".substr($depcom,0,3)."'"; + } + $strDepCom.=") "; $strDepComStock.=") "; + if (substr($depcom,2,3)*1==0) $depSeul=true; + else { + $depSeul=false; + $strDepCom.="AND insCOMET=".substr($depcom,2,3); + $strDepComStock.="AND adr_com=".substr($depcom,2,3); + // On test si il y a présence d'un code rivoli séparé par un point "." + if (substr($depcom,5,1)=='.') { + $strDepCom.=" AND insCODEVOIE LIKE '".substr($depcom,6,4)."%'"; + $strDepComStock.=" AND rivoli LIKE '".substr($depcom,6,4)."%'"; + } + } + $strDepCom.=") "; $strDepComStock.=") "; + if (isset($tabDepCom[$idepcom+1])) { $strDepCom.=' OR '; $strDepComStock.=' OR '; } + elseif (trim(substr($depcom,3,2))<>'') { $strDepCom.=')'; $strDepComStock.=')'; } + elseif ($depSeul) { $strDepCom.=')'; $strDepComStock.=')'; } } // Com Com Muretains - echo date('Y/m/d - H:i:s') ." - Sélection de la cible pour '$nomClient'...".EOL; + if ($stock) + echo date('Y/m/d - H:i:s') ." - Sélection du stock pour '$nomClient' (dernier ".@$tabPresta['freqenvois']." le $dateDebut).".EOL; + else + echo date('Y/m/d - H:i:s') ." - Sélection de la cible ".@$tabPresta['freqenvois']." pour '$nomClient' depuis $dateDebut...".EOL; if ($stock) { $field='siren, nic'; @@ -263,18 +1207,19 @@ foreach ($tabPrestas as $idClient=>$tabPresta) { MAX(insMAPEN) AS insMAPEN, MAX(insMENSEIGNE) AS insMENSEIGNE, MAX(insMAPET) AS insMAPET, MAX(insMADRESSE) AS insMADRESSE, MAX(insMAUXILT) AS insMAUXILT, MAX(insMSIGLE) AS insMSIGLE, MAX(insMEXPLEN) AS insMEXPLEN, MAX(insMEXPLET) AS insMEXPLET, insDREACTET, insDREACTEN'; $table='insee.insee_even'; - $where="insDEPCOM IN ($strDepCom) $strFJ $strNAF AND dateInsert>='$dateDebut' GROUP BY insSIREN, insNIC"; + $where="1 $strDepCom $strFJ $strNAF AND dateInsert>='$dateDebut' AND (insVMAJ NOT IN ('I','F') OR insVMAJ2=1 OR insVMAJ3=1) GROUP BY insSIREN, insNIC"; $nbEtab=$iDb->select($table, $field, $where, true, MYSQL_ASSOC, true); } - + echo "SELECT $field FROM $table WHERE $where; "; echo mysql_error().EOL; echo date('Y/m/d - H:i:s') ." - Nombre d'établissement en sortie : ".$nbEtab.EOL; + $tabProduction[$idClient]['nbEtabs']=$nbEtab; $lL=0; - + $nbLignes200=$nbLignesBil=0; while($lSiret=$iDb->fetch(MYSQL_ASSOC)) { $lL++; // Réinitialisation de zones @@ -284,11 +1229,85 @@ WHERE $where; $siren=$lSiret['siren']; $nic=$lSiret['nic']; - $a=$iInsee->getIdentiteEntreprise($siren,$nic); - $b=$iInsee->getInfosNotice($siren,$nic); - $c=$iInsee->getAdresse($siren,$nic); + $t1=microtime(1); + $a=@$iInsee->getIdentiteEntreprise($siren,$nic); + $t2=microtime(1); + @$tTime['Identite']+=$t2-$t1; + $b=@$iInsee->getInfosNotice($siren,$nic); + $t3=microtime(1); + @$tTime['Notice']+=$t3-$t2; + $c=@$iInsee->getAdresse($siren,$nic); + $t4=microtime(1); + @$tTime['Adresse']+=$t4-$t3; + if (!$stock) { - $ev_EVE=$lSiret['insEVE']; + $ev_EVE=trim($lSiret['insEVE']); + // Conversion de sirene4 en sirene3 + switch($ev_EVE) { + case 'CE': // Création établissement + case 'CC': // Création par le calage + $ev_EVE=130; // Création de l'établissement + break; + case 'CS': // Création siège + $ev_EVE=110; // Création de l'entreprise + break; + case 'SU': // Cessation juridique + $ev_EVE=410; // Cessation juridique de l'entreprise + break; + case 'O': // Sortie du champ de la diffusion commerciale + $ev_EVE=795; // Personne radiée à sa demande de de la base SIRENE diffusion + break; + case 'RI': // Refus d'immatriculation au RCS + $ev_EVE=810; // Suppression du SIREN suite au refus d'inscription au RCS + break; + case 'I': // Entrée dans le champ de la diffusion commerciale + $ev_EVE=125; // Réactivation de l'entreprise suite à une mise à jour du répertoire SIRENE + break; + case 'RE': // Réactivation établissement + $ev_EVE=145; // Reprise d'activité de l'établissement suite à une mise à jour du répertoire SIRENE + break; + case 'RS': // Réactivation siège + $ev_EVE=120; // Réactivation de l'entreprise + break; + case 'SE': // Fermeture (ou désactivation) établissement + $ev_EVE=430; // Fermeture de l'établissement + break; + case 'SS': // Fermeture (ou désactivation) siège + $ev_EVE=425; // Absence d'activité d'une entreprise suite à une mise à jour au répertoire SIRENE + break; + case 'MC': // Modification par le calage + $ev_EVE=781; // Modification de l'établissement suite à correction d'erreur + break; + case 'SC': // Suppression par le calage + $ev_EVE=435; // Fermeture de l'établissement suite à une mise à jour au répertoire SIRENE + break; + case 'ME': // Modification établissement + $ev_EVE=780; // Modification de l'établissement + break; + case 'MS': // Modification siège + $ev_EVE=610; // Modification d'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production + break; + case 'MU': // Modification entreprise + $ev_EVE=631; // Modification d'activité du SIREN + break; + case 'MTDE': // Modification établissement départ (transfert) + case 'MTAE': // Modification établissement arrivée (transfert) + case 'MTDS': // Modification siège départ (transfert) + case 'MTAS': // Modification siège arrivée (transfert) + $ev_EVE=540; // Modification de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert + break; + case 'CTE': // Création établissement (transfert) + case 'CTS': // Création siège (transfert) + $ev_EVE=520; // Création de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert + break; + case 'STE': // Fermeture établissement (transfert) + case 'STS': // Fermeture siège (transfert) + $ev_EVE=530; // Modification de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert + break; + default: + $ev_EVE=substr($ev_EVE,0,3); + break; + } $ev_DATEVE=$lSiret['insDATEVE']; $ev_TYPETAB=$lSiret['insTYPETAB']; $ev_DESTINAT=$lSiret['insDESTINAT']; @@ -335,11 +1354,41 @@ WHERE $where; // Forcage pour idclient=3 nimes metropole !!! if ($idClient==3 && $tcaSED<>' ') $a['TrancheCA']=$tcaSED; + + $tabRnvp=$iRnvp->getAdresseRnvpSource(2, $a['SourceId']); + $codeRnvp=$tabRnvp['CQAdrRnvp']*1; + if ($codeRnvp>0) { + $L1rnvp=strtr($tabRnvp['L1rnvp'],'/*',' '); + $L2rnvp=$tabRnvp['L2rnvp']; + $L3rnvp=$tabRnvp['L3rnvp']; + $L4rnvp=$tabRnvp['L4rnvp']; + $L5rnvp=$tabRnvp['L5rnvp']; + $L6rnvp=$tabRnvp['L6rnvp']; + $L7rnvp=$tabRnvp['L7rnvp']; + } elseif (trim($a['L1_NOMEN'])<>'' && trim($a['L4_VOIE'])<>'' && trim($a['L6_POST'])<>'') { + // On prend l'adresse RNVP origine INSEE (Syracuse) + $L1rnvp=strtr($a['L1_NOMEN'],'/*',' '); + $L2rnvp=$a['L2_COMP']; + $L3rnvp=$a['L3_CADR']; + $L4rnvp=$a['L4_VOIE']; + $L5rnvp=$a['L5_DISP']; + $L6rnvp=$a['L6_POST']; + $L7rnvp=$a['L7_ETRG']; + } else { + // Historique Insee Notice 80 + $L1rnvp=strtr($c['L1_NOM'],'/*',' '); + $L2rnvp=$c['L2_NOM2']; + $L3rnvp=$c['L3_ADRCOMP']; + $L4rnvp=$c['L4_VOIE']; + $L5rnvp=$c['L5_DISTSP']; + $L6rnvp=$c['L6_POST']; + $L7rnvp=$c['L7_PAYS']; + } - $str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité + $str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D - initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise - initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement + initstr($siren, 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise + initstr($nic, 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identité initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés @@ -461,22 +1510,22 @@ WHERE $where; initstr($ev_MSIGLE, 1 , '0', ALIGN_RIGHT) . // Facultatif insMSIGLE Indicateur de MAJ du SIGLE initstr($ev_MEXPLEN, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLEN Indicateur de MAJ du caractère EXPLOITANT entrep initstr($ev_MEXPLET, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab - initstr(1, 1 ) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP - initstr($c['L1_NOM'], 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise - initstr($c['L2_NOM2'], 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom - initstr($c['L3_ADRCOMP'], 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse - initstr($c['L4_VOIE'], 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse - initstr($c['L5_DISTSP'], 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale - initstr($c['L6_POST'], 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc.. - initstr($c['L7_PAYS'], 38 ) . // Facultatif L7_ETRG Ligne 7 : Pays si étranger + initstr($codeRnvp, 1 , '0', ALIGN_RIGHT) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP + initstr($L1rnvp, 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise + initstr($L2rnvp, 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom + initstr($L3rnvp, 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse + initstr($L4rnvp, 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse + initstr($L5rnvp, 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale + initstr($L6rnvp, 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc.. + initstr($L7rnvp, 38 ) . initstr($b['insEAEANN'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE* initstr($b['insEAEAPEN'], 5 ) . // Facultatif EAEAPEN Activité principale de l'entreprise issue des EAE initstr($b['insEAESEC1N'], 5 ) . // Facultatif inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE initstr($b['insEAESEC2N'], 5 ) . // Facultatif inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE initstr($b['insEAESEC3N'], 5 ) . // Facultatif inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE initstr($b['insEAESEC4N'], 5 ) . // Facultatif inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE - initstr($a['GeoLat'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984) - initstr($a['GeoLon'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984) + initstr($a['GeoLat'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984) + initstr($a['GeoLon'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984) initstr($a['GeoPrecis'], 1 , '0', ALIGN_RIGHT) . // Facultatif GPSP Niveau de précision du géocodage initstr($a['GeoInfos']['NZUS'], 10 ) . // Facultatif ZUS Identifiant de la Zone Urbaine Sensible initstr($a['GeoInfos']['NZRU'], 10 ) . // Facultatif ZRU Identifiant de la Zone de Rénovation Urbaine @@ -488,18 +1537,20 @@ WHERE $where; initstr($a['TvaAttribue'], 1 , '0', ALIGN_RIGHT) . // Facultatif TVAVALIDE Numéro de TVA validé initstr($a['AncienSiege'], 1 , '0', ALIGN_RIGHT) . // Facultatif ANCIENSIEGE Ancien siège initstr($a['Isin'], 12 ) . // Facultatif CODEISIN Code ISIN de l'entreprise si cotation en bourse - // A voir - initstr($a['dir1NomPrenom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant - initstr('', 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant - initstr('', 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant + initstr($a['dir1Nom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant + + initstr(preg_replace('/,?\s.*$/','',$a['dir1Prenom']), 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant + //initstr($a['dir1Prenom'], 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant + initstr($a['dir1NomUsage'], 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant initstr(str_replace('-','',$a['dir1DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR1DNAISS Date de naissance initstr($a['dir1LieuNaiss'], 35 ) . // Facultatif PPDIR1LNAISS Lieu de Naissance initstr($a['dir1Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1FONC Code Fonction initstr(str_replace('-','',$a['dir1DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant - // A voir - initstr($a['dir2NomPrenom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant - initstr('', 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant - initstr('', 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant + initstr($a['dir2Nom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant + + initstr(preg_replace('/,?\s.*$/','',$a['dir2Prenom']), 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant + //initstr($a['dir2Prenom'], 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant + initstr($a['dir2NomUsage'], 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant initstr(str_replace('-','',$a['dir2DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant initstr($a['dir2LieuNaiss'], 35 ) . // Facultatif PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant initstr($a['dir2Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2FONC Code Fonction du 2ème ppl dirigeant @@ -511,7 +1562,10 @@ WHERE $where; initstr($tcaSED, 1 ) . // Tranche de CA SED initstr($tcaSEDtype, 1 ) . // Type de tranche de CA : (R)éel, (I)nconnu ou (E)stimé initstr($tcaSEDannee, 4 ) . // Année du CA - initstr(' ', 35) ; // Facultatif FILLER1 Zone libre + initstr($a['dir1Genre'], 1 ) . // PPDIR1 Genre + initstr($a['dir2Genre'], 1 ) . // PPDIR2 Genre + initstr($a['IND_PUBLIPO']*1, 1 ) . // Indicateur du champ de publipostage + initstr(' ', 32 ) ; // Facultatif FILLER1 Zone libre /* AnneeTCA @@ -520,6 +1574,8 @@ WHERE $where; */ fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes++; + $nbLignes200++; + @$tabNbLignes[200]++; $mBil=new MBilans($siren); $tabBilans=@$mBil->listeBilans(); @@ -532,17 +1588,22 @@ WHERE $where; die(); } $derBilan=current($tabBilans);*/ - $p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']); + $t5=microtime(1); + $p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']); + $t6=microtime(1); + @$tTime['Bilan']+=$t6-$t5; + //print_r($p); if ($p['CONSOLIDE']=='S') $numLiasse='2033'; else $numLiasse='2050'; $unite=strtoupper($p['MONNAIE_LIV_UNITE']); if ($unite=='') $unite='U'; - - $strIni=initstr($typeLigneBilan, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité + @$tabNbLignes[$typeLigneBilan]++; + $nbLignesBil++; + $strIni=initstr($typeLigneBilan, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D - initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise - initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement + initstr($siren, 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise + initstr($nic, 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identité initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés @@ -581,11 +1642,13 @@ WHERE $where; if($nbP<76) continue; fwrite($fp, initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes++; + $nbLignesBil++; $nbP=0;$strP=''; } if($nbP<76) { // Ecriture de la dernière ligne sauf s'il y a dejà 76 postes fwrite($fp, initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes++; + $nbLignesBil++; } } else { $uniteMultiple=1; @@ -635,32 +1698,126 @@ WHERE $where; fwrite($fp, initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes++; + $nbLignesBil++; $strP=''; } if ($iBil==$nbBilansMax) break; } //die(); } - if ($nbLignes%100==0) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n"; + if ($nbLignes200%100==0 || $nbLignes%100==0) echo date ('Y/m/d - H:i:s')." - Entité $nbLignes200/$nbEtab - Siret $siren $nic - $nbLignes lignes ($nbLignes200 identités, $nbLignesBil bilans)\n"; } /** ** On génère la ligne de fin de fichier **/ $nbLignes++; + $dateFin=date('YmdHis'); $str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne - initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier + initstr($dateFin, 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; + fclose($fp);; + $tabProduction[$idClient]['dateFin']=$dateFin; + $duree=round(microtime(true)-$timeDeb,3); + $dureeD=floor($duree/86400); + $reste=$duree%86400; + $dureeH=floor($reste/3600); + $reste=$reste%3600; + $dureeM=floor($reste/60); + $dureeS=$reste%60; + + $tabProduction[$idClient]['duree']=$duree.' secondes'; + if ($dureeD==0 && $dureeH==0) $tabProduction[$idClient]['dureeLisible']="$dureeM m. $dureeS s."; + elseif ($dureeD==0) $tabProduction[$idClient]['dureeLisible']="$dureeH h. $dureeM m. $dureeS s."; + else $tabProduction[$idClient]['dureeLisible']="$dureeD j. $dureeH h. $dureeM m. $dureeS s."; + $tabProduction[$idClient]['nbLignes']=$nbLignes; + + echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fichier client terminé.".EOL; + + /** Envoi du fichier produit par mail + **/ + if (isset($tabPresta['mailTo'])) { + $tabAttached=array(REP_TEMP.$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'); + $messageInfo="Bonjour, + + Veuillez trouver le fichier d'établissements Scores & Décisions relatifs à votre abonnement. + + Bien Cordialement, + Le service Support. + + + ATTENTION : Cet email est un message automatique. Merci de ne pas y répondre. Pour toute question nous vous invitons à contacter notre support à l'adresse support@scores-decisions.com. + + --- + + SCORES & DECISIONS + Service support + 1, rue de Clairefontaine - 78120 RAMBOUILLET + tél : 33 (0)1 75 43 80 10 + fax : 33 (0)1 75 43 85 74 + support@scores-decisions.com + http://www.scores-decisions.com/ + Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises + + Pensez à l'environnement avant d'imprimer ce message ! + Save paper - think before you print"; + + if ($envoyerMail) { + if (@$tabPresta['mailTo']<>'') $mailTo=@$tabPresta['mailTo'].',suivi@scores-decisions.com'; + else $mailTo='suivi@scores-decisions.com'; + if(@sendMail('production@scores-decisions.com', $mailTo, "Diffusion A6CMO S&D", $messageInfo, '', $tabAttached)) + echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fichier envoyé à ".$tabPresta['mailTo'].EOL; + else + echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Erreur lors de l'envoi du fichier à ".$tabPresta['mailTo'].EOL; + } + } + + if (!copy(REP_TEMP.$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt','/home/data/clients/a6cmo/'.$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt')) + echo date ('Y/m/d - H:i:s')." - ERREUR : Copie du fichier dans A6CMO impossible !".EOL; + else + echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fichier disponible dans A6CMO.".EOL; + } - die(); +/* +-s Génération du stock +-d=SSAAMMJ(JHHIISS) Diffusion depuis le SSAAMMJJ ou SSAAMMJJHHIISS +-c=XXX N° de client/prestation +-l Liste des clients/prestations +-v Verbosité maximum +-m Ne pas envoyer d'email + + case 's': $stock=true; break; + case 'v': $debug=true; break; + case 'd': $dateDebutCmd=strtr(substr($argv[$i],3),array('-'=>'',':'=>''))*1; break; + case 'c': $idClientTodo=substr($argv[$i],3); break; + case 'l': $listePresta=true; break; + case 'm': $envoyerMail=false; +*/ + + +if (!$listePresta) { + if ($idClientTodo) { + if ($stock) $strStock="du stock"; + else $strStock="hebdomadaire"; + $messageFinObj="Fin de la diffusion $strStock A6CMO pour $nomClientTodo ($numPrestationTodo)"; + $messageFinMsg=print_r($tabProduction, true); + } else { + if ($stock) $strStock="des stocks"; + else $strStock="des fichiers hebdos"; + $messageFinObj="FIN de la diffusion $strStock A6CMO"; + $messageFinMsg=print_r($tabProduction, true); + } + $messageFinMsg.=print_r($tTime, true); + sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,suivi@scores-decisions.com', $messageFinObj, $messageFinMsg); +} + +die(); /** Mise à jour des numéros de tour et des date de dernières exécutions **/ @@ -933,123 +2090,4 @@ function exporteRatio($valeur) { return ''.$signe.initstr(abs($valeur), 20, '0', ALIGN_RIGHT); } - -/* $tabFJ=array( 1800, - 2310, -2320, -2385, -2700, -3110, -3205, -7111, -7112, -7113, -7120, -7150, -7160, -7171, -7172, -7179, -7190, -7210, -7220, -7225, -7229, -7230, -7312, -7313, -7314, -7321, -7322, -7323, -7331, -7341, -7342, -7343, -7345, -7346, -7347, -7348, -7349, -7351, -7352, -7353, -7354, -7355, -7356, -7361, -7362, -7363, -7364, -7365, -7366, -7371, -7372, -7373, -7378, -7379, -7381, -7382, -7383, -7384, -7385, -7389, -7410, -7430, -7450, -7470, -7490, -8110, -8120, -8130, -8140, -8150, -8160, -8170, -8190, -8310, -8311, -8410, -8420, -8450, -8490, -9110, -9150, -9210, -9220, -9222, -9223, -9230, -9240, -9260); - -$tabNAF=array( '4781Z', -'4782Z', -'4789Z', -'4799A', -'4950Z', -'6820A', -'6820B', -'8411Z', -'8412Z', -'8413Z', -'8421Z', -'8422Z', -'8423Z', -'8424Z', -'8430A', -'8430B', -'8430C', -'9411Z', -'8412Z', -'9420Z', -'9491Z', -'9492Z', -'9499Z', -'9900Z'); - -$strFJ =implode(',',$tabFJ); -$strNAF="'".implode("','",$tabNAF)."'"; -*/ - - ?> \ No newline at end of file + ?> diff --git a/batch/diffusionEntrepAdecco.php b/batch/diffusionEntrepAdecco.php index 08813f97..ac1ffebe 100644 --- a/batch/diffusionEntrepAdecco.php +++ b/batch/diffusionEntrepAdecco.php @@ -52,10 +52,10 @@ $nbSirValides=$nbSirInvalides=0; $nbNicValides=$nbNicInvalides=0; $nbInsert=0; -$eff69=$dateDebut=false; +$eff69=$dateDebut=$nafAMS=false; $strInfoScript='Usage : '.basename($argv[0]). " [OPTION] [Stock Adecco à charger] -Traitement spécifique Adecco Diffusion des Mise à jour des champs complexes de la table 'etablissement_act' et génération du fichier spécifique Véolia. +Traitement des fichiers spécifiques Adecco. Options : -1 Prestation 1 Mise à jour du stock Adecco @@ -65,9 +65,13 @@ Options : -c Prestation 3C Stock des liens groupes des établissements de + de 10 salariés -p Purger la table addeco_out -r=SIRET Reprendre au siret supérieur + -f Forcer le traitement même si on n'est pas vendredi (le traitement se lance entre le 4 et le 10 du mois) -v Verbosité maximum + -m Traitement AMS -6 Traitement des 6 à 9 salariés "; +$presta2=''; +$dayOfTheWeek=date('w'); $argv=$_SERVER['argv']; if ($_SERVER['argc']>1) @@ -75,23 +79,31 @@ 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 '2': $presta=2; break; - case '6': $eff69=true; break; - case 'a': $presta=3.1; $dateDebut=substr($argv[$i],3); break; - case 'b': $presta=3.2; $dateDebut=substr($argv[$i],3); break; - case 'c': $presta=3.3; break; - case 'p': $purge=true; break; - case 'r': $siretReprise=substr($argv[$i],3); break; + case '1': $presta=1; break; + case '2': $presta=2; break; + case '6': $eff69=true; $presta2='_69'; break; + case 'm': $nafAMS=true; $presta2='ams'; break; + case 'a': $presta=3.1; $dateDebut=substr($argv[$i],3); break; + case 'b': $presta=3.2; $dateDebut=substr($argv[$i],3); break; + case 'c': $presta=3.3; break; + case 'p': $purge=true; break; + case 'r': $siretReprise=substr($argv[$i],3); break; + case 'f': $dayOfTheWeek=5; $mailTo='ylenaour@scores-decisions.com'; break; case '-': - case '?': die($strInfoScript); break; - default: die('Option '. $argv[$i] . " inconnue !\n"); - break; + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); break; } } else $tabFichier[]=$argv[$i]; } } +// Si pas de date de début alors on prend le 1er jour du mois précédent +if (!$dateDebut) $dateDebut=date('Ymd', mktime(0, 0, 0, date('m')-1, 1, date('Y'))); +$dateDebIniYmd=20111201; // Date de début de sdémarrage de la prestation Adecco +$dateDebYmd=substr($dateDebut,0,6).'01'; +$dateFinYmd=date('Ymt', mktime(0, 0, 0, substr($dateDebut,4,2), 1, substr($dateDebut,0,4))); +$mailTo='jproust@scores-decisions.com,ylenaour@scores-decisions.com,support@scores-decisions.com';//,fabienne.sourbier@adecco-groupe.fr,frederic.montagne@adecco-groupe.fr'; + if (count($tabFichier)==1) { /* Chargement du fichier Entrant adecco */ $nomFichier=$tabFichier[0]; @@ -165,15 +177,22 @@ if (count($tabFichier)==1) { echo date ('Y/m/d - H:i:s')." - Fin du traitement du fichier '$nomFichier' ($nbLignes/$nbLignesLues lignes traitées dont $nbInsert insérées).".EOL; } +if ($dayOfTheWeek<>5) { + echo date('Y/m/d - H:i:s') ." - Nous ne sommes pas Vendredi !".EOL; + die(); +} + if ($presta<>1 && $presta<>2 && $presta<>3.1 && $presta<>3.2 && $presta<>3.3) { if (count($tabFichier)<>1) echo date('Y/m/d - H:i:s') ." - Prestation '$presta' inconnue !".EOL; die(); } -///home/data/clients/adecco/ -$fp=fopen('./adecco'.$presta."_$date.txt",'w'); + +$nomFichier='/home/data/clients/adecco/adecco'.$presta.$presta2."_$date.txt"; +$fp=fopen($nomFichier,'w'); // Ligne d'entête -fwrite($fp, "adSIREN|adNIC|adREF|adRAISON_SOCIALE|adADRESSE|adFILLER|adCP|adVILLE|adSE|SIREN|NIC|L1_NOMEN|L2_COMP|L3_CADR|L4_VOIE|L5_DISP|L6_POST|L7_ETRG|ZR1|RPET|DEPET|ARRONET|CTONET|COMET|LIBCOM|DU|TU|UU|CODPOS|ZR2|TCD|ZEMET|CODEVOIE|NUMVOIE|INDREP|TYPVOIE|LIBVOIE|ENSEIGNE|APET700|ZR3|SIEGE|TEFET|EFETCENT|ORIGINE|DCRET|MMINTRET|ACTIVNAT|LIEUACT|ACTISURF|SAISONAT|MODET|DAPET|DEFET|EXPLET|PRODPART|AUXILT|EAEANT|EAEAPET|EAESEC1T|EAESEC2T|NOMEN|SIGLE|CIVILITE|CJ|TEFEN|EFENCENT|APEN700|ZR4|APRM|TCA|RECME|DAPEN|DEFEN|DCREN|MMINTREN|MONOACT|MODEN|EXPLEN|EAEANN|EAEAPEN|EAESEC1N|EAESEC2N|EAESEC3N|EAESEC4N|NBETEXPL|TCAEXP|REGIMP|MONOREG|RPEN|DEPCOMEN|sdActif|sdEvenDate|sdEven|sdNomPrenomDir|sdYP|sdPctAct|sdSirenAct|sdNomAct".EOL); +if ($presta<>3.2 && $presta<>3.3) + fwrite($fp, "adSIREN|adNIC|adREF|adRAISON_SOCIALE|adADRESSE|adFILLER|adCP|adVILLE|adSE|SIREN|NIC|L1_NOMEN|L2_COMP|L3_CADR|L4_VOIE|L5_DISP|L6_POST|L7_ETRG|ZR1|RPET|DEPET|ARRONET|CTONET|COMET|LIBCOM|DU|TU|UU|CODPOS|ZR2|TCD|ZEMET|CODEVOIE|NUMVOIE|INDREP|TYPVOIE|LIBVOIE|ENSEIGNE|APET700|ZR3|SIEGE|TEFET|EFETCENT|ORIGINE|DCRET|MMINTRET|ACTIVNAT|LIEUACT|ACTISURF|SAISONAT|MODET|DAPET|DEFET|EXPLET|PRODPART|AUXILT|EAEANT|EAEAPET|EAESEC1T|EAESEC2T|NOMEN|SIGLE|CIVILITE|CJ|TEFEN|EFENCENT|APEN700|ZR4|APRM|TCA|RECME|DAPEN|DEFEN|DCREN|MMINTREN|MONOACT|MODEN|EXPLEN|EAEANN|EAEAPEN|EAESEC1N|EAESEC2N|EAESEC3N|EAESEC4N|NBETEXPL|TCAEXP|REGIMP|MONOREG|RPEN|DEPCOMEN|sdActif|sdEvenDate|sdEven|sdNomPrenomDir|sdYP|sdPctAct|sdSirenAct|sdNomAct|sdTel|LATITUDE|LONGITUDE|PRECIS".EOL); //exporteAdecco('32392385400059','ref',$fp, $presta,'','','','',''); //die(); @@ -189,7 +208,7 @@ if ($presta==1) { "$where $strReprise ORDER BY adSIREN ASC, adNIC ASC", true, MYSQL_ASSOC, true); echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL; while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { - exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $tabTmp['RAISON_SOCIALE'], $tabTmp['ADRESSE'], $tabTmp['FILLER'], $tabTmp['CP'], $tabTmp['VILLE'], $tabTmp['ADSE']); + exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $nafAMS, $tabTmp['RAISON_SOCIALE'], $tabTmp['ADRESSE'], $tabTmp['FILLER'], $tabTmp['CP'], $tabTmp['VILLE'], $tabTmp['ADSE']); } /** @toto Presta 1 : - enregistrer chaque ligne fourni en bdd @@ -207,62 +226,119 @@ if ($presta==1) { $nbRows=count($tabSiret); echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siret Adecco uniques à exclure en Presta $presta...".EOL; /** Les Créations d'étab>10 **/ - if ($eff69) $where10='AND (insEFENCENT>5 || insTEFET>2)'; - else $where10='AND (insEFENCENT>9 || insTEFET>10)'; + /*if ($eff69) $where10='AND (insEFENCENT>5 || insTEFET>2)'; + elseif($nafAMS) $where10="AND (insTEFET IN ('00','01','02') OR insEFENCENT BETWEEN 1 AND 5) AND insCJ BETWEEN 4000 AND 6999 + AND insAPET700 IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')"; + else $where10='AND (insEFENCENT>9 || insTEFET>10)';*/ + $where10="AND (insEFENCENT>5 OR insTEFET>2 OR ((insTEFET IN ('00','01','02') OR insEFENCENT BETWEEN 1 AND 5) AND insCJ BETWEEN 4000 AND 6999 + AND insAPET700 IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')))"; + if ($siretReprise) $strReprise=" AND CONCAT(insSIREN, insNIC)>$siretReprise "; - if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND insDATEVE>=$dateDebut "; + if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND (insDCRET BETWEEN $dateDebIniYmd AND $dateFinYmd OR insDCREN BETWEEN $dateDebYmd AND $dateFinYmd)"; $nbRows=$iDb->select('insee.insee_even', "'' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret", "insCJ NOT BETWEEN 3000 AND 3999 AND insAPET700 NOT IN ('6820B','7020Z') AND - (insEVE IN ('110','120','125','130','145','M0C','M0R') OR - insEVE IN ('510','520') AND insTYPETAB IN(9,11,21,31)) $strDateDeb /*AND - (insDATEVE>=20111201 OR insDCRET>=20111200)*/ $where10 /*AND idFlux>='2011-12-01' AND idFlux<='2012-05-01'*/ $strReprise GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true); + (insEVE IN ('110','120','125','130','145','M0C','M0R','CE','CS','CTE','CTS','RE','RS','CC','I') OR + insEVE IN ('510','520') AND insTYPETAB IN(9,11,21,31)) $strDateDeb $where10 $strReprise + GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true); echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL; echo mysql_error().EOL; if (mysql_errno()>0) die(); while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { if (!in_array($tabTmp['siret'], $tabSiret)) - exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69); + exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $nafAMS); } } elseif ($presta==3.2) { /** Toutes les Fermetures **/ - if ($siretReprise) $strReprise=" AND CONCAT(insSIREN, insNIC)>$siretReprise "; - if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND insDATEVE>=$dateDebut "; - else die('Préciser une date de début valide !'.EOL); - $nbRows=$iDb->select('insee.insee_even', "'' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret, insDATEVE, insEVE", - "(insEVE IN ('400','410','430','435','795','810','M0F') OR - insEVE IN ('510','530') AND insTYPETAB IN(8,10,20,30)) $strDateDeb $strReprise GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true); - echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL; + $iDb->query('SELECT CONCAT(siren,nic) AS siret FROM tmp.adecco_fermetures;'); echo mysql_error().EOL; if (mysql_errno()>0) die(); + $tabSiret=array(); + while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { + $tabSiret[]=$tabTmp['siret']; + } + $tabSiret=array_unique($tabSiret); + $nbRows=count($tabSiret); + echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siret Adecco uniques à exclure en Presta $presta (fermetures déjà communiquées)...".EOL; + + //$dateDebYmd=20120701; + if ($siretReprise) $strReprise=" AND CONCAT(insSIREN, insNIC)>$siretReprise "; + if ($dateDebut && $dateDebut>19800101 && $dateDebut<=date('Ymd')) $strDateDeb=" AND insDATEVE<=$dateFinYmd AND dateInsert>=$dateDebYmd "; + +/* 'iCE' =>'Création établissement', + 'iCS' =>'Création siège', + 'iCTE' =>'Création établissement (transfert)', + 'iCTS' =>'Création siège (transfert)', + 'iRE' =>'Réactivation établissement', + 'iRS' =>'Réactivation siège', + 'iCC' =>'Création par le calage', + 'iI' =>'Entrée dans le champ de la diffusion commerciale', +*/ + else die('Préciser une date de début valide !'.EOL); + $nbRows=$iDb->select('insee.insee_even', "'' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret, insDATEVE, insEVE", + "(insEVE IN ('400','410','430','435','795','810','M0F','SU','SE','SS','STE','STS','RI','SC','O') OR + insEVE IN ('510','530') AND insTYPETAB IN(8,10,20,30)) $strDateDeb $strReprise GROUP BY siret ORDER BY siret ASC", true, MYSQL_ASSOC, true); + echo "SELECT '' AS REF, insSIREN AS SIREN, insNIC AS NIC, concat(insSIREN, insNIC) AS siret, insDATEVE, insEVE +FROM insee.insee_even +WHERE (insEVE IN ('400','410','430','435','795','810','M0F','SU','SE','SS','STE','STS','RI','SC','O') OR + insEVE IN ('510','530') AND insTYPETAB IN(8,10,20,30)) $strDateDeb $strReprise GROUP BY siret ORDER BY siret ASC".EOL; + + echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta (fermetures à transmettre)...".EOL; + echo mysql_error().EOL; + if (mysql_errno()>0) die(); + //die(); + fwrite($fp, "adSIREN|adNIC|sdActif|sdEvenDate|sdEven".EOL); while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { $even=''; switch ($tabTmp['insEVE']) { - case '400': $even.='suppression du doublon '; break; - case '410': $even.='cessation juridique de l\'entreprise '; break; + /*'i*/ + case '400': $even.='suppression du doublon '; break; + case 'SU': + case '410': $even.='cessation juridique de l\'entreprise '; break; case '420': - case '425': $even.='cessation économique de l\'entreprise '; break; + case '425': $even.='cessation économique de l\'entreprise '; break; case 'M0F': case '430': - case '435': $even.='fermeture de l\'etablissement '; break; + case 'SE': + case 'SC': + case '435': $even.='fermeture de l\'etablissement '; break; case '510': + case 'STE': + case 'STS': case '530': $even.='fermeture de l\'etablissement dans le cadre d\'un transfert '; break; case '620': case '621': - case '650': $even.='cessation economique de l\'etablissement '; break; - case '795': $even.='personne radiee a sa demande de SIRENE diffusion '; break; - case '810': $even.='suppression du siren suite à refus RCS'; break; - default: $even.=' '; break; + case '650': $even.='cessation economique de l\'etablissement '; break; + case '795': $even.='personne radiee a sa demande de SIRENE diffusion '; break; + case '810': $even.='suppression du siren suite à refus RCS'; break; + case 'SS': $even.='Fermeture ou désactivation du siège'; break; + case 'RI': $even.='Refus d\'immatriculation au RCS'; break; + case 'O': $even.='Sortie du champ de la diffusion commerciale'; break; + default: $even.=' '; break; } $strOut=$tabTmp['SIREN'].'|'.$tabTmp['NIC'].'|0|'.$tabTmp['insDATEVE'].'|'.trim($even).EOL; - if ($fp) fwrite($fp, str_replace(';',' ',$strOut)); + if ($fp) { + if (!in_array($tabTmp['SIREN'].$tabTmp['NIC'], $tabSiret)) { + fwrite($fp, str_replace(';',' ',$strOut)); + $iDb3->insert('adecco_fermetures', array( 'siren'=>$tabTmp['SIREN'], + 'nic'=>$tabTmp['NIC'], + 'evenDate'=>$tabTmp['insDATEVE'], + 'even'=>trim($even), + 'presta'=>$presta, + 'prestaDate'=>$date)); + } + } echo $strOut; } } elseif ($presta==3.3) { if ($siretReprise) $strReprise=" AND concat(siren,nic)>$siretReprise "; /** Toutes les Liens Groupe des étabs > 9 salariés **/ - if ($eff69) $where10='AND eff_etab>5'; - else $where10='AND eff_etab>9'; +/* if ($eff69) $where10='AND eff_etab>5'; + elseif($nafAMS) $where10="AND (eff_etab>5 OR (teff_etab IS NOT NULL AND eff_etab IN (0,1,2) AND presentRcs=1 + AND ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')))"; + else $where10='AND eff_etab>9';*/ + $where10="AND (eff_etab>5 OR (teff_etab IS NOT NULL AND eff_etab IN (0,1,2) AND presentRcs=1 + AND ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')))"; $nbRows=$iDb->select('jo.etablissements_act', "'' AS REF, siren AS SIREN, nic AS NIC, concat(siren,nic) AS siret, sirenGrp", "cj NOT BETWEEN 3000 AND 3999 AND ape_etab NOT IN ('6820B','7020Z') $where10 AND sirenGrp>1000 $strReprise ORDER BY siren, nic", true, MYSQL_ASSOC, true); echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL; @@ -322,31 +398,68 @@ if ($presta==1) { $nbRows=count($tabSiret);*/ //echo date('Y/m/d - H:i:s') ." - Il y a $nbRows siret Adecco uniques à exclure en Presta $presta...".EOL; echo date('Y/m/d - H:i:s') ." - Préparation des siret Adecco uniques à exclure en Presta $presta...".EOL; - if ($eff69) $where10='AND (eff_etab>5 OR teff_etab>2) AND (eff_etab<10 OR teff_etab<11)'; + /*if ($eff69) $where10='AND (eff_etab>5 OR teff_etab>2) AND (eff_etab<10 OR teff_etab<11)'; + elseif($nafAMS) $where10="AND eff_etab>=0 AND eff_etab<3 AND teff_etab IS NOT NULL AND presentRcs=1 + AND ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B')"; else $where10='AND (eff_etab>9 OR teff_etab>10)'; + */ + $where10="AND (eff_etab>5 OR ape_etab IN ('4773Z','8610Z','8621Z','8622A','8622B','8622C','8623Z','8690A','8690B','8690C','8690D','8690E','8690F','8710A','8710B','8810A','8810B','8810C','8891A','8891B','8899A','8899B'))"; + + if ($siretReprise) $strReprise=" AND concat(siren,nic)>$siretReprise "; $nbRows=$iDb->select('jo.etablissements_act', "'' AS REF, siren AS SIREN, nic AS NIC, concat(siren, nic) AS siret", - "cj NOT BETWEEN 3000 AND 3999 AND ape_etab NOT IN ('6820B','7020Z') $where10 AND dateCrea_etab<=20120801 + "cj NOT BETWEEN 3000 AND 3999 AND ape_etab NOT IN ('6820B','7020Z') $where10 /*AND dateCrea_etab<=20120801*/ AND concat(siren, nic) NOT IN(SELECT siret FROM tmp.adecco_siret) $strReprise ORDER BY siret", true, MYSQL_ASSOC, true); // $strReprise ORDER BY siret", true, MYSQL_ASSOC, true); // "siret NOT IN(SELECT CONCAT(SIREN,NIC) AS siret FROM tmp.adecco_echantillon)", true, MYSQL_ASSOC, true); echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL; echo mysql_error().EOL; if (mysql_errno()>0) die(); + + //die(); + while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) { if (!in_array($tabTmp['siret'], $tabSiret)) { //echo 'siret='.$tabTmp['siret'].EOL; - exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69); + exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp, $presta, $eff69, $nafAMS); } } $iDb->query('DROP table adecco_siret;'); } echo date('Y/m/d - H:i:s') ." - Fin de la prestation Adecco en Presta $presta.".EOL; fclose($fp); + +if (($presta==3.1 || $presta==3.2 || $presta==3.3) && $mailTo) { + $tabAttached=array($nomFichier); + $messageInfo="Bonjour, + + Veuillez trouver ci-joint le fichier Scores & Décisions relatifs à votre prestation contractuelle n°$presta. + + Bien Cordialement, + Le service Support. + + -- + + SCORES & DECISIONS + Service support + 1, rue de Clairefontaine - 78120 RAMBOUILLET + tél : 33 (0)1 75 43 80 10 + fax : 33 (0)1 75 43 85 74 + support@scores-decisions.com + http://www.scores-decisions.com/ + Scores & Décisions est l'acteur nouvelle génération de l'information et de l'évaluation des entreprises + + Pensez à l'environnement avant d'imprimer ce message ! + Save paper - think before you print"; + + @sendMail('production@scores-decisions.com', $mailTo, "Prestation Adecco S&D $presta", $messageInfo, '', $tabAttached); +} + + die(); -function exporteAdecco($siret,$ref,$fp=false, $presta, $eff69=false, $RAISON_SOCIALE='', $ADRESSE='', $FILLER='', $CP='', $VILLE='', $ADSE='') { +function exporteAdecco($siret,$ref,$fp=false, $presta, $eff69=false, $nafAMS=false, $RAISON_SOCIALE='', $ADRESSE='', $FILLER='', $CP='', $VILLE='', $ADSE='') { global $iDb2,$iDb3,$iLiens,$iBilan,$iInsee,$date; $siren=substr($siret,0,9); $nic=substr($siret,9,5); @@ -363,6 +476,7 @@ NULL AS RECME, DAPEN, DEFEN, DCREN,NULL AS MMINTREN, MONOACT, MODEN, EXPLEN, NUL NULL AS EAESEC1N, NULL AS EAESEC2N, NULL AS EAESEC3N, NULL AS EAESEC4N, NBETAB AS nbETEXPL, TCAEXP, REGIMP, MONOREG, NULL AS RPEN,NULL AS DEPCOMEN, ACTIF AS sdActif";/*EFF_ET mediumint(7) UNSIGNED ZEROFILL Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier TEFF_ET*/ +//$tel $strNotice=" insSIREN AS SIREN, insNIC AS NIC, insL4_VOIE AS L4_VOIE, insL6_POST AS L6_POST, insRPET AS RPET, insDEPCOMEN AS DEPCOMEN, insRPEN AS RPEN, insARRONET AS ARRONET, insCTONET AS CTONET, insTCD AS TCD, @@ -427,6 +541,18 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES } else { $tmp=$ret[0]; $actif=$tmp['sdActif']*1; + /** Geocodage si NAF = 7820Z, 7830Z et 7810Z **/ + $lat=$lon=$precis=''; + if ($tmp['apet700']=='7810Z' || + $tmp['apet700']=='7820Z' || + $tmp['apet700']=='7830Z') { + $mMap=new MMap(true); + $mMap->geoCodeAdresse($tmp['NUMVOIE'], $tmp['INDREP'], $tmp['TYPVOIE'], $tmp['TYPVOIE'], $tmp['LIBVOIE'], $tmp['codpos'], $tmp['libcom'], 'France', trim($tmp['insdepet'].$tmp['comet'].$tmp['CODEVOIE'])); + $lat=$mMap->latitudeDec; + $lon=$mMap->longitudeDec; + $precis=$mMap->precision; + } + $nouveauSiret=''; $tabAncienSiret=array(); $nbDem=0; @@ -539,8 +665,10 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES } if ($presta==2) { - if ($eff69 && (($effet<6 && $effetTR<3) || $actif==0)) return; - elseif (!$eff69 && ($effet<10 || $actif==0)) return; +/* if ($eff69 && (($effet<6 && $effetTR<3) || $actif==0)) return; + elseif ($nafAMS && ($effet>5 || $actif==0)) return; + elseif (!$eff69 && !$nafAMS && ($effet<10 || $actif==0)) return;*/ + if (($effet<6 && $effetTR<3) || $actif==0) return; } // Dirigeant @@ -566,7 +694,14 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES if ($sirenAct<=1000) $sirenAct=''; } } - $strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP|$pctAct|$sirenAct|".str_replace('|',' ',$nomAct).EOL; + + $ret2=$iDb2->select('jo.telephonie', 'telephone', "siren=$siren AND nic=$nic AND typeTel='tel' AND actif=1 AND dateSuppr=0 ORDER BY dateInsert DESC LIMIT 0,1", false, MYSQL_ASSOC); + $tel=@$ret2[0]['telephone']; + + //$strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP|$pctAct|$sirenAct|".str_replace('|',' ',$nomAct)."|$tel".EOL; + // Suppression de la livraison des liens a Adecco le 5/03/2015 + $strOut.="$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP||||$tel|$lat|$lon|$precis".EOL; + //if ($presta==1) { $iDb3->insert('adecco_out', array( 'ref'=>$ref, 'siren'=>$siren, @@ -583,4 +718,4 @@ insEAEAPEN AS EAEAPEN, insEAESEC1N AS EAESEC1N, insEAESEC2N AS EAESEC2N, insEAES if ($fp) fwrite($fp, str_replace(';',' ',$strOut)); } - ?> \ No newline at end of file + ?> diff --git a/batch/diffusionRRG.php b/batch/diffusionRRG.php new file mode 100644 index 00000000..d74c8d33 --- /dev/null +++ b/batch/diffusionRRG.php @@ -0,0 +1,503 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +1) +{ + for ($i=1; isset($argv[$i]); $i++) { + if (substr($argv[$i],0,1)=='-') { + switch (substr($argv[$i],1,1)) { + case 'i': + $mailSuivi=false; + break; + case 'd': + $dateJourCmd=substr($argv[$i],3,strlen($argv[$i])-3); + break; + case 'l': + $doLockSql=true; + break; + case 'f': + $fileInput=substr($argv[$i],3,strlen($argv[$i])-3); + break; + case 's': + $siretInput=true; + break; + case '-': + case '?': + die($strInfoScript); + break; + default: + die('Option '. $argv[$i] . " inconnue !\n"); + break; + } + } elseif ($argv[$i]>10000 && $siretInput) $tabSiret[]=$argv[$i]; + } +} + +//$iAmabis=new MAmabis(); +$iRnvp=new MRnvp(); +$iInsee=new MInsee(); +$iRncs=new MRncs(); +$iDb=new WDb('tmp'); +$iDb2=new WDb('tmp'); + +$scriptName=basename($argv[0]); + +if (count($tabSiret)>0 || $fileInput) { + if ($fileInput) $tabSiret=file($fileInput); + + // Ajout de la demande de MAJ du siret + /** @todo + * - MEttre un verrou afin de pouvoir vérifier si le traitement du jour n'est pas en cours (attention à l'étape SQL) + * - Lancer les commandes SQL insert into ... + * - Créer une source MANUEL + */ + if (file_exists(REP_TEMP.basename($scriptName).'.lock')) { + //date('Ymd-His')."$fichier;Traitement PHP du $dateJourSql;$fileName;Export de $nbEtab établissements".EOL); + // $tab2Tmp=explode(';',file_get_contents(REP_TEMP.basename($fichier).'.lock')); + //$date2Tmp=WDate::DateT('YmdHis', 'd/m/Y H:i:s',$tab2Tmp[1]); + // $nbL2Tmp=$tab2Tmp[2]; + // $message="Le fichier $fichier est en cours de chargement depuis le $date2Tmp ($nbL2Tmp lignes)..."; + echo date('Y/m/d - H:i:s')." - Le traitement RRG est en cours, patienter et recommencer plus tard !!!".EOL; + die(); + } + + foreach ($tabSiret as $iSiret=>$siret) { + $siren=substr($siret,0,9); + $nic=substr($siret,9,5); + if ($nic>9) $strNic=" AND NIC=$nic "; + $strPre=''; + $ret=$iDb->select('tmp.diffusionRRG','dateSurrfa,dateSurrfa*1 AS dateSurrfaYmd, dateFlux,srcFlux,dateInsert,dateUpdate', "SIREN=$siren $strNic ORDER BY dateSurrfa DESC LIMIT 0,1", false, MYSQL_ASSOC); + if (@$ret[0]['dateSurrfaYmd']*1>0) $strPre=' (dernier envoi le '.$ret[0]['dateSurrfa'].')'; + $iDb->query("INSERT INTO tmp.diffusionRRG SELECT NULL as idLine, id, SIREN, NIC, 'SED' AS source, TRIM(REPLACE(REPLACE(IF(NOMEN_LONG='',NOM,NOMEN_LONG),'/',' '),'*',' ')) AS rs, insL1_NOMEN AS adrL1, 'N' AS adrL1t, SIGLE, ENSEIGNE AS ens, insL2_COMP AS adrL2, '' AS adrL2t, IF (SIEGE=0,'SEC','PRIN') AS statut, IF (ACTIF=1,'','CESSE') AS situ, '' AS maj, 0 AS dateHexavia, '' AS codVoieHexavia, CONCAT (ADR_DEP, ADR_COM) AS codeInseeCom, '' AS libInseeCom, '' AS cpCom, insL3_CADR AS adrL3, ADR_NUMVOIE AS adrNum, ADR_BTQ AS adrBtq, '' AS adrNum2, '' AS adrBtq2, insL4_VOIE AS adrLibVoie, insL5_DISP AS adrDisp, insL5_DISP AS adrComp, insL6_POST AS adrL6, DCRET AS dateCrea, 'J' AS dateCreaPre, CJ AS fj, '' AS fjLib, APE_ENT AS nafEn, '' AS nafEnLib, APE_ETAB AS nafEt, '' AS nafEtLib, TEL, IF(CIVILITE=1,'M',IF(CIVILITE=2,'MME',CIVILITE)) AS dirCiv, DIR_IDEN AS dirNom, '' AS dirPrenom, '' AS dirFctCode, '' AS dirFctLib, '' AS bilanMil, '' AS bilanFL, EFF_ENT AS effEn, EFF_ET AS effEt, 0 AS nicSiege, '' AS even, '' AS evenLib, '' AS tva, '' AS email, 0 AS siretPre, 0 AS siretSuc, ADDDATE(NOW(), INTERVAL 1 DAY) AS dateSurrfa, 0 AS dateFlux, 'MANUEL' AS srcFlux, dateUpdate AS dateInsert, 0 as dateUpdate FROM insee.identite WHERE SIREN=$siren $strNic"); + if (!mysql_errno()) + echo date('Y/m/d - H:i:s')." - Siret $siren $nic ajouté avec succès au flux de demain".$strPre.EOL; + else + echo date('Y/m/d - H:i:s')." - Siret $siren $nic non ajouté car erreur SQL N°".mysql_errno().' : '.mysql_error().' !'.EOL; + } + + die(); +} + +if (!$doLockSql) { + $message=date('Y/m/d - H:i:s') ." - Début du traitement RRG...".EOL; + echo date('Y/m/d - H:i:s') ." - Début du traitement RRG...".EOL; +} + +/*$iDb=new WDb('sdv1'); +$tabRRG=array( 'client' => 'rrg', + 'name' => 'HEXAVIA', + 'nbLines' => 11948, // Nombre de ligne + 'dateBegin' => 20150105200503, // Date de début de traitement au format YmdHis + 'dateEnd' => 20150105203052, // Date de fin de traitement au format YmdHis + 'fileOut' => 'surrfa_20150105.csv', // Nom du fichier sans le chemin + 'depotType' => 'FTP', + 'depotDate' => '0000-00-00 00:00:00'); +$iDb->insert('flux_fileout', $tabRRG, false); +*/ + +/* +$nbEtab=$iDb->query("# On efface tout depuis l'init de la presta RRG +DELETE FROM tmp.diffusionRRG WHERE id>0; + +# On stock la dernière date de MAJ +SET @lastDateMaj := (SELECT MAX(dateUpdate) FROM tmp.diffusionRRG); + +# Ajout des établissements modifiés +INSERT INTO tmp.diffusionRRG SELECT id, SIREN, NIC, 'INS' AS source, TRIM(REPLACE(REPLACE(NOMEN_LONG,'/',' '),'*',' ')) AS rs, insL1_NOMEN AS adrL1, 'N' AS adrL1t, SIGLE, ENSEIGNE AS ens, insL2_COMP AS adrL2, '' AS adrL2t, IF (SIEGE=0,'SEC','PRIN') AS statut, IF (ACTIF=1,'','CESSE') AS situ, '' AS maj, 0 AS dateHexavia, '' AS codVoieHexavia, CONCAT (ADR_DEP, ADR_COM) AS codeInseeCom, '' AS libInseeCom, '' AS cpCom, insL3_CADR AS adrL3, ADR_NUMVOIE AS adrNum, ADR_BTQ AS adrBtq, '' AS adrNum2, '' AS adrBtq2, insL4_VOIE AS adrLibVoie, insL5_DISP AS adrDisp, insL5_DISP AS adrComp, insL6_POST AS adrL6, DCRET AS dateCrea, 'J' AS dateCreaPre, CJ AS fj, '' AS fjLib, APE_ENT AS nafEn, '' AS nafEnLib, APE_ETAB AS nafEt, '' AS nafEtLib, TEL, IF(CIVILITE=0,'',IF(CIVILITE=1,'M','MME')) AS dirCiv, DIR_IDEN AS dirNom, '' AS dirPrenom, '' AS dirFctCode, '' AS dirFctLib, '' AS bilanMil, '' AS bilanFL, EFF_ENT AS effEn, EFF_ET AS effEt, 0 AS nicSiege, '' AS even, '' AS evenLib, '' AS tva, '' AS email, 0 AS siretPre, 0 AS siretSuc, 0 AS idFlux, dateUpdate FROM insee.identite WHERE dateUpdate>=@lastDateMaj ; +# Ajout du code mouvement +UPDATE tmp.diffusionRRG, insee.insee_even +SET diffusionRRG.maj='C' +WHERE diffusionRRG.maj='' AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj AND insee_even.insVMAJ='C'; +UPDATE tmp.diffusionRRG, insee.insee_even +SET diffusionRRG.maj='S' +WHERE diffusionRRG.maj='' AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj AND insee_even.insVMAJ='E'; +UPDATE tmp.diffusionRRG +SET maj='M' +WHERE maj=''; +# Ajout du NIC siège +UPDATE tmp.diffusionRRG, insee.insee_even +SET diffusionRRG.nicSiege=insee_even.insNICSIEGE +WHERE diffusionRRG.nicSiege=0 AND diffusionRRG.siren=insee_even.insSIREN AND diffusionRRG.nic=insee_even.insNIC AND insee_even.idFlux>=@lastDateMaj; +# Ajout des radiations +UPDATE tmp.diffusionRRG, jo.rncs_entrep +SET diffusionRRG.situ='RADIE' +WHERE diffusionRRG.situ='CESSE' AND diffusionRRG.siren=rncs_entrep.siren AND rncs_entrep.actif=0 AND diffusionRRG.dateUpdate>=@lastDateMaj; + +# Ajout des libellés FJ et NAF +UPDATE tmp.diffusionRRG, jo.tabFJur +SET diffusionRRG.fjLib=tabFJur.libelle +WHERE diffusionRRG.fj=tabFJur.code AND diffusionRRG.fjLib=''; +UPDATE tmp.diffusionRRG, jo.tabNaf5 +SET diffusionRRG.nafEnLib=tabNaf5.libNaf5 +WHERE diffusionRRG.nafEn=tabNaf5.codNaf5 AND diffusionRRG.nafEnLib=''; +UPDATE tmp.diffusionRRG, jo.tabNaf5 +SET diffusionRRG.nafEtLib=tabNaf5.libNaf5 +WHERE diffusionRRG.nafEt=tabNaf5.codNaf5 AND diffusionRRG.nafEtLib=''; + +# Ajout des zones Hexavia +SET @lastDateHexa := (SELECT MAX(dateMaj38) FROM villes.hexaviaVilles); +UPDATE tmp.diffusionRRG +SET diffusionRRG.dateHexavia=@lastDateHexa +WHERE diffusionRRG.dateHexavia=0; +UPDATE tmp.diffusionRRG, villes.rnvpSources +SET diffusionRRG.codVoieHexavia=rnvpSources.IdHexavia, + diffusionRRG.libInseeCom=rnvpSources.Ville, + diffusionRRG.cpCom=rnvpSources.Cp +WHERE diffusionRRG.codVoieHexavia='' AND diffusionRRG.id=rnvpSources.source_id AND rnvpSources.source=2; + +# Ajout du CA +UPDATE tmp.diffusionRRG, jo.etablissements_act +SET diffusionRRG.bilanMil=etablissements_act.bilAnnee, + diffusionRRG.bilanFL=etablissements_act.bilFL +WHERE diffusionRRG.bilanMil='' AND diffusionRRG.siren=etablissements_act.siren; +*/ + + +$dateDeb=date('Y-m-d H:i:s'); + +if ($dateJourCmd) { + $dateJourPhp=str_replace('-','',$dateJourCmd); + $dateJourSql=WDate::dateT('Ymd','Y-m-d',$dateJourPhp); + if (!$doLockSql) echo date('Y/m/d - H:i:s') ." - Recherche des établissements a exporter pour le : $dateJourSql...".EOL; +} else { + $dateJourSql=substr($dateDeb,0,10); + $dateJourPhp=str_replace('-','',$dateJourSql); + if (!$doLockSql) { + echo date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL; + echo date('Y/m/d - H:i:s') ." - Recherche des établissements a exporter du jour : $dateJourSql...".EOL; + } +} + +$fileName="surrfa_$dateJourPhp.csv"; +$anneeBilanVieux=substr($dateJourPhp,0,4)-3; + +$fpT=fopen(REP_TEMP.basename($scriptName).'.lock', 'w'); +if ($doLockSql) { + fwrite($fpT, date('Ymd-His').";$scriptName;Traitement RRG SQL du $dateJourSql;$fileName".EOL); + fclose($fpT); + die(); +} + +//$fileName="surrfa_20141231a.csv"; // Créations fait le 11/02/2015 +//$fileName="surrfa_20141230b.csv"; // Radiations fait le ??? + +$fpOut=fopen(REP_TEMP.$fileName,'w'); + +//Il faudra insérer dans la base de données (sdv1.flux_fileout) lorsque le fichier est généré, les informations suivantes + +$nbEtab=$iDb->select('tmp.diffusionRRG','idLine, id, siren, nic, CONCAT(siren, nic) AS siret, source, rs, adrL1, adrL1t, sigle, ens, adrL2, adrL2t, statut, situ, maj, dateHexavia, codVoieHexavia, codeInseeCom, libInseeCom, cpCom, adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, dateCrea, dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, dateFlux, srcFlux, dateInsert, dateUpdate',"siren>0 AND dateSurrfa='$dateJourSql'", false, MYSQL_ASSOC, true); +//$nbEtab=$iDb->select('tmp.diffusionRRG','idLine, id, siren, nic, CONCAT(siren, nic) AS siret, source, rs, adrL1, adrL1t, sigle, ens, adrL2, adrL2t, statut, situ, maj, dateHexavia, codVoieHexavia, codeInseeCom, libInseeCom, cpCom, adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, dateCrea, dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, dateFlux, srcFlux, dateInsert, dateUpdate', "siren>0 AND dateSurrfa='2014-12-30'", false, MYSQL_ASSOC, true); +echo mysql_error().EOL; + +echo date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL; +$message.=date('Y/m/d - H:i:s') ." - Il y a $nbEtab a exporter...".EOL; + +fwrite($fpT, date('Ymd-His').";$scriptName;Traitement RRG PHP du $dateJourSql;$fileName;Export de $nbEtab établissements".EOL); +fclose($fpT); + +$iL=0; +$accesDist=false; + +$nbCpVide76310=$nbCpVide=0; + +while($tabId=$iDb->fetch(MYSQL_ASSOC)) { + $iL++; + $idLine=$tabId['idLine']; + + $siren=$tabId['siren']; + $nic=$tabId['nic']; + $iTva=@new MTva($siren, $accesDist); + $vatNumber=$iTva->vatNumber; + $nomLong=$tabId['rs']; + $iTel=new MTel($accesDist); + $tmp=$iTel->getTel($siren, $nic, true); + //print_r($tmp); + $tel=$mail=''; + foreach ($tmp as $tTel) { + if ($tTel['typeTel']=='tel' && $tTel['actif']==1 && $tel=='') $tel=$tTel['telephone']; + if ($tTel['typeTel']=='mail' && $tTel['actif']==1 && $mail=='') $mail=$tTel['infoTel']; + } + +// , , , , , adrL3, adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp, adrL6, , dateCreaPre, fj, fjLib, nafEn, nafEnLib, nafEt, nafEtLib, tel, dirCiv, dirNom, dirPrenom, dirFctCode, dirFctLib, bilanMil, bilanFL, effEn, effEt, nicSiege, even, evenLib, tva, email, siretPre, siretSuc, idFlux, dateUpdate + + $hexaviaMat=$tabId['codVoieHexavia']; + if ($hexaviaMat<0) $hexaviaMat=''; + $tabRnvp=@$iRnvp->normaliseAdresse($nomLong, $tabId['adrL2'], $tabId['adrL3'], $tabId['adrLibVoie'], $tabId['adrDisp'], $tabId['adrL6'], '', $tailleRNVP); + if ($hexaviaMat*1==0) + $hexaviaMat=@$tabRnvp['HexaViaMat']; + $L1tr=$L2tr='N'; + if ($hexaviaMat*1>0 && @$tabRnvp['HexaViaMat']*1>0) { + $hexaviaVoie=@$tabRnvp['HexaViaVoie']; + $cp=@substr($tabRnvp['L6'],0,5); + $achPost=@trim(preg_replace('/^\d+/','', $tabRnvp['L6'])); + $L1=@$tabRnvp['L1']; + if (@$tabRnvp['L1_tr']==1) $L1tr='O'; + //$L1=$iRnvp->normaliseRS($nomLong, $tailleRNVP); + //if ($iRnvp->nomTronque==1) $L1tr='O'; + $L2=@$tabRnvp['L2']; + if (@$tabRnvp['L2_tr']==1) $L2tr='O'; + $L3=@trim($tabRnvp['L3']); + $L5=@trim($tabRnvp['L5']); + $codCommune=@$tabRnvp['HexaviaComCod']; + $libCommune=@$tabRnvp['HexaviaComLib']; + } else { + $hexaviaVoie=@trim(preg_replace('/^\d+/','', $tabId['adrLibVoie'])); + $cp=@substr($tabId['adrL6'],0,5); + $achPost=trim(preg_replace('/^\d+/','', $tabId['adrL6'])); + if ($cp<1000) { + $cp=$iRnvp->getCPCommune($tabId['codeInseeCom']); + $achPost=trim(preg_replace('/^\d+/','', $tabId['adrL6'])); + $nbCpVide++; + if ($cp<1000) { + $tabRnvp=$iRnvp->normaliseAdresse76310($nomLong, $tabId['adrL2'], $tabId['adrL3'], $tabId['adrLibVoie'], $tabId['adrDisp'], $tabId['adrL6']); + // print_r($tabRnvp); + $cp=substr($tabRnvp['L6'],0,5); + $achPost=trim(preg_replace('/^\d+/','', $tabRnvp['L6'])); + $nbCpVide76310++; + //die(); + } + echo "$iL/$nbEtab: $vatNumber $nic $L1\t$cp $achPost\t $nbCpVide76310 appels/$nbCpVide CP vides".EOL; + } + $L1=$iRnvp->normaliseRS($nomLong, $tailleRNVP); + if ($iRnvp->nomTronque==1) $L1tr='O'; + $L2=$iRnvp->normaliseRS($tabId['adrL2'], $tailleRNVP); + if ($iRnvp->nomTronque==1) $L2tr='O'; + $L3=trim($tabId['adrL3']); + $L5=trim($tabId['adrDisp']); + $codCommune=$tabId['codeInseeCom'];// Tester 97x + $libCommune=$iRnvp->getLibCommune($codCommune, $tailleRNVP); + } + //adrNum, adrBtq, adrNum2, adrBtq2, adrLibVoie, adrDisp, adrComp + $adrNum1=preg_replace('/^0+/','',$tabId['adrNum']); + $adrBtq1=$tabId['adrBtq']; + $adrNum2=$adrBtq2=''; + if ($adrNum1*1>0) { + $adrNum=$adrNum1*1; + if (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrL3']), $matches)) { + $adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',)); + $adrBtq2=''; + } elseif (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrDisp']), $matches)) { + $adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',)); + $adrBtq2=''; + } elseif (preg_match("/^$adrNum(.*)$/Ui",trim($tabId['adrL2']), $matches)) { + $adrNum2=strtr($matches[1],array('AU '=>'','ET '=>'','A '=>'','/'=>'','-'=>'',)); + $adrBtq2=''; + } + } + + $tabAssoc=$iInsee->getSiretAssoc($siren, $nic); + //print_r($tabAssoc); + + $tabDirs=$iRncs->getDirigeantsPrin($siren, 1); + if (count($tabDirs)>0) { + $civ=$tabDirs[0]['Civilite']; + $dir1Nom=$tabDirs[0]['Nom']; + $dir1Prenom=$tabDirs[0]['Prenom']; + $dir1Code=$tabDirs[0]['Fonction']; + $dir1Titre=$tabDirs[0]['Titre']; + } elseif ($tabId['fj']<2000) { + $civ=$tabId['dirCiv']; + $dir1Nom=$tabId['dirNom']; + $dir1Prenom=$tabId['dirPrenom']; + $dir1Code=1050; + $dir1Titre='Personne Physique'; + } + + $dateHexavia=initstr(preg_replace('/^00/','01',WDate::dateT('Y-m-d','dmY',$tabId['dateHexavia'])), 8, '0', ALIGN_RIGHT); + + $dateCreation=initstr(WDate::dateT('Y-m-d','dmY',preg_replace('/00$/','01',$tabId['dateCrea'])), 8, '0', ALIGN_RIGHT); + + if (!$dateJourCmd) { + if ($tabId['bilanMil']<=$anneeBilanVieux) { + // Aller vérifier s'il n'y a pas un bilan plus récent en base + $tmpBilan=$iDb2->select('jo.bilans_postes','FL, YEAR(dateExercice) AS annee', "siren=$siren AND consolide=0 ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC); + $tabTmpBil=$tmpBilan[0]; + $bilAnnee=$tabTmpBil['annee']; + $bilFL=$tabTmpBil['FL']; + } else { + $bilAnnee=$tabId['bilanMil']; + $bilFL=$tabId['bilanFL']; + } + /* + Rajouter l'estimation de CA dans les cas suivants : + 1a. Quand il n'y a pas de bilan + OU 1b. Quand le bilan est trop vieux pour RRG soit (plus de 36 mois) + + De plus, on ne donne de CA Estimé que : + 2a. Si le NAF est valide (5 positions, différent de vide et de 0000Z) + 2b. Si l'effectif est > à 0 OU (effectif<1 ET CJ=1xxx) + 2c. Si la date de création >= date de clôture estimée (dernière jour de l'année courante - 2 ans) + + Attention, pour les créations récentes (nouvelle demande de RRG) : + 3a. Si le NAF est valide (5 positions, différent de vide et de 0000Z) + 3b. Si l'effectif est > à 0 OU (effectif<1 ET CJ=1xxx) + 3c. Si la date de création EST dans l'année en cours ou dans l'année précédente et pas de bilans REEL + ==> Alors donner le CA Estimé qui est donc "prévisionnel" au 31/12 de l'année en cours + */ + } else { + $bilAnnee=$tabId['bilanMil']; + $bilFL=$tabId['bilanFL']; + } + $strOut=initstr($tabId['id']*1, 10 , '0', ALIGN_RIGHT) .'$'. // Identification ORT de l'établissement ! + $tabId['siret'].'$'. // Numéro de SIRET + $tabId['source'].'$'. // Source de l'information (INS ou S&D) + trim(str_replace('$',' ',$tabId['rs'])).'$'. // Raison sociale Officielle de l'entreprise + $L1.'$'. // Raison sociale Postale de l'entreprise ! + $L1tr.'$'. // Indicateur si la RS postale a été tronquée ! + trim(str_replace('$',' ',$tabId['sigle'])).'$'. // Sigle de l'entreprise + trim(str_replace('$',' ',$tabId['ens'])).'$'. // Enseigne officielle de l'établissement + $L2.'$'. // Enseigne postale de l'établissement ! + $L2tr.'$'. // Indicateur si l'enseigne postale a été tronquée ! + $tabId['statut'].'$'. // Statut de l'établissement + $tabId['situ'].'$'. // Code situation de l'entreprise + $tabId['maj'].'$'. // Flag de Mise à jour de l'établissement ??? + $dateHexavia.'$'. // Date d'actualisation du fichier HEXAVIA + $hexaviaMat.'$'. // code voie HEXAVIA + $codCommune.'$'. // Code commune INSEE + $libCommune.'$'. // Libellé de la commune INSEE + $cp.'$'. // Code postal + $L3.'$'. // Complément d'adresse + $adrNum1.'$'. // Numéro dans la voie + $adrBtq1.'$'. // Lettre dans la voie + $adrNum2.'$'. // Numéro dans la voie 2 + $adrBtq2.'$'. // Lettre dans la voie 2 + $hexaviaVoie.'$'. // Libellé dans la voie + $L5.'$'. // Distribution postale + $L5.'$'. // Complément postal + $achPost.'$'. // Acheminement postal (spécificité RRG : Pas de CP) + $dateCreation.'$'. // Date de création de l'entreprise + 'J'.'$'. // Précision de la date de création + $tabId['fj'].'$'. // Code forme juridique + $tabId['fjLib'].'$'. // Libellé forme juridique + $tabId['nafEn'].'$'. // Code NAF Entreprise + $tabId['nafEnLib'].'$'. // Libellé du NAF Entreprise + $tabId['nafEt'].'$'. // Code NAF Etablissement + $tabId['nafEtLib'].'$'. // Libellé du NAF Etablissement + $tel.'$'. // Numéro de téléphone + $civ.'$'. // Civilité du principal dirigeant + $dir1Nom.'$'. // Nom du principal dirigeant + $dir1Prenom.'$'. // Prénom du principal dirigeant + $dir1Code.'$'. // Code Fonction du principal dirigeant ??? + $dir1Titre.'$'. // Libellé de la fonction ??? + initstr($bilAnnee, 4, '0',ALIGN_RIGHT).'$'. // Année du dernier exercice + $bilFL.'$'. // CA du dernier exercice + $tabId['effEn'].'$'. // Effectif de l'entreprise + $tabId['effEt'].'$'. // Effectif de l'établissement + initstr($tabId['nicSiege']*1, 5, '0', ALIGN_RIGHT).'$'. // Numéro NIC de l'établissement principal + $tabId['even'].'$'. // Code jugement ??? + $tabId['evenLib'].'$'. // Libellé code Jugement ??? + $vatNumber.'$'. // N° TVA intracommunautaire + $mail.'$'. // Adresse mail de l'entreprise + str_replace('00000000000000','', + initstr(@$tabAssoc['pre']['siren']*1, 9 , '0', ALIGN_RIGHT) . + initstr(@$tabAssoc['pre']['nic']*1, 5 , '0', ALIGN_RIGHT)) .'$'. + str_replace('00000000000000','', + initstr(@$tabAssoc['suc']['siren']*1, 9 , '0', ALIGN_RIGHT) . + initstr(@$tabAssoc['suc']['nic']*1, 5 , '0', ALIGN_RIGHT)) ; + //echo $strOut.EOL; + fwrite($fpOut, $strOut.EOL); + + echo "$iL/$nbEtab: $vatNumber $nic (".$tabId['source'].",".$tabId['maj'].") $L1\t$cp $achPost\t$hexaviaMat".EOL; + + if (!$dateJourCmd) { + $tabUpdate=array( 'rs' =>trim(str_replace('$',' ',$tabId['rs'])), + 'adrL1' =>$L1, + 'adrL1t'=>$L1tr, + 'sigle' =>trim(str_replace('$',' ',$tabId['sigle'])), + 'ens' =>trim(str_replace('$',' ',$tabId['ens'])), + 'adrL2' =>$L2, + 'adrL2t'=>$L2tr, + 'dateHexavia'=>$dateHexavia, + 'codVoieHexavia'=>$hexaviaMat, + 'codeInseeCom'=>$codCommune, + 'libInseeCom'=>$libCommune, + 'cpCom'=>$cp, + 'adrL3'=>$L3, + 'adrNum'=>$adrNum1, + 'adrBtq'=>$adrBtq1, + 'adrNum2'=>$adrNum2, + 'adrBtq2'=>$adrBtq2, + 'adrLibVoie'=>$hexaviaVoie, + 'adrDisp'=>$L5, + 'adrComp'=>$L5, + //'adrL6'=>$achPost, + 'tel'=>$tel, + 'dirCiv'=>$civ, + 'dirNom'=>$dir1Nom, + 'dirPrenom'=>$dir1Prenom, + 'dirFctCode'=>$dir1Code, + 'dirFctLib'=>$dir1Titre, + 'bilanMil'=>$bilAnnee, + 'bilanFL'=>$bilFL, + //'effEn'=>, + //'even'=>, + //'evenLib'=>, + 'tva'=>$vatNumber, + 'email'=>$mail, + 'siretPre'=>initstr(@$tabAssoc['pre']['siren']*1, 9 , '0', ALIGN_RIGHT). + initstr(@$tabAssoc['pre']['nic']*1, 5 , '0', ALIGN_RIGHT), + 'siretSuc'=>initstr(@$tabAssoc['suc']['siren']*1, 9 , '0', ALIGN_RIGHT). + initstr(@$tabAssoc['suc']['nic']*1, 5 , '0', ALIGN_RIGHT), + 'dateUpdate'=>$dateDeb, + ); + $iDb2->update('diffusionRRG', $tabUpdate, "idLine=$idLine", false); + } + //print_r($tabId); + //die(); +} +fclose($fpOut); +$message.=date('Y/m/d - H:i:s') ." - Fin du traitement RRG : export de $iL/$nbEtab établissements.".EOL; +echo date('Y/m/d - H:i:s') ." - Fin du traitement RRG : export de $iL/$nbEtab établissements.".EOL; + +if ($mailSuivi) { + if (!copy(REP_TEMP.$fileName, '/mnt/data/clients/rrg/recv/'.$fileName)) + $msgLine=date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $fileName impossible pour le spécifique RRG !".EOL; + else + $msgLine=date ('Y/m/d - H:i:s')." - Le fichier $fileName a été créé pour RRG...".EOL; + echo $msgLine; + $message.=$msgLine; + unset($iDb); + $iDb=new WDb('sdv1'); + $tabRRG=array( 'client' => 'rrg', + 'name' => 'HEXAVIA', + 'nbLines' => $iL, // Nombre de ligne + 'dateBegin' => $dateDeb, // Date de début de traitement au format YmdHis + 'dateEnd' => date('YmdHis'), // Date de fin de traitement au format YmdHis + 'fileOut' => $fileName, // Nom du fichier sans le chemin + 'depotType' => 'FTP', + 'depotDate' => '0000-00-00 00:00:00'); + $iDb->insert('flux_fileout', $tabRRG, false); + + @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,suivi@scores-decisions.com', "Prestation RRG", $message); +} + +unlink(REP_TEMP.basename($scriptName).'.lock'); + +die(); + ?> \ No newline at end of file diff --git a/batch/doProBtp.php b/batch/doProBtp.php new file mode 100644 index 00000000..2421f54c --- /dev/null +++ b/batch/doProBtp.php @@ -0,0 +1,2612 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +Numéro SIRET \:(.*)
/Uis', $body, $matches)) { + $siret=str_replace(' ','',$matches[1]); + $siren=substr($siret,0,9); + $nic=substr($siret,9,5); + $tabInfos['siren']=$siren; + $tabInfos['nic']=$nic; + } + + if(preg_match('/
Tél \:(.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['tel']=$tel=str_replace(' ','',$matches[1]); + //'fax', 'mail', 'tel', 'web' + $tabInsert=array('siren'=>$siren,'nic'=>$nic,'dateProvPartenaire'=>$date,'typeTel'=>'tel','infoTel'=>'','telephone'=>$tel,'actif'=>1,'partenaire'=>$idPartenaire,'dateInsert'=> $dateInsert); + $iDb->insert('telephonie', $tabInsert); + } + if(preg_match('/
Fax \:(.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['fax']=$fax=str_replace(' ','',$matches[1]); + $tabInsert=array('siren'=>$siren,'nic'=>$nic,'dateProvPartenaire'=>$date,'typeTel'=>'fax','infoTel'=>'','telephone'=>$fax,'actif'=>1,'partenaire'=>$idPartenaire,'dateInsert'=> $dateInsert); + $iDb->insert('telephonie', $tabInsert); + } + if(preg_match('/
E-Mail \: (?:.*)<\/a><\/div>/Uis', $body, $matches)) { + $tabInfos['mail']=$mel=str_replace(' ','',$matches[1]); + $tabInsert=array('siren'=>$siren,'nic'=>$nic,'dateProvPartenaire'=>$date,'typeTel'=>'mail','infoTel'=>$mel,'telephone'=>0,'actif'=>1,'partenaire'=>$idPartenaire,'dateInsert'=> $dateInsert); + $iDb->insert('telephonie', $tabInsert); + } + if(preg_match('/
Site internet \: <\/div>/Uis', $body, $matches)) { + $tabInfos['web']=$web=str_replace(' ','',$matches[1]); + $tabInsert=array('siren'=>$siren,'nic'=>$nic,'dateProvPartenaire'=>$date,'typeTel'=>'web','infoTel'=>$web,'telephone'=>0,'actif'=>1,'partenaire'=>$idPartenaire,'dateInsert'=> $dateInsert); + $iDb->insert('telephonie', $tabInsert); + } + + if(preg_match('/
(.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['activite_web']=trim(html_entity_decode(strip_tags($matches[1]))); + } + + if(preg_match('/
(.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['nom']=trim(html_entity_decode(strip_tags($matches[1]))); + } + + if(preg_match('/
(.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['adr1']=trim(html_entity_decode(strip_tags($matches[1]))); + } + + if(preg_match('/
(.*)<\/div>/Uis', $body, $matches)) { + $tabInfos['adr2']=trim(html_entity_decode(strip_tags($matches[1]))); + } + $tabInfos['id']=$i; + $tabInfos['dateInsert']=$dateInsert; + $iDb2->insert('activiteWeb', $tabInfos); + + if(preg_match('//Uis', $body, $matches)) { + $urlLogo=$matches[2]; + $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); + } + } + + if(preg_match_all('/\s+(?:.*)(?:.*)(?:.*)\s+', + 'bloomberg'=>'- Code Bloomberg : \s+', + 'reuteurs'=>'- Code Reuters : \s+', + 'datastream'=>'- Code Datastream : \s+', + ); + +$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('/', /* type char(3) latin1_swedish_ci Non Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier @@ -75,7 +76,7 @@ foreach ($ret as $tAgrNum) { for($i=$iDeb;;$i++) { $tabInsert=array('id'=>$i); - + $url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15"; $page=getUrl($url, '', '', '', false); $referer=$url; diff --git a/batch/getAnnoncesInsee.php b/batch/getAnnoncesInsee.php new file mode 100644 index 00000000..50a2de8e --- /dev/null +++ b/batch/getAnnoncesInsee.php @@ -0,0 +1,926 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini + +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'/','-'=>'/'))); + + $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(); + + ?> \ No newline at end of file diff --git a/batch/getAnnoncesJal.php b/batch/getAnnoncesJal.php index 5281d756..2195c581 100644 --- a/batch/getAnnoncesJal.php +++ b/batch/getAnnoncesJal.php @@ -1,6 +1,144 @@ #!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +Mise à jour des tribunaux compétents pour les codes insee des communes depuis le site du ministère de la justice. +/**@todo : Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!**/ + +Options : + -v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles) + +";/* -i:XXXXX Reprendre au code commune Insee XXXXX + +";*/ + +$argv=$_SERVER['argv']; + +for ($i=1,$j=0; isset($argv[$i]); $i++) { + if (substr($argv[$i],0,1)=='-') { + switch (substr($argv[$i],1,1)) { + case 'v': $modeDebug=true; break; + case '-': + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); + } + } +} +/** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all + ** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php + ** + ** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007 + **/ + +$iDb=new WDB('jo'); +$iInsee=new MInsee(); + +$table='annonces_jal'; +$urlBase='http://www.annonces-legales.fr/annonce-legale/'; +$tabZones=array( + 'jalNum'=>'', + 'jalNom'=>'

', + 'jalLib'=>'', + 'jalDateTxt'=>'
(.*)
', + 'annCat'=>'
(?:.*)

', + 'evenLib'=>'
(?:.*)

(.*)

', + 'socNom'=>'
(.*)
', + 'fjCap'=>'
(.*)
', + 'adr'=>'
(?:.*)
(?:.*)
(.*)\d\d\d\d\d', + 'adrSiege'=>'
Si.*ge social : (.*)
', + 'cpVille'=>'
(?:.*)
(?:.*)
(.*)(\d\d\d\d\d\s.*)
', + 'siren'=>'
(?:.*)(\d\d\d\d\d\d\d\d\d) R', + 'tribunal'=>'(?:\d\d\d\d\d\d\d\d\d) R.C.S. (.*)
', + 'tribunalImm'=>'
Immatriculation au RCS de (.*)
', + 'socDuree'=>'
Dur.*e : (\d+) ans
', + 'socObjet'=>'
Objet social : (.*)
', + 'socGerance'=>'
G.*rance : (.*)
', + 'annonce'=>'
(.*)
', + 'mention'=>'
(Mention en sera faite.*)
', + 'acteDate'=>'
Par acte SSP en date du (.*)\s', + 'acteNature'=>'
Par acte SSP en date du (?:.*)/\d\d\d\d\s(.*)
', + /*
Par acte SSP en date du 08/10/2009 il a été constitué la société suivante :
+
Siège social : 108 rue des Bains, 8 Allée du Douet d'Auge 14103 Pont l'Eveque, 14360 Trouville sur Mer
+
Capital : €
+ */ +// id socTri uid + ); +echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des informations '$table'...".EOL; + +$ret=$iDb->select($table, 'MAX(id)', '1', false); +$iDeb=$ret[0][0]; +$nbVides=0; +echo date ('Y/m/d - H:i:s')." - Dernier id '$table' = $iDeb".EOL; +//$iDeb=54701; + +for($i=$iDeb;;$i++) { + $tabInsert=array('id'=>$i); + +/* $ret=$iDb->select($table, 'raiSoc', "id=$i", false); + if (@$ret[0][0]<>'') continue; +*/ + + $url=$urlBase.$i; + $page=getUrl($url, '', '', '', false); + $referer=$url; + if ($page['code']==301) { + $url=$page['header']['Location']; + $page=getUrl($url, '', '', $referer, false); + $referer=$url; + } + $body=$page['body']; + $tabHtml=html2array($body, $tabZones); + + if ($tabHtml['jalNum']=='' || @$tabHtml['annCat']=='') { + $nbVides++; + $i0=$i-10; + if ($nbVides==10) die("Le dernier numéro d'annonces est probablement le '$i0'".EOL); + continue; + } + $nbVides=0; + $tabHtml['jalDateYmd']=WDate::dateT('d M Y','Y-m-d',$tabHtml['jalDateTxt']); + $tabInsert=array_merge($tabInsert,$tabHtml); + $tabInsert['dateInsert']=date('YmdHis'); + if (@$iInsee->valideSiren($tabInsert['siren'])) + $tabInsert['sirenValide']=1; + else + $tabInsert['sirenValide']=0; + + print_r($tabInsert); + + if (!$iDb->insert($table, $tabInsert, false)) { + if (mysql_errno()==1062) { + unset($tabInsert['dateInsert']); + $iDb->update($table, $tabInsert, "id=$i", false); + } else { + print_r($tabInsert); + die(mysql_error()); + } + } + + //die(); + $nb=count($tabInsert); + $nb2=@count($tabInsert2); + echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL; + + if ($modeDebug) randsleep(1,2); + else randsleep(7,21); +} + +die(); + + /** ** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice) ** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all @@ -54,7 +192,33 @@ function html2txt($html) { //die(print_r($page)); echo date ('Y/m/d - H:i:s') . " - Début de la récupération des annonces sur le site JAL...".EOL; -$urlBase='http://www.journal-annonce-legale.fr'; + +/*
+
+ +
+
30 août 2012

Transfert de siége dans le département

+ +
+
SELECTIMMO
+ +
SARL Unipersonnelle au capital de 1500 Euros
+
+
12 rue de la Chevasnerie,
+44000 NANTES
+494480759 R.C.S. Nantes
+ +
+
Par décision du gérant en date du 30 août 2012 il a été décidé de transférer le siège social de la société au 58 boulevard Meusnier de Querlon, 44000 NANTES à compter du 30 août 2012.
+
Mention en sera faite au Registre du Commerce et des Sociétés de Nantes
+
+

+

Autres annonces légales

Annonce légale - SOCIETE CIVILE DE BONHERBE - Radiation - Liquidation de société
Annonce légale - QIMNET - Transfert de siége dans le département
Annonce légale - SCI SAINT-JALMES - JOZWICKI - Transfert de siége hors département
+
+
+

\s+
(.*)<\/div>\s+
(.*)<\/div>(.*)
E\-Mail \:<\/b> (?:.*)<\/a><\/div><\/td>\s+<\/tr><\/table>/Uis', $body, $matches)) { + /* + + +
+
Laurent Rachmuhl
+
Directeur Commercial
+Tel : 01 45 74 41 15 Fax : 01 45 74 45 35
+*/ + foreach ($matches[1] as $j=>$nomPrenom) { + $genre=$nom=$prenom=$mail=$fonction=''; + $tel=$fax=NULL; + $codFct=0; + $nomPrenom=html_entity_decode($nomPrenom); + $tabNomPrenom=$iBodacc->getNomPrenomGenre(strtoupper(trimAccent($nomPrenom))); + $tabNomPrenom=getNomPrenomGenre(strtoupper(trimAccent($nomPrenom))); + $nom=$tabNomPrenom['Nom']; + $prenom=$tabNomPrenom['Prenoms']; + $genre=$tabNomPrenom['Genre']; + if ($genre=='F') $genre='MME'; + $fonction=html_entity_decode($matches[2][$j]); + if(preg_match('/Tel \:<\/b> ([\s0-9\(\)]{14,19})/Uis', $matches[3][$j], $matches2)) + $tel=preg_replace('/^33/','',trim(preg_replace('/^00|\+/','',str_replace(' ','',strtr($matches2[1],'()-.',' '))))); + if(preg_match('/Fax \:<\/b> ([\s0-9\(\)]{14,19})/Uis', $matches[3][$j], $matches2)) + $fax=preg_replace('/^33/','',trim(preg_replace('/^00|\+/','',str_replace(' ','',strtr($matches2[1],'()-.',' '))))); + //33 (0)6 86 26 14 86     Fax : 33 (0)3 93 94 34 88 + $fonction2=html_entity_decode(strip_tags($matches[3][$j])); + $mail=trim($matches[4][$j]); + echo "$i\t$siret\t$j\t$nomPrenom\t$fonction\t$tel\t$fax\t$mail\t$fonction2".EOL; + + $tabDir=array( 'siren'=>$siren, + 'nic'=>$nic, + 'civ'=>$genre, + 'nom'=>$nom, + 'prenom'=>$prenom, + 'tel'=>$tel, + 'fax'=>$fax, + 'codFct'=>$codFct, + 'libFct'=>$fonction, + 'email'=>$mail, + 'source'=>$idPartenaire, + 'sourceId'=>$i, + 'dateInsert'=>$dateInsert); + //print_r($tabDir); + $iDb2->insert('dirigeantsOp', $tabDir); + //die(); + //tel + //fax + } + } + randsleep(7,21); +} + + + // Recherche BING + $appId = '56D6CBA671C986D3EA11B1B48F97507BC5A00D51'; + $numResults = 50; + $cultureInfo = 'fr-FR'; + + $tabSitesExclus=array('societe.com','bilans.net','gouv.fr','info-financiere.fr','bodacc.fr','manageo.fr','bilansgratuits.fr','lesechos.fr','google.fr'); + + $rs="loc:FR language:fr"; + $rs="directeur eurofactor -site:".implode(' -site:', $tabSitesExclus); + + $query=stripslashes(urlencode($rs)); + + $tabSources=array( 'web'=>'Web page results', + /*'image'=>'Full-size image and thumbnail image information, including the file size in bytes (if available), height and width in pixels (if available), and the URI to the full-size image or thumbnail', + 'instantAnswer'=>'Answers. The result fields returned for requests that specify InstantAnswer vary based on the value or values specified for the Query property. InstantAnswer results can include Encarta, FlightStatus, Finance, Music, Sports, Weather, and Movie ShowTimes. For the Version 2.0 release, results include Encarta and FlightStatus only. Other results are available by invitation', + 'mobileWeb'=>'Mobile Web page results (primarily Extensible Hypertext Markup Language (XHTML) and Wireless Markup Language (WML)', + 'phoneBook'=>'Results from online White Pages (residential) and Yellow Pages (commercial) entries', + 'relatedSearch'=>'Suggestions for other searches related to the query term or terms', + 'spell'=>'Spelling suggestions', + 'translation'=>'Translated results for a queried', + 'video'=>'Video results',*/ + //'news'=>'Results from online news services', + ); + $source=implode('+', array_keys($tabSources)); + + $url="http://api.bing.net/json.aspx?AppId=$appId&Version=2.2&Market=$cultureInfo&Query=$query&Sources=$source&Web.Count=$numResults&JsonType=raw"; + $page=getUrl($url, '', '', $referer, false); + $json=$page['body']; + + $tabJson=json_decode($json, true); + $tabJson=$tabJson['SearchResponse']; + + print_r($tabJson); + + $levMin=100; + $pctMin=0; + + foreach ($tabJson['Web']['Results'] as $i=> $result) { + + echo "$i:"; + print_r($result); +die(); + $title=utf8_decode($result['Title']); // SCORES & DECISIONS - Accueil + $desc=utf8_decode($result['Description']); // Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante + $url=$result['Url']; // http://www3.scores-decisions.com/ + + $lev=@levenshtein ($urlapprox,$url); + if ($lev>0 && $lev<$levMin) { + $levMin=$lev; + $urlLev=$url; + } + $sim=similar_text($urlapprox,$url,$pct); + if ($pct>$pctMin && strpos($url, 'zonebourse')===false) { + $pctMin=$pct; + $urlPct=$url; + } + if (preg_match('/\.(.*\.fr)\//', $url, $matches2)) { + } + + $info=parse_url($url); + $host=preg_replace('/\/$/','',$info['host']); + $ext=getFileExtension($host); + $domaine=getFileExtension(preg_replace("/\.$ext$/",'','.'.$host)); + echo "RECHERCHE DE '$nomEntrep' ($siren) : Trouvé $domaine.$ext".EOL; + if ($ext=='fr') { + $rep=$this->iDb->select('sitesWeb', 'siren, web', "web=$url"); + if (@$rep[0]['siren']*1==0) { + $tabAfnic=$this->getInfosAfnic("$domaine.$ext"); + $siren=$tabAfnic['siren']*1; + if ($siren>0) { + $tabInsert=array('siren'=>$siren, + 'web'=>$url, + 'dateInsert'=>date('YmdHis')); + $this->iDb->insert('sitesWeb', $tabInsert); + } + } + } + + if ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) { + echo date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!".EOL; + return $urlLev; + } + + } + /* + [0] => Array + ( + [Title] => SCORES & DECISIONS - Accueil + [Description] => Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante + [Url] => http://www3.scores-decisions.com/ + [CacheUrl] => http://cc.bingj.com/cache.aspx?q=scores+decisions&d=5004075153885515&mkt=fr-FR&w=881d2897,4f2fff68 + [DisplayUrl] => www3.scores-decisions.com + [DateTime] => 2011-02-14T12:24:00Z + [DeepLinks] => Array + ( + [0] => Array + ( + [Title] => Partenaires + [Url] => http://www3.scores-decisions.com/partenaires.php + ) + [1] => Array + ( + [Title] => Contact + [Url] => http://www3.scores-decisions.com/contact.php + ) + ) + ) + [1] => Array + ( + [Title] => SCORES & DECISIONS - Société + [Description] => Scores et Décisions - Le nouvel acteur de l'information sur les entreprises et leurs dirigeants avec une approche innovante + [Url] => http://www3.scores-decisions.com/societe.php + [CacheUrl] => http://cc.bingj.com/cache.aspx?q=scores+decisions&d=4747772983970513&mkt=fr-FR&w=10f5cd33,9b81f773 + [DisplayUrl] => www3.scores-decisions.com/societe.php + [DateTime] => 2011-02-13T02:17:00Z + )*/ + //return false; + //} + + + + + + + + +die(); + +$a=array( +'308403955', +'308491521', +'308884998', +'308973239', +'309064947', +'309073625', +'309256105', +'309304616', +'309528115', +'309745891', +'309755387', +'309767440', +'309892230', +'309954006', +'310327895', +'310370754', +'310391503', +'310505748', +'310519194', +'310601687', +'310635032', +'310635347', +'310710223', +'310792023', +'310818000', +'310850342', +'310923008', +'310949623', +'310996178', +'311043194', +'311098487', +'311127278', +'311248637', +'311549240', +'311596670', +'311799456', +'311999833', +'312147770', +'312212301', +'312261894', +'312379076', +'312559982', +'312560584', +'313042251', +'313125437', +'313167173', +'313334856', +'313382418', +'313384695', +'313403222', +'313414062', +'313777997', +'313812133', +'313966129', +'313986838', +'314119504', +'314153420', +'314397670', +'314397696', +'314397712', +'314428186', +'314583741', +'314583758', +'314583782', +'314583816', +'314583824', +'314583873', +'314603051', +'314684960', +'314722026', +'314830183', +'314925090', +'315000943', +'315013359', +'315062752', +'315064501', +'315161141', +'315268664', +'315334011', +'315474536', +'315493510', +'315549352', +'315597500', +'315871640', +'316016930', +'316085620', +'316331065', +'316807015', +'316811876', +'317358380', +'317686061', +'317705226', +'317750818', +'317780062', +'317975910', +'318072360', +'318148467', +'318246899', +'318404811', +'318649043', +'318658879', +'318771995', +'318883238', +'318906443', +'318906591', +'318919065', +'319137576', +'319159877', +'319427399', +'319632790', +'319642252', +'319883344', +'320217144', +'320229644', +'320442726', +'320443393', +'320585110', +'320733777', +'320772510', +'320955396', +'321006892', +'321008013', +'321057978', +'321163768', +'321164626', +'321227506', +'321263683', +'321502049', +'321514002', +'321616914', +'321774150', +'321875205', +'322306440', +'322424342', +'322498270', +'322566043', +'322624701', +'322688474', +'323057083', +'323078006', +'323140392', +'323376814', +'323379040', +'323438028', +'323438515', +'323650945', +'323912998', +'324103829', +'324286319', +'324501006', +'324559970', +'324613678', +'324646090', +'324905165', +'324958198', +'325041481', +'325520450', +'325520898', +'325685139', +'325720720', +'325820751', +'325821072', +'325857357', +'326019775', +'326050044', +'326094471', +'326118502', +'326180544', +'326300159', +'326521002', +'326557725', +'326685161', +'326780541', +'326784709', +'326820065', +'326981156', +'327060273', +'327280368', +'327359980', +'327733184', +'327948907', +'327991774', +'328006432', +'328031042', +'328340732', +'328619721', +'328621586', +'328695119', +'328899042', +'328905997', +'328931613', +'329009559', +'329021638', +'329035422', +'329168157', +'329198337', +'329211734', +'329338883', +'329368526', +'329393797', +'329405211', +'329426340', +'329463715', +'329925010', +'330139403', +'330267691', +'330339144', +'330730771', +'331048132', +'331089474', +'331312108', +'331339275', +'331377036', +'331405936', +'331620096', +'331648014', +'331888990', +'331930081', +'332110097', +'332332386', +'332564954', +'332588995', +'332726140', +'332759877', +'332822485', +'332868108', +'332890359', +'332978485', +'333202083', +'333353738', +'333491066', +'333583466', +'333916385', +'333955912', +'334057361', +'334175221', +'334192903', +'334204971', +'334240363', +'334473352', +'334503893', +'334654035', +'334668852', +'334873726', +'335092318', +'335146312', +'335351920', +'337280226', +'337587422', +'337598866', +'337621841', +'337970487', +'338112733', +'338154610', +'338246317', +'338253081', +'338253131', +'338253230', +'338481955', +'338567258', +'338695869', +'338905433', +'338966385', +'339012452', +'339030702', +'339196685', +'339311714', +'339379984', +'339403933', +'339419962', +'339447534', +'339488777', +'339507394', +'339718421', +'339812059', +'339874703', +'339946469', +'339993164', +'340035526', +'340137736', +'340337864', +'340429653', +'340545441', +'340641216', +'340664564', +'340709534', +'340723626', +'340869353', +'341095735', +'341125540', +'341152833', +'341203875', +'341399558', +'341429488', +'341459386', +'341535094', +'341612687', +'341633725', +'341805836', +'341816064', +'341972156', +'342043528', +'342048055', +'342192150', +'342386232', +'342401965', +'342404399', +'342705829', +'342786837', +'342837416', +'342874617', +'342913191', +'342948965', +'342965001', +'343004511', +'343043360', +'343056958', +'343088134', +'343207916', +'343234142', +'343262622', +'343282380', +'343294195', +'343403531', +'343488508', +'343688016', +'343691374', +'343862652', +'343893251', +'343958138', +'344026075', +'344077672', +'344103270', +'344122262', +'344260286', +'344263702', +'344307384', +'344314976', +'344347232', +'344496252', +'344810825', +'344844998', +'345034904', +'345076087', +'345086177', +'345130488', +'345197552', +'345351183', +'345404156', +'347555559', +'347715914', +'347806002', +'347840068', +'347849382', +'347902587', +'347926719', +'348390626', +'348505256', +'348607417', +'348674169', +'348899295', +'348901521', +'348922055', +'348936386', +'348937012', +'348991555', +'349074906', +'349505370', +'349638395', +'349942458', +'350050589', +'350063384', +'350127460', +'350169124', +'350422622', +'350693586', +'350917662', +'351005582', +'351151196', +'351330022', +'351347232', +'351466495', +'351528229', +'351572888', +'351630371', +'351705298', +'351745724', +'351867692', +'351909536', +'351980925', +'352009534', +'352014955', +'352050512', +'352170013', +'352236244', +'352256424', +'352335962', +'352383715', +'352529499', +'352533921', +'352600456', +'352645501', +'352739411', +'352745749', +'352751143', +'352774079', +'352948434', +'352973622', +'353150261', +'353185952', +'353282106', +'353296445', +'353311525', +'353522204', +'353669419', +'353735657', +'353861909', +'354083990', +'354500225', +'357200054', +'357801109', +'358802296', +'361200389', +'367801404', +'369200167', +'370200537', +'372800227', +'376080487', +'377524319', +'377679840', +'377714654', +'377895404', +'377917067', +'378040497', +'378072144', +'378168470', +'378358246', +'378460281', +'378499644', +'378702674', +'378783237', +'378901946', +'378992895', +'379134166', +'379142086', +'379208077', +'379229529', +'379455231', +'379587900', +'379696545', +'379706344', +'379821994', +'379914237', +'380110304', +'380111302', +'380129866', +'380160846', +'380160952', +'380231316', +'380342808', +'380368316', +'380474494', +'380484766', +'380622332', +'380631929', +'380744870', +'380827204', +'380932590', +'381031285', +'381165430', +'381352939', +'381548791', +'381743335', +'381983568', +'381997378', +'382017143', +'382368389', +'382372993', +'382401867', +'382587558', +'382597821', +'382891752', +'383123874', +'383196656', +'383242161', +'383242161', +'383252608', +'383300597', +'383359510', +'383392453', +'383470937', +'383474814', +'383475092', +'383537784', +'383607090', +'383703873', +'383706397', +'383711678', +'383719085', +'383755857', +'383766581', +'383866795', +'383921921', +'383960135', +'383966991', +'383986874', +'384029237', +'384030680', +'384074951', +'384137857', +'384560942', +'384627170', +'384711909', +'384956892', +'385006234', +'385019070', +'385215603', +'385365713', +'387468663', +'387949530', +'388156499', +'388231847', +'388237927', +'388379695', +'388698201', +'388727240', +'388734568', +'388758617', +'388777534', +'388779407', +'388784928', +'388866212', +'388872566', +'389134016', +'389187360', +'389191982', +'389192030', +'389192246', +'389272295', +'389290586', +'389297664', +'389390949', +'389470303', +'389516741', +'389534256', +'389566019', +'389571977', +'389574245', +'389578428', +'389589375', +'389612383', +'389613365', +'389625278', +'389632639', +'389675018', +'389730599', +'389756487', +'389798927', +'389818907', +'390053411', +'390179687', +'390398055', +'390426450', +'390689529', +'391125796', +'391182805', +'391378239', +'391543576', +'391548955', +'391637865', +'391673357', +'391793197', +'391829462', +'391890555', +'391918158', +'391933397', +'392032934', +'392172375', +'392212122', +'392213146', +'392377248', +'392462529', +'392468278', +'392527404', +'392860243', +'393118039', +'393135298', +'393162433', +'393193867', +'393291042', +'393341516', +'393341540', +'393361134', +'393502463', +'393525993', +'393709860', +'393712286', +'394671820', +'394816508', +'395001852', +'395780059', +'396020232', +'397480930', +'397509647', +'397767831', +'397815754', +'397894296', +'398110445', +'398266098', +'398471565', +'398762211', +'398796383', +'398827113', +'398993899', +'399198951', +'399226653', +'399227636', +'399258516', +'399292994', +'399307370', +'399311745', +'399315613', +'399341304', +'399361468', +'399395581', +'399861194', +'400357885', +'400519005', +'400752028', +'400869277', +'401182274', +'401308358', +'401375316', +'401449855', +'401503792', +'401595483', +'401948245', +'402038384', +'402096267', +'402222483', +'402293450', +'402327597', +'402638209', +'402682991', +'402805527', +'402959886', +'402965297', +'402968655', +'403056237', +'403080823', +'403082852', +'403104250', +'403106537', +'403119431', +'403138225', +'403184344', +'403206964', +'403210032', +'403215692', +'403256944', +'403259138', +'403291586', +'403335904', +'403335938', +'403412489', +'403860968', +'404164014', +'404271470', +'404432775', +'405650359', +'406680314', +'407512938', +'407794551', +'407842269', +'407899392', +'407904374', +'407948926', +'407985308', +'407986074', +'407997162', +'408024719', +'408063436', +'408685816', +'409108115', +'409160017', +'409160132', +'409709607', +'409722956', +'409768520', +'409862372', +'409867942', +'409899127', +'410000566', +'410034607', +'410065361', +'410081640', +'410140057', +'410151674', +'410218010', +'410267199', +'410279533', +'410303481', +'410313647', +'410314876', +'410330765', +'410335855', +'410349070', +'410352777', +'410354948', +'410355028', +'410383467', +'410409015', +'410409460', +'410435911', +'410436158', +'410546956', +'411198880', +'411393218', +'411787567', +'411795610', +'412082224', +'412280737', +'412395709', +'412431744', +'412442519', +'412581878', +'412798373', +'413151739', +'413156795', +'413156969', +'413157306', +'413512013', +'413691643', +'413782509', +'413901760', +'414030064', +'414033845', +'414119735', +'414138842', +'414265165', +'414281345', +'414337402', +'414433797', +'414496315', +'414537142', +'414572248', +'414611384', +'414642272', +'414675173', +'414702506', +'414719534', +'414725101', +'414728337', +'414728964', +'414799296', +'414814798', +'414815217', +'414819409', +'414842062', +'414945188', +'414954743', +'414967984', +'414969584', +'415176684', +'415550284', +'416220010', +'417350311', +'418096392', +'418679866', +'419553532', +'419671425', +'419683818', +'419782883', +'419875786', +'420495178', +'420540643', +'420559056', +'420611386', +'420625451', +'420742660', +'420797433', +'420809923', +'420851651', +'420879140', +'420948226', +'420985962', +'421098088', +'421106709', +'421110198', +'421131368', +'421149295', +'421159575', +'421162751', +'421174038', +'421218132', +'421255134', +'421287855', +'421320268', +'421343369', +'421414913', +'421454406', +'421627290', +'423032598', +'423959287', +'424059822', +'424210599', +'424623759', +'424691046', +'424821221', +'424946184', +'424982650', +'424982825', +'425039773', +'425050556', +'425064664', +'425920212', +'426420162', +'428111843', +'428240352', +'428267249', +'428268023', +'428269104', +'428559967', +'428560031', +'428593230', +'428611719', +'428675839', +'428677124', +'428682447', +'428682660', +'428682686', +'428685358', +'428689392', +'428702419', +'428706097', +'428706204', +'428709786', +'428734123', +'428764500', +'428764682', +'428891113', +'429057342', +'429638786', +'429707292', +'429811284', +'429852668', +'429955297', +'430006643', +'430209650', +'431657568', +'431817915', +'432123735', +'432505972', +'432513356', +'432845279', +'432930055', +'433085149', +'433224847', +'433250834', +'433313475', +'433604196', +'433623550', +'433623683', +'433691862', +'433719812', +'433744539', +'433802147', +'433824240', +'433842044', +'433888674', +'433891850', +'433900834', +'433907748', +'433927332', +'433938883', +'433948031', +'433962586', +'433977980', +'433998473', +'433999356', +'434019485', +'434021028', +'434021069', +'434045530', +'434317293', +'434691192', +'434776753', +'434831335', +'435151055', +'435377684', +'435480520', +'437181076', +'437380306', +'437807795', +'438050551', +'438053613', +'438090797', +'438102790', +'438116428', +'438277030', +'438834186', +'439067612', +'439220203', +'439436569', +'439987405', +'440055861', +'440056026', +'440056182', +'440056356', +'440056463', +'440156081', +'440156180', +'440198687', +'440233104', +'440267177', +'440294510', +'440303196', +'440305282', +'440319101', +'440319473', +'440326692', +'440372043', +'440513059', +'440767549', +'440916351', +'441330636', +'441772340', +'442439709', +'442743530', +'443021241', +'443177233', +'443681903', +'443782784', +'443806906', +'443982038', +'444212955', +'444329478', +'444420830', +'444454326', +'444502025', +'444523526', +'444565659', +'444575120', +'444590921', +'444600464', +'444608442', +'444619258', +'444632756', +'444718563', +'444719272', +'445088057', +'445331192', +'445720295', +'445950074', +'447754086', +'447800210', +'448139634', +'448457978', +'448596361', +'448683789', +'448863688', +'449080969', +'449142348', +'449354224', +'449990712', +'450028832', +'450372347', +'450866264', +'451208292', +'451221295', +'451225718', +'451268353', +'451321335', +'451321376', +'451329908', +'451353734', +'451375638', +'451647903', +'451678973', +'452013667', +'452783970', +'452791262', +'453577439', +'455501452', +'456204940', +'456500537', +'456800937', +'456801158', +'457208619', +'457507267', +'458502838', +'458503828', +'464202373', +'468500541', +'469600050', +'470500943', +'470801168', +'475483319', +'475581591', +'476980321', +'477180186', +'477181010', +'477280846', +'477565907', +'478293764', +'478355753', +'478417710', +'478565898', +'478725625', +'478780844', +'478784218', +'478989668', +'479026619', +'479048597', +'479162695', +'479464166', +'479766800', +'479766842', +'479766958', +'479766982', +'479766990', +'479767691', +'479769093', +'480081306', +'480107911', +'480470152', +'481212561', +'481213692', +'482283694', +'482605771', +'482755741', +'483018370', +'483479168', +'484190806', +'484920194', +'485720627', +'486080161', +'487454340', +'487706046', +'487911505', +'489139436', +'489332908', +'489626135', +'489952457', +'491167839', +'491371167', +'492486402', +'492713912', +'493191407', +'493254908', +'493265284', +'493371595', +'493385785', +'493394662', +'493502504', +'493821821', +'494887631', +'494887854', +'495361602', +'496680018', +'498818459', +'505680298', +'506950211', +'515420305', +'515450088', +'515580421', +'525580130', +'525721189', +'535420533', +'542001193', +'542010053', +'542014428', +'542016654', +'542021829', +'542034327', +'542034921', +'542035753', +'542036850', +'542040530', +'542041363', +'542041421', +'542042486', +'542050315', +'542050794', +'542051180', +'542052766', +'542052865', +'542054945', +'542057336', +'542064175', +'542066238', +'542070958', +'542076799', +'542078555', +'542086616', +'542088067', +'542094065', +'542094750', +'542095336', +'542097324', +'542097944', +'542107651', +'542107800', +'542780036', +'542880125', +'542950118', +'545550378', +'545620114', +'545920076', +'546650334', +'546650367', +'546780065', +'546950379', +'548202985', +'548500149', +'548500982', +'549850253', +'550501985', +'550502942', +'552002917', +'552006454', +'552008831', +'552011983', +'552012031', +'552012585', +'552014201', +'552016628', +'552016834', +'552018681', +'552022063', +'552022105', +'552024671', +'552029431', +'552032302', +'552032534', +'552032708', +'552033821', +'552034209', +'552035388', +'552042285', +'552043754', +'552044992', +'552046484', +'552046955', +'552048027', +'552048837', +'552049447', +'552052672', +'552052698', +'552059024', +'552061962', +'552065187', +'552076333', +'552080897', +'552081317', +'552081739', +'552083297', +'552088536', +'552093338', +'552096281', +'552107955', +'552108722', +'552111809', +'552114175', +'552115891', +'552117590', +'552118465', +'552118846', +'552119216', +'552124984', +'552141533', +'556750123', +'558201075', +'558501912', +'559800750', +'559801675', +'562000349', +'562011742', +'562012427', +'562013771', +'562016774', +'562024422', +'562029090', +'562033068', +'562036624', +'562037838', +'562038216', +'562041525', +'562042598', +'562046235', +'562050856', +'562053694', +'562055079', +'562060269', +'562061630', +'562063057', +'562068155', +'562071423', +'562077503', +'562077792', +'562091546', +'562100214', +'562102558', +'562107003', +'562109801', +'562110346', +'562110882', +'562113530', +'562123513', +'562136036', +'562620773', +'562821033', +'562880179', +'562920470', +'563720374', +'563820489', +'568500680', +'568502165', +'568504161', +'569200959', +'569800873', +'569801897', +'570804542', +'571722669', +'572025526', +'572028033', +'572028041', +'572040509', +'572050169', +'572050334', +'572053833', +'572059939', +'572064145', +'572067684', +'572071884', +'572074110', +'572075646', +'572075836', +'572082253', +'572086213', +'572093128', +'572093243', +'572102176', +'572139996', +'572141885', +'572149169', +'572155091', +'572158269', +'572165652', +'572174415', +'572185684', +'572201549', +'572219202', +'572221034', +'572232411', +'573680162', +'573750619', +'573820917', +'575680350', +'578500803', +'582001707', +'582008728', +'582017810', +'582018966', +'582022265', +'582074944', +'582081782', +'582106985', +'582122230', +'582131264', +'582137436', +'582142816', +'583720644', +'584800122', +'588501312', +'590800215', +'592014476', +'592059182', +'592067136', +'592780043', +'592880264', +'596820332', +'597020841', +'599815073', +'601251614', +'601650146', +'602002461', +'602010696', +'602018897', +'602020737', +'602025538', +'602033185', +'602036444', +'602045288', +'602052359', +'602055311', +'602060147', +'602820011', +'602950206', +'605520584', +'605620533', +'609849153', +'612016956', +'612030619', +'612034496', +'612035832', +'612039073', +'612039495', +'613650373', +'615820776', +'615920188', +'617120118', +'619200850', +'620800581', +'622009918', +'622012748', +'622037083', +'622037513', +'622042422', +'622044287', +'622057594', +'622980027', +'624500195', +'625780135', +'627220049', +'628200222', +'628502239', +'629857301', +'632012100', +'632013843', +'632021606', +'632022703', +'632041042', +'632045837', +'632049128', +'632050019', +'632054029', +'632750139', +'639804384', +'642005177', +'642016166', +'642020390', +'642041362', +'642058739', +'645680026', +'652009044', +'652023961', +'652031857', +'652041781', +'652044991', +'652054198', +'653820530', +'654800689', +'662006170', +'662014489', +'662018068', +'662025196', +'662043595', +'662047216', +'662049287', +'662051275', +'663820413', +'664800364', +'668500622', +'668502966', +'669801243', +'670500438', +'672006483', +'672008489', +'672014081', +'672014099', +'672024155', +'672039971', +'673620399', +'675580542', +'675680458', +'675780167', +'675980114', +'676250111', +'679801886', +'679803197', +'680500881', +'682010376', +'682026083', +'682030895', +'682040837', +'682780150', +'685420606', +'685550444', +'685550659', +'687020214', +'688203173', +'689800225', +'692007495', +'692011760', +'692015217', +'692021470', +'692036924', +'695480244', +'695680108', +'695720821', +'695721902', +'696080399', +'696520410', +'696780428', +'698800935', +'700200983', +'702001785', +'702012956', +'702019902', +'702021114', +'702027871', +'702034398', +'702055187', +'703780247', +'705580108', +'706220548', +'706580149', +'706980182', +'709200133', +'709200307', +'709801781', +'709806624', +'709900245', +'712007962', +'712018324', +'712019538', +'712019801', +'712023571', +'712030113', +'712030154', +'712034800', +'712042456', +'712044502', +'712049618', +'712052141', +'712052612', +'712620715', +'713780278', +'716320619', +'719805541', +'720801497', +'722000395', +'722000957', +'722003464', +'722024742', +'722028586', +'722031176', +'722033115', +'722034592', +'722037553', +'722043858', +'722045879', +'722047164', +'722055738', +'722063997', +'722065638', +'722620119', +'722621166', +'722850070', +'723000642', +'724501549', +'726580152', +'727050080', +'728206533', +'729800706', +'731620316', +'732075312', +'735520041', +'737050187', +'738205269', +'739806230', +'745420653', +'745550111', +'745780387', +'746950179', +'747252120', +'755802105', +'756200135', +'756200150', +'756800322', +'756802328', +'758501001', +'758801906', +'759200454', +'760800060', +'761201300', +'766500011', +'769800202', +'772500161', +'772500369', +'775424914', +'775558463', +'775558489', +'775572878', +'775576986', +'775581812', +'775588692', +'775591563', +'775592496', +'775604853', +'775618036', +'775618945', +'775629058', +'775634132', +'775644149', +'775658354', +'775658859', +'775661390', +'775662257', +'775663438', +'775665433', +'775667363', +'775678980', +'775690191', +'775690621', +'775690639', +'775694995', +'775700198', +'775701253', +'775714991', +'775726417', +'775726433', +'775727233', +'775728025', +'775729098', +'775733835', +'775784689', +'776056467', +'776221467', +'777379843', +'778115824', +'778127613', +'778147801', +'778151944', +'778596502', +'778740001', +'779306471', +'779463223', +'779859297', +'780109856', +'780130175', +'780503918', +'781107446', +'781446521', +'782855696', +'784032385', +'784824153', +'784939688', +'785304031', +'785480351', +'785769555', +'785792433', +'785820507', +'786920306', +'788037018', +'788213825', +'796380426', +'796580496', +'797080850', +'815420344', +'837150424', +'845420280', +'845880517', +'846920080', +'854800422', +'854800745', +'855200507', +'855802369', +'856200159', +'857200521', +'857800692', +'857802508', +'867500514', +'867800427', +'867800518', +'869500223', +'875550667', +'876580077', +'885581033', +'885850248', +'896820065', +'897080289', +'905620035', +'915722011', +'916521107', +'916920697', +'925520108', +'925750325', +'927250217', +'927350363', +'936080340', +'937080414', +'945550549', +'945752137', +'946051018', +'950026914', +'950344333', +'950397653', +'950596429', +'950608406', +'954200838', +'954503439', +'954506077', +'955500293', +'955503982', +'955504923', +'955510029', +'955511217', +'955801204', +'956500367', +'956501258', +'956506828', +'957501851', +'957503931', +'957520901', +'957526858', +'957528474', +'957802416', +'960506152', +'961503422', +'962501318', +'967504697', +'969510940', +'971201546', +'971204052', +'972200018', +'973201940', +'975620675', +'976320309', +'997506407', +'998269211', +'998348601', +'998823504'); +$nb=count($tabSiren); +foreach ($tabSiren as $i=>$siren) { + echo "$i\t$siren\t"; + $dirs=$iInsee->getDirigeants($siren, false); + $cac1=$cac2=array(); + foreach ($dirs as $j=>$dir) { + if ($dir['Fonction']>299 && $dir['Fonction']<305 && $dir['Ancien']==0) { + switch($dir['Fonction']*1) { + case 300: // Commissaire aux comptes titulaire + case 304: // Commissaire aux comptes + case 302: // Co-commissaire aux comptes titulaire + $cac1[$dir['DateFct']]=array( 'RS' =>$dir['Societe'], + 'Nom' =>$dir['Nom'], + 'Prenom'=>$dir['Prenom']); + break; + default: // Autres commissaires aux comptes suppléeants + $cac2[$dir['DateFct']]=array( 'RS' =>$dir['Societe'], + 'Nom' =>$dir['Nom'], + 'Prenom'=>$dir['Prenom']); + break; + } + } + } + krsort($cac1); + foreach ($cac1 as $cac) break; + echo @$cac['RS']."\t".@$cac['Nom']."\t".@$cac['Prenom']."\t"; + krsort($cac2); + foreach ($cac2 as $cac) break; + echo @$cac['RS']."\t".@$cac['Nom']."\t".@$cac['Prenom'].EOL; +} +die(); + +$tabRet=$iDb->select('insee.insee_even' , 'id,insSIREN,insNIC,insEVE,insSIRETPS,insSIRETASS,idFlux', "id >20000000 +AND insEVE +IN ('M0C', 'M0R', '110', '120', '125') +AND (insDCRET BETWEEN '2011-06-01' AND '2011-06-30' + OR insDCREN BETWEEN '2011-06-01' AND '2011-06-30' + OR idFlux BETWEEN '2011-06-01' AND '2011-06-30') +AND (insAPEN700 IN ('6810Z', '6820A', '6820B', '6831Z', '6832A', '6832B', '8110Z', '4776Z', '5510Z', '5610A', '5610B', '5621Z', '5630Z') + OR insAPET700 IN ('6810Z', '6820A', '6820B', '6831Z', '6832A', '6832B', '8110Z', '4776Z', '5510Z', '5610A', '5610B', '5621Z', '5630Z') +) AND id>=21029406", false, true); +$nbRet=count($tabRet); +$fp=fopen(REP_TEMP . 'diffusionCreationMornay_'.DATETIME."_$nbRet.txt", 'w'); +foreach ($tabRet as $i=>$tabSiren) { + $id=$tabSiren['id']; + $siren=$tabSiren['insSIREN']*1; + $nic=$tabSiren['insNIC']*1; + //echo "DEB $id: $siren $nic".EOL; + $a=$iInsee->getIdentiteEntreprise($siren,$nic); +// echo "DEBa $id: $siren $nic".EOL; + $b=$iInsee->getInfosNotice($siren,$nic); +// echo "DEBb $id: $siren $nic".EOL; + $c=$iInsee->getAdresse($siren,$nic); +// echo "DEBc $id: $siren $nic".EOL; + $even=''; + $siretPre=0; + if ($nic<20) $even=100; + else { + $even=$tabSiren['insEVE']; + if ($a['AutreSiret']['pre']['nic']*1>9) + $siretPre= initstr($siren, 9 , '0', ALIGN_RIGHT) . + initstr($a['AutreSiret']['pre']['nic'], 5 , '0', ALIGN_RIGHT); + } + if ($tabSiren['insSIRETPS']*1>0 && $tabSiren['insSIRETASS']*1==0) + $siretPre=$tabSiren['insSIRETPS']; + elseif($tabSiren['insSIRETPS']*1==0 && $tabSiren['insSIRETASS']*1>0) + $siretPre=$tabSiren['insSIRETASS']; + + $str= $id."\t". + $even."\t". + $a['OrigineCreation']."\t". // Facultatif ORIGINE Origine de la création de l'établissement + initstr($siretPre, 14 , '0', ALIGN_RIGHT) ."\t". + initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise + initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) ."\t". // Obligatoire NIC Nic de l'établissement + initstr($a['FJ'], 4 , '0', ALIGN_RIGHT) ."\t". // Obligatoire CJ Catégorie Juridique de l'entreprise + $a['Nom']."\t". + $a['NomCommercial']."\t". + $a['Enseigne']."\t". + $a['Sigle']."\t". + $a['AdresseNum']."\t". + $a['AdresseBtq']."\t". + $a['AdresseVoie']."\t". + $a['AdresseRue']."\t". + $a['Ville']."\t". + $a['CP']."\t". + $a['Adresse2']."\t". + str_replace("\t",' ',$a['Activite'])."\t". + $a['NafEtab']."\t". + $a['NafEnt']."\t". + WDate::dateT('Ymd','d/m/Y',str_replace('-','',$a['DateCreaEn']))."\t". + WDate::dateT('Ymd','d/m/Y',str_replace('-','',$a['DateCreaEt']))."\t". + WDate::dateT('Ymd','d/m/Y',str_replace('-','',$tabSiren['idFlux']))."\t". + initstr(str_replace('.','',$a['Tel']), 10 ) .EOL; + echo $str; + fwrite($fp, $str); + //echo "FIN $id: $siren $nic".EOL; +} + +die(); +for($k=100000;$k<700000;$k=$k+100000) { +$tabRet=$iDb->select('probtp' , 'id,siren,nic,AdresseNum,AdresseBtq,AdresseVoie,AdresseRue,Adresse2,CP,Ville', "1/*sirenValide=0 AND siretValide=0*/ LIMIT $k,100000", false, true); +$sirenPre=$nbDom=0; +$nbRet=count($tabRet); +foreach ($tabRet as $i=>$tabSiren) { + $id=$tabSiren['id']; + $siren=$tabSiren['siren']; + $nic=$tabSiren['nic']; + /* + $sirenV=$iInsee->valideSiren($siren); + if ($sirenV) $siretV=$iInsee->valideSiren($siren,$nic); + else $siretV=false; + $tabUpdate=array( 'sirenValide'=>$sirenV, + 'siretValide'=>$siretV, + ); + */ + + /* + if ($siren<>$sirenPre) { + $mBil=new MBilans($siren); + $tabBilans=@$mBil->listeBilans(); + } + if (count($tabBilans)>0) { + if ($siren<>$sirenPre) { + $derBilan=current($tabBilans); + $p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']); + } + if ($p['CONSOLIDE']=='N' || $p['CONSOLIDE']=='S') { + $unite=$p['MONNAIE_LIV_UNITE']; + switch ($unite) { + case 'm': + case 'M': $mult=1000000; break; + case 'k': + case 'K': $mult=1000; break; + default: $mult=1; break; + } + $tabUpdate=array( 'bilanDate'=>@$p['DATE_CLOTURE'], + 'bilanDuree'=>@$p['DUREE_MOIS'], + 'bilanYP'=>@$p['YP'], + 'bilanGG'=>@$p['GG']*$mult, + 'bilanFJ'=>@$p['FJ']*$mult, + 'bilanHN'=>@$p['HN']*$mult, + ); + $iDb->update('probtp', $tabUpdate, "siren=$siren AND nic=$nic"); + } + }*/ + + if ($siren<>$sirenPre) { + /* $tabDir=@$iInsee->getDirigeants($siren, false); + if (count($tabDir)>0) { + $dir=$tabDir[0]; + $tabUpdate=@array( 'dirNom'=>$dir['Nom'], + 'dirPre'=>$dir['Prenom'], + 'dirDate'=>WDate::dateT('d/m/Y','Ymd',$dir['NaissDate']), + ); + $iDb->update('probtp', $tabUpdate, "siren=$siren AND nic=$nic"); + }*/ + /** Adresse de domiciliation + **/ + $tabDom=@$iInsee->infoAdresseDom( $tabSiren['AdresseNum'], + $tabSiren['AdresseBtq'], + $tabSiren['AdresseVoie'], + $tabSiren['AdresseRue'], + $tabSiren['Adresse2'], + $tabSiren['CP'], + $tabSiren['Ville']); + if (is_array($tabDom) && count($tabDom)>0) { + $nbDom++; + $tabUpdate=array('adrDom'=>1); + if (preg_match('/^CHEZ (.*)$/i',$tabSiren['Adresse2'], $matches) && + !preg_match('/ M | M. | MR | MME | MLLE /i',$tabSiren['Adresse2'])) + $tabUpdate=array('adrDom'=>2); + + $iDb->update('probtp', $tabUpdate, "siren=$siren AND nic=$nic"); + } + } + + if ($i%1000==0) echo date('Y/m/d H:i:s')." - $i/$nbRet : $siren $nic ($id, $nbDom)".EOL; + $sirenPre=$siren; +} +} +die(); + +print_r(unserialize('a:7:{s:6:"Profil";s:12:"Recouvrement";s:11:"ProfilAutre";s:0:"";s:8:"Identite";s:17:"JACINTO Catherine";s:3:"Tel";s:14:"01 60 17 62 77";s:3:"Fax";s:0:"";s:5:"Email";s:26:"cjacinto@phoenixcontact.fr";s:3:"Ref";s:8:"CJ221106";}')); +echo EOL; +print_r(unserialize('a:14:{s:6:"Entrep";a:3:{s:8:"AutreTel";s:0:"";s:9:"AutreMail";s:0:"";s:3:"Rib";a:4:{s:6:"Banque";s:0:"";s:7:"Guichet";s:0:"";s:6:"Compte";s:0:"";s:3:"Cle";s:0:"";}}s:7:"Encours";s:5:"25000";s:11:"NbEcheances";s:1:"3";s:12:"AvisAssureur";s:1:"-";s:4:"Type";s:4:"gold";s:5:"Delai";s:1:"1";s:10:"Precisions";a:4:{s:9:"MontantCA";s:0:"";s:5:"Motif";s:19:"suivi de l\'encours ";s:5:"Autre";s:0:"";s:4:"Type";s:39:"Enquete sur un client (controle credit)";}s:10:"Anciennete";s:2:"15";s:15:"AncienneteDuree";s:6:"Annees";s:13:"ImpayeesChoix";s:3:"non";s:8:"Impayees";a:3:{s:7:"Montant";s:0:"";s:6:"Nombre";s:0:"";s:4:"Date";s:0:"";}s:14:"RetardPaiement";a:3:{s:7:"Montant";s:0:"";s:6:"Nombre";s:0:"";s:4:"Date";s:0:"";}s:6:"Litige";a:1:{s:10:"Precisions";s:0:"";}s:11:"Observation";s:0:"";}')); +die(); +die(print_r($iInsee->getInfoSirene(29, 444745475))); + +/*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 "
"; +while (list($mois, $tab) = each ($fériées)) { +while (list($jour, $fete) = each ($tab)) { +echo "$jour/$mois/$année => $fete \n
"; +} + +} +*/ + + $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'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); + } + + function getNomPrenomGenre($strNomPrenom) { + $iDb=new WDB('npaipp'); + $noms=$prenoms=$genre=''; + $tabMots=preg_split('/( +|\.+)/', $strNomPrenom); + foreach ($tabMots as $i=>$prenom) { + $tabPrenoms=$iDb->select('pp_prenoms', 'prenom, genre, mixte, nbTot', + "prenom='".addslashes($prenom)."' AND nbTot>100 ORDER BY nbTot DESC", + false, MYSQL_ASSOC); + if (count($tabPrenoms)>0) { + $tabPrenom=$tabPrenoms[0]; + $prenoms.=$prenom.', '; + if ($genre=='' && $tabPrenom['genre']==1 && $tabPrenom['mixte']==0) + $genre='M'; + elseif ($genre=='' && $tabPrenom['genre']==2 && $tabPrenom['mixte']==0) + $genre='F'; + } else + // Ce n'est pas un prénom mais un nom de famille + $noms.=$prenom.' '; + } + return array('Nom'=>trim($noms), 'Prenoms'=>preg_replace('/,$/','',trim($prenoms)), 'Genre'=>$genre); + } + ?> diff --git a/batch/doProBtp2013.php b/batch/doProBtp2013.php new file mode 100644 index 00000000..716c7626 --- /dev/null +++ b/batch/doProBtp2013.php @@ -0,0 +1,2640 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +select('probtp2013' , 'id,siren,nic,AdresseNum,AdresseBtq,AdresseVoie,AdresseRue,Adresse2,CP,Ville', "sirenValide=1 ORDER BY siren ASC LIMIT $k,100000", false, true); +$sirenPre=$nbDom=0; +$nbRet=count($tabRet); +foreach ($tabRet as $i=>$tabSiren) { + $id=$tabSiren['id']; + $siren=$tabSiren['siren']; + $nic=$tabSiren['nic']; + $tabUpdate=array(); + /*$sirenV=$iInsee->valideSiren($siren); + if ($sirenV) $siretV=$iInsee->valideSiren($siren,$nic); + else $siretV=false; + $tabUpdate=array( 'sirenValide'=>$sirenV, + 'siretValide'=>$siretV, + ); + */ + + + if ($siren<>$sirenPre) { + + //$mBil=new MBilans($siren); + //$tabBilans=@$mBil->listeBilans(); + + $tabDir=@$iInsee->getDirigeants($siren, false); + if (count($tabDir)>0) { + $dir=$tabDir[0]; + $tabUpdate['dirNom']=$dir['Nom']; + $tabUpdate['dirPre']=$dir['Prenom']; + $tabUpdate['dirDate']=@WDate::dateT('d/m/Y','Ymd',$dir['NaissDate']); + } + } + /*if (count($tabBilans)>0) { + if ($siren<>$sirenPre) { + $derBilan=current($tabBilans); + $p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']); + } + if ($p['CONSOLIDE']=='N' || $p['CONSOLIDE']=='S') { + $unite=$p['MONNAIE_LIV_UNITE']; + switch ($unite) { + case 'm': + case 'M': $mult=1000000; break; + case 'k': + case 'K': $mult=1000; break; + default: $mult=1; break; + } + $tabUpdate['bilanDate']=@$p['DATE_CLOTURE']; + $tabUpdate['bilanDuree']=@$p['DUREE_MOIS']; + $tabUpdate['bilanYP']=@$p['YP']; + $tabUpdate['bilanGG']=@$p['GG']*$mult; + $tabUpdate['bilanFJ']=@$p['FJ']*$mult; + $tabUpdate['bilanHN']=@$p['HN']*$mult; + } + }*/ + + /** Adresse de domiciliation + **/ + $tabDom=@$iInsee->infoAdresseDom( $tabSiren['AdresseNum'], + $tabSiren['AdresseBtq'], + $tabSiren['AdresseVoie'], + $tabSiren['AdresseRue'], + $tabSiren['Adresse2'], + $tabSiren['CP'], + $tabSiren['Ville']); + if (is_array($tabDom) && count($tabDom)>0) { + $nbDom++; + $tabUpdate['adrDom']=1; + if (preg_match('/^CHEZ (.*)$/i',$tabSiren['Adresse2'], $matches) && + !preg_match('/ M | M. | MR | MME | MLLE /i',$tabSiren['Adresse2'])) + $tabUpdate['adrDom']=2; + } + + if (count($tabUpdate)>0) + $iDb->update('probtp2013', $tabUpdate, "id=$id"); + //echo mysql_error().EOL; + if ($i%1000==0) echo date('Y/m/d H:i:s')." - $i/$nbRet : $siren $nic ($id)".EOL;//, $nbDom + $sirenPre=$siren; +} +} +die(); + +print_r(unserialize('a:7:{s:6:"Profil";s:12:"Recouvrement";s:11:"ProfilAutre";s:0:"";s:8:"Identite";s:17:"JACINTO Catherine";s:3:"Tel";s:14:"01 60 17 62 77";s:3:"Fax";s:0:"";s:5:"Email";s:26:"cjacinto@phoenixcontact.fr";s:3:"Ref";s:8:"CJ221106";}')); +echo EOL; +print_r(unserialize('a:14:{s:6:"Entrep";a:3:{s:8:"AutreTel";s:0:"";s:9:"AutreMail";s:0:"";s:3:"Rib";a:4:{s:6:"Banque";s:0:"";s:7:"Guichet";s:0:"";s:6:"Compte";s:0:"";s:3:"Cle";s:0:"";}}s:7:"Encours";s:5:"25000";s:11:"NbEcheances";s:1:"3";s:12:"AvisAssureur";s:1:"-";s:4:"Type";s:4:"gold";s:5:"Delai";s:1:"1";s:10:"Precisions";a:4:{s:9:"MontantCA";s:0:"";s:5:"Motif";s:19:"suivi de l\'encours ";s:5:"Autre";s:0:"";s:4:"Type";s:39:"Enquete sur un client (controle credit)";}s:10:"Anciennete";s:2:"15";s:15:"AncienneteDuree";s:6:"Annees";s:13:"ImpayeesChoix";s:3:"non";s:8:"Impayees";a:3:{s:7:"Montant";s:0:"";s:6:"Nombre";s:0:"";s:4:"Date";s:0:"";}s:14:"RetardPaiement";a:3:{s:7:"Montant";s:0:"";s:6:"Nombre";s:0:"";s:4:"Date";s:0:"";}s:6:"Litige";a:1:{s:10:"Precisions";s:0:"";}s:11:"Observation";s:0:"";}')); +die(); +die(print_r($iInsee->getInfoSirene(29, 444745475))); + +/*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 "
"; +while (list($mois, $tab) = each ($fériées)) { +while (list($jour, $fete) = each ($tab)) { +echo "$jour/$mois/$année => $fete \n
"; +} + +} +*/ + + $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'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); + } + + + //include_once(INCLUDE_PATH.'insee/classMSigVille.php'); + $cookie=$post=$referer=''; + $timeout=5; + + //isZonesPrior($codeInsee, $adrCP, $adrVille, $adrNum, $adrBtq, $adrTypVoie, $adrLibVoie) + $tabRet=$iDb->select('jo.zonage' , + 'address,rivoli,adrNum,adrIndRep,adrTypeVoie,adrLibVoie,adr_cp,adr_ville,zus,zru,zfu,cucs', + //"zus='NSP' OR zru='NSP' OR zfu='NSP' OR cucs='NSP'", false, true); + //"zus='NSP' AND zru='NSP' AND zfu='NSP' AND cucs='NSP'", false, true); + "zus<>'' OR zru<>'' OR zfu<>'' OR cucs<>''", false, true); + $nbRet=count($tabRet); + foreach ($tabRet as $i=>$tabTmp) { + echo "Adresse n°$i/$nbRet :\t"; + $ret=$iDb2->select('zonages', 'count(*) as nb', "adr_cp='".$tabTmp['adr_cp'] + ."' AND adr_ville='".addslashes($tabTmp['adr_ville']) + ."' AND addressIn='".addslashes($tabTmp['address'])."'", false); + if ($ret[0]['nb']>0) { + echo "Déjà traitée.".EOL; + } + else { + echo "en cours...".EOL; + @isZonesPrior(substr($tabTmp['rivoli'],0,5), $tabTmp['adr_cp'], $tabTmp['adr_ville'], $tabTmp['adrNum'], + $tabTmp['adrIndRep'], $tabTmp['adrTypeVoie'], $tabTmp['adrLibVoie'], + $tabTmp['address'], $tabTmp['rivoli'], $tabTmp['zus'], $tabTmp['zru'], $tabTmp['zfu'],$tabTmp['cucs']); + randsleep(7,21); + //randsleep(1,2); + } + } + die(); + + + $tabRet=$iDb->select('villes.villes_geographie' , 'DISTINCT cp AS cp', "cp>=58370", false, true); + $nbRet=count($tabRet); + foreach ($tabRet as $i=>$tabTmp) { + $cpIn=$tabTmp['cp']; + $url="http://sig.ville.gouv.fr/adresses/autocompleteCommune?nom_commune=&code_postal=$cpIn"; + $page=getUrl($url, $cookie, $post, $referer, false, 'sig.ville.gouv.fr', '', $timeout); + $body=$page['body']; + if (preg_match_all('/
  • (.*) \((.*)\)<\/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)); + //getVoiesVille($cp,$ville,"$i/$nbRet"); + } + }/* +
  • Ablaincourt-Pressoir (80320)
  • +
  • Ablain-Saint-Nazaire (62153)
  • + */ + randsleep(7,21); + } + function getVoiesVille($cp,$ville,$infos='') { + global $iDb; + $cookie=$post=$referer=''; + $timeout=5; + for ($i=65; $i<=90;$i++) { + $lettre=chr($i); + $url="http://sig.ville.gouv.fr/adresses/autocompleteVoie?nom_voie=$lettre&code_postal=$cp&nom_commune=".trimAccent($ville); + $page=getUrl($url, $cookie, $post, $referer, false, 'sig.ville.gouv.fr', '', $timeout); + $body=$page['body']; + if (preg_match_all('/
  • (.*)<\/li>/Uim', $body, $matches)) { + foreach ($matches[1] as $j=>$id) { + $voie=strip_tags(utf8_decode($matches[2][$j])); + echo "$infos:$cp\t$ville\t$id\t$voie".EOL; + $iDb->insert('zonesVoies', array( 'cp'=>$cp, + 'commune'=>$ville, + 'idVoie'=>$id, + 'libVoie'=>$voie)); + } + } + } + } + + function isZonesPrior($codeInsee, $adrCP, $adrVille, $adrNum, $adrBtq, $adrTypVoie, $adrLibVoie, + $address,$rivoli,$zus,$zru,$zfu,$cucs) { + global $iDb; + $iInsee=new MInsee(); + $cookie=$post=$referer=''; + $timeout=5; + $url="http://sig.ville.gouv.fr/recherche-adresses-zus-zfu-quartiers-des-cucs"; + $post=array('insee_com'=>$codeInsee, + 'code_postal'=>$adrCP, + 'nom_commune'=>trimAccent($adrVille), + 'num_adresse'=>trim($adrNum.$adrBtq), + 'id_voie'=>'', + 'nom_voie'=>urlencode(trim($iInsee->getCodeVoie($adrTypVoie).' '.$adrLibVoie)), + 'x'=>33, + 'y'=>19, + ); + $page=getUrl($url, $cookie, $post, $referer, false, 'sig.ville.gouv.fr', '', $timeout); + $body=$page['body']; + if (preg_match('/sultats de la recherche pour l\'adresse(?:.*)(.*)<\/strong>/Uis', $body, $matches)) { + $adrRet=trim(preg_replace('/ +/',' ', utf8_decode($matches[1]))); + } + + if (preg_match('/
  • (?:.*)(?:.*)<\/span>(.*)<\/li>/Uis', $body, $matches)) { + $adrQuartier=trim(utf8_decode($matches[1])); + + } + + if (preg_match('/
    Pour information \: <\/strong><\/div>(?:.*)
  • (.*)
    (?:.*)
    (?:.*)

    ', + 'adr2'=>'Coordonnées société
    (?:.*)
    (.*)
    (?:.*)

    ', + 'adr3'=>'Coordonnées société
    (?:.*)
    (?:.*)
    (.*)

    ', + 'tel'=>'
    Téléphone : (.*)
    ', + 'fax'=>'
    Fax : (.*)
    ', + 'web'=>'
    Internet : '- Code Isin :
     (.*) (.*) (.*) (.*)<\/td>(?:.*)<\/td>(?:.*)<\/font><\/td>(.*)<\/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(); + + ?> \ No newline at end of file diff --git a/batch/getAmf.php b/batch/getAmf.php index 4510cdf9..d8a13324 100644 --- a/batch/getAmf.php +++ b/batch/getAmf.php @@ -21,7 +21,7 @@ $argv=$_SERVER['argv']; for ($i=1,$j=0; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { - case 'd': $modeDebug=true; break; + case 'v': $modeDebug=true; break; case '-': case '?': die($strInfoScript); break; default: die('Option '. $argv[$i] . " inconnue !\n"); @@ -31,7 +31,8 @@ for ($i=1,$j=0; isset($argv[$i]); $i++) { $iDb=new WDB('sdv1'); $table='amf_geco'; -$urlBase='http://www.amf-france.org/bio/rech_SG.aspx'; +//$urlBase='http://www.amf-france.org/bio/rech_SG.aspx'; +$urlBase='http://www.amf-france.org/bio/res_SG.aspx'; $tabZones=array('codeQE'=>' Code QE n°(?:.*) (\d+)
    '. $page['body'] .'

    '; $infoAnnBalo['Annonce_Html']=$page['body']; randsleep($tempsMinEntreRequetes,$tempsMaxEntreRequetes); @@ -293,4 +310,4 @@ while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates echo date('Y/m/d - H:i:s') .' - FIN du script'. EOL; sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'JO BALO', $message); - ?> \ No newline at end of file + ?> diff --git a/batch/getBanques.php b/batch/getBanques.php new file mode 100644 index 00000000..106d19ad --- /dev/null +++ b/batch/getBanques.php @@ -0,0 +1,238 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini + +Mise à jour des listes des sociétés de gestion agrées par l'AMF + +Options : + -v Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles) + -b Sirenage des codes banques non encore sirenés + -r=13S00000 Traiter ce numéro de RCI + +";/* -i:XXXXX Reprendre au code commune Insee XXXXX + +";*/ + +$argv=$_SERVER['argv']; + +for ($i=1,$j=0; isset($argv[$i]); $i++) { + if (substr($argv[$i],0,1)=='-') { + switch (substr($argv[$i],1,1)) { + case 'v': $modeDebug=true; break; + case 'b': $modeSirenBanque=true; break; + //case 'r': $modeRCI=trim(substr($argv[$i],3,strlen($argv[$i])-1)); break; + case '-': + case '?': die($strInfoScript); break; + default: die('Option '. $argv[$i] . " inconnue !\n"); + } + } +} + +$iDb=new WDB('insee'); +$table='BDF_Etabs'; +/*$urlBase='http://www.amf-france.org/bio/rech_SG.aspx'; +$referer='http://www.rci.gouv.mc/index.jsp'; +$urlRecherche='10088'; +*/ +$retrait=1; +$urlDetail="https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination=&siren=&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=21&cib="; + +$tabZones =array('id'=>"&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=(.*)\">(?:.*)"); +$tabZones2=array( 'nom' => 'Dénomination sociale : (.*)

    ', + 'denomination' => '
  • Dénomination sociale : (.*)
  • ', + 'nomCom' => '
  • Nom commercial : (.*)
  • ', + 'fjLib' => '
  • Forme juridique : (.*)
  • ', + 'bdfFibCodeEtab'=> '
  • Code banque \(CIB\) : (.*)
  • ', + 'siren' => '
  • SIREN : (.*)
  • ', + 'typAgentFi' => '(.*)
      ', + 'natAutor' => '
    • Nature d\'autorisation : (.*)
    • ', + 'natExercice' => '
    • Nature d\'exercice : (.*)
    • ', + 'adresse' => '
    • Adresse du siège social : (.*)
    • ', + 'CP' => '
    • Code postal : (.*)
    • ', + 'Ville' => '
    • Ville : (.*)
    • ', + 'paysLib' => '
    • Pays : (.*)
    • '); +// + +echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL; + +$modeSirenBanque=true; + +if ($modeSirenBanque) { + $ret=$iDb->select($table, 'bdfFibCodeEtab, bdfFibDenom40', "1/*siren<1000 AND bdfFibCodeEtab>23585*/ AND preRegafi IS NULL AND idRegafi IS NULL ORDER BY bdfFibCodeEtab", false); + $nbLet=count($ret); + foreach ($ret as $tFiche) { + @$nbDone++; + $id=$tFiche['bdfFibCodeEtab']; + $nom=$tFiche['bdfFibDenom40']; + echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : Code Banque $id - $nom = "; + $referer="https://www.regafi.fr/spip.php?page=advancedsearch&id_secteur=1"; + $urlFiche="https://www.regafi.fr/spip.php?page=results&type=advanced&id_secteur=1&lang=fr&denomination=&siren=&cib=$id&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait"; + $page=getUrl($urlFiche, '', '', $referer, false); + $body=$page['body']; + if (preg_match('/Nombre de résultats \:<\/strong> 0<\/p>/', $body, $matches)) { + $iDb->update($table, array('preRegafi'=>0), "bdfFibCodeEtab=$id"); + echo 'Non trouvé !'.EOL; + if ($modeDebug) randsleep(1,2); + else randsleep(60,120); + continue; + } + //print_r($page);die(); + $tabUpdate=@html2array($body, $tabZones); + //print_r($tabUpdate);die(); + + // Détail + $referer=$urlFiche; + //https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination&siren&cib&bic&nom&siren_agent&num&cat=0&retrait=0&pg=57&page=af&id=7571 + $idRegafi=$tabUpdate['id']; + $urlFiche="https://www.regafi.fr/spip.php?type=advanced&id_secteur=1&lang=fr&denomination=&siren=&cib=$id&bic=&nom=&siren_agent=&num=&cat=0&retrait=$retrait&page=af&id=".$idRegafi; + $page=getUrl($urlFiche, '', '', $referer, false); + $body=$page['body']; + //print_r($page);die(); + $tabUpdate=@html2array($body, $tabZones2); + //print_r($tabUpdate);die(); + echo $tabUpdate['nom'].' - '.@$tabUpdate['siren'].EOL; + unset($tabUpdate['nom']); + $tabUpdate['idRegafi']=$idRegafi; + $tabUpdate['preRegafi']=1; + if (@$tabUpdate['siren']>1000 || $idRegafi>0) { + $tabUpdate['sirenValide']=1; + $tabUpdate['denomination']=strtr($tabUpdate['denomination'],array('''=>"'")); + $tabUpdate['nomCom']=@strtr($tabUpdate['nomCom'],array('''=>"'")); + $tabUpdate['adresse']=@strtr($tabUpdate['adresse'],array('''=>"'")); + $tabTypAgentFi=array(); + if (preg_match("/ablissement de cr.{1,10}alis.{1,5}/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CRS'; + elseif (preg_match("/Etablissement de cr.{1,5}t/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CR'; + if (preg_match("/Non prestataire de services d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='NSI'; + elseif (preg_match("/Prestataire de services d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='SI'; + if (preg_match("/Banque mutualiste ou coop.{1,5}tive/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='BQM'; + elseif (preg_match("/Banque/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='BQ'; + if (preg_match("/Caisse de cr.{1,5}t municipal et .{1,5}blissement assimilable/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CM'; + if (preg_match("/Entreprise d'investissement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EI'; + if (preg_match("/Etablissement de monnaie.{1,5}ctronique/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EM'; + if (preg_match("/Soci.{1,5} de financement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='SF'; + if (preg_match("/Etablissement de paiement/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='EP'; + if (preg_match("/Institution financi.{1,5} sp.{1,5}alis/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='IFS'; + if (preg_match("/Compagnie financi.{1,5} holding/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CFH'; + if (preg_match("/Changeur manuel/", $tabUpdate['typAgentFi'])) $tabTypAgentFi[]='CHM'; + if (count($tabTypAgentFi)==0) die('Je ne connais pas '.$tabUpdate['typAgentFi'].EOL); + $iDb->update($table, $tabUpdate, "bdfFibCodeEtab=$id"); + } + if ($modeDebug) randsleep(1,2); + else { + randsleep(60,120); + if (date('H')>19) die(); + } + } + +} + +die(); + +shuffle($tabLet); +file_put_contents (REP_TEMP.$table, serialize($tabLet)); +die(); +echo count($tabLet); +//serialize +print_r($tabLet); +die(); + +$tabHtml=html2array($body, $tabZones); +print_r($tabHtml); + +die(); + + +$ret=$iDb->select($table, 'agrementNum', '1', false); +foreach ($ret as $tAgrNum) { + $agrNum=$tAgrNum['agrementNum']; + echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL; +} + +for($i=$iDeb;;$i++) { + $tabInsert=array('id'=>$i); + + $url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15"; + $page=getUrl($url, '', '', '', false); + $referer=$url; + $body=$page['body']; + print_r($page); + die(); + + $tabHtml=html2array($body, $tabZones); + + foreach ($tabHtml as $zone=>$data) { + if (is_array($data)) { + foreach ($data as $j=>$tabInsert2) { + $tabInsert2['id']=$i; + $tabInsert2['num']=$j; + $tabInsert2['dateInsert']=date('YmdHis'); + if (!$iDb->insert($table.$zone, $tabInsert2, false)) { + if (mysql_errno()==1062) { + unset($tabInsert2['dateInsert']); + $iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false); + } else { + print_r($tabInsert2); + die(mysql_error()); + } + } + } + } else + $tabInsert[$zone]=$data; + } + if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') { + $nbVides++; + if ($nbVides<20) continue; + else { + echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL; + die(); + } + } + $nbVides=0; + + unset($tabInsert['qualifs']); + + if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') { + $urlLogo='http://www.qualifelec.fr/'; + die($tabInsert['urlImg']); + if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') { + $extension=substr(strrchr($urlLogo,'.'),1); + if (!file_exists("/home/data/logos/$siren.$extension")) { + $referer=''; + $tDeb=microtime(true); + $page=getUrl($urlLogo, '', '', $referer, false, '', '', 60); + $duree=round(microtime(true)-$tDeb,3); + $body=$page['body']; + $taille=round(strlen($body)/1024,1); + file_put_contents("/home/data/logos/$siren.$extension",$body); + } + } + } + unset($tabInsert['urlImg']); + $tabInsert['dateInsert']=date('YmdHis'); + if (!$iDb->insert($table, $tabInsert, false)) { + if (mysql_errno()==1062) { + unset($tabInsert['dateInsert']); + $iDb->update($table, $tabInsert, "id=$i", false); + } else { + print_r($tabInsert); + die(mysql_error()); + } + } + + //die(); + $nb=count($tabInsert); + $nb2=@count($tabInsert2); + echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL; + + if ($modeDebug) randsleep(1,2); + else randsleep(7,21); +} + +die(); + + ?> diff --git a/batch/getBilansImages.php b/batch/getBilansImages.php index 2c20dbd0..cee9fde0 100644 --- a/batch/getBilansImages.php +++ b/batch/getBilansImages.php @@ -43,7 +43,8 @@ $iInsee=new MInsee(); foreach ($tabFichier as $i=>$fichier) { $tabSiren=file($fichier); foreach ($tabSiren as $iSiren=>$siren) { - $siren=trim($siren); + $siren=explode(',',trim($siren)); + $siren=$siren[0]; $tabIdentite=$iInsee->getIdentiteLight($siren); $rs=$tabIdentite['Nom']; $strBase="$iSiren,$siren,$rs"; @@ -51,6 +52,8 @@ foreach ($tabFichier as $i=>$fichier) { $tabActes=@$iGreffes->getBilansImages($siren); $bilan=@$tabActes[0]; $ref=$bilan['ref']; + $type=$bilan['type']; + $dateCloture=$bilan['dateCloture']; echo $strBase. $bilan['annee'].','. $bilan['type'] .','. @@ -58,9 +61,11 @@ foreach ($tabFichier as $i=>$fichier) { $bilan['depot_num'] .','. $bilan['vecteurs'] .','; if ($ref<>'') { - echo "http://extranet.scores-decisions.com/pieces/bilan/siret/$siren/ref/$ref/mode/T"; + //echo "http://extranet.scores-decisions.com/pieces/bilan/siren/$siren/ref/$ref/mode/T"; + echo "http://extranet.scores-decisions.com/pieces/bilan/siren/$siren/mode/T/type/$type/cloture/$dateCloture"; echo ','; - echo "http://extranet.scores-decisions.com/fichier/pdf/bilan-$siren-$ref.pdf"; + echo "http://extranet.scores-decisions.com/fichier/greffe/bilan-$siren-$type-$dateCloture.pdf"; + // http://extranet.scores-decisions.com/fichier//bilan-303217368-sociaux-2013-12-31.pdf } } elseif ($type=='S') { diff --git a/batch/getBilansInpi.php b/batch/getBilansInpi.php index 72850eb0..e4f5eade 100644 --- a/batch/getBilansInpi.php +++ b/batch/getBilansInpi.php @@ -691,6 +691,7 @@ Options : -h Ne pas charger la notice dans la base des 'historiques' ";*/ $iDb=new WDB(); +$iDbH=new WDB('historiques'); global $iInsee; $iInsee=new MInsee(); $iRncs=new MRncs(); @@ -750,7 +751,7 @@ if ($ftpStep) { $dateDist = ftp_mdtm($conn_id, $server_file); $server_fileName=basename($server_file); - if (!preg_match('/BILSCOREDEC/i', $server_fileName)) { + if (!preg_match('/BILSCOREDEC/i', $server_fileName) || preg_match('/\.swp/i', $server_fileName)) { if ($modeDebug) echo date('Y/m/d - H:i:s'). " - Le fichier distant '$server_fileName' n'est pas un flux RNCS/BILANS.".EOL; continue; } elseif ($modeDebug) @@ -879,6 +880,7 @@ foreach ($tabFichier as $iFic=>$fichier) if ($fp) { $nbLignes=$nbLignes1=$nbLignes2=$nbLignes3=$nbLignes4=0; $nbUpdate=$nbNotUpdate=$nbInsert=0; + $tabDept=$tabMill=$tabDeptMill=array(); $a = fgets($fp, 4096); $tailleLigne=strlen($a); if ($tailleLigne<90 || $tailleLigne>91) { @@ -915,6 +917,7 @@ foreach ($tabFichier as $iFic=>$fichier) $siren = trim( substr($a, 0, 9)); // SIREN $nic = trim( substr($a, 9, 5)); // NIC $dateCloture= trim( substr($a, 14, 8)); // SSAAMMJJ + if (strlen(trim($a))==34) { // echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, ligne de 34 caractères '$a'...".EOL; $idFichier = trim( substr($a, 0, 10)); @@ -943,7 +946,7 @@ foreach ($tabFichier as $iFic=>$fichier) } // echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, ligne de 34 caractères '$a'... RAS".EOL; } - + $tabPages=array(); switch ($codeEnr) { case '1': // Structure de début de Bilan $nbLignes1++; @@ -953,6 +956,8 @@ foreach ($tabFichier as $iFic=>$fichier) $ff) { // Enregistrer le Bilan précédent si siren différent $nbBilans++; + @$tabMill[substr($dateCloturePre,0,4)]++; + $strPostes=''; foreach($tabPostes as $poste=>$valeur) $strPostes.="$poste=$valeur;"; @@ -988,19 +993,70 @@ foreach ($tabFichier as $iFic=>$fichier) } if (/*$codeSai=='00' || $codeSai=='01'*/strlen($strPostes)>0) { - $ret=$iDb->select('bilans', 'partenaire, siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dureeExercice', "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false, MYSQL_ASSOC); + // + $ret=$iDb->select('bilans', 'id, partenaire, siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dateProvPartenaire, dureeExercicePre, monnaie, monnaieOrigine, unite, postes, confidentiel, dateInsert, dureeExercice', "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false, MYSQL_ASSOC); //unset($ret); if (isset($ret[0])) { $codeCon=false; $bilanPre=$ret[0]; + $messageLigne=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Bilan INPI déjà saisi le ".$bilanPre['dateProvPartenaire']." (".$bilanPre['partenaire'].") et entré en base S&D le ".$bilanPre['dateInsert'].EOL; + echo $messageLigne; + $message.=$messageLigne; + $idBilanPre=$bilanPre['id']; + $confPre=$bilanPre['confidentiel']; + $dateInsertPre=$bilanPre['dateInsert']; + if ($bilanPre['partenaire']==7 || $bilanPre['partenaire']==8 || $bilanPre['partenaire']==9) { /** On n'écrase pas le bilan s'il a été saisit par S&D */ - $ret=$iDb->update('bilans', $tabInsert, "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false); - $nbUpdate++; - } else - $nbNotUpdate++; + unset($bilanPre['id']); + unset($bilanPre['dureeExerciceCalc']); + unset($bilanPre['confidentiel']); + unset($bilanPre['dateInsert']); + /*$bilanPre['dateExercicePre']=$bilanPre['dateExercicePre']*1; + $bilanPre['dureeExercice']=$bilanPre['dureeExercice']*1; + $bilanPre['dureeExercicePre']=$bilanPre['dureeExercicePre']*1; + */ + $strPostePre=$bilanPre['postes']; + $strPostePre=explode(';', $strPostePre); + foreach ($strPostePre as $tmpPoste) { + $tmpPoste=explode('=', $tmpPoste); + if (isset($tmpPoste[1])) + $tabPostesPre[$tmpPoste[0]]=$tmpPoste[1]; + } + $bilanDiff = array_diff($tabInsert, $bilanPre); + $postesDiff = array_diff($tabPostes, $tabPostesPre); + if (count($bilanDiff)>0 || count($postesDiff)>0) { + $ret=$iDb->update('bilans', $tabInsert, "siren='$sirenPre' AND typeBilan='$typeBilan' AND dateExercice='$dateCloturePre'", false); + $bilanPre['id']=$idBilanPre; + $bilanPre['confidentiel']=$confPre; + $bilanPre['dateInsert']=$dateInsertPre; + $retH=$iDbH->update('bilans', $tabInsert, false); + //print_r($tabInsert); + //print_r($bilanPre); + print_r($bilanDiff); + echo EOL; + //print_r($tabPostes); + //print_r($tabPostesPre); + print_r($postesDiff); + $strPostesDiff=''; + foreach($postesDiff as $poste=>$valeur) + $strPostesDiff.="$poste=$valeur;"; + if (trim($strPostesDiff)<>'') { + $tabInsertDiff=array('idUtilisateur'=> 0, + 'siren' => $sirenPre, + 'dateExercice' => $dateCloturePre, + 'typeBilan' => $typeBilan, + //dateAction'=>date('YmdHis'), + 'postesDiff' => trim($strPostesDiff), + ); + $iDb->insert('bilans_user', $tabInsertDiff); + } + //die(); + $nbUpdate++; + } else $nbNotUpdate++; + } else $nbNotUpdate++; } else { /** Tester sur les nouveaux bilans * - CA x par 10 - 100 @@ -1037,12 +1093,12 @@ foreach ($tabFichier as $iFic=>$fichier) } if (!((@$tabPostes[$strCtrl]*1)>=$totalMin && (@$tabPostes[$strCtrl]*1)<=$totalMax)) { if (!$anoBilan) - $messageLigne="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL; + $messageLigne="Fichier $fichier : ligne $nbLignes, bilan n°$nbBilans, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL; else $messageLigne=''; $messageLigne.="$strEcho (saisi ".@$tabPostes[$strCtrl].' <> '.$total." calculé)".EOL; echo $messageLigne; - $codeCon=2; + $codeCon=5; $messageErrCtrl.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents"; if ($codeSai=='00') $anoBilan=true; } @@ -1075,7 +1131,8 @@ foreach ($tabFichier as $iFic=>$fichier) $resultat=@$tabPostesCtrl['HN']; $caTotal=@$tabPostesCtrl['FL']; $fondsPr=@$tabPostesCtrl['DL']; - $messageAno="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre ($duree), N-1=$dateClP ($dureeP), Greffe n°$numGre, fj=$cj capital $capTyp=$capital $capDev DA=$capBil HN=$resultat Immat=$dateIm - "; + $effectif=@$tabPostesCtrl['YP']; + $messageAno="Fichier $fichier : ligne $nbLignes, bilan n°$nbBilans, $sirenPre, $dateCloturePre ($duree), N-1=$dateClP ($dureeP), Greffe n°$numGre, fj=$cj, capital $capTyp=$capital $capDev, DA=$capBil, HN=$resultat, FL=$caTotal, YP=$effectif, Immat=$dateIm - "; /** Contrôle de cohérence entre le capital Registre et Bilan **/ @@ -1106,6 +1163,45 @@ foreach ($tabFichier as $iFic=>$fichier) //2319 Poursuite de l'activité malgré la perte de plus de la moitié du capital } + /** Contrôle de cohérence Effectif + **/ + // FY : Salaires et traitements + // FZ : Charges sociales (10) + if ($effectif>4 && ($caTotal/$effectif<1000 || (@$tabPostesCtrl['FY']+@$tabPostesCtrl['FZ'])<10)) { + $messageAno.=' - EFFECTIF INCOHERENT !'; + $codeCon=7; + } + + $tabTmp=@$iInsee->getIdentiteLight($sirenPre); + $cp=''.$tabTmp['CP']; + $dep=substr($cp,0,2); + if ($dep>96) $dep=substr($cp,0,3); + @$tabDept[$dep]++; + @$tabDeptMill[$dep][substr($dateCloturePre,0,4)]++; + $tefEnId=$tabTmp['EffEnTr']; + $tefEtId=$tabTmp['EffEtTr']; + if ($effectif>10000 && $tefEnId<=52 && $tefEtId<=52) { + sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', + 'ATTENTION : Chargement INPI BILANS', "Attention, + +L'effectif de $effectif salariés saisi pour la société : ".$tabTmp['Nom']." , ".$tabTmp['CP'].' '.$tabTmp['Ville']."( $sirenPre) semble être abérant pour l'exercice $dateCloturePre ($duree mois). +Merci de procéder au contrôle et à la correction ! + +----- + +Siren : $sirenPre +Raison Sociale : ".$tabTmp['Nom']." +Localité : ".$tabTmp['CP'].' '.$tabTmp['Ville']." +Forme juridique : $cj +Date d'immatriculation : $dateIm +Capital $capTyp : $capBil $capDev +Résultat Net : $resultat +Chiffre d'affaires : $caTotal +Effectif : $effectif salariés +"); +// die(); + } + /** Contrôle du résultat afin de savoir si perte > 1/2 capital **/ if ($capBil>0 && $resultat<0) { @@ -1131,7 +1227,6 @@ foreach ($tabFichier as $iFic=>$fichier) $fondsPr<0 && // Fonds propres négatifs WDate::nbMoisEntre($dateIm, $dateCloturePre)>=36) { // Et l'entreprise à 3 ans passés /** @todo Créer l'annonce **/ - $tabTmp=@$iInsee->getIdentiteLight($sirenPre); $tabInsertAnn=array('siren' => $sirenPre, 'sirenValide' => @$iInsee->valideSiren($sirenPre), 'typeEven' => 2319, @@ -1164,10 +1259,10 @@ foreach ($tabFichier as $iFic=>$fichier) if ($nbMoisCreaN<$duree) { $messageAno.=' - PREMIER EXERCICE COMPTABLE !'; $tabInsert['dateExercicePre']=0; - } elseif ($nbMoisCreaNp<0) die("Age à N=$nbMoisCreaN mois, Age à N-1=$nbMoisCreaNp mois".EOL); + }// elseif ($nbMoisCreaNp<0) die($messageAno.EOL."Age à N=$nbMoisCreaN mois, Age à N-1=$nbMoisCreaNp mois".EOL); } - if (strlen($messageAno)>185) { + if (strlen($messageAno)>220) { echo $messageAno.EOL; $listeAnomalies.=$messageAno.EOL; } @@ -1196,7 +1291,7 @@ foreach ($tabFichier as $iFic=>$fichier) !$totalMin2 && // ... et max !((@$tabPostesCtrl[$ctrl]*1)>=$totalMin1 && (@$tabPostesCtrl[$ctrl]*1)<=$totalMax1)) { if (!$anoBilan) - $messageLigne="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL; + $messageLigne="Fichier $fichier : ligne $nbLignes, bilan n°$nbBilans, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL; else $messageLigne=''; $codeCon=9; @@ -1207,7 +1302,7 @@ foreach ($tabFichier as $iFic=>$fichier) } } } - + $tabInsert['dateInsert']=date('YmdHis'); // $dateInsert; $ret=$iDb->insert('bilans', $tabInsert, false); $nbInsert++; } @@ -1219,6 +1314,12 @@ foreach ($tabFichier as $iFic=>$fichier) @$tabNbCodeRet['_'.$codeSai]++; // Insertion des informations relatives à l'acte Bilan + $strPagesPostes=''; + foreach($tabPagesPostes as $page=>$nbPostes) { + $strPagesPostes.=str_replace('_','',$page)."=$nbPostes,"; + } + $strPagesPostes=substr($strPagesPostes,0,strlen($strPagesPostes)-1); + $tabPagesPostes=array(); $tabInsert=array( 'siren' => $sirenPre, 'numRC' => substr($numGest,2), // char(10) 'numRC2' => $numGest, @@ -1230,10 +1331,14 @@ foreach ($tabFichier as $iFic=>$fichier) 'duree_exercice'=> $duree, 'saisie_date' => $dateEnv, 'saisie_code' => $codeSai, + 'pages' => $strPagesPostes, ); if ($codeCon) $tabInsert['ctrl_code']=$codeCon; - if (!$iDb->insert('greffes_bilans', $tabInsert, false)) { + /** @todo + * 1. Gérer l'état actif du document dans la liste + * 2. Sur la nouvelle machine, requeter Infogreffe pour chaque SIREN et mettre à jour la liste des bilans **/ + if (!$iDb->insert('greffes_bilans', array_merge($tabInsert,array('dateInsert'=>date('YmdHis'))), false)) { if (!$iDb->update('greffes_bilans', $tabInsert, "siren='$sirenPre' AND num_depot='$numDep' AND date_cloture='$dateCloturePre' AND type_comptes='$typeComptes'", false)) { if (!$iDb->update('greffes_bilans', $tabInsert, "siren='$sirenPre' AND num_depot='$numDep' AND date_cloture='$dateCloturePre' AND type_comptes=''", false)) { echo "Impossible de mettre à jour la table 'greffes_bilans' pour les éléments suivants :".EOL; @@ -1251,7 +1356,7 @@ foreach ($tabFichier as $iFic=>$fichier) //print_r($tabInsert); } elseif ($sirenPre<>0 && $dateCloturePre<>0 && $typeBilanPre<>0) { $nbDoublons++; - $messageLigne=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - Bilan INPI saisit 2 fois !".EOL; + $messageLigne=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Bilan INPI saisit 2 fois !".EOL; echo $messageLigne; $message.=$messageLigne; } @@ -1269,7 +1374,7 @@ foreach ($tabFichier as $iFic=>$fichier) $codeSai=trim( substr($a, 72, 2)); // code motif de non saisie if ($codeSai<>'00') { // echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes - '$a'".EOL; - echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - Retour n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL; + echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Retour n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL; } $typeBil=trim( substr($a, 74, 1)); // type de bilan switch (strtoupper($typeBil)) { @@ -1280,7 +1385,7 @@ foreach ($tabFichier as $iFic=>$fichier) case 'A': $typeBilan='A'; $typeComptes=''; break; // Assurance break; default: - $messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - Type Bilan INPI inconnu '$typeBil' !".EOL; + $messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - Type Bilan INPI inconnu '$typeBil' !".EOL; echo $messageErr; sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'ERREUR : Chargement INPI BILANS', $messageErr); @@ -1296,7 +1401,7 @@ foreach ($tabFichier as $iFic=>$fichier) else die(date('Y/m/d - H:i:s'). " - Erreur fichier n°$iFic, $fichier : Origine de la devise = '$origDev' !".EOL); $filler1=trim( substr($a, 79, 11)); // vide - if ($filler1<>'') echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren-$nic, $dateCloture ($codeEnr) - filler1 = '$filler1' !".EOL; + if ($filler1<>'') echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren-$nic, $dateCloture ($codeEnr) - filler1 = '$filler1' !".EOL; break; case '2': $nbLignes2++; @@ -1312,7 +1417,10 @@ foreach ($tabFichier as $iFic=>$fichier) break; case '4': $nbLignes4++; - $pageBilan = trim( substr($a, 23, 2)); // N° de la page du bilan + $pageBilan = trim( substr($a, 23, 2)); // N° de la page du bilan + @$tabPagesPostes['_'.$pageBilan]++; + //print_r($tabPagesBilans); + //echo "$a => $pageBilan".EOL; if ($typeBilan=='S') $dec=1; // Si bilan simplifié, on décale de 1 caractère ! else $dec=0; $codeCerfa = trim( substr($a, 25, 2+$dec)); // N° de la page du bilan @@ -1322,7 +1430,7 @@ foreach ($tabFichier as $iFic=>$fichier) $montant[3] =nbrBilExt2int(substr($a,72+$dec, 15),$a); // N° de la page du bilan if ($montant[0]===false || $montant[0]===false || $montant[2]===false || $montant[3]===false) { - $messageErr=date('Y/m/d - H:i:s'). " - Erreur fichier n°$iFic, $fichier : bilan du $siren au $dateCloture de type '$typeBilan' lors du traitement du code '$codeCerfa', page $pageBilan montant 1,2,3 ou 4 null = ".$montant[0].', '.$montant[1].', '. $montant[2].', '.$montant[3].' !'.EOL; + $messageErr=date('Y/m/d - H:i:s'). " - Erreur fichier n°$iFic, $fichier : bilan n°$nbBilans du $siren au $dateCloture de type '$typeBilan' lors du traitement du code '$codeCerfa', page $pageBilan montant 1,2,3 ou 4 null = ".$montant[0].', '.$montant[1].', '. $montant[2].', '.$montant[3].' !'.EOL; echo $messageErr; if ($stopOnError) { sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', @@ -1332,7 +1440,7 @@ foreach ($tabFichier as $iFic=>$fichier) } $filler4 = trim( substr($a, 87+$dec, 3-$dec)); // vide if ($filler4<>'') { - $messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, $siren ($codeEnr) - Erreur filler4 = '$filler4' !".EOL; + $messageErr=date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : ligne $nbLignes, bilan n°$nbBilans, $siren ($codeEnr) - Erreur filler4 = '$filler4' !".EOL; $messageErr.=date('Y/m/d - H:i:s'). " - Page $pageBilan, Code $codeCerfa - Montant 1,2,3 ou 4 = ".$montant[0].', '.$montant[1].', '. $montant[2].', '.$montant[3].' !'.EOL; $messageErr.=$aPre; $messageErr.=$a; @@ -1348,7 +1456,7 @@ foreach ($tabFichier as $iFic=>$fichier) $listeErreurs.=$msgErreur; break; default: - $messageErr=date('Y/m/d - H:i:s') ." - ERREUR ligne $nbLignes : Code Enregistrement '$codeEnr' inconnu pour la ligne :".EOL.trim($a).EOL; + $messageErr=date('Y/m/d - H:i:s') ." - ERREUR ligne $nbLignes, bilan n°$nbBilans : Code Enregistrement '$codeEnr' inconnu pour la ligne :".EOL.trim($a).EOL; echo $messageErr; sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com', 'ERREUR : Chargement INPI BILANS', $messageErr); @@ -1431,11 +1539,20 @@ foreach ($tabFichier as $iFic=>$fichier) echo mysql_errno(); echo mysql_error(); if (trim($listeErreurs)=='') $listeErreurs='Néant'; + ksort($tabDept); + $listeDepts=print_r($tabDept,true); + ksort($tabDeptMill); + $listeDeptsMills=print_r($tabDeptMill,true); + krsort($tabMill); + $listeMills=print_r($tabMill,true); sendMail('production@scores-decisions.com', 'support@scores-decisions.com,ylenaour@scores-decisions.com,jm.champeau@recocash.com', 'Chargement INPI BILANS', $message.EOL."Liste des erreurs de saisie :".EOL.$messageErrCtrl.EOL. "Liste des erreurs dans le format de fichier :".EOL.$listeErreurs.EOL. - "Liste des anomalies diverses :".EOL.$listeAnomalies.EOL); + "Liste des anomalies diverses :".EOL.$listeAnomalies.EOL. + "Liste des départements traités :".EOL.$listeDepts.EOL. + "Liste des millésimes par départements traités :".EOL.$listeDeptsMills.EOL. + "Liste des millésimes traités :".EOL.$listeMills.EOL ); } } diff --git a/batch/getBodacc.php b/batch/getBodacc.php index 1ec1baee..157f26d4 100644 --- a/batch/getBodacc.php +++ b/batch/getBodacc.php @@ -1,5 +1,8 @@ #!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini $server_file) { + if (substr($server_file,0,4)=='MAPA' && substr($server_file,0,5)<>'MAPA-') + $local_file='MAPA'.date('Y').'_'.substr($server_file,4); // MAPA322006.taz + elseif (substr($server_file,0,5)=='DEFAA') + $local_file='DEFAA'.date('Y').'_'.substr($server_file,5); // DEFAA336008.taz + elseif (substr($server_file,0,5)=='DEFAO') + $local_file='DEFAO'.date('Y').'_'.substr($server_file,5); // DEFAO336007.taz + else + $local_file=$server_file; + + /*$debutNom=substr(basename($nomFichier),0,5); + $debutNom3=substr(basename($nomFichier),0,3); + + // Conversion du .taz en .xml//pdftohtml -xml BDXML-A_20070251_0001_p000.pdf + $nomFichierXml=strtr($nomFichier,array('.taz'=>'.xml')); + if ($unTaz) { + if ($debutNom3<>'ASS' && $debutNom3<>'MPA' && $debutNom3<>'MPB' && $debutNom3<>'MPC' && $debutNom3<>'MAP' && $debutNom3<>'DEF' && $debutNom3<>'DAF') { + $rExec=exec('cd '.BODACC_LOCAL_DIR.';tar -xvzf '.BODACC_LOCAL_DIR.$nomFichier); +*/ $tailleDist = ftp_size($conn_id, $server_file); $dateDist = ftp_mdtm($conn_id, $server_file); if ($dateDist != -1) { @@ -270,14 +299,14 @@ if ($ftpStep && !$fichierTLS) { // echo date ('Y/m/d - H:i:s') ." - Taille du fichier distant $server_file est de $tailleDist octets\n"; } $dateLoc=0; - if (file_exists(BODACC_LOCAL_DIR . $server_file)) { - $dateLoc=filemtime(BODACC_LOCAL_DIR . $server_file); + if (file_exists(BODACC_LOCAL_DIR . $local_file)) { + $dateLoc=filemtime(BODACC_LOCAL_DIR . $local_file); $tabFichiers[$server_file]['dateDownload']=date('Y-m-d H:i:s', $dateLoc); - $tailleLoc=filesize(BODACC_LOCAL_DIR . $server_file); + $tailleLoc=filesize(BODACC_LOCAL_DIR . $local_file); // echo date ('Y/m/d - H:i:s') ." - Taille du fichier local $server_file = $tailleLoc octets\n"; } if ($tailleDist<>@$tailleLoc) { - if (ftp_get($conn_id, BODACC_LOCAL_DIR . $server_file, $server_file, FTP_BINARY)) { + if (ftp_get($conn_id, BODACC_LOCAL_DIR . $local_file, $server_file, FTP_BINARY)) { echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; } else @@ -294,7 +323,8 @@ if ($ftpStep && !$fichierTLS) { echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; $strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL; } else*/ - die (date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file (".$tabFichiers[$server_file]['dateDispo'].", $tailleLoc octets) plus récent que celui en local (".$tabFichiers[$server_file]['dateDownload'].", $tailleDist octets) !".EOL); +// print_r($tabFichiers); + die (date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file (".$tabFichiers[$server_file]['dateDispo'].", $tailleLoc octets) plus récent que celui en local '".BODACC_LOCAL_DIR.$local_file."' (".$tabFichiers[$server_file]['dateDownload'].", $tailleDist octets) !".EOL); } //else // echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file datant du $dateDist (Local=$dateLoc)...".EOL; } @@ -308,7 +338,7 @@ if ($ftpStep && !$fichierTLS) { if (!$fichierTLS) { $dh = opendir(BODACC_LOCAL_DIR); while (false !== ($filename = readdir($dh))) { - if ($filename<>'.' && $filename<>'..' && ( substr($filename, -4)=='.TLS' || substr($filename, -4)=='.taz' || substr($filename, -4)=='.pdf' ) ) + if ($filename<>'.' && $filename<>'..' && ( substr($filename, -4)=='.TLS' || substr($filename, -4)=='.taz' || substr($filename, -4)=='.pdf' || substr($filename, -7)=='.tar.gz') ) $tabFichier[] = $filename; } sort($tabFichier); @@ -1299,6 +1329,8 @@ foreach ($tabFichier as $k => $nomFichier) { **/ } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A801' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { + if (preg_match("/ouverture(.*)sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1110; // Ouverture SFA if (preg_match("/ouverture(.*)sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1100; // Ouverture sauvegarde elseif (preg_match("/conver(.)i(.*)sauvegarde(.*)redressement/i", $texte)) @@ -1341,7 +1373,9 @@ foreach ($tabFichier as $k => $nomFichier) { } elseif ($tabAnnonces[$idann]['Rubrique_Bodacc']=='A808' && !isset($tabAnnonces[$idann]['data']['typeProCol'])) { /** @todo récupérer "au profit de" ou "en faveur de" **/ - if (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde/i", $texte)) + if (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1115; // Jug. arrêtant plan sauvegarde + elseif (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jug. arrêtant plan sauvegarde elseif (preg_match("/cession(.*)partiel/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1412; // Arrêt plan cession partiel @@ -1390,8 +1424,11 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnnonces[$idann]['data']['typeProCol']=1208; // Avis de dépôt du projet de répartition elseif (preg_match("/conver.i.{2,9}sauvegarde.{1,19}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ + elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}sauvegarde.{1,9}financi/i", $texte) || + preg_match("/Jugement de plan de sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1115; // Jugement arrêtant plan de SFA elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}sauvegarde/i", $texte) || - preg_match("/Jugement de plan de sauvegarde/i", $texte)) + preg_match("/Jugement de plan de sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jugement arrêtant plan de sauvegarde elseif (preg_match("/mettant(.){1,9}fin(.){1,9}plan(.){1,9}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1508; // Jugement d'extinction du plan de sauvegarde @@ -1662,13 +1699,19 @@ foreach ($tabFichier as $k => $nomFichier) { elseif (preg_match("/nomination/i", $texte) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); // MODIF ADMINISTRATION - if (preg_match("/modification(.*)capital(.*)augmentation/i", $texte)) + if (preg_match("/(modification|changement)(.*)capital(.*)augmentation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2102)); // Augmentation de capital - elseif (preg_match("/modification(.*)capital(.*)diminution/i", $texte)) + elseif (preg_match("/(modification|changement)(.*)capital(.*)diminution/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2100)); // diminution de capital elseif (preg_match("/(modification|ancien|changement)(.*)capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2101)); // Modification de capital - + + if (preg_match("/capital\s+fixe(.*)devient(.*)variable/i", $texte)) + $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2103)); // Capital fixe devient variable + elseif (preg_match("/capital\s+variable(.*)devient(.*)fixe/i", $texte)) + $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2104)); // Capital variable devient fixe + + if (preg_match("/(modification|adjonction|ancienne|changement|suppres)(.*)activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2313)); // Modification de l'activité @@ -2256,6 +2299,7 @@ foreach ($tabFichier as $k => $nomFichier) { // //< ="MAPA" dateparution="13 MARS 2007" numparution="0772003"> $dom_object = new DomDocument2(); + echo "J'essaye d'ouvrir le fichier : ".BODACC_LOCAL_DIR.$nomFichierXml.EOL; @$dom_object->load(BODACC_LOCAL_DIR.$nomFichierXml); // create DOMXPath object with our DOMObject $xpath = new Domxpath($dom_object); @@ -2324,8 +2368,10 @@ foreach ($tabFichier as $k => $nomFichier) { $nojo1=$dom_object->getValueFromTag('nojo'); //$bodaccType=substr(basename($nomFichier),2,1); $bodaccType=substr($nojo1,2,1); - if ($bodaccType<>'A' && $bodaccType<>'B' && $bodaccType<>'C') - die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Type de Bodacc '$bodaccType' non pris en charge !".EOL); + if ($bodaccType<>'A' && $bodaccType<>'B' && $bodaccType<>'C') { + if (substr(basename($nomFichier),0,9)=='BILAN_BXC') $bodaccType='C'; + else die(date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Type de Bodacc '$bodaccType' non pris en charge !".EOL); + } //DIVA200908130154.taz if ($debutNom<>'RCS-A' && $debutNom<>'DIVA2' && $debutNom<>'RCS-B' && $debutNom<>'PCL_B' && $debutNom<>'BILAN') { echo(date ('Y/m/d - H:i:s')." - ATTENTION : Bodacc $nomFichier non chargé en base ! ".EOL); @@ -2440,8 +2486,8 @@ foreach ($tabFichier as $k => $nomFichier) { if ($debutNom3=='ASS') { - // echo date ('Y/m/d - H:i:s')." - JO ASSO non chargé pour l'instant !".EOL; - // continue; + //echo date ('Y/m/d - H:i:s')." - JO ASSO non chargé pour l'instant !".EOL; + //continue; $result=$dom_object->getElementsByTagName('ANNONCE_REF'); foreach ($result as $annonce) { @@ -3807,7 +3853,8 @@ foreach ($tabFichier as $k => $nomFichier) { echo $newXML.EOL; echo date ('Y/m/d - H:i:s')." - Date de jugement incohérente pour cette annonce de ".$tabAnnonces[$idann]['typeAnnonce']." : '$dateJuge' convertie en '".$tabAnnonces[$idann]['data']['dateJugement']."'".EOL; if ($noQuestion) { - die(); + $tabAnnonces[$idann]['data']['sirenValide']=0; + //die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Continuer (O/n) ou saisir la nouvelle date de jugement au format SSAAMMJJ ?".EOL; @@ -4038,6 +4085,7 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnnonces[$idann]['data']['enseigne']=array_merge($tabAnnonces[$idann]['data']['enseigne'], array($enseigne)); /** **/ + /** @todo Ne fonctionne pas cf siren 320 585 110 annonce du 10/07/2013 car recopie la première activité **/ $title = $xpath->query ("activite", $annonce); $activite = utf8_decode($title->item(0)->nodeValue); if ( !isset($tabAnnonces[$idann]['data']['activite']) || !is_array($tabAnnonces[$idann]['data']['activite']) ) @@ -4200,7 +4248,8 @@ foreach ($tabFichier as $k => $nomFichier) { echo "$siren : $raisonsociale".EOL; echo "Complément de jugement inconnu : $complementJugement".EOL; if ($noQuestion) { - die(); + $tabAnnonces[$idann]['data']['sirenValide']=0; +// die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Saisir la codification (par défaut 1999 ou 'l XXX' pour liste des codes XXX) ?"; @@ -4213,16 +4262,24 @@ foreach ($tabFichier as $k => $nomFichier) { } } } - - if ($tabAnnonces[$idann]['data']['typeProCol']==1502 - // Jugement clôturant la procédure pour extinction du passif (LB !!!) - && preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $complementJugement)) - $tabAnnonces[$idann]['data']['typeProCol']=1503; + + if ($tabAnnonces[$idann]['data']['typeProCol']==1500) { + if (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $complementJugement)) + $tabAnnonces[$idann]['data']['typeProCol']=1503; + elseif (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}extinction.{1,13}passif/i", $complementJugement)) + $tabAnnonces[$idann]['data']['typeProCol']=1502; + elseif (preg_match("/Jugement.{1,17}cl.tur(a|e).{1,13}proc.{1,3}dure.{1,13}sauvegarde/i", $complementJugement)) + $tabAnnonces[$idann]['data']['typeProCol']=1514; + } + elseif ($tabAnnonces[$idann]['data']['typeProCol']==1502 + // Jugement clôturant la procédure pour extinction du passif (LB !!!) + && preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $complementJugement)) + $tabAnnonces[$idann]['data']['typeProCol']=1503; elseif ($tabAnnonces[$idann]['data']['typeProCol']==1503 - // Jugement clôturant la procédure pour insuffisance actif (LB !!!) - && preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}extinction.{1,13}passif/i", $complementJugement)) - $tabAnnonces[$idann]['data']['typeProCol']=1502; + // Jugement clôturant la procédure pour insuffisance actif (LB !!!) + && preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}extinction.{1,13}passif/i", $complementJugement)) + $tabAnnonces[$idann]['data']['typeProCol']=1502; elseif ($tabAnnonces[$idann]['data']['typeProCol']>=1998) { $texte=$complementJugement; @@ -4233,16 +4290,21 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnnonces[$idann]['data']['typeProCol']=1502; // Jugement clôturant la procédure pour extinction du passif (LB !!!) elseif (preg_match("/Jugement.{1,3}cl.tur(a|e).{1,13}insuffisance.{1,13}actif/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1503; // Jugement clôturant la procédure pour insuffisance actif (LB !!!) + elseif (preg_match("/Jugement nommant (.*)qualité de syndic(.*)en remplacement de/i", $texte) || preg_match("/Jugement mettant fin.{1,7}fonction.{1,7}syndic(.*)d.signant(.*)remplacement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1406; // Changement de SYNDIC + elseif (preg_match("/ouverture.{1,29}sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1110; // Ouverture SFA elseif (preg_match("/ouverture.{1,29}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1100; // Ouverture sauvegarde elseif (preg_match("/conver.{1,9}i.{1,9}sauvegarde.{1,9}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ + elseif (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1115; // Jug. arrêtant plan sauvegarde financière elseif (preg_match("/arr(.)tant(.*)plan(.*)sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jug. arrêtant plan sauvegarde elseif (preg_match("/cession.{1,9}partiel/i", $texte)) @@ -4254,15 +4316,22 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnnonces[$idann]['data']['typeProCol']=1208; // Avis de dépôt du projet de répartition elseif (preg_match("/conver.i.{2,9}sauvegarde.{1,19}redressement/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1201; // Conversion sauvegarde en RJ + elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}sauvegarde.{1,9}financi/i", $texte) || + preg_match("/Jugement de plan de sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1115; // Plan de SFA elseif (preg_match("/(adoptant|arr.tant|homologuant|admission)(.){1,9}plan(.){1,9}sauvegarde/i", $texte) || - preg_match("/Jugement de plan de sauvegarde/i", $texte)) + preg_match("/Jugement de plan de sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1101; // Jugement arrêtant plan de sauvegarde - elseif (preg_match("/mettant(.){1,9}fin(.){1,9}plan(.){1,9}sauvegarde/i", $texte)) + elseif (preg_match("/mettant.{1,9}fin.{1,9}plan.{1,9}sauvegarde.{1,9}financi/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1119; // Jugement d'extinction du plan de SFA + elseif (preg_match("/mettant.{1,9}fin.{1,9}plan.{1,9}sauvegarde/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1508; // Jugement d'extinction du plan de sauvegarde elseif (preg_match("/liquidation.{1,9}judiciaire.{1,9}simplifi(.)/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1306; // LJ simplifiée elseif (preg_match("/conver.i(.){2,9}sauvegarde(.){1,9}liquidation(.){1,9}judiciaire/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1307; // Conversion sauvegarde en LJ + elseif (preg_match("/cl.ture.{1,9}sauvegarde.{1,9}financi(.*)(non|absence)(.*)projet(.){1,7}plan/i", $texte)) + $tabAnnonces[$idann]['data']['typeProCol']=1999; // Clôture SFA pour absence de projet de plan elseif (preg_match("/cl.ture.{1,9}sauvegarde(.*)(non|absence)(.*)projet(.){1,7}plan/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1504; // Clôture sauvegarde pour absence de projet de plan elseif (preg_match("/proroge.{1,9}commissaire.{1,9}x.cution.{1,9}plan/i", $texte)) @@ -4321,8 +4390,8 @@ foreach ($tabFichier as $k => $nomFichier) { elseif (preg_match("/Jugement.{1,9}constatant.{1,9}exécution.{1,9}plan.{1,9}continuation/i", $texte)) $tabAnnonces[$idann]['data']['typeProCol']=1512; // Jugement constatant l'exécution du plan de continuation - elseif (preg_match("/(renouvel|prolongeant).{1,25}p.riode(.){1,9}observation/Ui", $texte) || - preg_match("/prononçant(.*)poursuite(.){1,9}activité/Ui", $texte)) + elseif (preg_match("/(renouvel|prolongeant).{1,25}p.riode(.){1,9}observation/Ui", $texte)/* || + preg_match("/prononçant(.*)poursuite(.){1,9}activité/Ui", $texte)*/) $tabAnnonces[$idann]['data']['typeProCol']=1202; // Renouvellement de la période d'observation elseif (preg_match("/arr.tant.{1,9}plan.{1,9}apurement.{1,9}passif/i", $texte)) @@ -4349,6 +4418,7 @@ foreach ($tabFichier as $k => $nomFichier) { echo "$siren : $raisonsociale".EOL; echo "Complément de jugement inconnu : $complementJugement".EOL; if ($noQuestion) { + $tabAnnonces[$idann]['data']['sirenValide']=0; die(); } else { while (1) { @@ -4460,9 +4530,8 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnnonces[$idann]['data']['dirIGPF'][0]=$dir; echo $strTmp; //Jugement renouvelant pour six mois à compter du 30 juillet 2009 la période d'observation - } elseif (preg_match("/renouvel(.*)p.riode(.){1,9}observation(.*) (de |d')(.*)( an| mois)/Ui", $complementJugement, $matches) || - preg_match("/prononçant(.*)poursuite(.){1,9}activité(.*) (de |d')(.*)( an| mois)/Ui", $complementJugement, $matches)) - { + } elseif (preg_match("/renouvel(.*)p.riode(.){1,9}observation(.*) (de |d')(.*)( an| mois)/Ui", $complementJugement, $matches) /*|| + preg_match("/prononçant(.*)poursuite(.){1,9}activité(.*) (de |d')(.*)( an| mois)/Ui", $complementJugement, $matches)*/) { /** @todo pour une durée de six mois à compter du 7 mars 2007 **/ $tabAnnonces[$idann]['data']['typeProCol']=1202; // Renouvellement de la période d'observation $dureeL=trim($matches[5]); @@ -4473,9 +4542,7 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnnonces[$idann]['data']['FinObservationBodacc']="$dureeL $periode"; print_r($tabAnnonces[$idann]); echo ("Gérer les renouvellements de période d'observation !".EOL); - } elseif (preg_match("/(admission|adopt)(.){1,17}plan(.){1,9}redressement(.){1,19}dur.e? (d|à|a)(.*)( an| mois)/Ui", - $complementJugement, $matches)) - { + } elseif (preg_match("/(admission|adopt)(.){1,17}plan(.){1,9}redressement(.){1,19}dur.e? (d|à|a)(.*)( an| mois)/Ui", $complementJugement, $matches)) { $tabAnnonces[$idann]['data']['typeProCol']=1414; // Arrêt du plan de redressement $dureeL=preg_replace("/^(e|') /",'',trim($matches[6])); $periode=trim($matches[7]); @@ -5082,7 +5149,8 @@ foreach ($tabFichier as $k => $nomFichier) { print_r($tabTmp); echo "Montant non détecté, merci de saisir le "; if ($noQuestion) { - die("Devise '$devise' inconnue !"); + $tabAnnonces[$idann]['data']['sirenValide']=0; +// die("Devise '$devise' inconnue !"); } else { while(true) { echo 'Montant de la vente en EURO ? (0 pour ne rien saisir) ?'.EOL; @@ -5107,14 +5175,15 @@ foreach ($tabFichier as $k => $nomFichier) { if (preg_match("/4(e|ème|eme) cat(é|e)gorie/i", $bienAcqui) || preg_match("/cat(é|e)gorie 4/i", $bienAcqui) || - preg_match("/Licence (IV|4)/i", $bienAcqui)) // Licence de débit de boissons de 4e catégorie + preg_match("/Licence.{0,20}(IV|4|boisson)/i", $bienAcqui)) // Licence de débit de boissons de 4e catégorie $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5205)); if (preg_match("/Droit au bail/i", $bienAcqui)) // Droit au bail $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5203)); - if (preg_match("/(Branche|Partie) (compl.te )(d.activit)/i", $bienAcqui) || - preg_match("/branche.{1,10}activit/i", $bienAcqui)) // Branche ou Partie d'activité + + if (preg_match("/(Branche|Partie).{1,10}activit/i", $bienAcqui)) // Branche ou Partie d'activité $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5200)); - if (preg_match("/Portefeuille.{1,19}assurances/i", $bienAcqui)) // Portefeuille d'assurances + + if (preg_match("/Portefeuille.{1,19}assurance/i", $bienAcqui)) // Portefeuille d'assurances $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5206)); elseif (preg_match("/Clientèle/i", $bienAcqui)) // Clientèle $tabAnnonces[$idann]['data']['typeVente']=array_merge($tabAnnonces[$idann]['data']['typeVente'], array(5201)); @@ -5647,7 +5716,8 @@ foreach ($tabFichier as $k => $nomFichier) { ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { - die("Devise '$devise' inconnue !"); + $tabAnnonces[$idann]['data']['sirenValide']=0; +// die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; @@ -6139,7 +6209,6 @@ foreach ($tabFichier as $k => $nomFichier) { $title = $xpath->query ("etablissementPrincipal/france/ville", $personne); $villeEtabP = utf8_decode($title->item(0)->nodeValue); - /** Adresse de l'établissement : ** adresse/france/numeroVoie typeVoie nomVoie complGeographique **/ $title = $xpath->query ("adresse/france/numeroVoie", $personne); @@ -6170,6 +6239,25 @@ foreach ($tabFichier as $k => $nomFichier) { $title = $xpath->query ("adresse/france/ville", $personne); $ville = utf8_decode($title->item(0)->nodeValue); + if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVoie']) ) + $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array(); + if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeCP']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeCP']) ) + $tabAnnonces[$idann]['data']['adresseSiegeCP']=array(); + if ( !isset($tabAnnonces[$idann]['data']['adresseSiegeVille']) || !is_array($tabAnnonces[$idann]['data']['adresseSiegeVille']) ) + $tabAnnonces[$idann]['data']['adresseSiegeVille']=array(); + + if ( !isset($tabAnnonces[$idann]['data']['adresseVoie']) || !is_array($tabAnnonces[$idann]['data']['adresseVoie']) ) + $tabAnnonces[$idann]['data']['adresseVoie']=array(); + if ( !isset($tabAnnonces[$idann]['data']['adresseCP']) || !is_array($tabAnnonces[$idann]['data']['adresseCP']) ) + $tabAnnonces[$idann]['data']['adresseCP']=array(); + if ( !isset($tabAnnonces[$idann]['data']['adresseVille']) || !is_array($tabAnnonces[$idann]['data']['adresseVille']) ) + $tabAnnonces[$idann]['data']['adresseVille']=array(); + + echo "Mise à blanc des adresses...".EOL; + echo "Siège = $adrSiege, $cpSiege $villeSiege".EOL; + echo "Etab Ppl = $adrEtabP, $cpEtabP $villeEtabP".EOL; + echo "Etab = $adr, $cp $ville".EOL; + if ( (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') && (trim(strtr($adrEtabP,'|',' '))<>'' || $cpEtabP<>'' || $villeEtabP<>'') && (trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') ) { @@ -6177,45 +6265,35 @@ foreach ($tabFichier as $k => $nomFichier) { die('Toutes les adresses Siege, Etablissement et Etablissement Principal sont fournies !'); } elseif ( (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') && (trim(strtr($adrEtabP,'|',' '))<>'' || $cpEtabP<>'' || $villeEtabP<>'') ) { + echo "Les adresses Sieges et Etab Princip sont fournies".EOL; // Les adresses Sieges et Etab Princip sont fournies - $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], - (array)$adrSiege); - $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], - (array)$cpSiege); - $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], - (array)$villeSiege); + $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], array($adrSiege)); + $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], array($cpSiege)); + $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], array($villeSiege)); // Etab - $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], - (array)$adrEtabP); - $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], - (array)$cpEtabP); - $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], - (array)$villeEtabP); - } elseif ( trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'') { + $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], array($adrEtabP)); + $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], array($cpEtabP)); + $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], array($villeEtabP)); + } else/*if ( trim(strtr($adr,'|',' '))<>'' || $cp<>'' || $ville<>'')*/ { + echo "Les adresses Etab sont fournies".EOL; // Etab - $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], - (array)$adr); - $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], - (array)$cp); - $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], - (array)$ville); + $tabAnnonces[$idann]['data']['adresseVoie']=array_merge($tabAnnonces[$idann]['data']['adresseVoie'], array($adr)); + $tabAnnonces[$idann]['data']['adresseCP']=array_merge($tabAnnonces[$idann]['data']['adresseCP'], array($cp)); + $tabAnnonces[$idann]['data']['adresseVille']=array_merge($tabAnnonces[$idann]['data']['adresseVille'], array($ville)); if (trim(strtr($adrSiege,'|',' '))<>'' || $cpSiege<>'' || $villeSiege<>'') { // Les adresses Sieges et Etab Princip sont fournies - $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], - (array)$adrSiege); - $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], - (array)$cpSiege); - $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], - (array)$villeSiege); + $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], array($adrSiege)); + $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], array($cpSiege)); + $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'],array($villeSiege)); } else { - $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], - (array)$adrEtabP); - $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], - (array)$cpEtabP); - $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'], - (array)$villeEtabPe); + $tabAnnonces[$idann]['data']['adresseSiegeVoie']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVoie'], array($adrEtabP)); + $tabAnnonces[$idann]['data']['adresseSiegeCP']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeCP'], array($cpEtabP)); + $tabAnnonces[$idann]['data']['adresseSiegeVille']=array_merge($tabAnnonces[$idann]['data']['adresseSiegeVille'],array($villeEtabPe)); } } + + echo "VILLE SIEGE=".$tabAnnonces[$idann]['data']['adresseSiegeVille'][0].EOL; + echo "VILLE ETAB=". $tabAnnonces[$idann]['data']['adresseSiege'][0].EOL; // Génération du texte d'annonce Siren / RCS / Greffe if ($siren<>'' && $siren*1<>0) @@ -6526,16 +6604,22 @@ foreach ($tabFichier as $k => $nomFichier) { if (preg_match("/(mise...jour|nouvel|nouveau|modification|adjonction|ancien|cha.g|ajout|d.part|nomination|d.mis(si|is)on|r.vocation|Entrée|Changement).{0,25}(survenue|).{0,25}(administration|administrateur| repr.sentant|g.ran|commissaire|direct..r|membre|conseil|surveillance|pr.sident|associ|PDG|contr.leur|Suppl.ant|direction|dirigeant)/i", $texte) && !in_array(2315, $tabAnnonces[$idann]['data']['typeMMD'])) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2315)); // MODIF ADMINISTRATION - if (preg_match("/modification.{0,15}(survenue|).{0,5}capital.{0,15}augmentation/i", $texte)) + if (preg_match("/(modification|changement).{0,15}(survenue|).{0,5}capital.{0,15}augmentation/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2102)); // Augmentation de capital elseif (preg_match("/augmentation.{0,15}(survenue|).{0,5}capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2102)); // Augmentation de capital - elseif (preg_match("/modification.{0,15}(survenue|).{0,5}capital.{0,15}diminution/i", $texte)) + elseif (preg_match("/(modification|changement).{0,15}(survenue|).{0,5}capital.{0,15}diminution/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2100)); // diminution de capital elseif (preg_match("/(diminution|r.duction).{0,15}(survenue|).{0,5}capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2100)); // diminution de capital elseif (preg_match("/(modification|ancien|changement|nouveau).{0,15}(survenue|).{0,5}capital/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2101)); // Modification de capital + + if (preg_match("/capital\s+fixe(.*)devient(.*)variable/i", $texte)) + $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2103)); // Capital fixe devient variable + elseif (preg_match("/capital\s+variable(.*)devient(.*)fixe/i", $texte)) + $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2104)); // Capital variable devient fixe + // Adjonction activité if (preg_match("/(modification|adjonction|ancienne|changeme|extension|suppres|ajout).{0,15}(survenue|).{0,5}activit(é|e)/i", $texte)) $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array(2313)); // Modification de l'activité @@ -6629,6 +6713,24 @@ foreach ($tabFichier as $k => $nomFichier) { } echo "$texte\n?"; //$saisie = fgets(STDIN); + + //IKI// + } elseif (preg_match("/actionnaire.{1,5}unique(.*)Commentaires/i", $texte, $tabTmp)) { + $raisonSocialeAbs=trim(preg_replace('/ en fonction.*$/','',$tabTmp[1])); + $codeEven=2610; // Décision de l'unique actionnaire + $codeEvenAbs=2751; // Information sur une participation + if ( !isset($tabAnnonces[$idann]['data']['fusion']) || + !is_array($tabAnnonces[$idann]['data']['fusion']) ) $tabAnnonces[$idann]['data']['fusion']=array(); + $tabAnnonces[$idann]['data']['fusion']=array_merge( $tabAnnonces[$idann]['data']['fusion'] , array( + array( 'codeEvenAbs' => $codeEvenAbs, + 'sirenAbs' => 0, + 'raisonAbs' => $raisonSocialeAbs, + 'adresseAbs' => '', + 'adresseAbsCP' => '', + 'adresseAbsVille'=>''))); + $tabAnnonces[$idann]['data']['typeMMD']=array_merge($tabAnnonces[$idann]['data']['typeMMD'], array($codeEven)); // Code Evenement précis de l'absorbant + echo "$texte\n?"; + $saisie = fgets(STDIN); } if (preg_match("/contrat.{1,25}mariage/i", $texte)) @@ -6860,6 +6962,10 @@ foreach ($tabFichier as $k => $nomFichier) { */ $bodaccDepNumPre=$bodaccDepNum; + /* + print_r($tabAnnonces[$idann]); + die(); + */ } /* print_r($tabTextTmp); @@ -6869,11 +6975,10 @@ foreach ($tabFichier as $k => $nomFichier) { }*/ ///// FIN de la boucle de lecture des annonces procoles + //print_r($tabAnnonces); //die(); //continue; // PROVISOIRE pour ne pas charger !!! - - /** ** DEBUT BODACC C en XML **/ @@ -6883,11 +6988,12 @@ foreach ($tabFichier as $k => $nomFichier) { echo date ('Y/m/d - H:i:s')." - BODACC C en XML non chargé tant que les TLS étaient disponible => 27/03/2009 !".EOL; continue; } - + $nbCptConf=0; + if ($validateSchema) { /** VALIDATION SCHEMA **/ - if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_Bilan_Redif_V03.xsd')) { + if (!$dom_object->schemaValidate('/var/www/batch/bodacc/Bodacc_Bilan_Redif_V06.xsd')) { echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier $nomFichier, Date de Bodacc '$dateBodaccTxt' Schéma XML non validé !".EOL; if (!$reload) { echo EOL.'$forceContinue='.$forceContinue.EOL; @@ -7231,6 +7337,24 @@ foreach ($tabFichier as $k => $nomFichier) { die(); } + /** **/ + $title = $xpath->query ('depot/descriptif', $annonce); + $descriptif=trim(utf8_decode($title->item(0)->nodeValue)); + $tabAnnonces[$idann]['data']['commentaires']=$descriptif; + if ($descriptif<>'' && + $descriptif<>"Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25.Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25." && + $descriptif<>"Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25." && + $descriptif<>"Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25.") { + echo date ('Y/m/d - H:i:s')." - ERREUR : Descriptif inconnu '$descriptif' inconnu pour l'annonce $idann !".EOL; + print_r($tabAnnonces[$idann]); + die("Descriptif inconnu :".EOL."$descriptif".EOL); + } elseif ( + $descriptif=="Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25.Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25." || + $descriptif=="Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25." || + $descriptif=="Les comptes annuels sont accompagnés d'une déclaration de confidentialité en application du premier alinéa de l'article L. 232-25.") { + $nbCptConf++; + } + // Génération du texte d'annonce Siren / RCS / Greffe if ($codeRM<>'') $annonceTxt.="$codeRM $deptRM "; @@ -7275,6 +7399,9 @@ foreach ($tabFichier as $k => $nomFichier) { if ($typeAnnonce<>'annulation') $annonceTxt.=" $typeDepot de l'exercice clos le : ".str_replace(' 01 ', ' 1er ',strtolower(WDate::dateT('Y-m-d', 'd M Y', $dateCloture))).'.'; + if ($descriptif<>'') + $annonceTxt.=" $descriptif"; + $tabAnnonces[$idann]['annonce']=trim(str_replace(' .','.', preg_replace('/ +/', ' ', $annonceTxt))); if ($tabAnnonces[$idann]['typeAnnonce']=='Rectification' ) { @@ -7464,7 +7591,8 @@ foreach ($tabFichier as $k => $nomFichier) { print_r($tabAnnonces[$idann]); echo date ('Y/m/d - H:i:s')." - Evènement DIVA non géré pour '$titreAnnonce' !".EOL; if ($noQuestion) { - die(); + $tabAnnonces[$idann]['data']['sirenValide']=0; +// die(); } else { while (1) { echo date('Y/m/d - H:i:s') ." - Saisir la codification (par défaut 1999 ou 'l XXX' pour liste des codes XXX) ?"; @@ -7804,7 +7932,8 @@ foreach ($tabFichier as $k => $nomFichier) { ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { - die("Devise '$devise' inconnue !"); + $tabAnnonces[$idann]['data']['sirenValide']=0; + //die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; @@ -7942,7 +8071,8 @@ foreach ($tabFichier as $k => $nomFichier) { ** DINARS DIRHAM DOLLARS COURONNES FRANC CFA ROUPIE LEU **/ if ($noQuestion) { - die("Devise '$devise' inconnue !"); + $tabAnnonces[$idann]['data']['sirenValide']=0; +// die("Devise '$devise' inconnue !"); } else { while(true){ echo 'Saisir la devise pour "'.$devise.'" (0 pour ne rien saisir) ?'.EOL; @@ -8197,6 +8327,241 @@ foreach ($tabFichier as $k => $nomFichier) { die(); continue; + } elseif ($typeFichier=='r.gz') { + + //echo(date ('Y/m/d - H:i:s')." - ATTENTION : Bodacc $nomFichier est dans un format partiellement chargé en base ! ".EOL); + + /********************************************************************/ + /** DEBUT FORMAT .tar.gz **/ + /********************************************************************/ + + $debutNom=substr(basename($nomFichier),0,5); + + if ($unTaz) { + if ($debutNom=='cptas') { + $bodaccType='ASSOCPT'; + @mkdir(BODACC_LOCAL_DIR.'tmp'); + if (!copy(BODACC_LOCAL_DIR.$nomFichier, BODACC_LOCAL_DIR.'tmp/'.$nomFichier)) { + die("Copie impossible de '".BODACC_LOCAL_DIR.$nomFichier."' vers '".BODACC_LOCAL_DIR.'tmp/'.$nomFichier."' !"); + } + exec('cd '.BODACC_LOCAL_DIR.'tmp;tar -xvzf '.$nomFichier.' | grep ".xml" > listeXml.txt;cd ..'); + if (!file_exists(BODACC_LOCAL_DIR.'tmp/listeXml.txt')) { + // if (!file_exists(BODACC_LOCAL_DIR.strtr($nomFichierXml,array('.xml'=>'.extr.xml')))) { + echo(date ('Y/m/d - H:i:s')." - Erreur A lors de la décompression du fichier $nomFichier (XML inexistant) !".EOL); + if ($noQuestion) die(); + } +// $coef=2; +// if (filesize(BODACC_LOCAL_DIR.$nomFichierXml)*$coef<=filesize(BODACC_LOCAL_DIR.$nomFichier)) +// echo(date ('Y/m/d - H:i:s')." - Attention, taille incohérente après décompression du fichier $nomFichier !".EOL); + // echo "XML : ".filesize(BODACC_LOCAL_DIR.$nomFichierXml).' octets'.EOL; + // echo "ZIP : ".filesize(BODACC_LOCAL_DIR.$nomFichier).' octets'.EOL.EOL; + } + } + + $tabFichiersXML=file(BODACC_LOCAL_DIR.'tmp/listeXml.txt'); + //print_r($tabFichiersXML); + + $tabTmp=explode('_',str_replace('.tar.gz','',$nomFichier)); + $dateBodaccTxt=$tabTmp[1]; + $dateBodacc=WDate::dateT('dmY', 'Ymd', substr($dateBodaccTxt,0,4).'20'.substr($dateBodaccTxt,4,2)); + $tabFichiers[$nomFichier]['Bodacc_Date_Parution_Texte']=$dateBodaccTxt; + $bodaccNumPar=substr($dateBodacc,2,6).str_replace('h','',$tabTmp[2]); + $tabFichiers[$nomFichier]['Bodacc_Code']=$bodaccType; + if (!in_array($bodaccType, $tabBodaccF)) + continue; // La ligne de commande ne souhaite pas intégrer ce type de Bodacc + $tabFichiers[$nomFichier]['Bodacc_Num']=$bodaccNumPar; + $bodaccAnneePar=substr($dateBodacc,0,4); + $tabFichiers[$nomFichier]['Bodacc_Annee_Parution']=$bodaccAnneePar; + + /** On test si le fichier est déjà en base **/ + $ret=$iDb->select('chargements', 'Bodacc_Date_Parution, Bodacc_Code, Bodacc_Annee_Parution, DateDispo, dateDownload, taille, Bodacc_Num, Num_Annonce_Deb, Num_Annonce_Fin, dateInsert', "NomFichier='$nomFichier'"); + if (count($ret)>0) { + $ficDB=$ret[0]; + echo date ('Y/m/d - H:i:s')." - ASSOCPT $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; + if ($fichierTLS==$nomFichier) + $reload=true; + else + continue; + } + /* + && $fichierTLS<>$nomFichier) { + } + $reload=false; + $ficDB=$ret[0]; + $numBodacc=$tabFichiers[$nomFichier]['Bodacc_Num']; +/* + * @todo Pour l'instant, on ne lie pas les bilans Assoc à une archive donnée donc pas de contreôle + if ($debutNom=='ASS20') + $ret=$iDb->select('asso', 'count(*) as nb', "YEAR(Date_Parution)=$bodaccAnneePar AND Num_Parution=(YEAR(Date_Parution)*10000)+$numBodacc"); + elseif ($debutNom=='MPA20' || $debutNom=='MPB20' || $debutNom=='MPC20' || $debutNom3=='MAP' || $debutNom3=='DEF' || $debutNom3=='DAF') { + $ret=$iDb->select('boamp', 'count(*) as nb', "Boamp_Code='$bodaccType' AND Boamp_Annee_Parution=$bodaccAnneePar AND Boamp_Num=$numBodacc"); + /*if ($debutNom3=='MAP') { + print_r($ret); + die("Boamp_Code='$bodaccType' AND Boamp_Annee_Parution=$bodaccAnneePar AND Boamp_Num=$numBodacc"); + }* + } $nbAnnonces=$ret[0]['nb']; + if ($ficDB['Num_Annonce_Fin']<>$nbAnnonces) + echo(date ('Y/m/d - H:i:s')." - ATTENTION : Fichier $nomFichier, numéro de la dernière annonce (".$ficDB['Num_Annonce_Fin'].") incohérent avec le nombre d'annonces en base ($nbAnnonces) !".EOL); + + continue; + } elseif (count($ret)>0 && $fichierTLS==$nomFichier) { + $ficDB=$ret[0]; + echo date ('Y/m/d - H:i:s')." - BODACC $bodaccAnneePar-$bodaccNumPar du $dateBodacc déjà chargé ($nomFichier / $dateBodaccTxt).\n"; + $reload=true; + }*/ + + if ($tabFichiers[$nomFichier]['taille']==0) $tabFichiers[$nomFichier]['taille']=filesize(BODACC_LOCAL_DIR . $nomFichier); + $tailleKo=round($tabFichiers[$nomFichier]['taille']/1024); + + $strTypeJo="J.O. ASSOCPT"; + + echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de traitement ($nomFichier, $dateBodaccTxt, $tailleKo k)...".EOL; + $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc en cours de traitement ($nomFichier, $dateBodaccTxt, $tailleKo k)...".EOL; + $nbPdf=$iFic=0; + + foreach ($tabFichiersXML as $iFic=>$nCheminFic) { + if ($iFic==0) $tabFichiers[$nomFichier]['Num_Annonce_Deb']=$iFic+1; + $nCheminFic=trim($nCheminFic); + $nFic=basename($nCheminFic); + $tabAnnonce=array(); + + $tabAnnonce['Date_Parution']=$dateBodacc; + $tabAnnonce['Heure_Parution']=substr($bodaccNumPar,-4); + $tabAnnonce['Num_Parution']=$iFic+1; + + $tDeb=microtime(1); + $tabNFic=explode('_',str_replace('.xml','',$nFic)); + $siren=$tabNFic[0]; + + $dateCloture=WDate::dateT('dmY','Y-m-d', $tabNFic[1]); + $rectif=@str_replace('rectif','',$tabNFic[2])*1; + + $AnnDb=$iDb->select('asso_bilans', 'count(*) AS nb', "siren=$siren AND dateCloture='$dateCloture' AND typeCompteNum=$rectif", false, MYSQL_ASSOC); + $nbBilans=@$AnnDb[0]['nb']*1; + echo date('Y-m-d H:i:s')." - Traitement du PDF n°$iFic, $nFic : "; + $CheminFicPdf=str_replace('xml','pdf',$nCheminFic); + $ficPdf=basename($CheminFicPdf); + if (move(BODACC_LOCAL_DIR.'tmp/'.$CheminFicPdf, '/mnt/data/datafile/association/bilans/'.$ficPdf)) + $nbPdf++; + + $strXML=utf8_decode(trim(file_get_contents(BODACC_LOCAL_DIR.'tmp/'.$nCheminFic))); + //die($strXML); + $tabAnnonce['Annonce_Xml']=$strXML; + + $tabAnnonce['siren']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['sirenValide']=$iInsee->valideSiren($tabAnnonce['siren']); + //$tabAnnonce['fichier']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['Assoc_Nom']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['Assoc_Nom2']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['adresse']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['adresse2']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['codePostal']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['ville']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $dateDepot=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['Assoc_Date_Declaration']=WDate::dateT('d/m/Y','Y-m-d', substr($dateDepot,0,10)).' '.substr($dateDepot,11,5).':00'; + $tabAnnonce['dateCloture']=$dateCloture;//htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['typeCompteNum']=$rectif;//htm2txt(@getTextInHtml($strXML, '', '>', '')); + if ($rectif==0) $tabAnnonce['typeCompte']='compte initial'; + else $tabAnnonce['typeCompte']='rectificatif'; + $fj=htm2txt(@getTextInHtml($strXML, '', '>', '')); + //echo $strXML.EOL; + switch ($fj) { + case 'association': $tabAnnonce['typeAsso']='ASS'; break; + case 'fondation': $tabAnnonce['typeAsso']='FON'; break; + case 'fonds_de_dotation': $tabAnnonce['typeAsso']='FOD'; break; + case 'autre': $tabAnnonce['typeAsso']='DIV'; break; + default: // 'ASS1901', 'ASS1884', 'ASE1901', 'ASE1884' + if (strlen($strXML)<10) die("Forme juridique non référencée : '$fj'".EOL); + else continue; + break; + } + $dons=strtr(htm2txt(@getTextInHtml($strXML, '', '>', '')),array(','=>'.', 'Â '=>'')); + if ($dons<>'') $tabAnnonce['dons']=$dons*1.0; + else $tabAnnonce['dons']=NULL; + $subv=strtr(htm2txt(@getTextInHtml($strXML, '', '>', '')),array(','=>'.', 'Â '=>'')); + if ($subv<>'') $tabAnnonce['subventions']=$subv*1.0; + else $tabAnnonce['subventions']=NULL; + $tabAnnonce['siteWeb']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['Waldec']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + if ($tabAnnonce['Waldec']=='') + $tabAnnonce['Waldec']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + $tabAnnonce['activite']=htm2txt(@getTextInHtml($strXML, '', '>', '')); + + $tabPdf=getPdfInfo('/mnt/data/datafile/association/bilans/'.$ficPdf); + $tabAnnonce['pdfSize']=$tabPdf['pdfSize']; + $tabAnnonce['pdfVer']=$tabPdf['version']; + $tabAnnonce['pdfPage']=$tabPdf['nbPages']; + if ($tabPdf['nbCar']>20) $tabAnnonce['pdfText']=1; + else $tabAnnonce['pdfText']=0; + + $duree=round(microtime(1)-$tDeb,3); + if ($nbBilans==1) { + // Mettre à jour + if ($iDb->update('asso_bilans', $tabAnnonce, "siren=$siren AND dateCloture='$dateCloture' AND typeCompteNum=$rectif", false)) + echo "MAJ OK (".@$tabAnnonce['pdfPage']." pages, $duree s.)".EOL; + else + echo "MAJ KO !!!".mysql_error().EOL; + } elseif ($nbBilans==0) { + // Insérer + $tabAnnonce['dateInsert']=date('YmdHis'); + $tabAnnonce['pdfLink']=$ficPdf; + if ($iDb->insert('asso_bilans', $tabAnnonce, "siren=$siren AND dateCloture='$dateCloture' AND typeCompteNum=$rectif", false)) + echo "Ajout OK (".@$tabAnnonce['pdfPage']." pages, $duree s.)".EOL; + else + echo "Ajout impossible !!!".mysql_error().EOL; + // Traiter le PDF + /*} elseif ($nbBilans>1) { + // Traiter les cas multiples + echo "$nbBilans à vérifier !!!"; + die();*/ + } + } + + echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc traité ($nbPdf fichiers PDF chargés).".EOL; + $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $debutNom $bodaccAnneePar-$bodaccNumPar du $dateBodacc traité ($nbPdf fichiers PDF chargés).".EOL; + + $tabFichiers[$nomFichier]['Num_Annonce_Fin']=$iFic+1; + $tabFichiers[$nomFichier]['NbAnnoncesLues']=$nbPdf; + $tabFichiers[$nomFichier]['Bodacc_Date_Parution']=$dateBodacc; + $tabFic=$tabFichiers[$nomFichier]; + $tabFic['NomFichier']=$nomFichier; + if (!isset($tabFic['dateDownload'])) { + $tabFic['dateDownload']=date('Y-m-d H:i:s', filemtime(BODACC_LOCAL_DIR . $nomFichier)); + } + if (!$forceDateInsertABodacc) $dateInsert=date('Y-m-d H:i:s'); + else $dateInsert=$tabFic['dateDownload']; + $tabFic['dateInsert']=$dateInsert; + $ret=$iDb->insert('chargements', $tabFic); + + $depotComptes=1; + if ($depotComptes) { + // + $AnnDb=$iDb->select('annonces', 'MAX(dateSource) AS dateMAJ', "typeEven=3200 AND tribunal='DJOFFJ'", false, MYSQL_ASSOC); + $dateMaj=$AnnDb[0]['dateMAJ']; + + $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' AND siren>1000 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']); + if (!$iDb->insert('annonces', $tabInsert)) + echo '';//date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . EOL; + } + } + + continue; } else { echo(date ('Y/m/d - H:i:s')." - ATTENTION : Format $typeFichier inconnu pour le fichier $nomFichier !".EOL); die(); @@ -8342,9 +8707,11 @@ foreach ($tabFichier as $k => $nomFichier) { $tabAnn['Bodacc_Code']<>'BOMP B' && $tabAnn['Bodacc_Code']<>'BOMP C' && $tabAnn['Bodacc_Code']<>'MAPA') { + $strConf=''; + if ($tabAnn['Bodacc_Code']=='C') $strConf="dont $nbCptConf bilans confidentiels "; $nbAnn=end(explode('-',$idann))*1; - echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces ($nbSirenTotaux fiches).".EOL; - $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces ($nbSirenTotaux fiches).".EOL; + echo date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces $strConf($nbSirenTotaux fiches).".EOL; + $strMailInfo.=date ('Y/m/d - H:i:s')." - $strTypeJo $bodaccAnneePar-$bodaccNumPar du $dateBodacc validé : $nbSirenVides siren absents, $nbSirenAvalider à valider, $nbNicAvalider NIC à valider, $nbNicAuto NIC trouvés et $nbSirenAdupliquer annonces à dupliquer sur $nbAnn annonces $strConf($nbSirenTotaux fiches).".EOL; } else { if ($tabAnn['Bodacc_Code']=='MAPA') $nbAnn=count($tabAnnonces); else $nbAnn=end(explode('-',$idann))*1; @@ -8374,6 +8741,10 @@ foreach ($tabFichier as $k => $nomFichier) { foreach ($tabAnnonces as $idAnn => $tabAnn) { if ($tabAnn['Bodacc_Code']=='ASSO') { + + /** Insertion des annonces du JO AFE (Associations) + **/ + $tabInsert=array( 'Assoc_Nom' => $tabAnn['data']['Assoc_Nom'], 'Waldec' => $tabAnn['data']['Waldec'], 'Activite' => '', @@ -8430,6 +8801,10 @@ foreach ($tabFichier as $k => $nomFichier) { } $copieWaldec=true; } elseif ($tabAnn['Bodacc_Code']=='BOMP A' || $tabAnn['Bodacc_Code']=='BOMP B' || $tabAnn['Bodacc_Code']=='BOMP C' || $tabAnn['Bodacc_Code']=='MAPA') { + + /** Insertion des Annonces de Marchés Publics + **/ + $tabInsert=$tabAnn; $tabInsert['Boamp_Date_Parution'] = $tabAnn['Bodacc_Date_Parution']; $tabInsert['Boamp_Code'] = $tabAnn['Bodacc_Code']; @@ -8619,7 +8994,10 @@ foreach ($tabFichier as $k => $nomFichier) { $copieSirenBoamp=true; } else { - /** Rajouté le 12 février 2009 afin de traiter la 1ère annonce vide du Bodacc C en TLS **/ + /** Insertion des annonces du BODACC + **/ + + // Rajouté le 12 février 2009 afin de traiter la 1ère annonce vide du Bodacc C en TLS $tabTmp=explode('-', $idAnn); $typTmp=substr($tabTmp[1],0,1); if (strlen($tabTmp[1])>4 && $typTmp<>'A' && $typTmp<>'B' && $typTmp<>'C') @@ -8682,16 +9060,53 @@ foreach ($tabFichier as $k => $nomFichier) { substr($tabAnn['Rubrique_Bodacc'],0,2)<>'A2' && // PROCEDURES COLLECTIVES substr($tabAnn['Rubrique_Bodacc'],0,2)<>'A9' &&*/ $tabAnn['Bodacc_Code']<>'A' && + $tabAnn['Bodacc_Code']<>'B' && $tabAnn['Bodacc_Code']<>'C' ) ) { print_r($tabAnn); - die("Le rechargement ne permet que de traiter la table 'bodacc' et les annonces Bodacc A et C de la table 'bodac_detail' !!!"); + die("Le rechargement ne permet que de traiter la table 'bodacc' et les annonces Bodacc A, B et C de la table 'bodac_detail' !!!"); continue; } } - + + /** Annonces rectificatives **/ + if ($tabAnn['typeAnnonce']=='Rectificatif' || $tabAnn['typeAnnonce']=='Suppression') { + if (preg_match('/(A|B|C)/i',$tabAnn['corrNumParution'],$matches)) { + $corBodaccCode=$matches[1]; + $corBodaccNum=strtr($tabAnn['corrNumParution'],array('A'=>'','B'=>'','C'=>'')); + $corBodaccAnnee=substr($tabAnn['corrBodacc_Date_Parution'],0,4); + if ($corBodaccAnnee<2000 && $corBodaccCode=='C') $corBodaccAnnee=substr($tabAnn['corrBodacc_Date_Parution'],-4); + } + $idAnnCor=$iDb->select('bodacc', 'id', "Bodacc_Code='$corBodaccCode' AND ". + "Bodacc_Annee_Parution='$corBodaccAnnee' AND ". + "Bodacc_Num='$corBodaccNum' AND ". + "Num_Annonce='". $tabAnn['corrNum_Annonce']."'"); + $idAnnCor=@$idAnnCor[0][0]; + if ($idAnnCor>0) { + if($iDb->update('bodacc_detail', array('dateSuppr'=>$tabAnn['Bodacc_Date_Parution']), "id=$idAnnCor")) { + $strTmp=date ('Y/m/d - H:i:s')." - Traitement de l'annonce de '".$tabAnn['typeAnnonce']."' (annonce $idAnnCor) sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !"; + } else + $strTmp=date ('Y/m/d - H:i:s')." - IMPOSSIBLE de traiter l'annonce de '".$tabAnn['typeAnnonce']."' (annonce $idAnnCor) sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !"; + } else { + $strTmp=date ('Y/m/d - H:i:s')." - IMPOSSIBLE de trouver l'annonce de '".$tabAnn['typeAnnonce']."' num ".$tabAnn['corrNum_Annonce'].' '.$tabAnn['corrNumParution']." parue le ".$tabAnn['corrBodacc_Date_Parution']." sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !"; + /* die(mysql_errno().' - '.mysql_error()." - Bodacc_Code='". $corBodaccCode."' AND ". + "Bodacc_Annee_Parution='". substr($tabAnn['corrBodacc_Date_Parution'],0,4)."' AND ". + "Bodacc_Num='". $corBodaccNum."' AND ". + "Num_Annonce='". $tabAnn['corrNum_Annonce']."'");*/ + } + echo $strTmp.EOL; + $strMailInfo.=$strTmp."\n"; + if (strpos($strTmp, 'IMPOSSIBLE')>0) sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,mpurcarin@scores-decisions.com', 'Chargement des annonces J.O.', $strTmp); + /** Si annonce de procédure collective rectifiée ou supprimée **/ + elseif (substr($tabAnn['Rubrique_Bodacc'],0,2)=='A8') { + $strTmp.=EOL."MERCI DE VERIFIER L'ETAT FINAL DE LA PROCEDURE POUR CETTE ENTITE !!!"; + sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com,mpurcarin@scores-decisions.com', 'Chargement des annonces J.O.', $strTmp); + } + + } + if ($tabAnn['Bodacc_Code']=='C') { // DEPOT DES COMPTES ANNUELS - +//IKIKI// if ($tabData['comptesAnnu'] && $tabData['comptesConso']) $tabData['evenement']=3100; // Dépôt des comptes annuels & des comptes consolidés elseif ($tabData['comptesAnnu']) @@ -8734,6 +9149,7 @@ foreach ($tabFichier as $k => $nomFichier) { 'dateEffet'=>$tabData['dateCloture'], 'typeEven'=>$tabData['evenement'], + 'commentaires'=>$tabData['commentaires'], 'dateInsert'=>$dateInsert); if ($tabAnn['Rubrique_Bodacc']!='C331') { echo date ('Y/m/d - H:i:s')." - ATTENTION : Provisoirement vérifier l'intégration des rubriques du Bodacc C pour la rubrique ". $tabAnn['Bodacc_Code'] .':'.EOL; @@ -8855,6 +9271,7 @@ foreach ($tabFichier as $k => $nomFichier) { else $dateEffet=$tabAnn['Bodacc_Date_Parution']; $tabAdministration=$iBodacc->getDirigeants($tabData['administration']); foreach ($tabAdministration as $numDir => $tabDir) { + if ($siren<1000) $siren=$tabData['siren'][0]; $tabDir['num']=$numDir; $tabDir['siren']=$siren; $tabDir['dateEffet']=$dateEffet; @@ -9129,12 +9546,21 @@ foreach ($tabFichier as $k => $nomFichier) { $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); - if (!$ret){ - echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC B (radiations) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; - echo date ('Y/m/d - H:i:s'). mysql_error(); - print_r($tabAnnC); - die(); + if (!$ret) { + if ($reload && mysql_errno()==1062) { + unset($tabAnnC['dateInsert']); + $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][0]); + echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !".EOL; + } else { + echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC B (radiations) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; + echo date ('Y/m/d - H:i:s'). mysql_error(); + print_r($tabAnnC); + die(); + } } + elseif ($reload) + echo date ('Y/m/d - H:i:s')." - Chargement de l'annonce manquante : ". $tabAnn['Num_Annonce']. EOL; + } elseif (substr($tabAnn['Rubrique_Bodacc'],0,2)=='A8' || // PROCEDURES COLLECTIVES substr($tabAnn['Rubrique_Bodacc'],0,2)=='A2' || // PROCEDURES COLLECTIVES @@ -9189,6 +9615,7 @@ foreach ($tabFichier as $k => $nomFichier) { $tabData['typeProCol']*1==1517 || // Rectification d'une erreur matérielle $tabData['typeProCol']*1==1520 || // Ordonnance $tabData['typeProCol']*1==1525 || // Appel du ministère public + $tabData['typeProCol']*1==1541 || // Rectractation de LJ sur tierce opposition (ajout du 14/11/2014 par MP) $tabData['typeProCol']*1==1999) // Autre procol $tabData['sirenValide'][$n]=0; @@ -9459,21 +9886,28 @@ foreach ($tabFichier as $k => $nomFichier) { $iDb->insert('bodacc_detail', $tabAnnDup); } $ret=$iDb->insert('bodacc_detail', $tabAnnC); - if (!$ret){ - while(mysql_errno()==1062) { - if ($tabAnnC['siren']>1000) $tabAnnC['siren']=0; - $tabAnnC['siren']++; - $tabAnnC['sirenValide']=0; - $ret=$iDb->insert('bodacc_detail', $tabAnnC); - } - if (!$ret) { - echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). - " : Insertion des informations du BODACC B (MMD) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; + if (!$ret) { + if ($reload && mysql_errno()==1062) { + unset($tabAnnC['dateInsert']); + $ret=$iDb->update('bodacc_detail', $tabAnnC, "id=$idAnnRet AND siren=".$tabData['siren'][0]); + echo date ('Y/m/d - H:i:s')." - Insertion des informations manquantes sur le siren ".$tabData['siren'][0]." en base (annonce $idAnnRet) !".EOL; + } elseif (!reload) { + while(mysql_errno()==1062) { + if ($tabAnnC['siren']>1000) $tabAnnC['siren']=0; + $tabAnnC['siren']++; + $tabAnnC['sirenValide']=0; + $ret=$iDb->insert('bodacc_detail', $tabAnnC); + } + } else { + echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Insertion des informations du BODACC B (MMD) sur le siren $siren en base impossible (annonce $idAnnRet) !".EOL; echo date ('Y/m/d - H:i:s'). mysql_error(); print_r($tabAnnC); die(); } } + elseif ($reload) + echo date ('Y/m/d - H:i:s')." - Chargement de l'annonce manquante : ". $tabAnn['Num_Annonce']. EOL; + if (isset($tabData['dateDebutActivite'])) $dateEffet=$tabData['dateDebutActivite']; elseif (isset($tabData['dateEffet'])) $dateEffet=$tabData['dateEffet']; elseif (isset($tabData['dateCessationActivite'])) $dateEffet=$tabData['dateCessationActivite']; @@ -9628,11 +10062,13 @@ foreach ($tabFichier as $k => $nomFichier) { die(); } } + + $doMajBodacc=true; } // Fin de la boucle de chargement des annonces en base } - $ret=$iDb->update('chargements', array('NbAnnoncesLues'=>count($tabAnnonces)), "NomFichier='$nomFichier'"); + $ret=$iDb->update('chargements', array('NbAnnoncesLues'=>count($tabAnnonces),'NbBilansConf'=>$nbCptConf), "NomFichier='$nomFichier'"); if (!$ret) { echo date ('Y/m/d - H:i:s')." - ERREUR ".mysql_errno()." : Mise à jour des informations de chargement en base impossible :".EOL; echo date ('Y/m/d - H:i:s'). mysql_error().EOL; @@ -9673,12 +10109,13 @@ if ($copieWaldec) { $waldec=$tabTmp['Waldec']; if (isset($tabWaldec[$waldec])) { $siren=$tabWaldec[$waldec]; - $iDb->update('asso', array('siren'=>$tabWaldec[$tabTmp['Waldec']]), 'id='.$tabTmp['id'].' AND siren<100'); + $iDb->update('asso', array('siren'=>$tabWaldec[$tabTmp['Waldec']],'sirenValide'=>3), 'id='.$tabTmp['id'].' AND siren<100'); + echo mysql_error(); + if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id, Waldec=$waldec avec siren $siren...".EOL; + $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); echo mysql_error(); - // $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); - // echo mysql_error(); $nbWaldeked++; - // echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id, Waldec=$waldec avec siren $siren...".EOL; + } } @@ -9701,11 +10138,10 @@ if ($copieWaldec) { $siren=$tabTmp['siren']; $iDb->update('asso', array('Waldec'=>$tabWaldec[$waldec]), "id=$id AND siren=$siren"); echo mysql_error(); - // $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); - // echo mysql_error(); + if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id, Waldec=".$tabWaldec[$waldec]." avec siren $siren ($waldec)...".EOL; + $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); + echo mysql_error(); $nbWaldeked++; - //echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id, Waldec=".$tabWaldec[$waldec]." avec siren $siren ($waldec)...".EOL; - //die(mysql_error()); } } echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbWaldeked SIREN d'Associations avec WALDEC non sirenées.".EOL; @@ -9753,10 +10189,9 @@ if ($copieWaldec) { 'nic'=>$nic, 'nicValide'=>$nicValide), 'id='.$id, false, 0, true); echo mysql_error(); + if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $iLot : Mise à jour de id=$id avec le siren $siren et le nic $nic...".EOL; $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id",false,true); echo mysql_error(); - echo date ('Y/m/d - H:i:s')." - $iLot : Mise à jour de id=$id avec le siren $siren et le nic $nic...".EOL; - //die(); } } $nbSirened+=$nbSireted; @@ -9787,10 +10222,9 @@ if ($copieWaldec) { $iDb->update('asso', array('Waldec'=>$waldec), "id=$id AND siren<1000", false, 0 , true); $nbWaldeked++; echo mysql_error(); - // $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); - // echo mysql_error(); - echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id avec Waldec=$waldec ($idTxtUnique)...".EOL; - //die(); + if ($modeDebug) echo date ('Y/m/d - H:i:s')." - $nbWaldec : Mise à jour de id=$id avec Waldec=$waldec ($idTxtUnique)...".EOL; + $iDb->delete('bodacc_sirenage', "idTable='asso' AND idAnn=$id"); + echo mysql_error(); } //else echo date ('Y/m/d - H:i:s')." - $nbWaldec : Pas de correspondance pour id=$id ($idTxtUnique)...".EOL; } @@ -9806,6 +10240,7 @@ if ($copieSirenBoamp) { // Mise à jour des Administrations (BOAMP A, B ou MAPA) echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN des Avis BOAMP...".EOL; $nbSirened=$nbSireted=0; + $tabDelete=array(); // Tableau RS>Siren $tabRsSiren=array(); $tmp=$iDb->select('boamp_detail', 'idTxtUnique, siren, nic', 'siren>0 AND nic>0 GROUP BY idTxtUnique', false, MYSQL_ASSOC); @@ -9814,6 +10249,7 @@ if ($copieSirenBoamp) { echo date ('Y/m/d - H:i:s')." - La table Avis idTxt/Siret contient $nbId lignes...".EOL; $tmp=$iDb->select('boamp_detail', 'id, idTxtUnique', "siren<100 AND idTxtUnique<>'' AND (raisonSociale<>'' OR adresse<>'' OR cp<>'' OR ville<>'') AND sirenValide=0", false, MYSQL_ASSOC); + $nbTmp=count($tmp); foreach ($tmp as $iLot=>$tabTmp) { $id=$tabTmp['id']; $idTxtUnique=$tabTmp['idTxtUnique']; @@ -9830,12 +10266,17 @@ if ($copieSirenBoamp) { 'sirenValide'=>3, 'nic'=>$nic, 'nicValide'=>$nicValide), 'id='.$id, false,0,true); - echo mysql_error(); - $iDb->delete('bodacc_sirenage', "idTable='boamp_detail' AND idAnn=$id",false,true); - echo mysql_error(); - //echo date ('Y/m/d - H:i:s')." - $iLot : Mise à jour de id=$id avec le siren $siren et le nic $nic...".EOL; + if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour du marché id=$id avec $siren $nic...".EOL; + //$iDb->delete('bodacc_sirenage', "idTable='boamp_detail' AND idAnn=$id",false,true); + $tabDelete[]=$id; } } + if (count($tabDelete)>0) { + $strIDL=implode(',',$tabDelete); + $iDb->query("DELETE FROM bodacc_sirenage WHERE idTable='boamp_detail' AND idAnn IN($strIDL);"); + echo "DELETE FROM bodacc_sirenage WHERE idTable='boamp_detail' AND idAnn IN($strIDL);".EOL.mysql_error(); + } + $nbSirened+=$nbSireted; echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertAvis avis BOAMP ajoutés.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertAvis avis BOAMP ajoutés.".EOL; @@ -9843,6 +10284,7 @@ if ($copieSirenBoamp) { // Mise à jour des LOTS (BOAMP C ou MAPA) echo date ('Y/m/d - H:i:s')." - Mise à jour des SIREN des Lots BOAMP...".EOL; $nbSirened=$nbSireted=0; + $tabDelete=array(); // Tableau RS>Siren $tabRsSiren=array(); $tmp=$iDb->select('boamp_lots', 'idTxtUnique, siren, nic', 'siren>0 AND nic>0 GROUP BY idTxtUnique', false, MYSQL_ASSOC); @@ -9851,6 +10293,7 @@ if ($copieSirenBoamp) { echo date ('Y/m/d - H:i:s')." - La table Lots idTxt/Siret contient $nbId lignes...".EOL; $tmp=$iDb->select('boamp_lots', 'id, idTxtUnique', "siren<100 AND idTxtUnique<>'' AND (Boamp_Code='BOMP C' OR Boamp_Rubrique IN('9','94')) AND sansSuite=0 AND (nom<>'' OR adresse<>'' OR cp<>'' OR ville<>'') AND sirenValide=0", false, MYSQL_ASSOC); + $nbTmp=count($tmp); foreach ($tmp as $iLot=>$tabTmp) { $id=$tabTmp['id']; $idTxtUnique=$tabTmp['idTxtUnique']; @@ -9867,12 +10310,17 @@ if ($copieSirenBoamp) { 'sirenValide'=>3, 'nic'=>$nic, 'nicValide'=>$nicValide), 'id='.$id, false, 0, true); - echo mysql_error(); - $iDb->delete('bodacc_sirenage', "idTable='boamp_lots' AND idAnn=$id",false,true); - echo mysql_error(); - //echo date ('Y/m/d - H:i:s')." - $iLot : Mise à jour de id=$id avec le siren $siren et le nic $nic...".EOL; + if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise à jour du lot id=$id avec $siren $nic...".EOL; + //$iDb->delete('bodacc_sirenage', "idTable='boamp_lots' AND idAnn=$id",false,true); + $tabDelete[]=$id; } } + if (count($tabDelete)>0) { + $strIDL=implode(',',$tabDelete); + $iDb->query("DELETE FROM bodacc_sirenage WHERE idTable='boamp_lots' AND idAnn IN($strIDL);"); + echo "DELETE FROM bodacc_sirenage WHERE idTable='boamp_lots' AND idAnn IN($strIDL);".EOL.mysql_error(); + } + $nbSirened+=$nbSireted; echo date ('Y/m/d - H:i:s')." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertLots lots BOAMP ajoutés.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - Mise à jour de $nbSirened SIREN et $nbSireted NIC sur $nbInsertLots lots BOAMP ajoutés.".EOL; @@ -9940,6 +10388,12 @@ if ($copieSirenBoamp) { } } + +if ($doMajBodacc) { + echo ''; + // @todo, retraiter les annonces de radiations (6700) alors que actif insee ou rncs et cj<>1 car transfert 6400 (rad transfert) +} + echo date('Y/m/d - H:i:s') ." - FIN de l'intégration du BODACC.".EOL; $strMailInfo.=date('Y/m/d - H:i:s') ." - FIN de l'intégration du BODACC.".EOL; sendMail('production@scores-decisions.com', 'support@scores-decisions.com', 'Chargement des annonces J.O.', $strMailInfo); diff --git a/batch/getCFE.php b/batch/getCFE.php index d370729a..465ec27e 100644 --- a/batch/getCFE.php +++ b/batch/getCFE.php @@ -11,16 +11,360 @@ **/ include_once(INCLUDE_PATH.'insee/classMInsee.php'); include_once(FWK_PATH.'common/curl.php'); +include_once(FWK_PATH.'common/PHPExcel.php'); $referer='http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcfeaf.jsp'; $iDb=new WDB(); +$iDbI=new WDB('insee'); $iInsee=new MInsee(); + +$doCFE=$doAMF=$doBanatic=$modeDebug=false; /* $url='http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01000&type=all'; $page=getUrl($url, '', '', $referer, false, 'www.justice.gouv.fr'); die($page['body']); */ -$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee BETWEEN 85068 AND 91000 GROUP BY codeInsee');// "`Code Insee`<'10000'"); + +$strInfoScript='Usage : '.basename($argv[0]). "
    ', + 'etab'=>'
    (?:.*)

    (.*)

    (?:.*)'

    (.*)


    ', + 'etabEns'=>'

    (.*)

    ', + 'ensAdr1'=>'Adresse :(?:.*)(.*)
    (?:.*)
    (?:.*)
    (?:.*)', + 'ensAdr2'=>'Adresse :(?:.*)(?:.*)
    (.*)
    (?:.*)
    (?:.*)', + 'ensAdr3'=>'Adresse :(?:.*)(?:.*)
    (?:.*)
    (.*)
    (?:.*)', + 'ensAdr4'=>'Adresse :(?:.*)(?:.*)
    (?:.*)
    (?:.*)
    (.*)', +); + +echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL; +//$letIni=file_get_contents (REP_TEMP.$table); +//$letIni='AVK'; + + + + +$page=getUrl($referer, '', '', '', false); +$body=$page['body']; +/** Ventilation par départements **/ +if (preg_match_all('/title\-05">(.*)<\/h2>(?:.*)
      (.*)<\/ul>/Uis', $body, $matches)) { + //print_r($matches); + //die(); + foreach($matches[1] as $i=>$libDept) { + $listeSenateursHtm=$matches[2][$i]; + //echo "$i\t$libDept".EOL; + /** Ventillation par député du département **/ + if (preg_match_all('/
    • (.*)<\/A><\/li>/Uim', $listeSenateursHtm, $matches2)) { + foreach($matches2[1] as $i=>$urlDetail) { + $url=$urlBase.$urlDetail.'.html'; + $nomPrenom=$matches2[2][$i]; + $tabTmp=explode(' ', $nomPrenom); + $nom=$tabTmp[0]; + $prenom=$tabTmp[1]; + echo "$i\t$libDept\t$nomPrenom\t$nom\t$prenom\t$url".EOL; + if (count($tabTmp[1])>2) die('Cas non prévu !!!'.EOL); + $page=getUrl($url, '', '', $referer, false); + $body=$page['body']; + $tabUpdate=html2array($body, $tabZonesS); + $tabUpdate['mandat']='senateur'; + $tabUpdate['nom']=$nom; + $tabUpdate['prenom']=$prenom; + $tabUpdate['libDept']=$libDept; + $tabUpdate['url']=$url; + $tabUpdate['dateInsert']=date('YmdHis'); + $tabUpdate['dateElection']=WDate::dateT('d M Y','Ymd', $tabUpdate['dateElection']); + $tabUpdate['dateNaiss']=WDate::dateT('d M Y','Ymd', $tabUpdate['dateNaiss']); + @$iDb->insert($table, $tabUpdate); + print_r($tabUpdate); + //die(mysql_error().EOL); + //die(); + randsleep(7,21); + } + } + } +} +die(); + + + +if (!$modeDetail || $modeRCI) { + + if (!$modeRCI) { + $tabSerialised=@file_get_contents(REP_TEMP.$table); + if (!$tabSerialised) { + if (!$nbLet) + //$letIni='AAA'; + for ($l1=65; $l1<91; $l1++) { + //if ($letIni) $l1=ord(substr($letIni,0,1)); + $L1=chr($l1); + for ($l2=65; $l2<91; $l2++) { + //if ($letIni) $l2=ord(substr($letIni,1,1)); + $L2=chr($l2); + for ($l3=65; $l3<91; $l3++) { + //if ($letIni) $l3=ord(substr($letIni,2,1)); + $letIni=false; + $L3=chr($l3); + $let=''.$L1.$L2.$L3; + $tabLet[]=$let; + } + } + } + shuffle($tabLet); + file_put_contents (REP_TEMP.$table, serialize($tabLet)); + } else + $tabLet=unserialize($tabSerialised); + + $nbLet=count($tabLet); + + echo date ('Y/m/d - H:i:s')." - Il reste $nbLet requêtes à traiter...".EOL; + } else { + $an=substr($modeRCI,0,2); + //if ($an*1<1 || $an>99999) die("Erreur : N° RCI '$modeRCI' incorrect !"); + $lettre=strtoupper(substr($modeRCI,2,1)); + if ($lettre<>'S' && $lettre<>'P') die("Erreur : N° RCI '$modeRCI' incorrect !"); + $numRC=substr($modeRCI,3,5); + if ($numRC<1 || $numRC>99999) die("Erreur : N° RCI '$modeRCI' incorrect !"); + $tabLet=array(0=>$modeRCI); + $nbLet=2; + } + $nbDone=0; + foreach ($tabLet as $j=>$let) { + $nbDone++; + if ($modeRCI) $url=$urlRecherche."Gratuit.jsp?mille=$an&fj=$lettre&rc=$numRC"; + else $url=$urlRecherche.'RSEGratuit.jsp?rse='.$let; + $page=getUrl($url, '', '', '', false); + $body=$page['body']; + echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RC Monaco '$let' ..."; + if (preg_match_all('/(.*)<\/a>(?:.*)(.*)<\/td>(?:.*)(.*)<\/td>(?:.*)(.*)<\/td>(?:.*)(.*)<\/td>(?:.*)<\/tr>/Uis', $body, $matches)) { + foreach($matches[2] as $i=>$numRCI) { + $tabEntrep=array('codeRCI'=>trim($numRCI), + 'PmPP'=>trim($matches[1][$i]), + 'forme'=>trim($matches[4][$i]), + 'rs'=>trim($matches[5][$i]), + 'etabEns'=>trim($matches[6][$i]), + 'etat'=>trim($matches[7][$i]), + 'dateInsert'=>date('YmdHis')); + @$iDb->insert($table, $tabEntrep); + //print_r($tabEntrep); + } + $i++; + echo "$i entreprise(s)"; + } else + echo "Pas d'entreprise"; + echo EOL; + if (!$modeRCI) { + unset($tabLet[$j]); + + file_put_contents(REP_TEMP.$table, serialize(array_unique($tabLet))); + if ($modeDebug) randsleep(1,2); + else { + randsleep(60,120); + if (date('H')>19) die(); + } + } + } +} + +if ($modeDetail || $modeRCI) { + if ($modeRCI) + $ret=$iDb->select($table, 'id,codeRCI,PmPP', "codeRCI='$modeRCI'", false); + else + $ret=$iDb->select($table, 'id,codeRCI,PmPP', "activite IS NULL OR etat='' /*AND PmPP='PP'*/ ORDER BY dateInsert DESC", false); + $nbLet=count($ret); + foreach ($ret as $tFiche) { + @$nbDone++; + $id=$tFiche['id']; + $rci=$tFiche['codeRCI']; + $ppS=$tFiche['PmPP']; + echo date ('Y/m/d - H:i:s')." - $nbDone/$nbLet : RCI Monaco '$rci' ($id) - '"; + //echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL; + if ($ppS=='S') $urlFiche=$urlDetailS.$rci; + elseif ($ppS=='PP') $urlFiche=$urlDetailPP.$rci; + else die("Type '$ppS' inconnu !".EOL); + $page=getUrl($urlFiche, '', '', $referer, false); + $body=$page['body']; + if ($ppS=='S') $tabZones=$tabZonesS; + elseif ($ppS=='PP') $tabZones=$tabZonesPP; + $tabUpdate=html2array($body, $tabZones); + if (strpos($tabUpdate['ensAdr4'],'Pour de plus amples informations')>0) $tabUpdate['ensAdr4']=''; + $iDb->update($table, $tabUpdate, "id=$id"); + echo $tabUpdate['rs']."'".EOL; + if (!$modeRCI) { + if ($modeDebug) randsleep(1,2);//randsleep(7,21); + else { + randsleep(60,120); + if (date('H')>19) die(); + } + } + } + +} + +die(); + +shuffle($tabLet); +file_put_contents (REP_TEMP.$table, serialize($tabLet)); +die(); +echo count($tabLet); +//serialize +print_r($tabLet); +die(); + +$tabHtml=html2array($body, $tabZones); +print_r($tabHtml); + +die(); + + +$ret=$iDb->select($table, 'agrementNum', '1', false); +foreach ($ret as $tAgrNum) { + $agrNum=$tAgrNum['agrementNum']; + echo date ('Y/m/d - H:i:s')." - Num Agrément : $agrNum".EOL; +} + +for($i=$iDeb;;$i++) { + $tabInsert=array('id'=>$i); + + $url=$urlBase."?NumAgr=$agrNum&DateDeb=&DateFin=&lstTypeDec=0&NomSOc=&action=new&varvalidform=on&hidRagCode=&CodeAMF=&btnvalid.x=13&btnvalid.y=15"; + $page=getUrl($url, '', '', '', false); + $referer=$url; + $body=$page['body']; + print_r($page); + die(); + + $tabHtml=html2array($body, $tabZones); + + foreach ($tabHtml as $zone=>$data) { + if (is_array($data)) { + foreach ($data as $j=>$tabInsert2) { + $tabInsert2['id']=$i; + $tabInsert2['num']=$j; + $tabInsert2['dateInsert']=date('YmdHis'); + if (!$iDb->insert($table.$zone, $tabInsert2, false)) { + if (mysql_errno()==1062) { + unset($tabInsert2['dateInsert']); + $iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false); + } else { + print_r($tabInsert2); + die(mysql_error()); + } + } + } + } else + $tabInsert[$zone]=$data; + } + if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') { + $nbVides++; + if ($nbVides<20) continue; + else { + echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL; + die(); + } + } + $nbVides=0; + + unset($tabInsert['qualifs']); + + if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') { + $urlLogo='http://www.qualifelec.fr/'; + die($tabInsert['urlImg']); + if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') { + $extension=substr(strrchr($urlLogo,'.'),1); + if (!file_exists("/home/data/logos/$siren.$extension")) { + $referer=''; + $tDeb=microtime(true); + $page=getUrl($urlLogo, '', '', $referer, false, '', '', 60); + $duree=round(microtime(true)-$tDeb,3); + $body=$page['body']; + $taille=round(strlen($body)/1024,1); + file_put_contents("/home/data/logos/$siren.$extension",$body); + } + } + } + unset($tabInsert['urlImg']); + $tabInsert['dateInsert']=date('YmdHis'); + if (!$iDb->insert($table, $tabInsert, false)) { + if (mysql_errno()==1062) { + unset($tabInsert['dateInsert']); + $iDb->update($table, $tabInsert, "id=$i", false); + } else { + print_r($tabInsert); + die(mysql_error()); + } + } + + //die(); + $nb=count($tabInsert); + $nb2=@count($tabInsert2); + echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL; + + if ($modeDebug) randsleep(1,2); + else randsleep(7,21); +} + +die(); + + ?> diff --git a/batch/getFantoir.php b/batch/getFantoir.php new file mode 100644 index 00000000..1606bae4 --- /dev/null +++ b/batch/getFantoir.php @@ -0,0 +1,263 @@ +#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini +filesize($filename)*7) { + echo date ('Y/m/d - H:i:s')." - Le dernier fichier FANTOIR a déjà été décompressé avec succès.".EOL; + $tabFichiers[]=$filename2; + } else { + echo date ('Y/m/d - H:i:s')." - Décompression du fichier à traiter : ". basename($filename) .EOL; + $zip = zip_open($filename); + if (is_resource($zip)) { + while ($zip_entry = zip_read($zip)) { + $tDeb = microtime(true); + $filenameGz=zip_entry_name($zip_entry); + $fp = fopen(REP_TEMP.$filenameGz, "w"); + if (zip_entry_open($zip, $zip_entry, "r")) { + $tailleGz=zip_entry_compressedsize($zip_entry); + $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); + fwrite($fp,"$buf"); + zip_entry_close($zip_entry); + fclose($fp); + } else + die(date ('Y/m/d - H:i:s') . " - ERREUR 1 : Décompression impossible de $filenameGz !".EOL); + $tailleGz=round($tailleGz/1024,1); + $tailleUnz=round(filesize(REP_TEMP.$filenameGz)/1024,1); + $tFin = microtime(true); + $tDur = round($tFin-$tDeb,1); + echo date ('Y/m/d - H:i:s')." - Fichier $filenameGz décompressé : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressés)".EOL; + $fichierZip=$filename; + $tabFichiers[]=REP_TEMP.$filenameGz; + } + zip_close($zip); + } else + die(date ('Y/m/d - H:i:s') . " - ERREUR 2 : Décompression impossible de ". basename($filename).' !'.EOL); + } +} + + +$iDb=new WDB($db_name); + +for ($nbFichiers=0; isset($tabFichiers[$nbFichiers]); $nbFichiers++) { + $finFichier=false; + $nomFichier=$tabFichiers[$nbFichiers]; + echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $tabFichiers[$nbFichiers] ."...".EOL; + $fp=fopen($nomFichier, 'r'); + if (!$fp) { + echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n°$nbFichiers à traiter '".$nomFichier."'".EOL; + echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL; + die(); + } + + $dateInsert=date('YmdHis'); + $nbLignes=0; // Nombre de ligne du fichier + while (!feof($fp)) + { + $nbLignes++; + $a = trim(fgets($fp, 256)); + } + echo date ('Y/m/d - H:i:s')." - Fichier n°$nbFichiers, $nomFichier : $nbLignes lignes à traiter...".EOL; + $nbLignes=$nbErreurs=0; + rewind($fp); + $tabDep=$tabCom=array(); + while (!feof($fp)) + { + $nbLignes++; + $a = trim(fgets($fp, 256)); + + $codDepartement = trim(substr($a, 0, 2 )); // Code Département + $codDirection = trim(substr($a, 2, 1 )); // Code Direction dans le département + $codCommune = trim(substr($a, 3, 3 )); // Code Commune + + $idVoieCommune = trim(substr($a, 6, 4 )); // Identifiant de la voie dans la commune + $cleRivoli = trim(substr($a, 10, 1 )); // Clé Rivoli (Numérique pour les voies, Axxx=Ens. immobiliers, Bxxx à Wxxx pour les lieux-dits, Xxxx=Pseudo Voies, Yxxx ou Zxxx=Voies provisoires à annuler) + $libDirOuCommune= trim(substr($a, 11, 30 )); // Libellé de la Direction/Commune + + $voieNature = substr($a, 11, 4 ); // Code nature de la voie + $voieLib = substr($a, 15, 26 ); // Libellé de la voie + + $typeCommune = substr($a, 42, 1 ); // Type Commune (N=Rurale, R=recensée) + $carRUR = substr($a, 45, 1 ); // Caractère RUR (3=pseudo-recensée) + $voieCar = substr($a, 48, 1 ); // Caractère de la voie (0=publique, 1=privée) + $popCar = substr($a, 49, 1 ); // Caractère de population (blanc si < 3000hab, * sinon) + $popReel = substr($a, 52, 7 ); // Population Réelle + $popApar = substr($a, 59, 7 ); // Population à part + $popFic = substr($a, 66, 7 ); // Population fictive + $annulationCar = substr($a, 73, 1 ); // Caractère d'annulation (Q=annulation avec transfert) + $annulationDate = substr($a, 74, 7 )*1; // Date d'annulation + if ($annulationDate==0) $annulationDateYmd=0; + else $annulationDateYmd = date('Ymd', mktime(0, 0, 0, 1, substr($a,77,3), substr($a,74,4)));// Date d'annulation + $creationArticle= substr($a, 81, 7 )*1; // Date de création de l'article + if ($creationArticle==0) $creationArticleYmd=0; + else $creationArticleYmd= date('Ymd', mktime(0, 0, 0, 1, substr($a,85,3), substr($a,81,4))); // Date de création de l'article + + $codeMajic = substr($a, 103, 5 ); // Code identifiant MAJIC de la voie = FANTOIR = RIVOLI + $typeVoie = substr($a, 108, 1 ); // Type de voie (1=voie, 2=ensemble immobilier, 3=lieu-dit, 4=pseudo-voie, 5=voie provisoire) + $lieuDitCar = substr($a, 109, 1 ); // Caractère du lieu-dit (1=lieu-dit bâti, 0 sinon) + $derMotLibVoie = substr($a, 112, 8 ); // Dernier mot entièrement alphabétique du libellé de la voie + + if ($codDepartement=='EN') { + // Entête du fichier + // ENEVERS 2014050120141220000000 + $origineFichier=trim(substr($a, 1, 24 )); // L'origine du fichier : caractère et libellé du CSI (Nevers). + $dateTopad =trim(substr($a, 25, 8 )); // Références du fichier origine : (n° de version du fichier TOPO de la base TOPAD). + $dateFantoir =trim(substr($a, 33, 7 ))*1; // La date de production du fichier. + if ($dateFantoir>0) + $dateFantoirYmd=date('Ymd', mktime(0, 0, 0, 1, substr($dateFantoir,4,3), substr($dateFantoir,0,4))); + /* b. ARTICLE FIN (DERNIER ENREGISTREMENT) + IDENTIFIANT : 1,10 A 9999999999 + IL ENREGISTRE LE NOMBRE D'ARTICLES ECRITS SUR LE FICHIER.*/ + continue; + } elseif($codDepartement=='99') { + // Fin du fichier + //9999999999 7586976109370537549812000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + $finFichier=true; + continue; + } + elseif ($codDepartement=='') break; + elseif ($codCommune=='') { + $tabInsert=array( 'numDep' => $codDepartement, + 'numDir' => $codDirection, + 'libDep' => $libDirOuCommune, + 'dateFantoirYmd'=> $dateFantoirYmd, + 'dateTopad' => $dateTopad, + 'origineFantoir'=> $origineFichier, + 'dateInsert' => $dateInsert, + ); + $db_table='fantoirDep'; + echo "Ligne $nbLignes, DEP='$codDepartement' Dir='$codDirection:$cleRivoli:$libDirOuCommune'".EOL; + } elseif ($idVoieCommune=='') { + $tabInsert=array( 'numDep' => $codDepartement, + 'numDir' => $codDirection, + 'codCom' => $codCommune, + 'codComInsee' => $codDepartement.''.$codCommune, + 'libCom' => $libDirOuCommune, + 'typeCom' => $typeCommune, + 'carRUR' => $carRUR, + 'popReel' => $popReel, + 'popApar' => $popApar, + 'popFic' => $popFic, + 'popCar' => $popCar, + 'annulCar' => $annulationCar, + 'annulDat' => $annulationDate, + 'annulDatYmd' => $annulationDateYmd, + 'dateCre' => $creationArticle, + 'dateCreYmd' => $creationArticleYmd, + 'dateFantoirYmd'=> $dateFantoirYmd, + 'dateInsert' => $dateInsert, + ); + + $db_table='fantoirCom'; + echo "Ligne $nbLignes, Commune='$codDepartement $codCommune' : '$libDirOuCommune' ($typeCommune,$carRUR) Population=$popReel/$popApar/$popFic($popCar)".EOL; + } else { + $tabInsert=array( 'numDep' => $codDepartement, + 'numDir' => $codDirection, + 'codCom' => $codCommune, + 'codComInsee' => $codDepartement.''.$codCommune, + 'idVoieCom' => $idVoieCommune, + 'cleRivoli' => $cleRivoli, + 'voieNature' => $voieNature, + 'voieLib' => $voieLib, + 'voieCar' => $voieCar, + 'typeCom' => $typeCommune, + 'carRUR' => $carRUR, + 'popReel' => $popReel, + 'popApar' => $popApar, + 'popFic' => $popFic, + 'popCar' => $popCar, + 'annulCar' => $annulationCar, + 'annulDat' => $annulationDate, + 'annulDatYmd' => $annulationDateYmd, + 'dateCre' => $creationArticle, + 'dateCreYmd' => $creationArticleYmd, + 'codeMajic' => $codeMajic, + 'typeVoie' => $typeVoie, + 'lieuDitCar' => $lieuDitCar, + 'derMotLibVoie' => $derMotLibVoie, + 'dateFantoirYmd'=> $dateFantoirYmd, + 'dateInsert' => $dateInsert, + ); + $db_table='fantoirVoi'; + //echo "Ligne $nbLignes, Commune='$codDepartement $codCommune' : '$libDirOuCommune' ($typeCommune,$carRUR) Population=$popReel/$popApar/$popFic($popCar)".EOL; + } + + $ret=$iDb->insert($db_table, $tabInsert); + if ($ret!=1) { + unset($tabInsert['dateInsert']); + $strUpdate="numDep='$codDepartement' AND numDir=$codDirection"; + switch($db_table) { + case 'fantoirCom': $strUpdate.=" AND codCom='$codCommune'"; break; + case 'fantoirVoi': $strUpdate.=" AND codCom='$codCommune' AND idVoieCom='$idVoieCommune'"; break; + } + $ret=$iDb->update($db_table, $tabInsert, $strUpdate); + if ($ret!=1) { + echo date ('Y/m/d - H:i:s') . " - ERREUR n°".mysql_errno()." à l'insertion de la ligne n°$nbLignes dans la table '$db_table' :".EOL; + print_r($tabInsert); + die(mysql_error()); + } + } + } + fclose ($fp); +} +if ($finFichier) + die(date ('Y/m/d - H:i:s')." - Fin du traitement avec succès.".EOL); + +echo date ('Y/m/d - H:i:s')." - Fin du traitement.".EOL; + ?> \ No newline at end of file diff --git a/batch/getImportExport.php b/batch/getImportExport.php index 7e65cad6..55a84dcc 100644 --- a/batch/getImportExport.php +++ b/batch/getImportExport.php @@ -50,6 +50,7 @@ $tabDep=array( 'CORSE'=>'', 'HAUTES-PYRENEES'=>'65', 'HAUTS-DE-SEINE'=>'92', 'HERAULT'=>'34', + 'ILE DE CLIPPERTON'=>'9M', 'ILLE-ET-VILAINE'=>'35', 'INDRE'=>'36', 'INDRE-ET-LOIRE'=>'37', @@ -76,10 +77,12 @@ $tabDep=array( 'CORSE'=>'', 'MOSELLE'=>'57', 'NIEVRE'=>'58', 'NORD'=>'59', + 'NOUVELLE CALEDONIE'=>'9L', 'OISE'=>'60', 'ORNE'=>'61', 'PARIS'=>'75', 'PAS-DE-CALAIS'=>'62', + 'POLYNESIE FRANCAISE'=>'9K', 'PUY-DE-DOME'=>'63', 'PYRENEES-ATLANTIQUES'=>'64', 'PYRENEES-ORIENTALES'=>'66', @@ -92,6 +95,7 @@ $tabDep=array( 'CORSE'=>'', 'SEINE-MARITIME'=>'76', 'SEINE-SAINT-DENIS'=>'93', 'SOMME'=>'80', + 'T.A.A.F.'=>'9I', 'TARN'=>'81', 'TARN-ET-GARONNE'=>'82', 'TERRITOIRE DE BELFORT'=>'90', @@ -102,6 +106,7 @@ $tabDep=array( 'CORSE'=>'', 'VENDEE'=>'85', 'VIENNE'=>'86', 'VOSGES'=>'88', + 'WALLIS ET FUTUNA'=>'9J', 'YONNE'=>'89', 'YVELINES'=>'78', ); @@ -140,7 +145,7 @@ function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) { } } $sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule - $sql.=") TYPE=MYISAM COMMENT='".basename($nomFichier)." du ".date('d/m/Y H:i', filemtime($nomFichier))." (".round(filesize($nomFichier)/1024)." ko)';"; + $sql.=") ENGINE=MYISAM COMMENT='".basename($nomFichier)." du ".date('d/m/Y H:i', filemtime($nomFichier))." (".round(filesize($nomFichier)/1024)." ko)';"; if ($create) { $sql0="DROP TABLE IF EXISTS `$table`;"; $iDb->query($sql0); @@ -195,6 +200,7 @@ function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) { if ($tabTailles[$i]<256) { $tabTmp=array_unique($tabTypes[$i]); //print_r($tabTmp); + $strType="VARCHAR(".$tabTailles[$i].")"; if (count($tabTmp)==1) { reset($tabTmp); switch (current($tabTmp)) { @@ -215,7 +221,6 @@ function loadCsv($nomFichier, $db, $table='', $create=false, $reload=false) { return $nbLignes; } - include_once(FWK_PATH.'common/curl.php'); include_once(FWK_PATH.'common/dates.php'); @@ -264,7 +269,7 @@ if ($tAll) $tRisks=$tXport=$tPollu=$tSante=true; echo date('Y/m/d - H:i:s')." - Début du script...".EOL; /** - ** Base GASPAR + ** Base FINESS **/ if ($tSante) { echo date('Y/m/d - H:i:s')." - Connexion à la base Finess.".EOL; @@ -348,7 +353,7 @@ if ($tSante) { echo date('Y/m/d - H:i:s')." - ERREUR : Récupération du CSV impossible (pas de cookies) !".EOL; else $cookie=$matches[1][0].'; '.$matches[1][1];*/ - randsleep(7,21); + if (!$modeDebug) randsleep(7,21); $referer=$url; $tdeb=microtime(1); @@ -368,24 +373,26 @@ if ($tSante) { } else echo date('Y/m/d - H:i:s')." - Récupération du CSV depuis le cache pour $dep $etab,$publ.".EOL; - $tabTmp=file("/tmp/$table.csv"); - $nbLignesCache=count($tabTmp)-1; + if (@$nbResultats*1>0) { // le fichier doit contenir au moins une ligne d'entête + $tabTmp=file("/tmp/$table.csv"); + $nbLignesCache=count($tabTmp)-1; - $tabTmp=$iDb->select($table, 'COUNT(*) AS nb', '1', false); - $nbLignesTable=$tabTmp[0]['nb']; - if (mysql_errno()>0 || $nbLignesTable<$nbLignesCache) { - $recreate=true; - $tdeb=microtime(1); - $nbInsert=@loadCsv("/tmp/$table.csv",'sante',$table,$recreate); - $duree=round(microtime(1)-$tdeb,1); - echo date('Y/m/d - H:i:s')." - Chargement du département $dep $etab : $nbInsert lignes en $duree s ($table)".EOL; + $tabTmp=$iDb->select($table, 'COUNT(*) AS nb', '1', false); + $nbLignesTable=$tabTmp[0]['nb']; + if (mysql_errno()>0 || $nbLignesTable<$nbLignesCache) { + $recreate=true; + $tdeb=microtime(1); + $nbInsert=@loadCsv("/tmp/$table.csv",'sante',$table,$recreate); + $duree=round(microtime(1)-$tdeb,1); + echo date('Y/m/d - H:i:s')." - Chargement du département $dep $etab : $nbInsert lignes en $duree s ($table)".EOL; // die("/tmp/$table.csv".EOL); - } else - echo date('Y/m/d - H:i:s')." - Pas de rechargement du département $dep $etab : $nbLignesTable lignes déjà en base $table.".EOL; + } else + echo date('Y/m/d - H:i:s')." - Pas de rechargement du département $dep $etab : $nbLignesTable lignes déjà en base $table.".EOL; - $tabSelect[]="SELECT NULL AS id, `Numéro FINESS`, REPLACE(`SIRET`,' ','') AS SIRET, APE, `Raison sociale`, `Complément distribution`, `Adresse`, `Lieudit/BP`, `Code postal`, `Libelle routage`, `Tel`, `Fax`, `Date ouvert`, `Code categorie`, `Lib categorie`, `Code statut`, `Lib statut`, `Code tarif`, `Lib tarif`, `Code PSPH`, `Lib PSPH`, `FINESS juridique`, 0 AS recupTel FROM `$table`"; - $tabTables[]=$table; - } + $tabSelect[]="SELECT NULL AS id, `Numéro FINESS`, REPLACE(`SIRET`,' ','') AS SIRET, APE, `Raison sociale`, `Complément distribution`, `Adresse`, `Lieudit/BP`, `Code postal`, `Libelle routage`, `Tel`, `Fax`, `Date ouvert`, `Code categorie`, `Lib categorie`, `Code statut`, `Lib statut`, `Code tarif`, `Lib tarif`, `Code PSPH`, `Lib PSPH`, `FINESS juridique`, 0 AS recupTel FROM `$table`"; + $tabTables[]=$table; + } + } } } // On supprime l'ancienne table @@ -397,7 +404,7 @@ if ($tSante) { $sql="RENAME TABLE `finess` TO `finess_old`;"; if (!$iDb->query($sql)) $tabErreur[]='RENAME TABLE '.mysql_errno().':'.mysql_error(); // Création de la nouvelle table - $sql="CREATE TABLE `finess` ( + $sql="CREATE TABLE `finessWeb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `Numéro FINESS` char(9) NOT NULL, `SIRET` varchar(14) DEFAULT NULL, @@ -428,7 +435,7 @@ if ($tSante) { if (!$iDb->query($sql)) $tabErreur[]='CREATE TABLE '.mysql_errno().':'.mysql_error(); // Ecritures des lignes - $sql='INSERT INTO finess '.implode(EOL.' UNION ', $tabSelect).';'; + $sql='INSERT INTO finessWeb '.implode(EOL.' UNION ', $tabSelect).';'; if (!$iDb->query($sql)) $tabErreur[]='INSERT INTO '.mysql_errno().':'.mysql_error().EOL.$sql; if (count($tabErreur)==0) { @@ -532,27 +539,36 @@ if ($tRisks) { **/ if ($tPollu) { echo date('Y/m/d - H:i:s')." - Demande de récupération du fichier du Registre français des émissions polluantes.".EOL; - - $url='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/XML/dump.php'; - $cookie=$post=''; - $referer='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/'; - $page=getUrl($url, $cookie, $post, $referer); - if ($modeDebug) echo date('Y/m/d - H:i:s')." - Début de récupération du fichier des émissions polluantes...".EOL; - - - $url='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/downloads/Base_iREP.zip'; - $referer='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/generic.php?strType=download'; - $page=getUrl($url, $cookie, $post, $referer); - $zip=preg_replace('/(^HTTP.*\r\nPK)/Us','PK', $page['body']); - $fp=fopen('/tmp/Base_iREP.zip', 'w'); - fwrite($fp, $zip); - fclose($fp); - - echo date('Y/m/d - H:i:s')." - Fichier du Registre français des émissions polluantes téléchargé.".EOL; - + $fichierZipIREP=REP_TEMP.'Base_iREP.zip'; + if (!file_exists($fichierZipIREP) || date('Ymd',filemtime($fichierZipIREP))<>date('Ymd')) { + $url='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/XML/dump.php'; + $cookie=$post=''; + $referer='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/'; + $page=getUrl($url, $cookie, $post, $referer); + if ($modeDebug) echo date('Y/m/d - H:i:s')." - Début de récupération du fichier des émissions polluantes...".EOL; + + $url='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/downloads/Base_iREP.zip'; + $referer='http://www.pollutionsindustrielles.ecologie.gouv.fr/IREP/generic.php?strType=download'; + $page=getUrl($url, $cookie, $post, $referer); + $zip=preg_replace('/(^HTTP.*\r\nPK)/Us','PK', $page['body']); + $fp=fopen($fichierZipIREP, 'w'); + fwrite($fp, $zip); + fclose($fp); + echo date('Y/m/d - H:i:s')." - Fichier du Registre français des émissions polluantes téléchargé.".EOL; + } else { + echo date('Y/m/d - H:i:s')." - Fichier du Registre français des émissions polluantes lu dans le cache.".EOL; + } $zip = new ZipArchive; - if ($zip->open('/tmp/Base_iREP.zip') === TRUE) { - $tabFichiersConnus=array( 'activite_gidic_etablissements.csv'=> 'activite_gidic_etablissements', + if ($zip->open($fichierZipIREP) === TRUE) { + $tabFichiersConnus=array( 'emissions.csv'=> 'emissions', + 'etablissements.csv'=> 'etablissements', + 'Prelevements.csv'=> 'Prelevements', + 'Prod_dechets_dangereux.csv'=> 'Prod_dechets_dangereux', + 'Prod_dechets_non_dangereux.csv'=> 'Prod_dechets_non_dangereux', + 'Trait_dechets_dangereux.csv'=> 'Trait_dechets_dangereux', + 'Trait_dechets_non_dangereux.csv'=> 'Trait_dechets_non_dangereux', + /* + 'activite_gidic_etablissements.csv'=> 'activite_gidic_etablissements', 'activite_ippc_etab.csv'=> 'activite_ippc_etab', 'caracteristique_du_dechet.csv'=> 'caracteristique_du_dechet', 'dechets.csv'=> 'dechets', @@ -562,10 +578,13 @@ if ($tPollu) { 'MCD_iREP.pdf'=> '', 'polluants_liste.csv'=> 'polluants_liste', 'prelevements_en_eau.csv'=> 'prelevements_en_eau', + 'proddechetnondang.csv'=> 'proddechetnondang', 'projections.csv'=> 'projections', 'rejets_etablissements.csv'=> 'rejets_etablissements', 'traitedechetdang.csv'=> 'traitedechetdang', - 'traitedechetnondang.csv'=> 'traitedechetnondang',); + 'traitedechetnondang.csv'=> 'traitedechetnondang', + */ + ); $iDb=new WDB('pollutions'); $tabFichiers=$tabSize=$tabTime=array(); @@ -583,7 +602,10 @@ if ($tPollu) { $zip->extractTo('/tmp/'); $zip->close(); if ($modeDebug) echo date('Y/m/d - H:i:s')." - Décompression des $i fichiers du Registre français des émissions polluantes OK.".EOL; - + if (count($tabFichiersConnus)<>$i) { + echo date('Y/m/d - H:i:s')." - ERREUR - Nombre de fichiers décompressés : $i fichiers dans $fichierZipIREP contre ".$tabFichiersConnus.' attendus !'.EOL; + die(); + } foreach ($tabFichiers as $idxF=>$nomFichier) { if (in_array(basename(str_replace('.csv', '', $nomFichier)),$tabFichiersConnus)) { $table=str_replace('.csv', '', $tabFichiersConnus[basename($nomFichier)]); @@ -606,7 +628,7 @@ if ($tPollu) { $champ[$i]=$data[$i]; } $sql=substr($sql,0,strlen($sql)-1); // Retrait de la dernière virgule - $sql.=") TYPE = MYISAM COMMENT = '".basename($nomFichier)." du ".date('d/m/Y H:i', $tabTime[$idxF])." (".round($tabSize[$idxF]/1024)." ko)'"; + $sql.=") ENGINE=MYISAM COMMENT = '".basename($nomFichier)." du ".date('d/m/Y H:i', $tabTime[$idxF])." (".round($tabSize[$idxF]/1024)." ko)'"; if ($iDb->query($sql)) echo date ('Y/m/d - H:i:s')." - Création de la table $table OK...".EOL; else { @@ -618,13 +640,16 @@ if ($tPollu) { } $tabDataToInsert=array(); - + while (count($data)<$nbColonnes) { + // En cat de saut de ligne mal géré par la source + $data = array_merge($data,fgetcsv($fp, 5000, ';')); + } for($i=0; $i<$nbColonnes; $i++) { $tabDataToInsert=array_merge($tabDataToInsert, array($champ[$i]=>$data[$i])); if (strlen($data[$i])>$tabTailles[$i]) $tabTailles[$i]=strlen($data[$i]); - if (gettype($data[$i])=='string') { + if (@gettype($data[$i])=='string') { if (is_numeric($data[$i])) { if (round($data[$i]*1)<>($data[$i]*1)) $tabTypes[$i][]='double'; @@ -632,12 +657,14 @@ if ($tPollu) { $tabTypes[$i][]='integer'; } else $tabTypes[$i][]='string'; - } else $tabTypes[$i][]=gettype($data[$i]); + } else $tabTypes[$i][]=@gettype($data[$i]); } $ret=$iDb->insert($table, $tabDataToInsert); if ($ret!=1) { + echo date ('Y/m/d - H:i:s') . " - ERREUR SQL sur la table '$table', SQL no ".mysql_errno().' : '.mysql_error().EOL; echo date ('Y/m/d - H:i:s') . " - ERREUR à l'insertion de la ligne n°$i : ". implode(';', $data) ." !".EOL; + print_r($tabDataToInsert); flush(); } unset($tabDataToInsert); @@ -648,6 +675,7 @@ if ($tPollu) { if ($tabTailles[$i]<256) { $tabTmp=array_unique($tabTypes[$i]); print_r($tabTmp); + $strType="VARCHAR(".$tabTailles[$i].")"; if (count($tabTmp)==1) { reset($tabTmp); switch (current($tabTmp)) { @@ -745,9 +773,15 @@ if ($tXport) { ); randsleep(7,21); $page=getUrl($url, $cookie, $post, $referer); - $zip=preg_replace('/(^HTTP.*\r\nPK)/Us','PK', $page['body']); - if (preg_match('/^HTTP.*filename=(.*)\r\n/Us', $page['body'], $matches)) { - $nomFichier=$matches[1]; + //$zip=/*preg_replace('/(^HTTP.*\r\nPK)/Us','PK', */$page['body'];//); + //print_r($page); + //die(); + if ($page['code']==200 && @trim($page['header']['Content-Type'])=='application/zip') { + $zip=/*preg_replace('/(^HTTP.*\r\nPK)/Us','PK', */$page['body'];//); + $zipSizeSrv=@$page['header']['Content-Length']; + $nomFichier=@str_replace('filename=','',@trim($page['header']['Content-Disposition'])); + //preg_match('/\[Content-Disposition\] => filename=\r\n/Us', $page['body'], $matches)) { + //$nomFichier=$matches[1]; $fp=fopen('/tmp/importExport.zip', 'w'); fwrite($fp, $zip); fclose($fp); @@ -766,7 +800,8 @@ if ($tXport) { 'annee'=>$annee, 'siren'=>$data[0], 'raisonSociale'=>$data[1], - 'naf'=>$data[2], + 'naf'=>trim(substr($data[2],0,5)), + 'nafLib'=>trim(substr($data[2],5,strlen($data[2])-5)), 'categorie'=>$data[3], 'adresse'=>$data[4], 'rangNational'=>$data[5], diff --git a/batch/getInfosGE.php b/batch/getInfosGE.php index c127f93e..3fe5cfaf 100644 --- a/batch/getInfosGE.php +++ b/batch/getInfosGE.php @@ -11,7 +11,7 @@ include_once(INCLUDE_PATH.'bodacc/classMBodacc.php'); include_once(FWK_PATH.'mail/sendMail.php'); include_once(INCLUDE_PATH.'partenaires/classMFacto.php'); -define('GE_FTP_DIR', '/mnt/sftp/gefacto/send/'); +define('GE_FTP_DIR', '/mnt/data/clients/gefacto/send/'); define('GE_BACKUP_DIR', '/home/data/gefacto/'); $strInfoScript='Usage : '.basename($argv[0]). "