Correction encodage caractère

This commit is contained in:
Michael RICOIS 2011-08-01 06:56:55 +00:00
parent bd949770cf
commit 7dbee06105
2 changed files with 177 additions and 177 deletions

View File

@ -445,7 +445,7 @@ $tabOrt2Sd=array( '_130000001'=>'SIREN',
'_103102038'=>'EJ',
);
require_once 'framework/common/curl.php';
include_once('framework/common/curl.php');
define('RNCS_WS_URL', 'http://www.services.ort.fr/ProtocoleRNCS/access');
define('RNCS_WS_USER', '167260');
@ -461,77 +461,77 @@ class MRncsFlux {
public $cookie='';
public $iDb;
public $tabVitrine=array();
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Pr<EFBFBD>sident'),
110 =>array('codeSd'=>'1306', 'lib'=>'Pr<EFBFBD>sident du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Pr<EFBFBD>sident directeur G<>n<EFBFBD>ral'),
public $tabFctDir=array( 100 =>array('codeSd'=>'1300', 'lib'=>'Président'),
110 =>array('codeSd'=>'1306', 'lib'=>'Président du conseil d\'administration'),
120 =>array('codeSd'=>'1301', 'lib'=>'Président directeur Général'),
140 =>array('codeSd'=>'1650', 'lib'=>'Gouverneur'),
150 =>array('codeSd'=>'1651', 'lib'=>'Sous-gouverneur'),
200 =>array('codeSd'=>'0900', 'lib'=>'G<EFBFBD>rant'),
210 =>array('codeSd'=>'0912', 'lib'=>'G<EFBFBD>rant non associ<63>'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-g<EFBFBD>rant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur g<EFBFBD>n<EFBFBD>ral'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur g<EFBFBD>n<EFBFBD>ral non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur g<EFBFBD>n<EFBFBD>ral unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur g<EFBFBD>n<EFBFBD>ral d<>l<EFBFBD>gu<67>'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-pr<EFBFBD>sident'),
200 =>array('codeSd'=>'0900', 'lib'=>'Gérant'),
210 =>array('codeSd'=>'0912', 'lib'=>'Gérant non associé'),
300 =>array('codeSd'=>'0400', 'lib'=>'Co-gérant'),
400 =>array('codeSd'=>'0709', 'lib'=>'Directeur général'),
410 =>array('codeSd'=>'0713', 'lib'=>'Directeur général non administrateur'),
420 =>array('codeSd'=>'0708', 'lib'=>'Directeur général unique'),
430 =>array('codeSd'=>'0704', 'lib'=>'Directeur général délégué'),
500 =>array('codeSd'=>'1800', 'lib'=>'Vice-président'),
600 =>array('codeSd'=>'0100', 'lib'=>'Administrateur'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur d<EFBFBD>l<EFBFBD>gu<EFBFBD>'),
700 =>array('codeSd'=>'1308', 'lib'=>'Pr<EFBFBD>sident du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Pr<EFBFBD>sident du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associ<EFBFBD>-g<>rant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contr<EFBFBD>leur de gestion'),
610 =>array('codeSd'=>'0101', 'lib'=>'Administrateur délégué'),
700 =>array('codeSd'=>'1308', 'lib'=>'Président du directoire'),
900 =>array('codeSd'=>'1307', 'lib'=>'Président du conseil de surveillance'),
1200=>array('codeSd'=>'0209', 'lib'=>'Associé-gérant'),
1300=>array('codeSd'=>'0603', 'lib'=>'Contrôleur de gestion'),
4100=>array('codeSd'=>'1900', 'lib'=>'Liquidateur'),
4300=>array('codeSd'=>'0108', 'lib'=>'Administrateur provisoire'),
4400=>array('codeSd'=>'1401', 'lib'=>'Repr<EFBFBD>sentant en France d\'une soci<63>t<EFBFBD> <20>trang<6E>re'),
4400=>array('codeSd'=>'1401', 'lib'=>'Représentant en France d\'une société étrangère'),
);
public $tabErreurInpi=array(0=>"Aucune erreur",
10=>"Erreur de protocole avec syst<EFBFBD>me distant",
11=>"Syst<EFBFBD>me distant inaccessible",
101=>"Type de requ<EFBFBD>te invalide",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
102=>"Code d'erreur appelant invalide",
103=>"Identification non reconnue",
107=>"Date invalide",
108=>"Heure invalide",
110=>"Code produit inconnu",
115=>"Num<EFBFBD>ro de champ invalide",
115=>"Numéro de champ invalide",
116=>"Longueur de champ invalide",
121=>"Code de protocole invalide",
122=>"Code base de donn<EFBFBD>es invalide",
122=>"Code base de données invalide",
900=>"Erreur applicative",
990100=>"+ de 50 entreprises trouv<EFBFBD>es",
990100=>"+ de 50 entreprises trouvées",
990101=>"Recherche complexe",
990102=>"Crit<EFBFBD>res saisis insuffisants",
990103=>"Requ<EFBFBD>te trop impr<70>cise",
990104=>"D<EFBFBD>nomination non significative",
990105=>"Crit<EFBFBD>re commune non g<>n<EFBFBD>rall",
990106=>"Crit<EFBFBD>re voie trop g<>n<EFBFBD>ral",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990107=>"Commune obligatoire avec rue",
990108=>"Commune non identifi<EFBFBD>e",
990109=>"Entreprise non identifi<EFBFBD>e",
990110=>"Erreur syst<EFBFBD>me",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990111=>"Devise incorrecte",
990112=>"Autre erreur",
990113=>"Donn<EFBFBD>e incorrecte",
990114=>"Valeur incoh<EFBFBD>rente",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990115=>"Surveillance impossible",
990116=>"Entreprise non surveill<EFBFBD>e",
990117=>"Entreprise d<EFBFBD>j<EFBFBD> surveill<6C>e",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990118=>"Produit indisponible",
990119=>"Erreur base de donn<EFBFBD>es",
990119=>"Erreur base de données",
990120=>"Erreur facturation",
);
function __construct() {
$this->iDb=new WDB();
}
function getVitrine($siren) {
$this->tabVitrine=$this->query($siren, array('Type'=>'QVIT'));
return $this->tabVitrine;
}
/*
$cmdPages=$cmdNom='';
@ -541,7 +541,7 @@ class MRncsFlux {
if ($vue=='bilans') $presta='12004';
else $presta='12003';
if ($cmdNom && $cmdPages) $type='QDOC';
else $type='QVIT';
$prod=array('Type'=>$type,
@ -575,7 +575,7 @@ class MRncsFlux {
$prod['Num']=1;
$prod['Ver']=3;
}
$req= '<?xml version="1.0" ?>'. "\n".
'<ort:message xmlns:ort="http://www.ort.fr/NEWPORT/V2">'. "\n".
' <ort:_1 type="110">'. "\n".
@ -584,10 +584,10 @@ class MRncsFlux {
' <ort:_9 type="010">1</ort:_9>'. "\n". // Version du dictionnaire
' <ort:_10 type="010">1</ort:_10>'. "\n". // Code protocole/version application
' <ort:_11 type="010">PROTORNCS</ort:_11>'. "\n".
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhait<EFBFBD>e QVIT / QDOC
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_13 type="010">0</ort:_13>'. "\n". // Code retour/erreur
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concat<EFBFBD>n<EFBFBD>s
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // R<EFBFBD>f.
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_16 type="010">'.date('Ymd').'</ort:_16>'. "\n". // Date SSAAMMJJ
' <ort:_17 type="010">'.date('His').'</ort:_17>'. "\n". // Heure HHMMSS
' <ort:_19 type="010">ORT</ort:_19>'. "\n".
@ -595,27 +595,27 @@ class MRncsFlux {
' <ort:_2 type="110">'. "\n".
' <ort:_1 type="110">'. "\n".
' <ort:_26 type="010">'.$prod['Prod'].'</ort:_26>'. "\n". // Type de produit (vide pour QVIT)
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Num<EFBFBD>ro de produit souhait<69> 1 2
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
' </ort:_1>'. "\n";
if ($prod['Presta']==12004 || $prod['Presta']==12003) {
$req.='
<ort:_2 type="110">
<ort:_100 type="111">
<ort:_101 type="110">
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_100701000 type="010">NTIF</ort:_100701000>
<ort:_120000015 type="010" />
<ort:_120000015 type="010" />
</ort:_101>
</ort:_100>
<ort:_200 type="111">
<ort:_210 type="110">
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
</ort:_210>
</ort:_200>
</ort:_2>'; //
@ -623,12 +623,12 @@ $req.='
} elseif ($prod['Type']=='QINF') {
$req.=' <ort:_2 type="110">'."\n".'<ort:_130000001 type="010">'.$siren.'</ort:_130000001>';
if ($prod['Presta']=='2000' || $prod['Presta']=='2001' || $prod['Presta']=='2002' || $prod['Presta']=='2003') {
// Liste ann<EFBFBD>es bilans
// Liste années bilans
$req.='<ort:_190000025 type="010">'.$prod['Millesime'].'</ort:_190000025>'."\n";
$option=$prod['Millesime'];
}
elseif ($prod['Presta']=='12001')
// Flag limitation du nombre d<EFBFBD><EFBFBD>tablissement
// Flag limitation du nombre d’établissement
$req.='<ort:_109105002 type="010">N</ort:_109105002>'."\n";
$req.='</ort:_2>';
} else {
@ -639,7 +639,7 @@ $req.=' <ort:_2 type="110">
}
$req.=' </ort:_2>
</ort:message>';
//echo $req.'<hr/>'; // Comment<EFBFBD> r<>cemment / Mettre en d<>bug ???
//echo $req.'<hr/>'; // Commenté récemment / Mettre en débug ???
$postData=array(''=>$req);
$cookie=$referer='';
$enCache=false;
@ -657,15 +657,15 @@ if (count($res)>0) {
$this->errNumInpi=$tabRes['codeErreur'];
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
//echo 'Une requ<EFBFBD>te dans le cache <br/>';
//die();
//echo 'Une requête dans le cache <br/>';
//die();
} else {
//echo 'Pas de requ<EFBFBD>te dans le cache <br/>';
//echo 'Pas de requête dans le cache <br/>';
//die();
$page=getUrl(RNCS_WS_URL, $cookie, $postData, $referer, false, 'www.services.ort.fr', '', 7);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
/**
** ERREUR PROTOCOL
**/
@ -673,9 +673,9 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 13 n<EFBFBD>$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
** ERREUR APPLICATIVES NUMERIQUES
**/
@ -683,9 +683,9 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 96 n<EFBFBD>$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
** ERREUR APPLICATIVES TEXTE
**/
@ -694,12 +694,12 @@ if (count($res)>0) {
$this->errMsgInpi=$matches[1];
//echo "<!-- ERREUR INPI 97 : $errMsgInpi !!! -->\n";
}
/** ERREUR CURL **/
if ($this->codeRetour==400 || $this->codeRetour==408){
$this->errNumInpi='c'.$this->codeRetour;
$this->errMsgInpi=$this->body;
//echo "<!-- ERREUR INPI 96 n<EFBFBD>$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
} else {
$params=md5(serialize($prod));
$tabInsert=array( 'siren' => $siren,
@ -713,7 +713,7 @@ if (count($res)>0) {
'libErreur' => $this->errMsgInpi,
);
if (!$this->iDb->insert('rncs_requetes', $tabInsert, true))
$this->iDb->update('rncs_requetes', $tabInsert, "siren=$siren AND params='$params'");
$this->iDb->update('rncs_requetes', $tabInsert, "siren=$siren AND params='$params'");
}
}
@ -724,7 +724,7 @@ elseif ($prod['Presta']==12003)
// actes image
$pregmatch=preg_match_all('/<ort\:_201 type="110">(?:.*)<ort\:_103000452 type="010">(.*)<\/ort:_103000452>(?:.*)<ort\:_103000402 type="010">(.*)<\/ort:_103000402>(?:.*)<ort\:_103000403 type="010">(.*)<\/ort:_103000403>(?:.*)<ort\:_103000404 type="010">(.*)<\/ort:_103000404>(?:.*)<\/ort:_201>/Uis',$this->body, $matches);
elseif ($prod['Presta']==2000)
// bilan simplifi<EFBFBD>s ou normaux saisi
// bilan simplifiés ou normaux saisi
$pregmatch=preg_match('/<ort\:_2 type="110">(?:.*)<ort\:_2 type="110">(.*)<\/ort\:_2>(?:.*)<\/ort\:_2>/Uis',$this->body, $matches);
elseif ($prod['Presta']==12001)
// Fiche Identite
@ -732,7 +732,7 @@ elseif ($prod['Presta']==12001)
else {
// Prestation Vitrine
$tabVitrine=array();
// Bilans dispos
$tabBilans=array();
// Type de Bilans saisis disponible
@ -742,30 +742,30 @@ else {
$numProduit=$matches[2]; // 52
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolid<EFBFBD>s (70)
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
$synProduit=$matches[6]; // 109104002 : Disponibilit<EFBFBD> synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilit<EFBFBD> asynchrone
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$pregmatch=preg_match_all('/<ort\:_103000038 type="010">(.*)<\/ort:_103000038>/Uis',$matches[8], $matches);
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // R<EFBFBD>el normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolid<EFBFBD> CC
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
elseif ($typeBilan==2002) $tabBilans['B']=$matches[1]; // Banque SB
elseif ($typeBilan==2003) $tabBilans['A']=$matches[1]; // Assurance SA
else $tabBilans['S']=$matches[1]; // R<EFBFBD>el Simplifi<66> SS
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
}
$tabVitrine['bilans']=$tabBilans;
// Fiche d'identit<EFBFBD>
// Fiche d'identité
$pregmatch=preg_match('/<ort:_12001 type="110">(?:.*)<ort\:_120000027 type="010">(.*)<\/ort\:_120000027>(?:.*)<ort\:_120000028 type="010">(.*)<\/ort\:_120000028>(?:.*)<ort\:_120000029 type="010">(.*)<\/ort:_120000029>(?:.*)<ort\:_120000031 type="010">(.*)<\/ort\:_120000031>(?:.*)<ort\:_109104002 type="010">(.*)<\/ort\:_109104002>(?:.*)<ort\:_109104003 type="010">(.*)<\/ort\:_109104003>(?:.*)<ort\:_130000401 type="010">(.*)<\/ort\:_130000401>(?:.*)<\/ort:_12001>/Uis',$this->body, $matches);
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilit<EFBFBD> synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilit<EFBFBD> asynchrone
$nbEtab=$matches[7]; // Nombre d'<EFBFBD>tablissements recens<6E>s
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$tabVitrine['identite']=array( 'numProduit'=>$numProduit,
'verProduit'=>$verProduit,
'libProduit'=>$libProduit,
@ -773,16 +773,16 @@ else {
'synProduit'=>$synProduit,
'asyProduit'=>$asyProduit,
'nbEtab' =>$nbEtab);
return $tabVitrine;
}
//echo $this->body; // Comment<EFBFBD> r<>cemment // Mettre en debug ???
//echo $this->body; // Commenté récemment // Mettre en debug ???
//print_r($tabBilans);
return $matches;
}
function getListeBilans($siren, $type='*') {
$tabVitrine=$this->getVitrine($siren);
foreach ($tabVitrine['bilans'] as $type => $tabMillesime) {
@ -805,12 +805,12 @@ return $matches;
}
return $tabRet;
}
/** R<EFBFBD>cup<EFBFBD>re un bilan INPI
/** Récupère un bilan INPI
**
** @param integer $siren Siren de l'entreprise
** @param date $millesime Date de cloture de l'exercice au format JJ/MM/AAAA
** @param string $type Type de Bilan 'N' R<EFBFBD>el Normal, 'C' Consolid<EFBFBD>, 'A' Assurance, 'B' Banque
** @param string $type Type de Bilan 'N' Réel Normal, 'C' Consolidé, 'A' Assurance, 'B' Banque
** @return array
*/
function getBilan($siren, $millesime, $type='N') {
@ -827,11 +827,11 @@ return $matches;
'Millesime'=>Wdate::dateT('d/m/Y','mY',$millesime),
'Type'=>'QINF');
$ret=$this->query($siren, $prod);
/* $fp=fopen(LOG_PATH.'/debugBilansRncs.log','a');
fwrite($fp, print_r($ret,true));
fclose($fp);*/
$pregmatch=preg_match_all('/<ort\:_(.*) type="010">(.*)<\/ort\:_(.*)>/Uis', $ret[1], $matches);
foreach ($matches[1] as $i=>$poste) {
//echo "$i : $poste<br/>";
@ -871,17 +871,17 @@ return $matches;
$fp=fopen(LOG_PATH.'/debugBilansRncs.log','a');
fwrite($fp, print_r($tabRet,true));
fclose($fp);
return $tabRet;
}
/* function getIdentite($siren) {
$tabVitrine=$this->getVitrine($siren);
$fp=fopen(LOG_PATH.'/debugVitrineRncs.log','a');
fwrite($fp, print_r($tabVitrine,true));
fclose($fp);
$prod=array( 'Prod'=>'RNCS',
'Num'=>$tabVitrine['identite']['numProduit'],
'Ver'=>$tabVitrine['identite']['verProduit'],
@ -910,7 +910,7 @@ return $matches;
elseif ($rubrique==130000025) $tabIdentite['Provisoire']=$matchesIden[2][$i];
elseif ($rubrique==130000401) $tabIdentite['NbEtab']=$matchesIden[2][$i];
}
$pregmatch=preg_match_all('/<ort\:_((?:13010|13015).*) type="010">(.*)<\/ort\:_((?:13010|13015).*)>/Uis', $ret[1], $matchesEtab);
$pregmatch=preg_match_all('/<ort\:_(13003.*) type="010">(.*)<\/ort\:_(13003.*).*)>/Uis', $ret[1], $matchesDirs);
foreach ($matchesDirs[1] as $i=>$rubrique) {
@ -928,7 +928,7 @@ return $matches;
elseif ($rubrique==130302003) $tabDir['ReprPrenom']=$matchesIden[2][$i];
elseif ($rubrique==130302004) $tabDir['ReprPrenom2']=$matchesIden[2][$i];
}
$fp=fopen(LOG_PATH.'/debugIdentiteRncs.log','a');
fwrite($fp, print_r($matchesIden,true).EOL.print_r($matchesEtab,true).EOL.print_r($matchesDirs,true));
fclose($fp);
@ -936,14 +936,14 @@ return $matches;
return $tabIdentite;
}
}*/
function getIdentite($siren) {
$tabVitrine=$this->getVitrine($siren);
$fp=fopen(LOG_PATH.'/debugVitrineRncs.log','a');
fwrite($fp, print_r($tabVitrine,true));
fclose($fp);
$prod=array( 'Prod'=>'RNCS',
'Num'=>$tabVitrine['identite']['numProduit'],
'Ver'=>$tabVitrine['identite']['verProduit'],
@ -1015,7 +1015,7 @@ return $matches;
}
}
$tabIdentite['Dirigeants']=$tabDir;
$fp=fopen(LOG_PATH.'/debugIdentiteRncs.log','a');
fwrite($fp, print_r($matchesIden,true).EOL.print_r($matchesEtab,true).EOL.print_r($matchesDirs,true).EOL.print_r($tabIdentite,true));
fclose($fp);
@ -1025,4 +1025,4 @@ return $matches;
}
}
?>
?>

View File

@ -461,54 +461,54 @@ class MRncsFlux {
public $cookie='';
public $iDb;
public $tabVitrine=array();
public $tabErreurInpi=array(0=>"Aucune erreur",
10=>"Erreur de protocole avec syst<EFBFBD>me distant",
11=>"Syst<EFBFBD>me distant inaccessible",
101=>"Type de requ<EFBFBD>te invalide",
10=>"Erreur de protocole avec système distant",
11=>"Système distant inaccessible",
101=>"Type de requête invalide",
102=>"Code d'erreur appelant invalide",
103=>"Identification non reconnue",
107=>"Date invalide",
108=>"Heure invalide",
110=>"Code produit inconnu",
115=>"Num<EFBFBD>ro de champ invalide",
115=>"Numéro de champ invalide",
116=>"Longueur de champ invalide",
121=>"Code de protocole invalide",
122=>"Code base de donn<EFBFBD>es invalide",
122=>"Code base de données invalide",
900=>"Erreur applicative",
990100=>"+ de 50 entreprises trouv<EFBFBD>es",
990100=>"+ de 50 entreprises trouvées",
990101=>"Recherche complexe",
990102=>"Crit<EFBFBD>res saisis insuffisants",
990103=>"Requ<EFBFBD>te trop impr<70>cise",
990104=>"D<EFBFBD>nomination non significative",
990105=>"Crit<EFBFBD>re commune non g<>n<EFBFBD>rall",
990106=>"Crit<EFBFBD>re voie trop g<>n<EFBFBD>ral",
990102=>"Critères saisis insuffisants",
990103=>"Requête trop imprécise",
990104=>"Dénomination non significative",
990105=>"Critère commune non générall",
990106=>"Critère voie trop général",
990107=>"Commune obligatoire avec rue",
990108=>"Commune non identifi<EFBFBD>e",
990109=>"Entreprise non identifi<EFBFBD>e",
990110=>"Erreur syst<EFBFBD>me",
990108=>"Commune non identifiée",
990109=>"Entreprise non identifiée",
990110=>"Erreur système",
990111=>"Devise incorrecte",
990112=>"Autre erreur",
990113=>"Donn<EFBFBD>e incorrecte",
990114=>"Valeur incoh<EFBFBD>rente",
990113=>"Donnée incorrecte",
990114=>"Valeur incohérente",
990115=>"Surveillance impossible",
990116=>"Entreprise non surveill<EFBFBD>e",
990117=>"Entreprise d<EFBFBD>j<EFBFBD> surveill<6C>e",
990116=>"Entreprise non surveillée",
990117=>"Entreprise déjà surveillée",
990118=>"Produit indisponible",
990119=>"Erreur base de donn<EFBFBD>es",
990119=>"Erreur base de données",
990120=>"Erreur facturation",
);
function __construct() {
$this->iDb=new WDB();
}
function getVitrine($siren) {
$this->tabVitrine=$this->query($siren, array('Type'=>'QVIT'));
return $this->tabVitrine;
}
/*
$cmdPages=$cmdNom='';
@ -518,7 +518,7 @@ class MRncsFlux {
if ($vue=='bilans') $presta='12004';
else $presta='12003';
if ($cmdNom && $cmdPages) $type='QDOC';
else $type='QVIT';
$prod=array('Type'=>$type,
@ -552,7 +552,7 @@ class MRncsFlux {
$prod['Num']=1;
$prod['Ver']=3;
}
$req= '<?xml version="1.0" ?>'. "\n".
'<ort:message xmlns:ort="http://www.ort.fr/NEWPORT/V2">'. "\n".
' <ort:_1 type="110">'. "\n".
@ -561,10 +561,10 @@ class MRncsFlux {
' <ort:_9 type="010">1</ort:_9>'. "\n". // Version du dictionnaire
' <ort:_10 type="010">1</ort:_10>'. "\n". // Code protocole/version application
' <ort:_11 type="010">PROTORNCS</ort:_11>'. "\n".
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhait<EFBFBD>e QVIT / QDOC
' <ort:_12 type="010">'.$prod['Type'].'</ort:_12>'. "\n". // Prestation souhaitée QVIT / QDOC
' <ort:_13 type="010">0</ort:_13>'. "\n". // Code retour/erreur
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concat<EFBFBD>n<EFBFBD>s
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // R<EFBFBD>f.
' <ort:_14 type="010">'.RNCS_WS_USER.RNCS_WS_PASS.'</ort:_14>'."\n". // User Password concaténés
' <ort:_15 type="010">'.$prod['Ref'].'</ort:_15>'. "\n". // Réf.
' <ort:_16 type="010">'.date('Ymd').'</ort:_16>'. "\n". // Date SSAAMMJJ
' <ort:_17 type="010">'.date('His').'</ort:_17>'. "\n". // Heure HHMMSS
' <ort:_19 type="010">ORT</ort:_19>'. "\n".
@ -572,27 +572,27 @@ class MRncsFlux {
' <ort:_2 type="110">'. "\n".
' <ort:_1 type="110">'. "\n".
' <ort:_26 type="010">'.$prod['Prod'].'</ort:_26>'. "\n". // Type de produit (vide pour QVIT)
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Num<EFBFBD>ro de produit souhait<69> 1 2
' <ort:_27 type="010">'.$prod['Num'].'</ort:_27>'. "\n". // Numéro de produit souhaité 1 2
' <ort:_28 type="010">'.$prod['Ver'].'</ort:_28>'. "\n". // Version du produit 3 2
' <ort:_31 type="010">'.$prod['Presta'].'</ort:_31>'. "\n". // Code prestation (vide pour QVIT)
' </ort:_1>'. "\n";
' </ort:_1>'. "\n";
if ($prod['Presta']==12004 || $prod['Presta']==12003) {
$req.='
<ort:_2 type="110">
<ort:_100 type="111">
<ort:_101 type="110">
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_120000031 type="010">'.$prod['Presta'].'</ort:_120000031>
<ort:_100700010 type="010">FTP</ort:_100700010>
<ort:_100701000 type="010">NTIF</ort:_100701000>
<ort:_120000015 type="010" />
<ort:_120000015 type="010" />
</ort:_101>
</ort:_100>
<ort:_200 type="111">
<ort:_210 type="110">
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
<ort:_130000001 type="010">'.$siren.'</ort:_130000001>
<ort:_103000402 type="010">'.$prod['CmdNom'].'</ort:_103000402>
<ort:_103000403 type="010">'.$prod['CmdPages'].'</ort:_103000403>
<ort:_190000025 type="010">'.$prod['CmdBilan'].'</ort:_190000025>
</ort:_210>
</ort:_200>
</ort:_2>'; //
@ -600,12 +600,12 @@ $req.='
} elseif ($prod['Type']=='QINF') {
$req.=' <ort:_2 type="110">'."\n".'<ort:_130000001 type="010">'.$siren.'</ort:_130000001>';
if ($prod['Presta']=='2000' || $prod['Presta']=='2001' || $prod['Presta']=='2002' || $prod['Presta']=='2003') {
// Liste ann<EFBFBD>es bilans
// Liste années bilans
$req.='<ort:_190000025 type="010">'.$prod['Millesime'].'</ort:_190000025>'."\n";
$option=$prod['Millesime'];
}
elseif ($prod['Presta']=='12001')
// Flag limitation du nombre d<EFBFBD><EFBFBD>tablissement
// Flag limitation du nombre d’établissement
$req.='<ort:_109105002 type="010">N</ort:_109105002>'."\n";
$req.='</ort:_2>';
} else {
@ -634,10 +634,10 @@ if (count($res)>0) {
$this->errNumInpi=$tabRes['codeErreur'];
$this->errMsgInpi=$tabRes['libErreur'];
$enCache=true;
echo 'Une requ<EFBFBD>te dans le cache <br/>';
//die();
echo 'Une requête dans le cache <br/>';
//die();
} else {
echo 'Pas de requ<EFBFBD>te dans le cache <br/>';
echo 'Pas de requête dans le cache <br/>';
//die();
$page=getUrl(RNCS_WS_URL, $cookie, $postData, $referer, false, 'www.services.ort.fr');
$this->body=$page['body'];
@ -648,9 +648,9 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 13 n<EFBFBD>$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 13 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
** ERREUR APPLICATIVES NUMERIQUES
**/
@ -658,9 +658,9 @@ if (count($res)>0) {
if ($matches[1]*1<>0) {
$this->errNumInpi=$matches[1];
$this->errMsgInpi=$tabErreurInpi[$this->errNumInpi];
//echo "<!-- ERREUR INPI 96 n<EFBFBD>$errNumInpi = $errMsgInpi !!! -->\n";
//echo "<!-- ERREUR INPI 96 n°$errNumInpi = $errMsgInpi !!! -->\n";
}
/**
** ERREUR APPLICATIVES TEXTE
**/
@ -669,7 +669,7 @@ if (count($res)>0) {
$this->errMsgInpi=$matches[1];
//echo "<!-- ERREUR INPI 97 : $errMsgInpi !!! -->\n";
}
$tabInsert=array( 'siren' => $siren,
'dateRequete' => date('YmdHis'),
'strXml' => $this->body,
@ -680,7 +680,7 @@ if (count($res)>0) {
'codeErreur' => $this->errNumInpi,
'libErreur' => $this->errMsgInpi,
);
$this->iDb->insert('rncs_requetes', $tabInsert, true);
$this->iDb->insert('rncs_requetes', $tabInsert, true);
}
if ($prod['Presta']==12004)
@ -690,7 +690,7 @@ elseif ($prod['Presta']==12003)
// actes image
$pregmatch=preg_match_all('/<ort\:_201 type="110">(?:.*)<ort\:_103000452 type="010">(.*)<\/ort:_103000452>(?:.*)<ort\:_103000402 type="010">(.*)<\/ort:_103000402>(?:.*)<ort\:_103000403 type="010">(.*)<\/ort:_103000403>(?:.*)<ort\:_103000404 type="010">(.*)<\/ort:_103000404>(?:.*)<\/ort:_201>/Uis',$this->body, $matches);
elseif ($prod['Presta']==2000)
// bilan simplifi<EFBFBD>s ou normaux saisi
// bilan simplifiés ou normaux saisi
$pregmatch=preg_match('/<ort\:_2 type="110">(?:.*)<ort\:_2 type="110">(.*)<\/ort\:_2>(?:.*)<\/ort\:_2>/Uis',$this->body, $matches);
elseif ($prod['Presta']==12001)
// Fiche Identite
@ -698,7 +698,7 @@ elseif ($prod['Presta']==12001)
else {
// Prestation Vitrine
$tabVitrine=array();
// Bilans dispos
$tabBilans=array();
// Type de Bilans saisis disponible
@ -708,30 +708,30 @@ else {
$numProduit=$matches[2]; // 52
$verProduit=$matches[3]; // 1
$libProduit=$matches[4]; // Comptes sociaux
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolid<EFBFBD>s (70)
$typProduit=$matches[5]; // 2000 : Bilans sociaux
// 2001 : Bilans consolidés (70)
// 2002 : Bilans de banques (71)
// 2003 : Bilans d'assurances (72)
$synProduit=$matches[6]; // 109104002 : Disponibilit<EFBFBD> synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilit<EFBFBD> asynchrone
$synProduit=$matches[6]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[7]; // 109104003 : Disponibilité asynchrone
$pregmatch=preg_match_all('/<ort\:_103000038 type="010">(.*)<\/ort:_103000038>/Uis',$matches[8], $matches);
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // R<EFBFBD>el normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolid<EFBFBD> CC
if ($typeBilan==2000) $tabBilans['N']=$matches[1]; // Réel normal SC
elseif ($typeBilan==2001) $tabBilans['C']=$matches[1]; // Consolidé CC
elseif ($typeBilan==2002) $tabBilans['B']=$matches[1]; // Banque SB
elseif ($typeBilan==2003) $tabBilans['A']=$matches[1]; // Assurance SA
else $tabBilans['S']=$matches[1]; // R<EFBFBD>el Simplifi<66> SS
else $tabBilans['S']=$matches[1]; // Réel Simplifié SS
}
$tabVitrine['bilans']=$tabBilans;
// Fiche d'identit<EFBFBD>
// Fiche d'identité
$pregmatch=preg_match('/<ort:_12001 type="110">(?:.*)<ort\:_120000027 type="010">(.*)<\/ort\:_120000027>(?:.*)<ort\:_120000028 type="010">(.*)<\/ort\:_120000028>(?:.*)<ort\:_120000029 type="010">(.*)<\/ort:_120000029>(?:.*)<ort\:_120000031 type="010">(.*)<\/ort\:_120000031>(?:.*)<ort\:_109104002 type="010">(.*)<\/ort\:_109104002>(?:.*)<ort\:_109104003 type="010">(.*)<\/ort\:_109104003>(?:.*)<ort\:_130000401 type="010">(.*)<\/ort\:_130000401>(?:.*)<\/ort:_12001>/Uis',$this->body, $matches);
$numProduit=$matches[1]; // 52
$verProduit=$matches[2]; // 1
$libProduit=$matches[3]; // Comptes sociaux
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilit<EFBFBD> synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilit<EFBFBD> asynchrone
$nbEtab=$matches[7]; // Nombre d'<EFBFBD>tablissements recens<6E>s
$typProduit=$matches[4]; // 2000 : Bilans sociaux
$synProduit=$matches[5]; // 109104002 : Disponibilité synchrone
$asyProduit=$matches[6]; // 109104003 : Disponibilité asynchrone
$nbEtab=$matches[7]; // Nombre d'établissements recensés
$tabVitrine['identite']=array( 'numProduit'=>$numProduit,
'verProduit'=>$verProduit,
'libProduit'=>$libProduit,
@ -739,7 +739,7 @@ else {
'synProduit'=>$synProduit,
'asyProduit'=>$asyProduit,
'nbEtab' =>$nbEtab);
return $tabVitrine;
}
@ -748,7 +748,7 @@ echo $this->body;
//print_r($tabBilans);
return $matches;
}
function getListeBilans($siren, $type='*') {
$tabVitrine=$this->getVitrine($siren);
foreach ($tabVitrine['bilans'] as $type => $tabMillesime) {
@ -771,7 +771,7 @@ return $matches;
}
return $tabRet;
}
function getBilan($siren, $millesime, $type='N') {
global $tabOrt2Sd;
$tabRet=$tabPostes=array();
@ -786,11 +786,11 @@ return $matches;
'Millesime'=>Wdate::dateT('d/m/Y','mY',$millesime),
'Type'=>'QINF');
$ret=$this->query($siren, $prod);
/* $fp=fopen(LOG_PATH.'/debugBilansRncs.log','a');
fwrite($fp, print_r($ret,true));
fclose($fp);*/
$pregmatch=preg_match_all('/<ort\:_(.*) type="010">(.*)<\/ort\:_(.*)>/Uis', $ret[1], $matches);
foreach ($matches[1] as $i=>$poste) {
//echo "$i : $poste<br/>";
@ -830,17 +830,17 @@ return $matches;
$fp=fopen(LOG_PATH.'/debugBilansRncs.log','a');
fwrite($fp, print_r($tabRet,true));
fclose($fp);
return $tabRet;
}
function getIdentite($siren) {
$tabVitrine=$this->getVitrine($siren);
$fp=fopen(LOG_PATH.'/debugVitrineRncs.log','a');
fwrite($fp, print_r($tabVitrine,true));
fclose($fp);
$prod=array( 'Prod'=>'RNCS',
'Num'=>$tabVitrine['identite']['numProduit'],
'Ver'=>$tabVitrine['identite']['verProduit'],
@ -908,7 +908,7 @@ return $matches;
);
}
}
$fp=fopen(LOG_PATH.'/debugIdentiteRncs.log','a');
fwrite($fp, print_r($matchesIden,true).EOL.print_r($matchesEtab,true).EOL.print_r($matchesDirs,true));
fclose($fp);
@ -916,7 +916,7 @@ return $matches;
return $tabIdentite;
}
}
}
?>