batch/1.1/old/getInfosKbis.php

328 lines
16 KiB
PHP
Raw Normal View History

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(FWK_PATH.'common/ftp.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
//define('DIRIGEANTS_LOCAL_DIR', '/home/data/insee/even/');
$strInfoScript='Usage : '.basename($argv[0]). " <option>
2013-06-19 08:24:49 +00:00
Chargement des fiches Html contenant les donn<EFBFBD>es des Kbis du jour.
Options :
2013-06-19 08:24:49 +00:00
-d Mode debug (Verbosit<EFBFBD> au maximum)
";
$iDb=new WDB('jo');
$iInsee=new MInsee();
$nbSiretInvalides=0;
$modeDebug=false;
$ftpStep=true;
$updateInsee=true;
$tabFichier=array();
$argv=$_SERVER['argv'];
for ($i=1,$j=0; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd': $modeDebug=true; break;
case 'j': $ftpStep=false; break;
case 'u': $updateInsee=false; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
} else $tabFichier[]=$argv[$i];
}
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s') . " - D<>but du traitement de chargement des dirigeants".EOL;
$tabFct=array( md5('Administrateur') => 0100,
2013-06-19 08:24:49 +00:00
md5('Administrateur d<>l<EFBFBD>gu<67>') => 0101,
md5('Administrateur provisoire') => 0108,
2013-06-19 08:24:49 +00:00
md5('Associ<63>-g<>rant') => 0209,
md5('Co-g<>rant') => 0400,
md5('Contr<74>leur de gestion') => 0603,
md5('Directeur g<>n<EFBFBD>ral') => 0709,
md5('Directeur g<>n<EFBFBD>ral d<>l<EFBFBD>gu<67>') => 0704,
md5('Directeur g<>n<EFBFBD>ral non administrateur') => 0713,
md5('Directeur g<>n<EFBFBD>ral unique') => 0708,
md5('G<>rant') => 0900,
md5('Gouverneur') => 1650,
md5('Liquidateur') => 1900,
2013-06-19 08:24:49 +00:00
md5('Pr<50>sident') => 1300,
md5('Pr<50>sident Directeur G<>n<EFBFBD>ral') => 1301,
md5('Pr<50>sident du conseil d\'administration') => 1306,
md5('Pr<50>sident du conseil de surveillance') => 1307,
md5('Pr<50>sident du directoire') => 1308,
md5('Repr<70>sentant en France d\'une soci<63>t<EFBFBD> <20>trang<6E>re') => 1401,
md5('Sous-gouverneur') => 1651,
2013-06-19 08:24:49 +00:00
md5('Vice-pr<70>sident') => 1800,
);
$conn_id = ftp_connect('192.168.3.4');
// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, 'kbis', 'kbis');
$tabList=ftp_nlist($conn_id, 'html/');
$nbList=count($tabList);
ftp_chdir($conn_id, 'html');
foreach ($tabList as $fichier) {
//die($fichier);
$ficDist=str_replace('html/', '', $fichier);
ftp_get($conn_id,"/tmp/$ficDist", $ficDist, FTP_ASCII);
$strKbis=file_get_contents("/tmp/$ficDist");
$tabKbis=array();
if (preg_match('/<TD style="FONT-WEIGHT\: bold; FONT-SIZE\: 11px; LINE-HEIGHT\: normal; FONT-STYLE\: normal; FONT-VARIANT\: normal" align=left>(.*)<\/TD>/Uis', $strKbis, $matches))
$tabKbis['greffe_nom']=trim(strip_tags($matches[1]));
if (preg_match('/<TD style="FONT-WEIGHT\: normal; FONT-SIZE\: 9px; LINE-HEIGHT\: normal; FONT-STYLE\: normal; FONT-VARIANT\: normal">(.*)<\/TD>/Uis', $strKbis, $matches))
$tabKbis['greffe_adresse']=trim(strip_tags($matches[1]));
if (preg_match('/<CENTER style="FONT-STYLE\: italic; BACKGROUND-COLOR\: #dcdcdc">(.*)<\/CENTER><\/H3>/Uis', $strKbis, $matches))
$tabKbis['extrait_type']=trim(strip_tags($matches[1]));
if (preg_match('/<CENTER>Extrait au (.*)<\/CENTER>/Uis', $strKbis, $matches))
$tabKbis['extrait_date']=trim(strip_tags($matches[1]));
if (preg_match('/<TD align=left colSpan=2><B>IDENTIFICATION <\/B>(.*)<TD colSpan=2><B>RENSEIGNEMENTS RELATIFS A LA PERSONNE MORALE<\/B>/Uis', $strKbis, $matches)) {
$htmlId=$matches[1];
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE\: italic" vAlign=top align=left>D<>nomination sociale \:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlId, $matches))
$tabKbis['rs']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE\: italic" vAlign=top align=left>Num<75>ro d\'identification \:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlId, $matches))
$tabKbis['sirenTxt']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE\: italic" vAlign=top align=left>Num<75>ro RCS \:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlId, $matches))
$tabKbis['rcs']=trim(strip_tags($matches[1]));
if (preg_match('/<TD style="FONT-STYLE\: italic" vAlign=top align=left>Date immatriculation \:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlId, $matches))
$tabKbis['dateImmat']=trim(strip_tags($matches[1]));
}
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top>Forme juridique :<\/TD>(.*)<TD align=left colSpan=2><B>ADMINISTRATION<\/B>/Uis', $strKbis, $matches)) {
$htmlPm=$matches[1];
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE\: italic" vAlign=top align=left>D<>nomination sociale \:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['fj']=trim(strip_tags($matches[1]));
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top>Au capital :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['capital']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Adresse du si<73>ge :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['adresse']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Dur<75>e de la soci<63>t<EFBFBD><\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['duree']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Date d\'arr<72>t<EFBFBD> des comptes:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['date_cloture']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Constitution&nbsp;-&nbsp;D<>p<EFBFBD>t&nbsp;de&nbsp;l\'acte&nbsp;constitutif :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['date_constitution']=trim(strip_tags($matches[1]));
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Publication:<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlPm, $matches))
$tabKbis['date_annonce_constitution']=trim(strip_tags($matches[1]));
}
if (preg_match('/<TD align=left colSpan=2><B>ADMINISTRATION<\/B>(.*)<TD align=left colSpan=2><B>RENSEIGNEMENTS RELATIFS A L\'ACTIVITE COMMERCIALE<\/B>/Uis', $strKbis, $matches)) {
$tabKbis['dirigeants']=array();
$htmlAd=$matches[1];
$tabTmp=explode('<HR SIZE=1>', $htmlAd);
foreach ($tabTmp as $i=>$htmlDir) {
if ($i==0) continue;
$tabDir=array();
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top>(.*)<\/TD>/Uis', $htmlDir, $matches))
$tabDir['fonction']=trim(strip_tags($matches[1]));
if (preg_match('/<TBODY>(?:.*)<TR>(?:.*)<TD>(.*)<\/TD><\/TR>/Uis', $htmlDir, $matches))
$tabDir['nom']=trim(strip_tags($matches[1]));
if (preg_match('/<TD>\((.*)\)<\/TD><\/TR>/Uis', $htmlDir, $matches))
$tabDir['siren']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD>(.*)<\/TD><\/TR>(?:.*)<TR>(?:.*)<TD>repr<70>sent<6E>e par <\/TD><\/TR>(?:.*)<TD>(.*)<\/TD><\/TR>/Uis', $htmlDir, $matches)) {
//$tabDir['rs']=trim(strip_tags($matches[1]));
$tabDir['rep']=trim(strip_tags($matches[2]));
}
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD>n<>\(e\)(.*)<TR>/Uis', $htmlDir, $matches))
$tabDir['naiss']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD>de nationalit<69> (.*)<\/TD><\/TR></Uis', $htmlDir, $matches))
$tabDir['natio']=trim(strip_tags($matches[1]));
if (preg_match('/<TD>demeurant (.*)<\/TD><\/TR></Uis', $htmlDir, $matches))
$tabDir['adresse']=trim(strip_tags($matches[1]));
//$tabDir['html']=$htmlDir;
$tabKbis['dirigeants'][]=$tabDir;
}
}
if (preg_match('/<TD align=left colSpan=2><B>RENSEIGNEMENTS RELATIFS A L\'ACTIVITE COMMERCIALE<\/B>(.*)<TD align=left colSpan=2><B>OBSERVATIONS<\/B>/Uis', $strKbis, $matches)) {
$htmlAc=$matches[1];
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Origine du fonds ou de l\'activit<69> :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['origine_fonds']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Activit<69> :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['activite']=trim(strip_tags($matches[1]));
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Enseigne :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['sigle']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Adresse de l\'<27>tablissement principal : <\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['adresse_etabp']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Pr<50>c<EFBFBD>dent Exploitant : <\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['prec_exp_nom']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD><I>n<> identification <\/I>(.*)<\/TD><\/TR>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches)) {
$tabKbis['prec_exp_siren']=trim(strip_tags($matches[1]));
$tabKbis['prec_exp_info']=trim(strip_tags($matches[2]));
}
if (preg_match('/<TD vAlign=top align=left><I>Oppositions pour la correspondance :<\/I><\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['prec_exp_oppo']=trim(strip_tags($matches[1]));
2013-06-19 08:24:49 +00:00
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>Commencement d\'activit<69> le :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['prec_exp_debut_activite']=trim(strip_tags($matches[1]));
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top>Mode d\'exploitation :<\/TD>(.*)<\/TD><\/TR>/Uis', $htmlAc, $matches))
$tabKbis['prec_exp_exploitation']=trim(strip_tags($matches[1]));
}
if (preg_match('/<TD align=left colSpan=2><B>OBSERVATIONS<\/B>(.*)<CENTER style="FONT-STYLE: italic; BACKGROUND-COLOR: #dcdcdc">Fin de l\'extrait <\/CENTER><\/H3>/Uis', $strKbis, $matches)) {
$htmlOb=$matches[1];
$tabKbis['observations']=array();
$tabTmp=explode('<TH></TH></TR>', $htmlOb);
$nbObs=-1+count($tabTmp);
foreach ($tabTmp as $i=>$htmlObs) {
if ($i==$nbObs) break;
$tabObs=array();
if (preg_match('/<TD style="FONT-STYLE: italic" vAlign=top align=left>(.*)&nbsp;(.*)<\/TD>(?:.*)<TD>(.*)<\/TD>/Uis', $htmlObs, $matches)) {
$tabObs['date']=trim(strip_tags($matches[1]));
$tabObs['numero']=trim(strip_tags($matches[2]));
$tabObs['commentaire']=trim(strip_tags($matches[3]));
}
$tabKbis['observations'][]=$tabObs;
}
}
print_r($tabKbis);
//die($strKbis);
}
// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
/*
for ($i=0; isset($tabFichier[$i]); $i++)
{
$nomFichier =$tabFichier[$i];
$fp=fopen($nomFichier, 'r');
if (!$fp) {
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - Erreur : Impossible d'ouvrir le fichier n<>$i <20> 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));
}
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - D<>but du traitement du fichier $nomFichier ($nbLignes lignes <20> traiter) !".EOL;
//$finFichier=false;
$nbLignes=0;
rewind($fp);
2013-06-19 08:24:49 +00:00
/** Traitement de la 1<EFBFBD>re ligne *
$a = trim(fgets($fp, 1024));
$tab=explode("\t", $a);
$erreur='';
2013-06-19 08:24:49 +00:00
if ($tab[0]<>'RCS') $erreur='Ligne 1, Champ 1 : libell<6C> RCS attentu';
if ($tab[1]<>'RAISON_SOCIAL') $erreur='Ligne 1, Champ 2 : libell<6C> RAISON_SOCIAL attentu';
if ($tab[2]<>'CIVILITE') $erreur='Ligne 1, Champ 3 : libell<6C> CIVILITE attentu';
if ($tab[3]<>'NOM') $erreur='Ligne 1, Champ 4 : libell<6C> NOM attentu';
if ($tab[4]<>'PRENOM') $erreur='Ligne 1, Champ 5 : libell<6C> PRENOM attentu';
if ($tab[5]<>'NOM_NAISSANCE') $erreur='Ligne 1, Champ 6 : libell<6C> NOM_NAISSANCE attentu';
if ($tab[6]<>'DATE_NAISSANCE') $erreur='Ligne 1, Champ 7 : libell<6C> DATE_NAISSANCE attentu';
if ($tab[7]<>'LIEU_NAISSANCE') $erreur='Ligne 1, Champ 8 : libell<6C> LIEU_NAISSANCE attentu';
if ($tab[8]<>'FONCTION') $erreur='Ligne 1, Champ 9 : libell<6C> FONCTION attentu';
if ($erreur<>'') {
echo date ('Y/m/d - H:i:s') . " - Erreur : $erreur !".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
die();
}
// $ret=$iDb->update('rncs_dirigeants', array('actif'=>0), '1');
2013-06-19 08:24:49 +00:00
// echo date ('Y/m/d - H:i:s')." - Tous les dirigeants ont <20>t<EFBFBD> pass<73>s inactifs ($ret) !".EOL;
while (!feof($fp))
{
$nbLignes++;
$a = trim(fgets($fp, 1024));
//unset($tabErreur); $nbErr=0;
$tab=explode("\t", $a);
$tabDir=array();
$tabDir['siren'] = $tab[0];
if (!$iInsee->valideSiren($tabDir['siren'])) {
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs SIREN invalide ". $tabDir['siren'] .' !'.EOL;
$nbSiretInvalides++;
} else
$nbSiretValides++;
$tabDir['raisonSociale'] = $tab[1];
if (strlen($tabDir['raisonSociale'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs RAISON_SOCIALE de longueur ". strlen($tabDir['raisonSociale']) .' !'.EOL;
$tabDir['civilite'] = $tab[2];
if ($tabDir['civilite']<>'M' && $tabDir['civilite']<>'MME' && $tabDir['civilite']<>'MLLE' && $tabDir['civilite']<>'')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs CIVILITE inconnu '". $tabDir['civilite'] ."' !".EOL;
$tabDir['nom'] = $tab[3];
if (strlen($tabDir['nom'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs NOM de longueur ". strlen($tabDir['nom']) .' !'.EOL;
$tabDir['prenom'] = $tab[4];
if (strlen($tabDir['prenom'])>30)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs PRENOM de longueur ". strlen($tabDir['prenom']) .' !'.EOL;
$tabDir['naissance_nom'] = $tab[5];
if (strlen($tabDir['naissance_nom'])>60)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs NOM_NAISSANCE de longueur ". strlen($tabDir['naissance_nom']) .' !'.EOL;
$dateIn = $tab[6];
$dateOut=@WDate::dateT('m/d/Y','Y-m-d',$dateIn);
if ($dateIn<>'')
$tabDir['naissance_date']=$dateOut;
else
$tabDir['naissance_date']='0000-00-00';
//die(date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs DATE_NAISSANCE in $dateIn donne en out ". $tabDir['naissance_date'] .' !'.EOL);
$tabDir['naissance_lieu'] = $tab[7];
if (strlen($tabDir['naissance_lieu'])>35)
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs LIEU_NAISSANCE de longueur ". strlen($tabDir['naissance_lieu']) .' !'.EOL;
$tabDir['fonction_lib'] = trim($tab[8]);
$tabDir['fonction_code'] = ''.@$tabFct[md5($tabDir['fonction_lib'])];
if ($tabDir['fonction_code']=='' && $tabDir['fonction_lib']=='')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs FONCTION vide !".EOL;
elseif ($tabDir['fonction_code']=='' && $tabDir['fonction_lib']<>'')
echo date ('Y/m/d - H:i:s')." - Ligne $ligne : Champs FONCTION inconnu '". $tabDir['fonction_lib'] ."' !".EOL;
$tabDir['actif']=9;
$tabDir['source']='csf';
if (!$iDb->insert('rncs_dirigeants', $tabDir))
if (!$iDb->update('rncs_dirigeants', $tabDir, "siren='". $tabDir['siren'] ."' AND ".
"raisonSociale='". $tabDir['raisonSociale'] ."' AND ".
"civilite='". $tabDir['civilite'] ."' AND ".
"nom='". $tabDir['nom'] ."' AND ".
"prenom='". $tabDir['prenom'] ."' AND ".
"naissance_nom='". $tabDir['naissance_nom'] ."' AND ".
"naissance_date='". $tabDir['naissance_date'] ."' AND ".
"naissance_lieu='". $tabDir['naissance_lieu'] ."' AND ".
"fonction_lib='". $tabDir['fonction_lib'] ."'"))
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s') . " - ERREUR n<>". mysql_errno()." <20> l'insertion du dirigeant ".
$tabDir['nom']." ".$tabDir['prenom'].", siren=".$tabDir['siren'] .'!'.EOL;
}
fclose ($fp);
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - Le fichier n<>$i, $nomFichier vient d'<27>tre charg<72>.".EOL;
}
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s') . " - $nbLignes lignes trait<69>es dont $nbSiretInvalides siret invalides !".EOL;
$ret=$iDb->update('rncs_dirigeants', array('actif'=>0), "actif=1 AND source='csf'");
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s') . " - $ret dirigants CSF on <20>t<EFBFBD> pass<73>s <20> inactif (car non transmis depuis le dernier chargement) !".EOL;
$ret=$iDb->update('rncs_dirigeants', array('actif'=>1), "actif=9 AND source='csf'");
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s') . " - Passage <20> actif de tous les dirigeants CSF charg<72>s ($ret).".EOL;
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement des dirigeants".EOL;
*/
die();
?>