555 lines
20 KiB
PHP
555 lines
20 KiB
PHP
<?php
|
||
|
||
/** INFOGREFFE **/
|
||
//define ('INFOGREFFE_WS_URL', 'https://webservices.infogreffe.fr/WSContextInfogreffe/INFOGREFFE');
|
||
//define ('INFOGREFFE_WS_URI', 'https://webservices.infogreffe.fr/');
|
||
define('INFOGREFFE_WS_URL', 'https://wsrcte.extelia.fr/WSContextInfogreffe/INFOGREFFE');
|
||
define('INFOGREFFE_WS_URI', 'https://wsrcte.extelia.fr/');
|
||
define('INFOGREFFE_WS_USER', '85000109');
|
||
define('INFOGREFFE_WS_PASS', '160409');
|
||
|
||
/**
|
||
* Génére une chaîne xml pour la requête soap défini suivant les paramètres d'infogreffe
|
||
* @param unknown_type $siren
|
||
* @param unknown_type $idCommande
|
||
* @param unknown_type $type
|
||
* @param unknown_type $vecteur
|
||
* @param unknown_type $option
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_requetexml($siren, $idCommande, $type, $vecteur, $option)
|
||
{
|
||
global $client;
|
||
$xmlStr = '';
|
||
|
||
$xml = new SimpleXMLElement('<demande></demande>');
|
||
|
||
$emetteur = $xml->addChild('emetteur');
|
||
$emetteur->addChild('code_abonne', INFOGREFFE_WS_USER);
|
||
$emetteur->addChild('mot_passe', INFOGREFFE_WS_PASS);
|
||
$emetteur->addChild('reference_client', 'G'.$idCommande); //Générer l'identifiant de commande
|
||
|
||
$code_requete = $emetteur->addChild('code_requete');
|
||
$code_requete->addChild('type_profil', 'A');
|
||
$code_requete->addChild('origine_emetteur', 'IC');
|
||
$code_requete->addChild('nature_requete', 'C'); // C = Commande de documents
|
||
$code_requete->addChild('type_document', $type); // KB = Kbis, PN = privilèges et nantissements, BI = Bilan complet, BS = bilan saisi, ST = Dernier Statut à jour, AC = Acte, SD = Surveillance Demande et Accusé, SR = Surveillance Révélation, SP = Surveillance Portefeuille, FA = Recherche PCL, FI = Inventaire, FJ = Jugement, FO = Ordonnance, FD = Dépôt divers, LE = Liste Etablissements
|
||
$code_requete->addChild('type_requete', 'S'); // S = Simple
|
||
|
||
$mode_diffusion = $code_requete->addChild('mode_diffusion');
|
||
// Mode de diffusion : C = Courrier, T = Téléchargement, M = Mail, XL = XML
|
||
if ($vecteur=='XL' && $option=='')
|
||
{
|
||
//On ajoute tout les types de diffusions pour $vecteur = XL
|
||
$mode_diffusion->addChild('mode')->addAttribute('type', 'C');
|
||
$mode_diffusion->addChild('mode')->addAttribute('type', 'T');
|
||
}
|
||
$mode_diffusion->addChild('mode')->addAttribute('type', $vecteur);
|
||
|
||
$code_requete->addChild('media', 'WS');
|
||
|
||
$commande = $xml->addChild('commande');
|
||
$commande->addChild('num_siren', $siren);
|
||
|
||
// Commande de documents : bilan saisie ou bilan complet
|
||
if ( ($type=='BS' || $type=='BI') && $option!='' )
|
||
{
|
||
//Format de la variable option pour la commande de type BI ou BS
|
||
/*
|
||
0 => greffe
|
||
1 => dossier_millesime
|
||
2 => dossier_statut
|
||
3 => dossier_chrono
|
||
4 => num_depot
|
||
5 => date_cloture
|
||
*/
|
||
$ref = explode('-', $option);
|
||
$mil = explode('_', $ref[0]);
|
||
|
||
$commande->addChild('greffe',$ref[2]);
|
||
$commande->addChild('dossier_millesime',$ref[3]);
|
||
$commande->addChild('dossier_statut',$ref[4]);
|
||
$commande->addChild('dossier_chrono',$ref[5]);
|
||
$commande->addChild('num_depot',$ref[6]);
|
||
$commande->addChild('date_cloture',WDate::dateT('Ymd','d/m/Y', $ref[1]));
|
||
}
|
||
// Commande de documents : actes
|
||
elseif ( $type=='AC' && !empty($option) )
|
||
{
|
||
//Format de la variable option pour commande type AC
|
||
/*
|
||
0 => greffe
|
||
1 => dossier_millesime
|
||
2 => dossier_statut
|
||
3 => dossier_chrono
|
||
4 => num_depot
|
||
5 => num_acte
|
||
*/
|
||
$ref = explode('-', $option);
|
||
$commande->addChild('greffe',$ref[0]);
|
||
$commande->addChild('dossier_millesime', $ref[1]);
|
||
$commande->addChild('dossier_statut', $ref[2]);
|
||
$commande->addChild('dossier_chrono', $ref[3]);
|
||
$commande->addChild('num_depot', $ref[4]);
|
||
$liste_actes = $commande->addChild('liste_actes');
|
||
$liste_actes->addChild('acte')->addAttribute('num', $ref[5]);
|
||
}
|
||
|
||
$xmlStr = str_replace('<?xml version="1.0"?>', '', $xml->asXML());
|
||
//Retourne le xml sous forme de chaîne de caractères
|
||
return $xmlStr;
|
||
}
|
||
|
||
/**
|
||
* Requête le webservice infogreffe
|
||
* @param unknown_type $xml
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_getproduitsxml($xml)
|
||
{
|
||
|
||
$url = INFOGREFFE_WS_URL;
|
||
$req = utf8_encode($xml);
|
||
$post = '<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://webservices.infogreffe.fr/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getProduitsWebServicesXML><param0 xsi:type="xsd:string">'.$req.'</param0></ns1:getProduitsWebServicesXML></SOAP-ENV:Body></SOAP-ENV:Envelope>';
|
||
$ch = curl_init();
|
||
curl_setopt($ch, CURLOPT_URL, $url);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||
curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE);
|
||
curl_setopt($ch, CURLOPT_POST, TRUE);
|
||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
||
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
|
||
$reponseXML = curl_exec($ch);
|
||
$reponseXML = str_replace("<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>", '', $reponseXML);
|
||
$reponseXML = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $reponseXML);
|
||
|
||
/*
|
||
//Options pour le client soap
|
||
$options = array(
|
||
'location' => INFOGREFFE_WS_URL,
|
||
'uri' => INFOGREFFE_WS_URI,
|
||
'soap_version' => SOAP_1_1,
|
||
'trace' => 1,
|
||
'style' => SOAP_RPC,
|
||
'use' => SOAP_ENCODED,
|
||
//'encoding' => 'ISO-8859-1',
|
||
//'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
|
||
//'features' => SOAP_SINGLE_ELEMENT_ARRAYS + SOAP_USE_XSI_ARRAY_TYPE + SOAP_WAIT_ONE_WAY_CALLS,
|
||
);
|
||
|
||
try
|
||
{
|
||
$infogreffews = new SoapClient(null, $options);
|
||
$result = $infogreffews->getProduitsWebServicesXML($xml);
|
||
var_dump($result);
|
||
$reponseXML = implode('', (array)$result);
|
||
}
|
||
catch (SoapFault $soapFault)
|
||
{
|
||
echo 'Fault :'.$soapFault;
|
||
echo '<br/><br/>';
|
||
echo "REQUEST HEADERS: " . htmlspecialchars($infogreffews->__getLastRequestHeaders(), ENT_NOQUOTES);
|
||
echo '<br/><br/>';
|
||
echo "RESPONSE HEADERS: " . htmlspecialchars($infogreffews->__getLastResponseHeaders(), ENT_NOQUOTES);
|
||
echo '<br/><br/>';
|
||
echo 'Request : '.$infogreffews->__getLastRequest();
|
||
echo '<br/><br/>';
|
||
echo 'Response : '.htmlspecialchars($infogreffews->__getLastResponse(), ENT_NOQUOTES);
|
||
echo '<br/><br/>';;
|
||
$reponseXML = $infogreffews->__getLastResponse();
|
||
$reponseXML = str_replace("<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>",'', $reponseXML);
|
||
$reponseXML = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $reponseXML);
|
||
}
|
||
*/
|
||
return $reponseXML;
|
||
|
||
}
|
||
|
||
/**
|
||
* Format la chaine xml de liste des actes
|
||
* @param unknown_type $xml
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_parsexml_actes($xml)
|
||
{
|
||
$doc = new DOMDocument();
|
||
$doc->loadXML($xml);
|
||
|
||
$liste_depot_acte = $doc->getElementsByTagName('liste_depot_acte')->item(0);
|
||
$depot_actes = $liste_depot_acte->getElementsByTagName('depot_acte');
|
||
$actes = array();
|
||
foreach($depot_actes as $depot_acte)
|
||
{
|
||
$acte = array();
|
||
|
||
$acte['num_gest'] = array();
|
||
$num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0);
|
||
$acte['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
|
||
$acte['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
|
||
$acte['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
|
||
$acte['num_gest']['dossier_chono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
|
||
|
||
$acte['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue;
|
||
$acte['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue;
|
||
$acte['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue;
|
||
|
||
$infoActes = $depot_acte->getElementsByTagName('acte');
|
||
foreach($infoActes as $infoActe)
|
||
{
|
||
$acte['acte'] = array();
|
||
$acte['acte']['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue;
|
||
$acte['acte']['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue;
|
||
$acte['acte']['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue;
|
||
$acte['acte']['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue;
|
||
$acte['acte']['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue;
|
||
$decision = $infoActe->getElementsByTagName('decision')->item(0);
|
||
if($decision)
|
||
{
|
||
$acte['acte']['decision'] = array();
|
||
$acte['acte']['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue;
|
||
$acte['acte']['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue;
|
||
}
|
||
|
||
$acte['acte']['mode_diffusion'] = array();
|
||
$mode_diffusion = $infoActe->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode');
|
||
foreach($mode_diffusion as $mode)
|
||
{
|
||
$acte['acte']['mode_diffusion'][] = $mode->getAttribute('type');
|
||
}
|
||
|
||
//Génération de l'index pour le tri
|
||
if(!empty($acte['acte']['date_acte'])){ $date = $acte['acte']['date_acte']; }
|
||
else { $date = $acte['date_depot']; }
|
||
|
||
if(!empty($date) && !empty($acte['acte']['num_acte']))
|
||
{
|
||
$datef = substr($date,0,4).substr($date,5,2).substr($date,8,2).$acte['acte']['num_acte'];
|
||
//Affectation liste générale avec un index permettant le tri
|
||
$actes[$datef] = $acte;
|
||
}
|
||
//Prise en compte de l'acte -1
|
||
if($acte['num_depot']==-1)
|
||
{
|
||
$actes['9999999999'] = $acte;
|
||
}
|
||
|
||
}//Fin listes des infos acte
|
||
}
|
||
|
||
//Tri suivant la date d'acte ou de depot
|
||
krsort($actes);
|
||
return $actes;
|
||
}
|
||
|
||
/**
|
||
* Formate la chaine xml de commande d'un acte en mode téléchargement
|
||
* @param unknown_type $xml
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_parsexml_actes_t($xml)
|
||
{
|
||
$doc = new DOMDocument();
|
||
$doc->loadXML($xml);
|
||
|
||
$depot_acte = $doc->getElementsByTagName('depot_acte')->item(0);
|
||
|
||
$info = array();
|
||
$info['num_gest'] = array();
|
||
|
||
$num_gest = $depot_acte->getElementsByTagName('num_gest')->item(0);
|
||
|
||
$info['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
|
||
$info['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
|
||
$info['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
|
||
$info['num_gest']['dossier_chono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
|
||
|
||
$info['num_siren'] = $depot_acte->getElementsByTagName('num_siren')->item(0)->nodeValue;
|
||
$info['num_depot'] = $depot_acte->getElementsByTagName('num_depot')->item(0)->nodeValue;
|
||
$info['date_depot'] = $depot_acte->getElementsByTagName('date_depot')->item(0)->nodeValue;
|
||
|
||
$infoActe = $depot_acte->getElementsByTagName('acte');
|
||
|
||
$info['acte'] = array();
|
||
$info['acte']['date_acte'] = $infoActe->getElementsByTagName('date_acte')->item(0)->nodeValue;
|
||
$info['acte']['num_acte'] = $infoActe->getElementsByTagName('num_acte')->item(0)->nodeValue;
|
||
$info['acte']['type_acte'] = $infoActe->getElementsByTagName('type_acte')->item(0)->nodeValue;
|
||
$info['acte']['type_acte_libelle'] = $infoActe->getElementsByTagName('type_acte_libelle')->item(0)->nodeValue;
|
||
$info['acte']['nbpages_acte'] = $infoActe->getElementsByTagName('nbpages_acte')->item(0)->nodeValue;
|
||
|
||
$decision = $infoActe->getElementsByTagName('decision')->item(0);
|
||
if($decision)
|
||
{
|
||
$info['acte']['decision'] = array();
|
||
$info['acte']['decision']['nature'] = $decision->getElementsByTagName('nature')->item(0)->nodeValue;
|
||
$info['acte']['decision']['libelle'] = $decision->getElementsByTagName('libelle')->item(0)->nodeValue;
|
||
}
|
||
$info['acte']['url_acces'] = htmlspecialchars_decode($infoActe->getElementsByTagName('url_acces')->item(0)->nodeValue);
|
||
|
||
return $info;
|
||
}
|
||
|
||
function infogreffe_parsexml_actes_c()
|
||
{
|
||
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Formatte la chaine xml de liste des bilans
|
||
* @param unknown_type $xml
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_parsexml_bilans($xml)
|
||
{
|
||
$doc = new DOMDocument();
|
||
$doc->loadXML($xml);
|
||
|
||
$liste_bilan_complet = $doc->getElementsByTagName('liste_bilan_complet')->item(0);
|
||
$bilan_complet = $liste_bilan_complet->getElementsByTagName('bilan_complet');
|
||
|
||
$bilans = array();
|
||
foreach($bilan_complet as $element)
|
||
{
|
||
$bilan = array();
|
||
|
||
$bilan['num_gest'] = array();
|
||
$num_gest = $element->getElementsByTagName('num_gest')->item(0);
|
||
$bilan['num_gest']['greffe'] = $num_gest->getElementsByTagName('greffe')->item(0)->nodeValue;
|
||
$bilan['num_gest']['dossier_millesime'] = $num_gest->getElementsByTagName('dossier_millesime')->item(0)->nodeValue;
|
||
$bilan['num_gest']['dossier_statut'] = $num_gest->getElementsByTagName('dossier_statut')->item(0)->nodeValue;
|
||
$bilan['num_gest']['dossier_chono'] = $num_gest->getElementsByTagName('dossier_chrono')->item(0)->nodeValue;
|
||
|
||
$bilan['num_siren'] = $element->getElementsByTagName('num_siren')->item(0)->nodeValue;
|
||
$bilan['date_cloture'] = $element->getElementsByTagName('date_cloture')->item(0)->nodeValue;
|
||
$bilan['date_cloture_iso'] = $element->getElementsByTagName('date_cloture_iso')->item(0)->nodeValue;
|
||
$bilan['millesime'] = $element->getElementsByTagName('millesime')->item(0)->nodeValue;
|
||
$bilan['num_depot'] = $element->getElementsByTagName('num_depot')->item(0)->nodeValue;
|
||
$bilan['type_comptes'] = $element->getElementsByTagName('type_comptes')->item(0)->nodeValue;
|
||
|
||
$mode_diffusion = $element->getElementsByTagName('mode_diffusion')->item(0)->getElementsByTagName('mode');
|
||
foreach($mode_diffusion as $mode)
|
||
{
|
||
$bilan['mode_diffusion'][] = $mode->getAttribute('type');
|
||
}
|
||
|
||
//Génération de l'index pour le tri
|
||
$date = $bilan['date_cloture_iso'];
|
||
if(!empty($date))
|
||
{
|
||
$datef = substr($date,0,4).substr($date,5,2).substr($date,8,2);
|
||
//Affectation liste générale avec un index permettant le tri
|
||
$bilans[$datef] = $bilan;
|
||
}
|
||
}
|
||
krsort($bilans);
|
||
return $bilans;
|
||
}
|
||
|
||
function infogreffe_parsexml_bilans_t(){}
|
||
|
||
function infogreffe_parsexml_bilans_c(){}
|
||
|
||
/**
|
||
* Formatte le tableau complet des actes pour envoyer seulement les informations nécessaires
|
||
* @param $actes
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_arrange_actes($actes)
|
||
{
|
||
//Organisation du tableau des actes
|
||
$tabActes = array();
|
||
foreach($actes as $key => $acte)
|
||
{
|
||
if(!empty($acte['acte']['date_acte'])){ $date = $acte['acte']['date_acte']; }
|
||
else { $date = $acte['date_depot']; }
|
||
$type = $acte['acte']['type_acte_libelle'];
|
||
|
||
$decision = $acte['acte']['decision']['nature'].' '.$acte['acte']['decision']['libelle'];
|
||
$depotNum = $acte['num_depot'];
|
||
$depotDate = $acte['date_depot'];
|
||
$ref =
|
||
$acte['num_gest']['greffe'].'-'.
|
||
$acte['num_gest']['dossier_millesime'].'-'.
|
||
$acte['num_gest']['dossier_statut'].'-'.
|
||
$acte['num_gest']['dossier_chono'].'-'.
|
||
$acte['num_depot'].'-'.
|
||
$acte['acte']['num_acte'];
|
||
|
||
//Recherche du fichier suivant le siren, le type de document et la reference
|
||
|
||
//Suppression du mode courrier si le mode telechargement existe
|
||
$modes = $acte['acte']['mode_diffusion'];
|
||
if(in_array('T',$modes)) { $mode = 'T'; }
|
||
elseif(in_array('C',$modes)){ $mode = 'C'; }
|
||
|
||
//Valeurs de retour
|
||
$tabActes[$key]['siren'] = $siren;
|
||
$tabActes[$key]['type'] = $type;
|
||
$tabActes[$key]['decision'] = $decision;
|
||
$tabActes[$key]['num_depot'] = $depotNum;
|
||
$tabActes[$key]['date_depot'] = $depotDate;
|
||
$tabActes[$key]['date_acte'] = $date;
|
||
$tabActes[$key]['mode'] = $mode;
|
||
$tabActes[$key]['ref'] = $ref;
|
||
}
|
||
return $tabActes;
|
||
}
|
||
|
||
/**
|
||
* Liste tous les actes pour un siren et gere les commandes
|
||
* @param unknown_type $siren
|
||
* @param unknown_type $typeCommande
|
||
* @param unknown_type $ref
|
||
* @return unknown_type
|
||
*/
|
||
function getGreffeActes($siren, $typeCommande = '', $ref = '')
|
||
{
|
||
$error = '';
|
||
$result = array();
|
||
|
||
if(empty($typeCommande)) $typeCommande = 'XL';
|
||
|
||
$type = 'AC'; // Type actes
|
||
$idCommande = 0;
|
||
|
||
if($typeCommande == 'XL')
|
||
{
|
||
$fichier = $type.'-'.$siren.'.xml';
|
||
if(!file_exists($fichier))
|
||
{
|
||
$xmlRequete = infogreffe_requetexml($siren, $idCommande, $type, $vecteur, $ref);
|
||
$xmlReponse = infogreffe_getproduitsxml($xmlRequete);
|
||
file_put_contents($fichier, $xmlReponse);
|
||
}
|
||
else
|
||
{
|
||
$xmlReponse = file_get_contents($fichier);
|
||
}
|
||
if(infogreffe_erreur($xmlReponse))
|
||
{
|
||
$error = infogreffe_erreur_msg($xmlReponse);
|
||
}
|
||
else
|
||
{
|
||
//Tableau d'actes
|
||
$actes = infogreffe_parsexml_actes($xmlReponse);
|
||
$result = infogreffe_arrange_actes($actes);
|
||
}
|
||
}
|
||
//Commande d'un acte en mode téléchargement
|
||
elseif($typeCommande=='T')
|
||
{
|
||
$xmlRequete = infogreffe_requetexml($siren, $idCommande, $type, $typeCommande, $ref);
|
||
$xmlReponse = infogreffe_getproduitsxml($xmlRequete);
|
||
$actes = infogreffe_parsexml_actes_t($xmlReponse);
|
||
}
|
||
//Commande d'un acte en mode courrier
|
||
elseif($typeCommande=='C')
|
||
{
|
||
//On génére un idCommande suivant la valeur en bdd
|
||
$xmlRequete = infogreffe_requetexml($siren, $idCommande, $type, $typeCommande, $ref);
|
||
$xmlReponse = infogreffe_getproduitsxml($xmlRequete);
|
||
}
|
||
//Default mode erreur
|
||
else
|
||
{
|
||
//Paramètres incorrect
|
||
}
|
||
//Gestion du retour infogreffe
|
||
if(infogreffe_erreur($xmlReponse))
|
||
{
|
||
$error = infogreffe_erreur_msg($xmlReponse);
|
||
}
|
||
else
|
||
{
|
||
$result = infogreffe_arrange_actes($actes);
|
||
}
|
||
return array('error' => $error , 'result' => $result );
|
||
}
|
||
|
||
/**
|
||
* Détermine si la chaine xml de retour est un message d'information ou d'erreur
|
||
* @param $xml
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_erreur($xml)
|
||
{
|
||
if (strlen($xml)<200) return true;
|
||
else return false;
|
||
}
|
||
|
||
/**
|
||
* Renvoi le code erreur infogreffe ainsi que le message
|
||
* @param unknown_type $xml
|
||
* @return unknown_type
|
||
*/
|
||
function infogreffe_erreur_msg($xml)
|
||
{
|
||
if (strlen($xml)<200)
|
||
{
|
||
$tmp = explode('-', $xml);
|
||
$errNum = $tmp[0]*1;
|
||
$errMsg = $tmp[1];
|
||
}
|
||
return array( 'errNum' => $errNum , 'errMsg' => $errMsg );
|
||
}
|
||
|
||
/**
|
||
* Demande le dernier statut à jour auprès d'infogreffe seulement si disponible pour le siren
|
||
* Acte possédant un num_depot = 9999999999
|
||
* @param $siren
|
||
* @param $typeCommande
|
||
* @return unknown_type
|
||
*/
|
||
function getGreffeStatut($siren, $typeCommande)
|
||
{
|
||
$idCommande = 0;
|
||
$type = 'ST'; //Type document statut
|
||
$xmlRequete = infogreffe_requetexml($siren, $idCommande, $type, $typeCommande, $ref);
|
||
$xmlReponse = infogreffe_getproduitsxml($xmlRequete);
|
||
|
||
return $xmlReponse;
|
||
}
|
||
|
||
/**
|
||
* Liste tous les bilans et gere les commandes
|
||
* @param unknown_type $siren
|
||
* @param unknown_type $typeCommande
|
||
* @param unknown_type $ref
|
||
* @return unknown_type
|
||
*/
|
||
function getGreffeBilans($siren, $typeCommande = '', $ref = '')
|
||
{
|
||
$error = '';
|
||
$result = '';
|
||
|
||
if(empty($typeCommande)) $typeCommande = 'XL';
|
||
$idCommande = 0;
|
||
$type = 'BI';
|
||
if($typeCommande=='XL')
|
||
{
|
||
$fichier = $type.'-'.$siren.'.xml';
|
||
if(!file_exists($fichier))
|
||
{
|
||
$xmlRequete = infogreffe_requetexml($siren, $idCommande, $type, $typeCommande, $ref);
|
||
$xmlReponse = infogreffe_getproduitsxml($xmlRequete);
|
||
file_put_contents($fichier, $xmlReponse);
|
||
}
|
||
else
|
||
{
|
||
$xmlReponse = file_get_contents($fichier);
|
||
}
|
||
}
|
||
//Gestion du retour infogreffe
|
||
if(infogreffe_erreur($xmlReponse))
|
||
{
|
||
$error = infogreffe_erreur_msg($xmlReponse);
|
||
}
|
||
else
|
||
{
|
||
$result = infogreffe_parsexml_bilans($xmlReponse);
|
||
}
|
||
return array( 'error' => $error , 'result' => $result );
|
||
}
|
||
|