Import des dossiers clients
This commit is contained in:
parent
bfc8ab2755
commit
623290da18
20
html/afnic/.htaccess
Normal file
20
html/afnic/.htaccess
Normal file
@ -0,0 +1,20 @@
|
||||
#php_value include_path ".:/var/www/framework:/var/www/site_extranet/includes:/usr/share/php"
|
||||
php_value auto_prepend_file "/var/www/includes/auto_prepend.php"
|
||||
#php_value auto_append_file "/var/www/site_extranet/config/append.php"
|
||||
#ErrorDocument 400 /error.php?errtyp=400
|
||||
#ErrorDocument 401 /error.php?errtyp=401
|
||||
#ErrorDocument 402 /error.php?errtyp=402
|
||||
#ErrorDocument 403 /error.php?errtyp=403
|
||||
#ErrorDocument 404 /error.php?errtyp=404
|
||||
#ErrorDocument 500 /error.php?errtyp=500
|
||||
#ErrorDocument 501 /error.php?errtyp=501
|
||||
#ErrorDocument 502 /error.php?errtyp=502
|
||||
#Options +FollowSymlinks
|
||||
RewriteEngine on
|
||||
#RewriteRule ^(.*).htm$ http://www2.scores-decisions.com/index.php?page=$1 [nc]
|
||||
#RewriteRule !(index\.php|test\.php|^documents/pdf/courriers(.*)|\.html|\.htm|\.gif|\.css|\.jpg|\.png|\.jar|\.js|\.ico|\.pdf)$ /index.php [L]
|
||||
#RewriteRule ^img/(.*) /img/$1 [L]
|
||||
#RewriteRule ^js/(.*) /scripts/$1 [L]
|
||||
#RewriteRule ^css/(.*) /design/stylesheets/$1 [L]
|
||||
#RewriteRule ^etatspdf/(.*) /documents/pdf/etats/$1 [L]
|
||||
#RewriteRule ^(.*)\.htm$ /html/$1.html [L]
|
753
html/afnic/WsEntreprise.php
Normal file
753
html/afnic/WsEntreprise.php
Normal file
@ -0,0 +1,753 @@
|
||||
<?php
|
||||
|
||||
ini_set('soap.wsdl_cache_enabled', 0);
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
class WsEntreprise {
|
||||
|
||||
var $iInsee;
|
||||
|
||||
/** Constructeur de la classe
|
||||
** @nodoc
|
||||
**/
|
||||
function __construct(){
|
||||
$this->iInsee=new MInsee();
|
||||
}
|
||||
|
||||
/** Obtention automatique d'un nouveau login pour un client
|
||||
** @nodoc
|
||||
**/
|
||||
function getNextLogin($login) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut créer un nouveau login **/
|
||||
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin', "u.login='$login' AND u.idClient=c.id");
|
||||
$racine=$rep[0]['racineLogin'];
|
||||
$idClient=$rep[0]['idClient'];
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
|
||||
if (count($rep)==0) $racine.='1';
|
||||
else {
|
||||
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
|
||||
$racine.=$last_i+1;
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient));
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getInfosLogin($login, $ipUtilisateur) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['login']<>$login && $tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut il des infos sur un login ? **/
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, actif, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND deleted=0", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
$rep=array('login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> prepareString($tabRep['nom']),
|
||||
'prenom'=> prepareString($tabRep['prenom']),
|
||||
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> prepareString($tabRep['adrVille']),
|
||||
'adrComp'=> prepareString($tabRep['adrComp']),
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> prepareString($tabRep['profil']),
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'reference'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($tabInfoUser['filtre_ip']));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
//debugLog('I',"getInfosLogin : \$tabIpAllowed : ".print_r($tabIpAllowed,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $ipUtilisateur) )
|
||||
$connected=true;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) $connected=true;
|
||||
elseif (!$connected) {
|
||||
$errnum=10818;
|
||||
$errmsg='Adresse IP non declaree pour ce compte. Contactez votre administrateur !';
|
||||
}
|
||||
|
||||
$rep=array( 'connected'=> $connected,
|
||||
'login'=> $tabInfoUser['login'],
|
||||
'id'=> $tabInfoUser['id'],
|
||||
'idClient'=> $tabInfoUser['idClient'],
|
||||
'email'=> $tabInfoUser['email'],
|
||||
'typeCompte'=> $tabInfoUser['typeCompte'],
|
||||
'filtre_ip'=> $tabInfoUser['filtre_ip'],
|
||||
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
|
||||
'ipConnexion'=> $ipUtilisateur,
|
||||
'civilite'=> $tabInfoUser['civilite'],
|
||||
'nom'=> prepareString($tabInfoUser['nom']),
|
||||
'prenom'=> prepareString($tabInfoUser['prenom']),
|
||||
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
|
||||
'siret'=> $tabInfoUser['siret'],
|
||||
'adrNum'=> $tabInfoUser['adrNum'],
|
||||
'adrIndRep'=> $tabInfoUser['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
|
||||
'adrCp'=> $tabInfoUser['adrCp'],
|
||||
'adrVille'=> prepareString($tabInfoUser['adrVille']),
|
||||
'adrComp'=> prepareString($tabInfoUser['adrComp']),
|
||||
'tel'=> $tabInfoUser['tel'],
|
||||
'fax'=> $tabInfoUser['fax'],
|
||||
'mobile'=> $tabInfoUser['mobile'],
|
||||
'pref'=> $tabInfoUser['pref'],
|
||||
'profil'=> prepareString($tabInfoUser['profil']),
|
||||
'dateInscription'=> $tabInfoUser['dateInscription'],
|
||||
'dateValidation'=> $tabInfoUser['dateValidation'],
|
||||
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
|
||||
'droits'=> $tabInfoUser['droits'],
|
||||
'nbReponses'=> $tabInfoUser['nbReponses'],
|
||||
'formatMail'=> $tabInfoUser['formatMail'],
|
||||
'reference'=> $tabInfoUser['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
|
||||
'maxFicheId'=> $tabInfoUser['maxFicheId'],
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getListeUtilisateurs($login, $idClient=0) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUser['profil']<>'Administrateur')
|
||||
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
|
||||
$idClient=$rep[0][0];
|
||||
if ($idClient==0)
|
||||
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($rep as $uti)
|
||||
$tabRet[]=array( 'idUti'=>$uti['id'],
|
||||
'idClient'=>$uti['idClient'],
|
||||
'login'=>$uti['login'],
|
||||
'email'=>$uti['email'],
|
||||
'actif'=>$uti['actif'],
|
||||
'nom'=>prepareString($uti['nom']),
|
||||
'prenom'=>prepareString($uti['prenom']),
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Mise à jour des informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function setInfosLogin($login, $tabInfoUserWS) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUserWS['delete']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('deleted'=>1);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>0);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>1);
|
||||
else {
|
||||
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
|
||||
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
|
||||
$tabUpdate=array();
|
||||
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
|
||||
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
|
||||
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
|
||||
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
|
||||
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
|
||||
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
|
||||
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
|
||||
|
||||
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
|
||||
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
|
||||
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
|
||||
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
$tabUpdate['droits']=$strDroits;
|
||||
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
|
||||
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
|
||||
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
|
||||
}
|
||||
}
|
||||
if ($tabInfoUserWS['action']=='new') {
|
||||
$tabUpdate['login']=$login;
|
||||
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
|
||||
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
else
|
||||
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
|
||||
}
|
||||
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
|
||||
else
|
||||
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
||||
/*
|
||||
[rech_limites] => Array
|
||||
(
|
||||
[0] => assocs
|
||||
[1] => actifs
|
||||
[2] => radies
|
||||
[3] => sieges
|
||||
)
|
||||
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
*/
|
||||
}
|
||||
|
||||
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
|
||||
** @nodoc
|
||||
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
|
||||
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
|
||||
** @param string $codePostal Code postal (ex: 75014)
|
||||
** @param string $ville Ville
|
||||
** @param bool $siege Limitation de la recherche au sièges (si true)
|
||||
** @param bool $actif Limitation aux établissements actifs (si true)
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
|
||||
** @param bool $avecSiren Ne proposer que les entités sirénées
|
||||
** @return Tableau d'entreprises ou d'établissements
|
||||
**/
|
||||
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
|
||||
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($etab['FJLib']),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
** @nodoc
|
||||
** @param integer $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param integer $dep Département
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
||||
$tabRet=array();
|
||||
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
|
||||
elseif (strlen($siret)== 9) $nic='';
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt' => $etab['NafEnt'], // Entreprise
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
}
|
||||
$rep['reponses']=$tabRet;
|
||||
|
||||
/** Si le siren est valide, on part chez Infogreffe **/
|
||||
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
|
||||
$iGeffes=new MGreffes();
|
||||
$etab=$iGeffes->getIdentite($siren);
|
||||
if ($etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString($etab['Nom']),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'],
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
|
||||
'NafEnt' => $etab['NafEnt'],
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>1,
|
||||
'nbReponsesTotal'=>1,
|
||||
'reponses'=>$tabRet);
|
||||
} else
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>0,
|
||||
'nbReponsesTotal'=>0,
|
||||
'reponses'=>array());
|
||||
}
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
||||
}
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par un autre Identifiant
|
||||
**
|
||||
** @param integer $typeId I=Code Isin, W=N°Waldec (Associations) ou R=N°RC (Registre Greffe)
|
||||
** @param integer $identifiant Identifiant recherché
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function getIdentite($params) {
|
||||
|
||||
$siret=$params->siret;
|
||||
$dep=$params->dept;
|
||||
$id=$params->id;
|
||||
$waldec=strtoupper($params->waldec);
|
||||
|
||||
/**sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep)", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id");
|
||||
*/
|
||||
$forceVerif=false;
|
||||
|
||||
if ($waldec<>'' && substr($waldec,0,1)=='W' && $siret*1==0) {
|
||||
debugLog('I',"AFNIC Recherche par identifiant Waldec $waldec (Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissementsParId('AUTRE', $waldec, 0, 20, 20);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siret=$etab['Siret'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>108, 'errmsg'=>'Waldec inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($id==0 && !$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($dep==974) {
|
||||
debugLog('I',"AFNIC Recherche par Siren/Dept (Waldec=$waldec, Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, 0, 20, 20, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siren=$etab['siren'];
|
||||
$nic=$etab['nic'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Siren $siren/Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>107, 'errmsg'=>'Entreprise ou Association non présente dans le département demandé'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$autreId=$entrep['AutreId'];
|
||||
if ($params->siret>0 && $waldec<>'')
|
||||
$autreId=$waldec;
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$autreId,
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);*/
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
||||
** @nodoc
|
||||
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
|
||||
** @param integer $id Identifiant S&D de l'établissement
|
||||
** @return array Fiche d'identité de l'établissement
|
||||
**/
|
||||
/*function getIdentite($params) {
|
||||
//function getIdentite($siret, $id = 0) {
|
||||
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
|
||||
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
|
||||
} else {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
}
|
||||
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
|
||||
fclose($fp);
|
||||
}**
|
||||
$siret=$params->siret;
|
||||
$id=$params->id;
|
||||
$forceVerif=false;
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if (!$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$iBourse=new MBourse($siren);
|
||||
$bourse=$iBourse->getInfosBourse($siren);
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
// 'Source' =>$entrep['Source'],
|
||||
// 'SourceId' =>$entrep['SourceId'],
|
||||
// 'Isin' =>$entrep['Isin'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
// 'Siret' =>$entrep['Siret'],
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
|
||||
/*
|
||||
'GeoLat' =>$entrep['GeoLat'],
|
||||
'GeoLon' =>$entrep['GeoLon'],
|
||||
'GeoPrecis' =>$entrep['GeoPrecis'],
|
||||
'GeoInfos' =>$entrep['GeoInfos'],
|
||||
|
||||
'TvaNumero' =>$entrep['TvaNumero'],
|
||||
'TvaAttribue' =>$entrep['TvaAttribue'],
|
||||
** 'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
// 'NafEtab' =>$entrep['NafEtab'],
|
||||
// 'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
|
||||
// 'Activite' =>prepareString($entrep['Activite']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
/* 'dir2Titre' =>prepareString($entrep['dir2Titre']),
|
||||
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
|
||||
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
|
||||
'Rivoli' =>$entrep['Rivoli'],
|
||||
|
||||
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
||||
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
||||
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
||||
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
||||
** 'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
/* 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),**
|
||||
//'importExport' =>$entrep['importExport'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);**
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
*/
|
||||
}
|
||||
?>
|
109
html/afnic/WsEntreprises.wsdl
Normal file
109
html/afnic/WsEntreprises.wsdl
Normal file
@ -0,0 +1,109 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<definitions name="entreprises" targetNamespace="urn:entreprises" xmlns:typens="urn:entreprises" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
|
||||
<types>
|
||||
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:all>
|
||||
<xsd:element name="id" type="xsd:integer"/>
|
||||
<xsd:element name="Siret" type="xsd:string"/>
|
||||
<xsd:element name="SiretSiege" type="xsd:string"/>
|
||||
<xsd:element name="Siege" type="xsd:integer"/>
|
||||
<xsd:element name="Actif" type="xsd:integer"/>
|
||||
<xsd:element name="AutreId" type="xsd:string"/>
|
||||
<xsd:element name="Nom" type="xsd:string"/>
|
||||
<xsd:element name="Nom2" type="xsd:string"/>
|
||||
<xsd:element name="Sigle" type="xsd:string"/>
|
||||
<xsd:element name="Enseigne" type="xsd:string"/>
|
||||
<xsd:element name="Adresse" type="xsd:string"/>
|
||||
<xsd:element name="Adresse2" type="xsd:string"/>
|
||||
<xsd:element name="AdresseNum" type="xsd:integer"/>
|
||||
<xsd:element name="AdresseBtq" type="xsd:string"/>
|
||||
<xsd:element name="AdresseVoie" type="xsd:string"/>
|
||||
<xsd:element name="AdresseRue" type="xsd:string"/>
|
||||
<xsd:element name="CP" type="xsd:integer"/>
|
||||
<xsd:element name="Ville" type="xsd:string"/>
|
||||
<xsd:element name="Pays" type="xsd:string"/>
|
||||
<xsd:element name="Civilite" type="xsd:string"/>
|
||||
<xsd:element name="NbEtab" type="xsd:integer"/>
|
||||
<xsd:element name="Tel" type="xsd:string"/>
|
||||
<xsd:element name="Fax" type="xsd:string"/>
|
||||
<xsd:element name="Web" type="xsd:string"/>
|
||||
<xsd:element name="Mail" type="xsd:string"/>
|
||||
<xsd:element name="FJ" type="xsd:integer"/>
|
||||
<xsd:element name="FJ_lib" type="xsd:string"/>
|
||||
<xsd:element name="Siren" type="xsd:integer"/>
|
||||
<xsd:element name="Nic" type="xsd:integer"/>
|
||||
<xsd:element name="NafEnt" type="xsd:string"/>
|
||||
<xsd:element name="NafEntLib" type="xsd:string"/>
|
||||
<xsd:element name="Capital" type="xsd:integer"/>
|
||||
<xsd:element name="CapitalDev" type="xsd:string"/>
|
||||
<xsd:element name="CapitalLib" type="xsd:string"/>
|
||||
<xsd:element name="DateCreaEt" type="xsd:integer"/>
|
||||
<xsd:element name="DateCreaEn" type="xsd:integer"/>
|
||||
<xsd:element name="DateClotEn" type="xsd:integer"/>
|
||||
<xsd:element name="EffEnTr" type="xsd:string"/>
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string"/>
|
||||
<xsd:element name="Effectif" type="xsd:string"/>
|
||||
<xsd:element name="Dept" type="xsd:string"/>
|
||||
<xsd:element name="codeCommune" type="xsd:integer"/>
|
||||
<xsd:element name="TrancheCA" type="xsd:string"/>
|
||||
<xsd:element name="TrancheCALib" type="xsd:string"/>
|
||||
<xsd:element name="dir1Titre" type="xsd:string"/>
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string"/>
|
||||
<xsd:element name="dir1DateFct" type="xsd:string"/>
|
||||
<xsd:element name="SituationJuridique" type="xsd:string"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:all>
|
||||
<xsd:element name="errnum" type="xsd:integer"/>
|
||||
<xsd:element name="errmsg" type="xsd:string"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="EntrepResult">
|
||||
<xsd:all>
|
||||
<xsd:element name="error" type="typens:ErrorElement"/>
|
||||
<xsd:element name="result" type="typens:EntrepElement"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="getIdentite">
|
||||
<part name="siret" type="xsd:integer"/>
|
||||
<part name="id" type="xsd:integer"/>
|
||||
</message>
|
||||
<message name="getIdentiteResponse">
|
||||
<part name="identiteEntrepReturn" type="typens:EntrepResult"/>
|
||||
</message>
|
||||
<portType name="SdWsEntreprisesPortType">
|
||||
<operation name="getIdentite">
|
||||
<documentation>
|
||||
Retourne une fiche identite entreprise
|
||||
</documentation>
|
||||
<input message="typens:getIdentite"/>
|
||||
<output message="typens:getIdentiteResponse"/>
|
||||
</operation>
|
||||
</portType>
|
||||
<binding name="SdWsEntreprisesBinding" type="typens:SdWsEntreprisesPortType">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<operation name="getIdentite">
|
||||
<soap:operation soapAction="urn:SdWsEntreprisesAction"/>
|
||||
<input>
|
||||
<soap:body namespace="urn:entreprises" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body namespace="urn:entreprises" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</output>
|
||||
</operation>
|
||||
</binding>
|
||||
<service name="entreprisesService">
|
||||
<port name="SdWsEntreprisesPort" binding="typens:SdWsEntreprisesBinding">
|
||||
<soap:address location="http://saulnier.scores-decisions.com/afnic/"/>
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
129
html/afnic/WsEntreprises2-dlw.wsdl
Normal file
129
html/afnic/WsEntreprises2-dlw.wsdl
Normal file
@ -0,0 +1,129 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<wsdl:definitions name="WsEntreprises"
|
||||
targetNamespace="urn:WsEntreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:WsEntreprises"
|
||||
xmlns:typens="urn:WsEntreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema elementFormDefault='qualified' xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:WsEntreprises">
|
||||
|
||||
<xsd:complexType name="EntrepStruct">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CapitalLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorStruct">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="getIdentiteResponse">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorStruct" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepStruct" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="getIdentite">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="getIdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:getIdentite"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="getIdentiteResponse">
|
||||
<wsdl:part name="parameters" element="typens:getIdentiteResponse"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="WsEntreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:getIdentiteRequest" />
|
||||
<wsdl:output message="wsdlns:getIdentiteResponse" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="WsEntreprisesBinding" type="wsdlns:WsEntreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction=""/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" namespace="urn:WsEntreprises" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" namespace="urn:WsEntreprises"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="WsEntreprisesService">
|
||||
<wsdl:port name="WsEntreprisesPort" binding="wsdlns:WsEntreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
136
html/afnic/WsEntreprises2-patch.wsdl
Normal file
136
html/afnic/WsEntreprises2-patch.wsdl
Normal file
@ -0,0 +1,136 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
139
html/afnic/WsEntreprises2.1-dlw.wsdl
Normal file
139
html/afnic/WsEntreprises2.1-dlw.wsdl
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="dept" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="waldec" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
139
html/afnic/WsEntreprises2.2-dlw.wsdl
Normal file
139
html/afnic/WsEntreprises2.2-dlw.wsdl
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="dept" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="waldec" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
137
html/afnic/WsEntreprises2.wsdl
Normal file
137
html/afnic/WsEntreprises2.wsdl
Normal file
@ -0,0 +1,137 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema elementFormDefault='qualified' xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:element name="EntrepElement">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CapitalLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="ErrorElement">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" />
|
||||
<wsdl:output message="wsdlns:EntrepResult" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction=""/>
|
||||
<wsdl:input name="IdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="EntrepResult">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
189
html/afnic/index.php
Normal file
189
html/afnic/index.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
define ('DATETIME', date('YmdHis'));
|
||||
define ('DATE', substr(DATETIME,0,8));
|
||||
define ('TIME', substr(DATETIME,8,6));
|
||||
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
|
||||
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
/**
|
||||
* Inclusion du fichier de configuration des includes Métiers de S&D
|
||||
*/
|
||||
include '/var/www/includes/config.php';
|
||||
|
||||
/**
|
||||
* Inclusion du Framework
|
||||
*/
|
||||
if( !defined('FWK_PATH') )
|
||||
include '/var/www/framework/fwk.php';
|
||||
|
||||
debugLog('W','AFNIC Identifiant/Mot de passe ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
//strtr('REQUEST:'.print_r($_REQUEST,true).'SERVER:'.print_r($_SERVER,true).'ENV:'.print_r($_ENV, true),array("\r"=>'', "\n"=>'')),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
include_once('WsEntreprise.php');
|
||||
|
||||
global $tabInfoUser;
|
||||
global $iDbCrm;
|
||||
$iDbCrm=new WDB('sdv1');
|
||||
|
||||
function checkAuth($login, $password, $ipConnexion) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
if ($tabRep['password']==$password ||
|
||||
$tabRep['password']==md5($password) ||
|
||||
$password==md5($login.'|'.$tabRep['password']) ) {
|
||||
$tabInfoUser=array( 'login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'ipPasserelle'=> '',
|
||||
'ipConnexion'=> $ipConnexion,
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> $tabRep['nom'],
|
||||
'prenom'=> $tabRep['prenom'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' OK', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return true;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' incorrect', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' inexistant ou inactif', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
/*
|
||||
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
|
||||
$server->addFunction('rechercheAsso');
|
||||
$server->addFunction('identiteAsso');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD']=='POST')
|
||||
$server->handle();
|
||||
else
|
||||
die('WebService Association de scores et décisions');
|
||||
*/
|
||||
|
||||
// On tente d'instancier la classe soapServer
|
||||
// Si cela s'avère impossible, on lève une exception
|
||||
try {/*array('trace' => false
|
||||
,'exceptions' => false
|
||||
,'proxy_host' => "monproxy"
|
||||
,'proxy_port' => monport
|
||||
,'local_cert' => "conf/clientCert.pem"
|
||||
,'passphrase' => "monpassword"
|
||||
)
|
||||
);*/
|
||||
//$server = new SoapServer(null, array('uri' => "http://viete.scores-decisions.com/",
|
||||
$server = new SoapServer('WsEntreprises2.1-dlw.wsdl', array(//'uri' => "http://viete.scores-decisions.com/",
|
||||
'soap_version' => SOAP_1_1,
|
||||
'style' => SOAP_DOCUMENT,
|
||||
'use' => SOAP_LITERAL,
|
||||
// 'soap_version' => SOAP_1_2,
|
||||
'trace' => 1,
|
||||
));
|
||||
//"etab.wsdl", array('trace' => 1, 'soap_version' => SOAP_1_1));//(null, array('uri' => "http://test-uri/"));//
|
||||
// On définit la classe qui va gérer les requètes SOAP
|
||||
$server -> setclass('WsEntreprise');
|
||||
} catch (Exception $e) {
|
||||
debugLog('E','Exception : '.$e,__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
echo $e;
|
||||
}
|
||||
|
||||
// La méthode POST a été utilisée pour appeller cette page.
|
||||
// On suppose donc qu'une requète a été envoyée, on la gère
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (checkAuth("testafnic", "afnic", $_SERVER['REMOTE_ADDR']))
|
||||
//if (checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
||||
//if ($_SERVER['PHP_AUTH_USER']=='TEST' && $_SERVER['PHP_AUTH_PW']=='prout')
|
||||
$server -> handle();
|
||||
else {
|
||||
$server->fault('900', 'Identifiant ou mot de passe incorrect');
|
||||
debugLog('W','Couple Identifiant/Mot de passe incorrect ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
//$server->fault('999', 'Service indisponible');
|
||||
}
|
||||
// sinon, on affiche une liste des méthodes que peut gérer ce serveur
|
||||
elseif (isset($_REQUEST['wsdl'])) {
|
||||
echo file_get_contents('WsEntreprises.wsdl');
|
||||
debugLog('N','Accès en GET au WebService WSDL',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
else {
|
||||
echo '<strong>This SOAP server can handle following functions : </strong>';
|
||||
echo '<ul>';
|
||||
$str=file_get_contents('WsEntreprise.php');
|
||||
// die($str);
|
||||
foreach($server -> getFunctions() as $func) {
|
||||
preg_match('#\/\*\*([^\/]*)\*\/(?:\s+)function(?: +|\()'.$func.'#sU', $str, $matches);
|
||||
if (!preg_match('/@nodoc/i', $matches[1])) {
|
||||
$tabFunc[$func]=$matches[1];
|
||||
echo '<li><a href="#'.$func.'">' , $func , '</a></li>';
|
||||
}
|
||||
// <a href="[^>]+">[^<]+</a>`';
|
||||
//print_r($matches);
|
||||
}
|
||||
debugLog('N','Accès en GET au WebService',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
?></ul>
|
||||
<hr/>
|
||||
<table>
|
||||
<? foreach($tabFunc as $func=>$infos)
|
||||
{ //if (!preg_match('/@nodoc/i', $infos)) {
|
||||
?><tr><td><b><u><a name="<?=$func?>"><?=$func?></a></u></b></td></tr>
|
||||
<tr><td><pre><?=strtr(htmlentities($infos),array( '@param'=>'Paramètre',
|
||||
'@return'=>'Retourne ',
|
||||
'$'=>'', '*'=>''
|
||||
))?></pre></td></tr><?
|
||||
}//}
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
|
||||
function wsLog($service, $siret='', $ref='') {
|
||||
if (strlen($siret)==14) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
} elseif (strlen($siret)==9) {
|
||||
$siren=$siret;
|
||||
$nic='';
|
||||
}
|
||||
|
||||
global $iDbCrm, $tabInfoUser;
|
||||
$tabInsert=array( 'login'=>$tabInfoUser['login'],
|
||||
'page'=>$service,
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'params'=>$ref);
|
||||
$rep=$iDbCrm->insert('logs', $tabInsert);
|
||||
}
|
||||
?>
|
584
html/afnic/lib/changelog
Normal file
584
html/afnic/lib/changelog
Normal file
@ -0,0 +1,584 @@
|
||||
2003-07-21, version 0.6.5
|
||||
- soap_transport_http: SOAPAction header is quoted again, fixes problem w/ Weblogic Server
|
||||
- applied Jason Levitt patch for proper array serialization, fixes problem w/ Amazon shopping cart services
|
||||
- fixed null value serialization
|
||||
- applied patch from "BZC ToOn'S" - fixes wsdl serialization when no parameters
|
||||
- applied John's patch, implementing compression for the server
|
||||
|
||||
2003-07-22, version 0.6.5
|
||||
- soap_server: fixed bug causing charset encoding not to be passed to the parser
|
||||
- soap_fault: added default encoding to the fault serialization
|
||||
- soap_parser: changed the parser to pre-load the parent's result array when processing scalar values. This increases parsing speed.
|
||||
|
||||
2003-07-23, version 0.6.5
|
||||
- soap_base: fix code that overwrites user-supplied attributes in serialize_val
|
||||
- soap_base: use arrays-of-arrays rather than attempting multi-dimensional in serialize_val
|
||||
- xmlschema: emit import statements and qualify all elements with prefix in serializeSchema (better interop with validation tools)
|
||||
- soapclient: get xml character encoding from HTTP Content-Type header if provided, e.g. text/xml;charset="UTF-8"
|
||||
- soapclient: use headers in call if provided (previously ignored this parameter)
|
||||
- soap_server: in parse_request, if neither getallheaders nor $_SERVER are available, use $HTTP_SERVER_VARS to get SOAPAction and xml encoding
|
||||
|
||||
2003-07-24, version 0.6.5
|
||||
- soap_transport_http: apply patch from Steven Brown "if the server closes connection prematurely, nusoap would spin trying to read data that isn't there"
|
||||
|
||||
2003-07-25, version 0.6.5
|
||||
- wsdl: apply patch from Sven to workaround single schema limitation
|
||||
- wsdl: apply a variant of the patch from Holger to handle empty values for array by serializing an array with 0 elements
|
||||
- xmlschema: remove the redundant default namespace attribute on the schema element; everything in xsd is explicitly specified as being from xsd
|
||||
- soap_transport_http: fix setCredentials and add TODO comments in sendHTTPS about what to change if this setCredentials stays
|
||||
|
||||
2003-07-30, version 0.6.5
|
||||
- nusoap_base: change documentation of soap_defencoding to specify it is the encoding for outgoing messages
|
||||
- nusoap_base: only change &, <, > to entities, not all HTML entities
|
||||
- soap_transport_http: update the Content-Type header in sendRequest, since soap_defencoding could be changed after ctor is called
|
||||
- soap_server: use soap_defencoding instead of charset_encoding
|
||||
- soap_server: read encoding from _SERVER if available
|
||||
- nusoap_base: do entity translation for string parameters with an xsd type specified (thanks David Derr)
|
||||
|
||||
2003-07-31, version 0.6.5
|
||||
- soap_transport_http: add proxy authentication
|
||||
- soap_transport_http: build payload the same way for http and https
|
||||
- wsdl: add proxy authentication
|
||||
- soapclient: add proxy authentication
|
||||
- soapclient: allow proxy information in ctor, so that it can be used for wsdl
|
||||
|
||||
2003-08-01, version 0.6.5
|
||||
- soap_transport_http: close a persistent connection that's at EOF
|
||||
- soap_transport_http: prevent conflicts between setEncoding and usePersistentConnection
|
||||
- soap_transport_http: fix use of $headers instead of $this->incoming_headers in getResponse
|
||||
- soapclient: improve handling of persistent connections
|
||||
- soapclient: force xml_encoding to upper case
|
||||
- soap_server: let the Web server decide whether to close the connection (no Connection: close header)
|
||||
- soap_server: force xml_encoding to upper case
|
||||
|
||||
2003-08-04, version 0.6.5
|
||||
- soap_parser: use XML type information to pick a PHP data type; also decode base64
|
||||
- soap_server: read all HTTP headers when using _SERVER or HTTP_SERVER_VARS
|
||||
- soap_server: add gzip encoding support for outgoing messages
|
||||
- soap_transport_http: deflate is gzcompress/gzuncompress (cf. http://archive.develooper.com/libwww@perl.org/msg04650.html)
|
||||
- soap_transport_http: clean use of persistentConnection so it's always a set boolean
|
||||
- soapclient: add responseData member to access deflated/gunzipped payload
|
||||
|
||||
2003-08-05, version 0.6.5
|
||||
- soap_server: look multiple places when setting debug_flag
|
||||
|
||||
2003-08-07, version 0.6.5
|
||||
- nusoap_base: serialize specified type (e.g. ArrayOfString) even for simple array
|
||||
- wsdl: only specify encodingStyle in the input/output soap bindings when it is not empty (thanks Guillaume)
|
||||
|
||||
2003-08-15, version 0.6.5
|
||||
- soap_parser: fix parsing of elements with no XSD type specified
|
||||
- soap_parser: use PHP string type for XSD long and unsignedLong types
|
||||
|
||||
2003-08-16, version 0.6.5
|
||||
- soap_parser: fix code generating warning (thanks Torsten)
|
||||
|
||||
2003-08-19, version 0.6.5
|
||||
- soap_parser: fix another line of code generating a warning (thanks Torsten)
|
||||
|
||||
2003-08-22, version 0.6.5
|
||||
- soap_server: remove all '--' from debug_str; previous code changed '---' to '- --'
|
||||
- wsdl, soapclient, soap_parser: patch submitted by Mark Spavin as described by
|
||||
the following...
|
||||
> Changes for the multiple/nested imports from the wsdl file. This builds an
|
||||
> array of files not just the last one and also checks for relative paths to
|
||||
> the parent. This will then get the imported files from the remote site
|
||||
> instead of your local disk. Local wsdl files should still work (untested).
|
||||
>
|
||||
> Changes for multiple encoding sytles as previously posted
|
||||
|
||||
2003-08-24, version 0.6.5
|
||||
- wsdl, soapclient: fix some PHP notices from previous update
|
||||
|
||||
2003-08-26, version 0.6.5
|
||||
- wsdl: support multiple SOAP ports
|
||||
- soapclient, soap_server: when no charset is specified, use UTF-8, even though HTTP specifies US-ASCII.
|
||||
- soap_transport_http: do not prepend $host with 'ssl://' for https (is this required for older cURL versions?)
|
||||
|
||||
2003-08-27, version 0.6.5
|
||||
- soap_server: support compressed request messages (thanks John Huong)
|
||||
- soap_parser: deserialize Apache Vector as an array
|
||||
- xmlschema: use $this->typemap in getPHPType (which is not used)
|
||||
- soapclient, wsdl: check for WSDL errors after serializing parameters
|
||||
- nusoap_base: add serialization of Apache Map (when not using WSDL)
|
||||
- wsdl: add serialization of Apache Map (when using WSDL)
|
||||
- wsdl: only change &, <, > to entities, not all HTML entities
|
||||
|
||||
2003-08-28, version 0.6.5
|
||||
- soap_transport_http: disable cURL verification of peer and server (formerly the cURL default)
|
||||
- soap_transport_http: mingle cURL code with straight http, so sendHTTP is no longer needed
|
||||
|
||||
2003-08-29, version 0.6.6
|
||||
- soap_transport_http: add setContentType
|
||||
- soapclient: call setContentType using new getHTTPContentType and getHTTPContentTypeCharset
|
||||
|
||||
2003-09-05, version 0.6.6
|
||||
- wsdl: add some more code to handle null/nil values (but there's still a way to go)
|
||||
|
||||
2003-10-21, version 0.6.6
|
||||
- soap_transport_http: only include port in Host header if it was specified in the URL
|
||||
- soap_transport_http: add some code to use OpenSSL for PHP ssl:// scheme, but comment out since it's not ready
|
||||
- soap_server: use $_SERVER['PHP_SELF'] if $GLOBALS['PHP_SELF'] is not set
|
||||
- wsdl: add WSDL request and response and transport debug to debug
|
||||
- wsdl: handle custom type extending xmlschema namespace (GLUE ... Thanks Matt)
|
||||
- soap_parser: add param to docs
|
||||
- soapclient: add getHTTPBody, getHTTPContentType, getHTTPContentTypeCharset (anticipating MIME subclass)
|
||||
|
||||
2003-10-28, version 0.6.6
|
||||
- nusoap_base: add expandEntities method
|
||||
- wsdl: use expandEntities
|
||||
- soap_fault: use expandEntities
|
||||
- soap_transport_http: Allow credentials to be included in URL, rather than requiring setCredentials
|
||||
- soap_transport_http: Merge HTTP headers that span multiple lines
|
||||
- soap_parser: Properly set errors in ctor
|
||||
- soapclient: Pass headers to parseResponse and parse them in that method
|
||||
|
||||
2003-10-30, version 0.6.6
|
||||
- xmlschema: Add some information for the related type to an element
|
||||
|
||||
2003-12-09, version 0.6.6
|
||||
- nusoap_base: Add some namespace methods previously in xmlschema
|
||||
- xmlschema: Improve parsing of complexType, element and simpleType
|
||||
- xmlschema: Improve serialization
|
||||
- xmlschema: Track imports
|
||||
- xmlschema: Track elementFormDefault and form attributes
|
||||
- wsdl: Support multiple <schema> (note that setting $server->wsdl->schemaTargetNamespace no longer does anything! Use configureWSDL instead.)
|
||||
- wsdl: Use form attribute of element to control namespace specification
|
||||
- wsdl: Support chained imports (A imports B which imports C)
|
||||
- wsdl: Include port in endpoint address when serializing
|
||||
- soap_server: Fix use of style (rpc|document) and use (encoded|literal)
|
||||
- soap_server: Support _SERVER[CONTENT_TYPE] in addition to _SERVER[HTTP_CONTENT_TYPE]
|
||||
- soap_server: Support wsdl with multiple <schema>
|
||||
- soap_client: Remove a var_dump
|
||||
- soap_client: Add style and use parameters to call method to support doc/lit without WSDL
|
||||
- soap_transport_http: Check that $this->fp exists when doing persistent connections
|
||||
|
||||
2003-12-17, version 0.6.6
|
||||
- soap_server: pass namespaces to xmlschema constructor
|
||||
- wsdl: post-process after all imports
|
||||
- wsdl: remove some debug, add some error handling
|
||||
- xmlschema: allow enclosing namespaces to be specified in constructor
|
||||
- xmlschema: improve handling of compositors and simple types
|
||||
|
||||
2004-01-08, version 0.6.6
|
||||
- soap_server: when requested WSDL is in a file, return to client using passthru (thanks Ingo Fischer)
|
||||
- soapclient: have proxy inherit more client state
|
||||
- soapclient: allow timeout and response timeout to be specified in the constructor
|
||||
- wsdl: allow timeout and response timeout to be specified in the constructor
|
||||
- soap_transport_http: allow response timeout to be specified in send and sendHTTPS
|
||||
|
||||
2004-01-28, version 0.6.6
|
||||
- wsdl: add namespace for array and scalar when form is qualified
|
||||
- wsdl: fix a bug in which data type of complexType elements were ignored in serialization
|
||||
- wsdl: enhance handling of URLs with file scheme
|
||||
- wsdl: add addSimpleType
|
||||
- xmlschema: add addSimpleType
|
||||
- xmlschema: always set phpType elements
|
||||
- soapclient: allow a wsdl instance to be specified in constructor
|
||||
- soap_server: allow a wsdl instance to be specified in constructor (not tested!)
|
||||
- soap_server: fix default SOAPAction created in register method
|
||||
- soap_transport_http: accept chunking with LF separators in addition to CRLF.
|
||||
- wsdlcache: added class
|
||||
- nusoapmime: fix comments
|
||||
|
||||
2004-02-23, version 0.6.6
|
||||
- soap_transport_http: don't try to unchunk cURL data, since cURL already does it
|
||||
- soap_transport_http: append CVS revision to version in User-Agent
|
||||
- wsdl: serialize boolean as true|false, not 1|0, to agree with XML Schema
|
||||
- soap_server: always exit() after returning WSDL
|
||||
- soap_server: use the WSDL URL scheme as the default endpoint URL scheme
|
||||
- soap_server: append CVS revision to version in X-SOAP-Server
|
||||
- nusoap_base: add (CVS) revision
|
||||
- wsdlcache: synchronize using a per-WSDL lock file (Thanks Ingo)
|
||||
- wsdlcache: add cache lifetime, after which cache contents are invalidated (Thanks Ingo)
|
||||
|
||||
2004-03-15, version 0.6.6
|
||||
- nusoap_base: add isArraySimpleOrStruct method
|
||||
- soap_server: improve WSDL URL scheme determination
|
||||
- soap_server: only deflate/gzip payloads > 1024 bytes
|
||||
- soap_server: fix parameter order in fault method (always used as faultcode, faultstring)
|
||||
- soap_server: refactor parse_request into multiple functions (for sanity)
|
||||
- soap_server: set the namespace on the Response element to the same as the request
|
||||
- soap_server: name the return value element 'return' by default
|
||||
- soap_server: added and documented data fields, so that service programmers can use them if desired
|
||||
- soap_parser: standardize parsing error message
|
||||
- soap_parser: fix document and responseHeaders so they are the correct XML text (as documented)
|
||||
- soap_transport_http: fix read from persistent connection
|
||||
- soapclient: clean up debugging for persistent connection
|
||||
- wsdl: enforce correct naming of messages parts when an associative array is used for parameters
|
||||
- wsdl: better serialization of null values
|
||||
- wsdl: standardize parsing error message
|
||||
- xmlschema: standardize parsing error message
|
||||
|
||||
2004-03-24, version 0.6.7
|
||||
- soap_transport_http: add digest authentication (based on code by Kevin A. Miller)
|
||||
- xmlschema: improve parsing of import elements
|
||||
- wsdl: do schema imports even if there are no wsdl imports
|
||||
|
||||
2004-04-12, version 0.6.7
|
||||
- wsdl: serialize multiple elements when maxOccurs="unbounded" and value is an array
|
||||
- wsdl: serialize soapval values (used to force an XML type, e.g. when WSDL uses an abstract type)
|
||||
- nusoapmime: do not require nusoap.php (it is now the programmer's responsibility)
|
||||
|
||||
2004-04-21, version 0.6.7
|
||||
- soap_parser: parse repeated element name into an array (de-serializes doc/lit array into a PHP array when there is more than 1 array element)
|
||||
- soap_server: do not wrap response in a response element for a document style service
|
||||
|
||||
2004-04-30, version 0.6.7
|
||||
- soap_transport_http: allow digest auth params to be separated by "," as well as ", "
|
||||
- soap_transport_http: re-initialize incoming headers for each response
|
||||
- soap_server: add methodreturnisliteralxml property to allow service function to return XML as a string
|
||||
- soapclient: improve rpc/literal support
|
||||
- soapclient: allow XML string as call params in addition to array
|
||||
- soapclient: support document style and literal encoding when not using WSDL
|
||||
|
||||
2004-05-05, version 0.6.7
|
||||
- wsdl: serialize PHP objects for WSDL XML Schema complexTypes, in addition to associative arrays
|
||||
- wsdl: fix WSDL generation when there is no encodingStyle
|
||||
- soap_transport_http: suppress fsockopen warnings
|
||||
- soap_transport_http: detect socket timeouts when reading (0 bytes returned)
|
||||
- soap_transport_http: read chunked content "in-line" so it works on a persistent connection
|
||||
- nusoap_base: serialize boolean as true|false, not 1|0, to agree with XML Schema
|
||||
- nusoap_base: serialize array of struct differently than array of array
|
||||
|
||||
2004-06-25, version 0.6.8
|
||||
- soap_server: prefer gzip to deflate, since IE does not like our deflate
|
||||
- soap_server: move webDescription to the wsdl class
|
||||
- soap_server: allow class and instance method calls for service (thanks Ingo Fischer and Roland Knall)
|
||||
- wsdl: get webDescription from the soap_server class
|
||||
- wsdl: allow compression from the server
|
||||
- wsdl: fix serialization of soapval without a type
|
||||
- wsdl: propagate debug value from query string to SOAP endpoint in programmatic WSDL generation
|
||||
- nusoap_base: add anyType, anySimpleType for 2001 XML Schema
|
||||
- nusoap_base: provide additional debug functions
|
||||
- soap_transport_http: ignore Content-Length when chunked encoding is used
|
||||
- soap_transport_http: remove ':' from username for Basic authentication (cf. RFC 2617)
|
||||
- soap_transport_http: urldecode username and password taken from URL
|
||||
- soap_transport_http: use raw inflate/deflate for IE/IIS compatibility, rather than having Zlib headers according to HTTP 1.1 spec
|
||||
- soap_transport_http: attempt to handle the case when both the service application and Web server compress the response
|
||||
- soapclient: when creating proxy methods, replace '.' in operation name with '__' in function name
|
||||
- soapclient: initialize requestHeaders in proxy
|
||||
- general: use new debug methods; never access debug_str directly
|
||||
|
||||
2004-09-30, version 0.6.8
|
||||
- soapclient: do not allow getProxy call when WSDL is not used
|
||||
- soapclient: use ISO-8859-1 as the charset if not specified in the Content-Type header
|
||||
- soapclient: when an empty string is specified for the call namespace, do not put the method element in a namespace
|
||||
- soapclient: let soap_transport_http check for SSL support
|
||||
- soapclient: have proxy inherit soap_defencoding from the client from which it is generated
|
||||
- soapclient: do not assume that 'ns1' is an unused namespace prefix; always generate namespace prefixes randomly
|
||||
- soap_parser: compare any encoding in the XML declaration to the charset from the HTTP Content-Type header (thanks Ingo Fischer)
|
||||
- soap_parser: improve parse repeated element name into an array (de-serializes doc/lit array into a PHP array when there is more than 1 array element)
|
||||
- soap_server: use ISO-8859-1 as the charset if not specified in the Content-Type header
|
||||
- soap_server: allow suppression of automatic UTF-8 decoding
|
||||
- soap_server: fix a bug when call_user_func_array() is used
|
||||
- soap_transport_http: correct digest authentication through a proxy
|
||||
- wsdl: serialize SOAP-ENC types similarly to XSD types
|
||||
- xmlschema: force unprefixed type into default namespace
|
||||
- xmlschema: fix serialization of definition of simple types
|
||||
|
||||
2004-10-01, version 0.6.8
|
||||
- soap_parser: handle default namespace attributes
|
||||
- soap_server: add default_utf8 field
|
||||
- soap_server: support literal encoding (with RPC style)
|
||||
- soap_transport_http: parse HTTP status and generate error for 300, 302-307, 400, 401-417, 501-505 (thanks for the idea Ghislain)
|
||||
- soap_transport_http: follow HTTP redirection (HTTP status 301 and Location header) (thanks for the idea Ghislain)
|
||||
- xmlschema: allow any attributes to be specified in an element of a complexType, e.g., abstract, default, form, minOccurs, maxOccurs, nillable (thanks Jirka Pech for the original patch)
|
||||
|
||||
2004-10-02, version 0.6.8
|
||||
- soapclient: read/write cookies (thanks Ingo)
|
||||
- soap_server: change faultcode on non-resendable faults to Client
|
||||
- soap_transport_http: read/write cookies (thanks Ingo)
|
||||
|
||||
2004-10-05, version 0.6.8
|
||||
- wsdl: add addElement method
|
||||
- wsdl: support the document style in the register method
|
||||
- xmlschema: parse unnamed simpleTypes, rather than ignoring them
|
||||
- xmlschema: include untyped elements when parsing a complexType
|
||||
- xmlschema: add addElement method
|
||||
|
||||
2004-10-14, version 0.6.8
|
||||
- soapclient: support client certificates
|
||||
- soap_parser: deserialize attributes, prefixing names with "!"
|
||||
- soap_server: notify the client with HTML when WSDL is requested but not supported by service
|
||||
- soap_transport_http: support client certificates
|
||||
- wsdl: support defaults for elements of a complexType
|
||||
- wsdl: serialize elements from complexType extension base
|
||||
- wsdl: serialize data (associative array elements) as attributes according to XML Schema
|
||||
- xmlschema: record extension base if present for a complexType
|
||||
|
||||
2004-12-15, version 0.6.8
|
||||
- nusoap_base: add 2000 XML Schema (rare, but used by Akamai)
|
||||
- soap_parser: avoid deserializing more common attributes that are not data
|
||||
- soap_parser: be lax when HTTP specifies ISO-8859-1 (the default) and XML specifies UTF-8 (the norm)
|
||||
- soap_server: account for the fact that get_class_methods returns methods in all lower case (thanks Steve Haldane)
|
||||
- soap_transport_http: parse digest info that includes '=' in the data (thanks Jinsuk Kim)
|
||||
- wsdl: feably handle some cases for literal serialization of form="unqualified" elements
|
||||
- wsdl: don't serialize the decimal portion of a PHP double when the XML type is long
|
||||
- wsdl: fix serialization of attributes for complexType that is an extension
|
||||
- wsdlcache: enhance diagnostics
|
||||
- xmlschema: handle untyped elements
|
||||
- xmlschema: handle WSDL for SOAP Array that uses the base attribute plus a sequence of element
|
||||
|
||||
2005-01-22, version 0.6.8
|
||||
- wsdl: allow an element in one schema to have a type from another schema
|
||||
|
||||
2005-01-24, version 0.6.8
|
||||
- xmlschema: correctly parse nested complexType definitions
|
||||
|
||||
2005-02-14, version 0.6.8
|
||||
- nusoap_base: fix a bug in which attributes were sometimes not serialized with a value
|
||||
- nusoap_base: improve serialization of null values (thanks Dominique Stender)
|
||||
- soap_parser: parse null values by handling the nil attribute (thanks Dominique Stender)
|
||||
- soap_server: set character encoding for a fault to be the same as for the server (thanks Mark Scott)
|
||||
- soap_server: correctly check for null value returned from method when WSDL is used (without WSDL, cannot distinguish whether NULL or void return is desired)
|
||||
- soapclient: for document style, call should always return an array rooted at the response part (all bets are off when there are multiple parts)
|
||||
- xmlschema: save enumeration values parsed from WSDL
|
||||
|
||||
2005-02-10, version 0.6.9
|
||||
- soapclient: only set SOAP headers when they are specified in call params (so setHeaders still works)
|
||||
|
||||
2005-04-04, version 0.6.9
|
||||
- soap_server: use get_class instead of is_a (thanks Thomas Noel)
|
||||
- soapclient: use get_class instead of is_a (thanks Thomas Noel)
|
||||
- soapclient: add setEndpoint method
|
||||
- soap_transport_http: fix client certificates (thanks Doug Anarino and Eryan Eriobowo)
|
||||
|
||||
2005-04-29, version 0.6.9
|
||||
- nusoap_base: add global variable and methods for setting debug level
|
||||
- nusoap_base: use xsd:anyType instead of xsd:ur-type to serialize arrays with multiple element types (thanks Ingo Fischer)
|
||||
- nusoap_base: expand entities in attributes (thanks Gaetano Giunta)
|
||||
- soapclient: call parent constructor
|
||||
- soapval: call parent constructor
|
||||
- soap_fault: call parent constructor
|
||||
- soap_parser: call parent constructor
|
||||
- soap_server: assume get_class_methods always returns lower case for PHP 4.x only
|
||||
- soap_server: call parent constructor
|
||||
- soap_transport_http: do nothing in setEncoding if gzdeflate is not present (thanks Franck Touanen for pointing this out)
|
||||
- soap_transport_http: fix check for server request for digest authentication (thanks Mark Spavin)
|
||||
- soap_transport_http: call parent constructor
|
||||
- wsdl: fix documentation page popup of one method after another (thanks Owen)
|
||||
- wsdl: call parent constructor
|
||||
- wsdl: expand entities in attributes (thanks Gaetano Giunta)
|
||||
- xmlschema: call parent constructor
|
||||
|
||||
2005-06-03, version 0.6.9
|
||||
- nusoap_base: serialize empty arrays as having elements xsd:anyType[0]
|
||||
- nusoap_base: add encodingStyle parameter to serializeEnvelope
|
||||
- nusoap_base: serialize xsi:type with nil values
|
||||
- nusoap_base: improve debug and comments
|
||||
- soap_parser: correctly parse an empty array to an empty array, not an empty string
|
||||
- soap_parser: improve debug and comments
|
||||
- soap_server: specify encodingStyle for envelope when WSDL is used
|
||||
- soapclient: factor out new getProxyClassCode method
|
||||
- soapclient: specify encodingStyle for envelope
|
||||
- soapclient: improve debug and comments
|
||||
- wsdl: add namespace for Apache SOAP types if a variable of such type is serialized
|
||||
- wsdl: serialize nil value for nillable elements when no value is provided
|
||||
- wsdl: serialize xsi:type with nil values
|
||||
- wsdl: copy attributes as well as elements to an element from its complexType
|
||||
- wsdl: specify encodingStyle for operations
|
||||
- wsdl: improve debug and comments
|
||||
- xmlschema: improve debug and comments
|
||||
|
||||
2005-06-03, version 0.7.0
|
||||
- nusoap_base: improve debug and comments
|
||||
- nusoap_base: fix version, which should have been 0.7.0 since 2005-03-04
|
||||
|
||||
2005-06-06, version 0.7.1
|
||||
- nusoap_base: adjust numeric element names for serialization, instead of forcing them to 'soapVal'
|
||||
- nusoapmime: add type=text/xml to multipart/related (thanks Emmanuel Cordonnier)
|
||||
- soap_fault: fix serialization of detail
|
||||
- soap_server: check required parameters for register method
|
||||
- soap_server: when getallheaders is used, massage header names
|
||||
- soap_server: use SOAPAction to determine operation when doc/lit service does not wrap parameters in an element with the method name (thanks Peter Hrastnik)
|
||||
- soap_transport_http: correctly handle multiple HTTP/1.1 100 responses for https (thanks Jan Slabon)
|
||||
- wsdl: fixed documentation for addComplexType (thanks Csintalan Ádám)
|
||||
- wsdl: serialize array data when maxOccurs = 'unbounded' OR maxOccurs > 1 (thanks Dominique Schreckling)
|
||||
- wsdl: when serializing a string == 'false' as a boolean, set the value to false
|
||||
- wsdl: when serializing a complexType, require the PHP value supplied to be an array
|
||||
|
||||
2005-07-01, version 0.7.1
|
||||
- nusoap_base: Allow SOAP headers to be supplied as an array like parameters
|
||||
- soap_parser: de-serialize simpleContent that accompanies complexContent
|
||||
- soap_server: append debug information when programmatically-defined WSDL is returned
|
||||
- soap_transport_http: Add debug when an outgoing header is set
|
||||
- soapclient: Allow SOAP headers to be supplied as an array like parameters
|
||||
- xmlschema: serialize attributes more generally, rather than assuming they are for SOAP 1.1 Array
|
||||
- wsdl: when serializing, look up types by namespace, not prefix (simple programmatic doc/lit WSDL now seems to work)
|
||||
- wsdl: process namespace declarations first when parsing an element
|
||||
|
||||
2005-07-27, version 0.7.1
|
||||
- nusoap_base: do not override supplied element name with class name when serializing an object in serialize_val
|
||||
- nusoap_base: remove http://soapinterop.org/xsd (si) from namespaces array
|
||||
- nusoapmime: add nusoapservermime class to implement MIME attachments on the server
|
||||
- soap_fault: improve documentation
|
||||
- soap_server: improve documentation
|
||||
- soap_server: make consistent use of _SERVER and HTTP_SERVER_VARS
|
||||
- soap_server: make all incoming HTTP header keys lower case
|
||||
- soap_server: add hook functions to support subclassing for MIME attachments
|
||||
- soap_transport_http: remove an unnecessary global statement
|
||||
- soapclient: when creating a proxy, make $params within each function an associative array
|
||||
- soapval: improve documentation
|
||||
- wsdl: when serializing complexType elements, used typed serialization if there is either a type or a reference for the element
|
||||
- wsdl: allow PHP objects to be serialized as SOAP structs in serializeType
|
||||
- wsdl: for WSDL and XML Schema imports, don't forget to use the TCP port number (thanks Luca GIOPPO)
|
||||
- wsdl: make consistent use of _SERVER and HTTP_SERVER_VARS
|
||||
- xmlschema: improve documentation
|
||||
|
||||
2005-07-31, version 0.7.2
|
||||
- nusoap_base: correctly serialize attributes in serialize_val (thanks Hidran Arias)
|
||||
- soap_parser: when resolving references, do not assume that buildVal returns an array (thanks Akshell)
|
||||
- soap_parser: removed decode_entities, which does not work (thanks Martin Sarsale)
|
||||
- soap_server: fix a bug parsing headers from _SERVER and HTTP_SERVER_VARS (thanks Bert Catsburg)
|
||||
- soap_server: parse all "headers" from HTTP_SERVER_VARS (not just HTTP_*)
|
||||
- soap_server: use PHP_SELF instead of SCRIPT_NAME for WSDL endpoint
|
||||
- soap_server: when generating a fault while debug_flag is true, put debug into faultdetail
|
||||
- wsdl: add enumeration parameter to addSimpleType
|
||||
- xmlschema: add enumeration parameter to addSimpleType
|
||||
|
||||
2006-02-02, version 0.7.2
|
||||
- soapclient: initialize paramArrayStr to improve proxy generation
|
||||
- soap_parser: handle PHP5 soapclient's incorrect transmission of WSDL-described SOAP encoded arrays.
|
||||
- soap_server: don't assume _SERVER['HTTPS'] is set; try HTTP_SERVER_VARS['HTTPS'] if it is not
|
||||
- soap_server: "flatten out" the parameter array to call_user_func_array (thanks André Mamitzsch)
|
||||
- soap_server: make thrown exceptions conform to specs
|
||||
- wsdl: use serialize_val to serialize an array when the XSD type is soapenc:Array (JBoss/Axis does this)
|
||||
- wsdl: change formatting of serialized XML for the WSDL
|
||||
- xmlschema: change formatting of namespaces when serializing XML for the schema
|
||||
|
||||
2006-04-07, version 0.7.2
|
||||
- soap_server: if methodparams is not an array, call call_user_func_array with an empty array (thanks Eric Grossi)
|
||||
- wsdl: distinguish parts with element specified from those with type specified by suffixing element names with ^
|
||||
- wsdl: do a case-insensitive match on schema URI when looking for type
|
||||
- xmlschema: only get element (not type) when name has ^ suffix
|
||||
|
||||
2006-05-16, version 0.7.2
|
||||
- soapclient: add getHeader to get parsed SOAP Header
|
||||
- soap_parser: check status when receiving Header or Body element
|
||||
- soap_parser: add soapheader
|
||||
- soap_server: add requestHeader with parsed SOAP Header
|
||||
|
||||
2006-06-15, version 0.7.2
|
||||
- wsdl: fix bug in addComplexType (thanks Maarten Meijer)
|
||||
- soap_transport_http: change cURL message
|
||||
|
||||
2007-03-19, version 0.7.2
|
||||
- soapclient: declare as nusoapclient, then also subclass soapclient if SOAP extension not loaded
|
||||
- soapclientmime: declare as nusoapclientmime, then also subclass soapclientmime if SOAP extension not loaded
|
||||
|
||||
2007-03-28, version 0.7.2
|
||||
- nusoap_base: fix serialization of a soapval when its value is a soapval
|
||||
- soapval: fix serialization of a soapval when its value is a soapval
|
||||
- soapval: add __toString (cf. http://article.gmane.org/gmane.comp.php.nusoap.general/2776)
|
||||
- nusoapclient: use lazy retrieval of WSDL instead of always getting it in the constructor
|
||||
- nusoapclient: fix getProxy that was broken in last revision
|
||||
- wsdl: add ability to set authorization credentials and retrieve WSDL outside of constructor
|
||||
|
||||
2007-04-05, version 0.7.2
|
||||
- nusoapclientmime: don't rely exclusively on Content-Disposition to distinguish the root part from attachment; also check Content-Type (thanks Ben Bosman)
|
||||
- nusoapclientmime: obey RFC 2045 Section 5.1 (thanks Chris Butler)
|
||||
- nusoapservermime: don't rely exclusively on Content-Disposition to distinguish the root part from attachment; also check Content-Type (thanks Ben Bosman)
|
||||
- nusoapservermime: obey RFC 2045 Section 5.1 (thanks Chris Butler)
|
||||
- nusoap_base: remove extra whitespace from some XML elements
|
||||
- nusoap_base: allow SOAP headers to be specified as an associative array (thanks Unique)
|
||||
- nusoap_base: implement __toString
|
||||
- nusoap_base: improve doc accuracy and consistency (thanks Martin K?gler)
|
||||
- iso8601_to_timestamp: avoid problem with negative hours after calculation, etc. (thanks Guntram Trebs)
|
||||
- nusoapclient: support user-settable cURL options (thanks Ciprian Popovici)
|
||||
- nusoapclient: call SOAP 1.2 binding operations if no SOAP 1.1 present (there is no reason to believe this will always work!)
|
||||
- nusoapclient: improve doc accuracy and consistency (thanks Martin K?gler)
|
||||
- soap_server: don't try to use eval to call function when any parameter is an object
|
||||
- soap_server: don't print return value within debug string; returned objects would need __toString in PHP 5.2
|
||||
- soap_server: use URL scheme for WSDL access as the scheme in SOAPAction
|
||||
- soap_server: strip port number from server name (some FastCGI implementations include port in server name)
|
||||
- soap_transport_http: support user-settable cURL options (thanks Ciprian Popovici)
|
||||
- soap_transport_http: use cURL for NTLM authentication
|
||||
- soap_transport_http: make digest authentication work for GET as well as POST
|
||||
- soap_transport_http: improve doc accuracy and consistency (thanks Martin K?gler)
|
||||
- soapval: remove __toString
|
||||
- wsdl: set operation style if necessary, but do not override one already provided (thanks Raffaele Capobianco)
|
||||
- wsdl: check SOAP 1.2 binding operations if no SOAP 1.1 present
|
||||
- wsdl: improve doc accuracy and consistency (thanks Martin K?gler)
|
||||
- xmlschema: fix simpleType serialization
|
||||
- xmlschema: improve doc accuracy and consistency (thanks Martin K?gler)
|
||||
|
||||
2007-04-09, version 0.7.2
|
||||
- nusoapclient: set decode_utf8 when creating a proxy (thanks Dmitri Dmitrienko)
|
||||
- nusoapclient: rename class to nusoap_client
|
||||
- soap_fault: also provide a class named nusoap_fault
|
||||
- soap_parser: also provide a class named nusoap_parser
|
||||
- soap_server: also provide a class named nusoap_server
|
||||
- soap_transport_http: skip HTTP responses 301 and 401 when using cURL
|
||||
- soap_transport_http: don't force HTTP Connection header when using cURL
|
||||
- soap_transport_http: don't set HTTP Host and Content-Length headers when using cURL
|
||||
- soap_transport_http: support CURLOPT_SSLCERTPASSWD (thanks David Blanco)
|
||||
- wsdl: support user-settable cURL options (thanks Ciprian Popovici)
|
||||
- wsdl: serialize parameters for non-SOAP 1.1 binding operations (there is no reason to believe this will always work!)
|
||||
- xmlschema: also provide a class named nusoap_xmlschema
|
||||
- nusoapclientmime: rename class to nusoap_client_mime
|
||||
- nusoapservermime: rename class to nusoap_server_mime
|
||||
|
||||
2007-04-11, version 0.7.2
|
||||
- nusoap_client: enable cURL usage to be forced (thanks Giunta Gaetano)
|
||||
- soap_transport_http: enable cURL proxy usage (thanks Giunta Gaetano)
|
||||
- soap_transport_http: enable cURL usage to be forced (thanks Giunta Gaetano)
|
||||
- soap_transport_http: use cURL's HTTP authentication options for basic, digest
|
||||
- wsdl: enable cURL usage to be forced (thanks Giunta Gaetano)
|
||||
|
||||
2007-04-12, version 0.7.2
|
||||
- nusoap_client: add debug
|
||||
- nusoap_xmlschema: don't add elements of complexTypes to elements array (thanks Heiko Hund)
|
||||
- soap_transport_http: set cURL connection timeout if supported
|
||||
- soap_transport_http: add debug when setting cURL option
|
||||
- soap_transport_http: fix digest authentication broken in previous revision
|
||||
- wsdl: add debug
|
||||
- wsdlcache: address some issues with non-existing cache-files and PHP Warnings which came in such cases (thanks Ingo Fischer)
|
||||
- wsdlcache: change class name to nusoap_wsdlcache
|
||||
|
||||
2007-04-13, version 0.7.2
|
||||
- wsdl: wrap parameters if unwrapped values are supplied and WSDL specifies Microsoft-style wrapping
|
||||
|
||||
2007-04-16, version 0.7.2
|
||||
- nusoap_base: avoid warning in getDebugAsXMLComment
|
||||
- nusoap_client: small debug change
|
||||
- nusoap_client_mime: set responseData when the root part is found
|
||||
|
||||
2007-04-17, version 0.7.2
|
||||
- soap_transport_http: improve detection of undefined cURL options (thanks Ingo Fischer)
|
||||
|
||||
2007-05-28, version 0.7.2
|
||||
- soap_transport_http: support digest authentication opaque feature (cf. RFC 2617) (thanks Daniel Lacroix)
|
||||
- soap_transport_http: check safe_mode and open_basedir before setting CURLOPT_FOLLOWLOCATION
|
||||
- soap_transport_http: skip "HTTP/1.0 200 Connection established" header when cURL returns it (thanks Raimund Jacob)
|
||||
- nusoap_client: improve handling when getProxy is called and WSDL is not being used
|
||||
- nusoap_base: add comments about which specifications are used/implemented by NuSOAP
|
||||
- nusoap_xmlschema: create names for unnamed types that are unique by scope within XML Schema
|
||||
|
||||
2007-06-11, version 0.7.2
|
||||
- wsdl: wrap return value if unwrapped value is supplied and WSDL specifies Microsoft-style wrapping
|
||||
|
||||
2007-06-22, version 0.7.2
|
||||
- nusoap_xmlschema: fix serialization of simpleType restriction (thanks Rizwan Tejpar)
|
||||
|
||||
2007-07-30, version 0.7.2
|
||||
- nusoap_server: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras)
|
||||
- nusoap_client: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras)
|
||||
|
||||
2007-10-21, version 0.7.2
|
||||
- nusoap_server: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras)
|
||||
- nusoap_client: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras)
|
||||
|
||||
2007-10-26, version 0.7.2
|
||||
- nusoap_server: Fix munging of _SERVER variables that start with HTTP_ (thanks Thomas Wieczorek)
|
||||
|
||||
2007-10-30, version 0.7.2
|
||||
- nusoap_xmlschema: Serialize values for elementFormDefault, attributeFormDefault
|
||||
- wsdl: Improve consistency between doc/lit schema auto-wrapping and client's parsed schema
|
||||
- nusoap_server: Correct bug that placed encodingType in Envelope for doc/lit
|
||||
- nusoap_server: Specify elementFormDefault for schema within doc/lit wsdl
|
||||
|
||||
2007-10-31, version 0.7.2
|
||||
- wsdl: Fix typo in parametersMatchWrapped (thanks Sam Stepanyan)
|
||||
- soap_transport_http: Fix three typos in setProxy (thanks Sam Stepanyan)
|
||||
- nusoap_xmlschema: Fix typo in serializeTypeDef (thanks Sam Stepanyan)
|
984
html/afnic/lib/class.nusoap_base.php
Normal file
984
html/afnic/lib/class.nusoap_base.php
Normal file
@ -0,0 +1,984 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
$Id: class.nusoap_base.php,v 1.51 2007/11/06 15:17:46 snichol Exp $
|
||||
|
||||
NuSOAP - Web Services Toolkit for PHP
|
||||
|
||||
Copyright (c) 2002 NuSphere Corporation
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
The NuSOAP project home is:
|
||||
http://sourceforge.net/projects/nusoap/
|
||||
|
||||
The primary support for NuSOAP is the mailing list:
|
||||
nusoap-general@lists.sourceforge.net
|
||||
|
||||
If you have any questions or comments, please email:
|
||||
|
||||
Dietrich Ayala
|
||||
dietrich@ganx4.com
|
||||
http://dietrich.ganx4.com/nusoap
|
||||
|
||||
NuSphere Corporation
|
||||
http://www.nusphere.com
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
* Some of the standards implmented in whole or part by NuSOAP:
|
||||
*
|
||||
* SOAP 1.1 (http://www.w3.org/TR/2000/NOTE-SOAP-20000508/)
|
||||
* WSDL 1.1 (http://www.w3.org/TR/2001/NOTE-wsdl-20010315)
|
||||
* SOAP Messages With Attachments (http://www.w3.org/TR/SOAP-attachments)
|
||||
* XML 1.0 (http://www.w3.org/TR/2006/REC-xml-20060816/)
|
||||
* Namespaces in XML 1.0 (http://www.w3.org/TR/2006/REC-xml-names-20060816/)
|
||||
* XML Schema 1.0 (http://www.w3.org/TR/xmlschema-0/)
|
||||
* RFC 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
|
||||
* RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1
|
||||
* RFC 2617 HTTP Authentication: Basic and Digest Access Authentication
|
||||
*/
|
||||
|
||||
/* load classes
|
||||
|
||||
// necessary classes
|
||||
require_once('class.soapclient.php');
|
||||
require_once('class.soap_val.php');
|
||||
require_once('class.soap_parser.php');
|
||||
require_once('class.soap_fault.php');
|
||||
|
||||
// transport classes
|
||||
require_once('class.soap_transport_http.php');
|
||||
|
||||
// optional add-on classes
|
||||
require_once('class.xmlschema.php');
|
||||
require_once('class.wsdl.php');
|
||||
|
||||
// server class
|
||||
require_once('class.soap_server.php');*/
|
||||
|
||||
// class variable emulation
|
||||
// cf. http://www.webkreator.com/php/techniques/php-static-class-variables.html
|
||||
$GLOBALS['_transient']['static']['nusoap_base']->globalDebugLevel = 9;
|
||||
|
||||
/**
|
||||
*
|
||||
* nusoap_base
|
||||
*
|
||||
* @author Dietrich Ayala <dietrich@ganx4.com>
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @version $Id: class.nusoap_base.php,v 1.51 2007/11/06 15:17:46 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_base {
|
||||
/**
|
||||
* Identification for HTTP headers.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $title = 'NuSOAP';
|
||||
/**
|
||||
* Version for HTTP headers.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $version = '0.7.3';
|
||||
/**
|
||||
* CVS revision for HTTP headers.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $revision = '$Revision: 1.51 $';
|
||||
/**
|
||||
* Current error string (manipulated by getError/setError)
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $error_str = '';
|
||||
/**
|
||||
* Current debug string (manipulated by debug/appendDebug/clearDebug/getDebug/getDebugAsXMLComment)
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $debug_str = '';
|
||||
/**
|
||||
* toggles automatic encoding of special characters as entities
|
||||
* (should always be true, I think)
|
||||
*
|
||||
* @var boolean
|
||||
* @access private
|
||||
*/
|
||||
var $charencoding = true;
|
||||
/**
|
||||
* the debug level for this instance
|
||||
*
|
||||
* @var integer
|
||||
* @access private
|
||||
*/
|
||||
var $debugLevel;
|
||||
|
||||
/**
|
||||
* set schema version
|
||||
*
|
||||
* @var string
|
||||
* @access public
|
||||
*/
|
||||
var $XMLSchemaVersion = 'http://www.w3.org/2001/XMLSchema';
|
||||
|
||||
/**
|
||||
* charset encoding for outgoing messages
|
||||
*
|
||||
* @var string
|
||||
* @access public
|
||||
*/
|
||||
var $soap_defencoding = 'ISO-8859-1';
|
||||
//var $soap_defencoding = 'UTF-8';
|
||||
|
||||
/**
|
||||
* namespaces in an array of prefix => uri
|
||||
*
|
||||
* this is "seeded" by a set of constants, but it may be altered by code
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $namespaces = array(
|
||||
'SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/',
|
||||
'xsd' => 'http://www.w3.org/2001/XMLSchema',
|
||||
'xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
|
||||
'SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/'
|
||||
);
|
||||
|
||||
/**
|
||||
* namespaces used in the current context, e.g. during serialization
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $usedNamespaces = array();
|
||||
|
||||
/**
|
||||
* XML Schema types in an array of uri => (array of xml type => php type)
|
||||
* is this legacy yet?
|
||||
* no, this is used by the nusoap_xmlschema class to verify type => namespace mappings.
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $typemap = array(
|
||||
'http://www.w3.org/2001/XMLSchema' => array(
|
||||
'string'=>'string','boolean'=>'boolean','float'=>'double','double'=>'double','decimal'=>'double',
|
||||
'duration'=>'','dateTime'=>'string','time'=>'string','date'=>'string','gYearMonth'=>'',
|
||||
'gYear'=>'','gMonthDay'=>'','gDay'=>'','gMonth'=>'','hexBinary'=>'string','base64Binary'=>'string',
|
||||
// abstract "any" types
|
||||
'anyType'=>'string','anySimpleType'=>'string',
|
||||
// derived datatypes
|
||||
'normalizedString'=>'string','token'=>'string','language'=>'','NMTOKEN'=>'','NMTOKENS'=>'','Name'=>'','NCName'=>'','ID'=>'',
|
||||
'IDREF'=>'','IDREFS'=>'','ENTITY'=>'','ENTITIES'=>'','integer'=>'integer','nonPositiveInteger'=>'integer',
|
||||
'negativeInteger'=>'integer','long'=>'integer','int'=>'integer','short'=>'integer','byte'=>'integer','nonNegativeInteger'=>'integer',
|
||||
'unsignedLong'=>'','unsignedInt'=>'','unsignedShort'=>'','unsignedByte'=>'','positiveInteger'=>''),
|
||||
'http://www.w3.org/2000/10/XMLSchema' => array(
|
||||
'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double',
|
||||
'float'=>'double','dateTime'=>'string',
|
||||
'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'),
|
||||
'http://www.w3.org/1999/XMLSchema' => array(
|
||||
'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double',
|
||||
'float'=>'double','dateTime'=>'string',
|
||||
'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'),
|
||||
'http://soapinterop.org/xsd' => array('SOAPStruct'=>'struct'),
|
||||
'http://schemas.xmlsoap.org/soap/encoding/' => array('base64'=>'string','array'=>'array','Array'=>'array'),
|
||||
'http://xml.apache.org/xml-soap' => array('Map')
|
||||
);
|
||||
|
||||
/**
|
||||
* XML entities to convert
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
* @deprecated
|
||||
* @see expandEntities
|
||||
*/
|
||||
var $xmlEntities = array('quot' => '"','amp' => '&',
|
||||
'lt' => '<','gt' => '>','apos' => "'");
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function nusoap_base() {
|
||||
$this->debugLevel = $GLOBALS['_transient']['static']['nusoap_base']->globalDebugLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the global debug level, which applies to future instances
|
||||
*
|
||||
* @return integer Debug level 0-9, where 0 turns off
|
||||
* @access public
|
||||
*/
|
||||
function getGlobalDebugLevel() {
|
||||
return $GLOBALS['_transient']['static']['nusoap_base']->globalDebugLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the global debug level, which applies to future instances
|
||||
*
|
||||
* @param int $level Debug level 0-9, where 0 turns off
|
||||
* @access public
|
||||
*/
|
||||
function setGlobalDebugLevel($level) {
|
||||
$GLOBALS['_transient']['static']['nusoap_base']->globalDebugLevel = $level;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the debug level for this instance
|
||||
*
|
||||
* @return int Debug level 0-9, where 0 turns off
|
||||
* @access public
|
||||
*/
|
||||
function getDebugLevel() {
|
||||
return $this->debugLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the debug level for this instance
|
||||
*
|
||||
* @param int $level Debug level 0-9, where 0 turns off
|
||||
* @access public
|
||||
*/
|
||||
function setDebugLevel($level) {
|
||||
$this->debugLevel = $level;
|
||||
}
|
||||
|
||||
/**
|
||||
* adds debug data to the instance debug string with formatting
|
||||
*
|
||||
* @param string $string debug data
|
||||
* @access private
|
||||
*/
|
||||
function debug($string){
|
||||
if ($this->debugLevel > 0) {
|
||||
$this->appendDebug($this->getmicrotime().' '.get_class($this).": $string\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* adds debug data to the instance debug string without formatting
|
||||
*
|
||||
* @param string $string debug data
|
||||
* @access public
|
||||
*/
|
||||
function appendDebug($string){
|
||||
if ($this->debugLevel > 0) {
|
||||
// it would be nice to use a memory stream here to use
|
||||
// memory more efficiently
|
||||
$this->debug_str .= $string;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* clears the current debug data for this instance
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function clearDebug() {
|
||||
// it would be nice to use a memory stream here to use
|
||||
// memory more efficiently
|
||||
$this->debug_str = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the current debug data for this instance
|
||||
*
|
||||
* @return debug data
|
||||
* @access public
|
||||
*/
|
||||
function &getDebug() {
|
||||
// it would be nice to use a memory stream here to use
|
||||
// memory more efficiently
|
||||
return $this->debug_str;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the current debug data for this instance as an XML comment
|
||||
* this may change the contents of the debug data
|
||||
*
|
||||
* @return debug data as an XML comment
|
||||
* @access public
|
||||
*/
|
||||
function &getDebugAsXMLComment() {
|
||||
// it would be nice to use a memory stream here to use
|
||||
// memory more efficiently
|
||||
while (strpos($this->debug_str, '--')) {
|
||||
$this->debug_str = str_replace('--', '- -', $this->debug_str);
|
||||
}
|
||||
$ret = "<!--\n" . $this->debug_str . "\n-->";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* expands entities, e.g. changes '<' to '<'.
|
||||
*
|
||||
* @param string $val The string in which to expand entities.
|
||||
* @access private
|
||||
*/
|
||||
function expandEntities($val) {
|
||||
if ($this->charencoding) {
|
||||
$val = str_replace('&', '&', $val);
|
||||
$val = str_replace("'", ''', $val);
|
||||
$val = str_replace('"', '"', $val);
|
||||
$val = str_replace('<', '<', $val);
|
||||
$val = str_replace('>', '>', $val);
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns error string if present
|
||||
*
|
||||
* @return mixed error string or false
|
||||
* @access public
|
||||
*/
|
||||
function getError(){
|
||||
if($this->error_str != ''){
|
||||
return $this->error_str;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* sets error string
|
||||
*
|
||||
* @return boolean $string error string
|
||||
* @access private
|
||||
*/
|
||||
function setError($str){
|
||||
$this->error_str = $str;
|
||||
}
|
||||
|
||||
/**
|
||||
* detect if array is a simple array or a struct (associative array)
|
||||
*
|
||||
* @param mixed $val The PHP array
|
||||
* @return string (arraySimple|arrayStruct)
|
||||
* @access private
|
||||
*/
|
||||
function isArraySimpleOrStruct($val) {
|
||||
$keyList = array_keys($val);
|
||||
foreach ($keyList as $keyListValue) {
|
||||
if (!is_int($keyListValue)) {
|
||||
return 'arrayStruct';
|
||||
}
|
||||
}
|
||||
return 'arraySimple';
|
||||
}
|
||||
|
||||
/**
|
||||
* serializes PHP values in accordance w/ section 5. Type information is
|
||||
* not serialized if $use == 'literal'.
|
||||
*
|
||||
* @param mixed $val The value to serialize
|
||||
* @param string $name The name (local part) of the XML element
|
||||
* @param string $type The XML schema type (local part) for the element
|
||||
* @param string $name_ns The namespace for the name of the XML element
|
||||
* @param string $type_ns The namespace for the type of the element
|
||||
* @param array $attributes The attributes to serialize as name=>value pairs
|
||||
* @param string $use The WSDL "use" (encoded|literal)
|
||||
* @param boolean $soapval Whether this is called from soapval.
|
||||
* @return string The serialized element, possibly with child elements
|
||||
* @access public
|
||||
*/
|
||||
function serialize_val($val,$name=false,$type=false,$name_ns=false,$type_ns=false,$attributes=false,$use='encoded',$soapval=false) {
|
||||
$this->debug("in serialize_val: name=$name, type=$type, name_ns=$name_ns, type_ns=$type_ns, use=$use, soapval=$soapval");
|
||||
$this->appendDebug('value=' . $this->varDump($val));
|
||||
$this->appendDebug('attributes=' . $this->varDump($attributes));
|
||||
|
||||
if (is_object($val) && get_class($val) == 'soapval' && (! $soapval)) {
|
||||
$this->debug("serialize_val: serialize soapval");
|
||||
$xml = $val->serialize($use);
|
||||
$this->appendDebug($val->getDebug());
|
||||
$val->clearDebug();
|
||||
$this->debug("serialize_val of soapval returning $xml");
|
||||
return $xml;
|
||||
}
|
||||
// force valid name if necessary
|
||||
if (is_numeric($name)) {
|
||||
$name = '__numeric_' . $name;
|
||||
} elseif (! $name) {
|
||||
$name = 'noname';
|
||||
}
|
||||
// if name has ns, add ns prefix to name
|
||||
$xmlns = '';
|
||||
if($name_ns){
|
||||
$prefix = 'nu'.rand(1000,9999);
|
||||
$name = $prefix.':'.$name;
|
||||
$xmlns .= " xmlns:$prefix=\"$name_ns\"";
|
||||
}
|
||||
// if type is prefixed, create type prefix
|
||||
if($type_ns != '' && $type_ns == $this->namespaces['xsd']){
|
||||
// need to fix this. shouldn't default to xsd if no ns specified
|
||||
// w/o checking against typemap
|
||||
$type_prefix = 'xsd';
|
||||
} elseif($type_ns){
|
||||
$type_prefix = 'ns'.rand(1000,9999);
|
||||
$xmlns .= " xmlns:$type_prefix=\"$type_ns\"";
|
||||
}
|
||||
// serialize attributes if present
|
||||
$atts = '';
|
||||
if($attributes){
|
||||
foreach($attributes as $k => $v){
|
||||
$atts .= " $k=\"".$this->expandEntities($v).'"';
|
||||
}
|
||||
}
|
||||
// serialize null value
|
||||
if (is_null($val)) {
|
||||
$this->debug("serialize_val: serialize null");
|
||||
if ($use == 'literal') {
|
||||
// TODO: depends on minOccurs
|
||||
$xml = "<$name$xmlns$atts/>";
|
||||
$this->debug("serialize_val returning $xml");
|
||||
return $xml;
|
||||
} else {
|
||||
if (isset($type) && isset($type_prefix)) {
|
||||
$type_str = " xsi:type=\"$type_prefix:$type\"";
|
||||
} else {
|
||||
$type_str = '';
|
||||
}
|
||||
$xml = "<$name$xmlns$type_str$atts xsi:nil=\"true\"/>";
|
||||
$this->debug("serialize_val returning $xml");
|
||||
return $xml;
|
||||
}
|
||||
}
|
||||
// serialize if an xsd built-in primitive type
|
||||
if($type != '' && isset($this->typemap[$this->XMLSchemaVersion][$type])){
|
||||
$this->debug("serialize_val: serialize xsd built-in primitive type");
|
||||
if (is_bool($val)) {
|
||||
if ($type == 'boolean') {
|
||||
$val = $val ? 'true' : 'false';
|
||||
} elseif (! $val) {
|
||||
$val = 0;
|
||||
}
|
||||
} else if (is_string($val)) {
|
||||
$val = $this->expandEntities($val);
|
||||
}
|
||||
if ($use == 'literal') {
|
||||
$xml = "<$name$xmlns$atts>$val</$name>";
|
||||
$this->debug("serialize_val returning $xml");
|
||||
return $xml;
|
||||
} else {
|
||||
$xml = "<$name$xmlns xsi:type=\"xsd:$type\"$atts>$val</$name>";
|
||||
$this->debug("serialize_val returning $xml");
|
||||
return $xml;
|
||||
}
|
||||
}
|
||||
// detect type and serialize
|
||||
$xml = '';
|
||||
switch(true) {
|
||||
case (is_bool($val) || $type == 'boolean'):
|
||||
$this->debug("serialize_val: serialize boolean");
|
||||
if ($type == 'boolean') {
|
||||
$val = $val ? 'true' : 'false';
|
||||
} elseif (! $val) {
|
||||
$val = 0;
|
||||
}
|
||||
if ($use == 'literal') {
|
||||
$xml .= "<$name$xmlns$atts>$val</$name>";
|
||||
} else {
|
||||
$xml .= "<$name$xmlns xsi:type=\"xsd:boolean\"$atts>$val</$name>";
|
||||
}
|
||||
break;
|
||||
case (is_int($val) || is_long($val) || $type == 'int'):
|
||||
$this->debug("serialize_val: serialize int");
|
||||
if ($use == 'literal') {
|
||||
$xml .= "<$name$xmlns$atts>$val</$name>";
|
||||
} else {
|
||||
$xml .= "<$name$xmlns xsi:type=\"xsd:int\"$atts>$val</$name>";
|
||||
}
|
||||
break;
|
||||
case (is_float($val)|| is_double($val) || $type == 'float'):
|
||||
$this->debug("serialize_val: serialize float");
|
||||
if ($use == 'literal') {
|
||||
$xml .= "<$name$xmlns$atts>$val</$name>";
|
||||
} else {
|
||||
$xml .= "<$name$xmlns xsi:type=\"xsd:float\"$atts>$val</$name>";
|
||||
}
|
||||
break;
|
||||
case (is_string($val) || $type == 'string'):
|
||||
$this->debug("serialize_val: serialize string");
|
||||
$val = $this->expandEntities($val);
|
||||
if ($use == 'literal') {
|
||||
$xml .= "<$name$xmlns$atts>$val</$name>";
|
||||
} else {
|
||||
$xml .= "<$name$xmlns xsi:type=\"xsd:string\"$atts>$val</$name>";
|
||||
}
|
||||
break;
|
||||
case is_object($val):
|
||||
$this->debug("serialize_val: serialize object");
|
||||
if (get_class($val) == 'soapval') {
|
||||
$this->debug("serialize_val: serialize soapval object");
|
||||
$pXml = $val->serialize($use);
|
||||
$this->appendDebug($val->getDebug());
|
||||
$val->clearDebug();
|
||||
} else {
|
||||
if (! $name) {
|
||||
$name = get_class($val);
|
||||
$this->debug("In serialize_val, used class name $name as element name");
|
||||
} else {
|
||||
$this->debug("In serialize_val, do not override name $name for element name for class " . get_class($val));
|
||||
}
|
||||
foreach(get_object_vars($val) as $k => $v){
|
||||
$pXml = isset($pXml) ? $pXml.$this->serialize_val($v,$k,false,false,false,false,$use) : $this->serialize_val($v,$k,false,false,false,false,$use);
|
||||
}
|
||||
}
|
||||
if(isset($type) && isset($type_prefix)){
|
||||
$type_str = " xsi:type=\"$type_prefix:$type\"";
|
||||
} else {
|
||||
$type_str = '';
|
||||
}
|
||||
if ($use == 'literal') {
|
||||
$xml .= "<$name$xmlns$atts>$pXml</$name>";
|
||||
} else {
|
||||
$xml .= "<$name$xmlns$type_str$atts>$pXml</$name>";
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case (is_array($val) || $type):
|
||||
// detect if struct or array
|
||||
$valueType = $this->isArraySimpleOrStruct($val);
|
||||
if($valueType=='arraySimple' || ereg('^ArrayOf',$type)){
|
||||
$this->debug("serialize_val: serialize array");
|
||||
$i = 0;
|
||||
if(is_array($val) && count($val)> 0){
|
||||
foreach($val as $v){
|
||||
if(is_object($v) && get_class($v) == 'soapval'){
|
||||
$tt_ns = $v->type_ns;
|
||||
$tt = $v->type;
|
||||
} elseif (is_array($v)) {
|
||||
$tt = $this->isArraySimpleOrStruct($v);
|
||||
} else {
|
||||
$tt = gettype($v);
|
||||
}
|
||||
$array_types[$tt] = 1;
|
||||
// TODO: for literal, the name should be $name
|
||||
$xml .= $this->serialize_val($v,'item',false,false,false,false,$use);
|
||||
++$i;
|
||||
}
|
||||
if(count($array_types) > 1){
|
||||
$array_typename = 'xsd:anyType';
|
||||
} elseif(isset($tt) && isset($this->typemap[$this->XMLSchemaVersion][$tt])) {
|
||||
if ($tt == 'integer') {
|
||||
$tt = 'int';
|
||||
}
|
||||
$array_typename = 'xsd:'.$tt;
|
||||
} elseif(isset($tt) && $tt == 'arraySimple'){
|
||||
$array_typename = 'SOAP-ENC:Array';
|
||||
} elseif(isset($tt) && $tt == 'arrayStruct'){
|
||||
$array_typename = 'unnamed_struct_use_soapval';
|
||||
} else {
|
||||
// if type is prefixed, create type prefix
|
||||
if ($tt_ns != '' && $tt_ns == $this->namespaces['xsd']){
|
||||
$array_typename = 'xsd:' . $tt;
|
||||
} elseif ($tt_ns) {
|
||||
$tt_prefix = 'ns' . rand(1000, 9999);
|
||||
$array_typename = "$tt_prefix:$tt";
|
||||
$xmlns .= " xmlns:$tt_prefix=\"$tt_ns\"";
|
||||
} else {
|
||||
$array_typename = $tt;
|
||||
}
|
||||
}
|
||||
$array_type = $i;
|
||||
if ($use == 'literal') {
|
||||
$type_str = '';
|
||||
} else if (isset($type) && isset($type_prefix)) {
|
||||
$type_str = " xsi:type=\"$type_prefix:$type\"";
|
||||
} else {
|
||||
$type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"".$array_typename."[$array_type]\"";
|
||||
}
|
||||
// empty array
|
||||
} else {
|
||||
if ($use == 'literal') {
|
||||
$type_str = '';
|
||||
} else if (isset($type) && isset($type_prefix)) {
|
||||
$type_str = " xsi:type=\"$type_prefix:$type\"";
|
||||
} else {
|
||||
$type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"xsd:anyType[0]\"";
|
||||
}
|
||||
}
|
||||
// TODO: for array in literal, there is no wrapper here
|
||||
$xml = "<$name$xmlns$type_str$atts>".$xml."</$name>";
|
||||
} else {
|
||||
// got a struct
|
||||
$this->debug("serialize_val: serialize struct");
|
||||
if(isset($type) && isset($type_prefix)){
|
||||
$type_str = " xsi:type=\"$type_prefix:$type\"";
|
||||
} else {
|
||||
$type_str = '';
|
||||
}
|
||||
if ($use == 'literal') {
|
||||
$xml .= "<$name$xmlns$atts>";
|
||||
} else {
|
||||
$xml .= "<$name$xmlns$type_str$atts>";
|
||||
}
|
||||
foreach($val as $k => $v){
|
||||
// Apache Map
|
||||
if ($type == 'Map' && $type_ns == 'http://xml.apache.org/xml-soap') {
|
||||
$xml .= '<item>';
|
||||
$xml .= $this->serialize_val($k,'key',false,false,false,false,$use);
|
||||
$xml .= $this->serialize_val($v,'value',false,false,false,false,$use);
|
||||
$xml .= '</item>';
|
||||
} else {
|
||||
$xml .= $this->serialize_val($v,$k,false,false,false,false,$use);
|
||||
}
|
||||
}
|
||||
$xml .= "</$name>";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$this->debug("serialize_val: serialize unknown");
|
||||
$xml .= 'not detected, got '.gettype($val).' for '.$val;
|
||||
break;
|
||||
}
|
||||
$this->debug("serialize_val returning $xml");
|
||||
return $xml;
|
||||
}
|
||||
|
||||
/**
|
||||
* serializes a message
|
||||
*
|
||||
* @param string $body the XML of the SOAP body
|
||||
* @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array
|
||||
* @param array $namespaces optional the namespaces used in generating the body and headers
|
||||
* @param string $style optional (rpc|document)
|
||||
* @param string $use optional (encoded|literal)
|
||||
* @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded)
|
||||
* @return string the message
|
||||
* @access public
|
||||
*/
|
||||
function serializeEnvelope($body,$headers=false,$namespaces=array(),$style='rpc',$use='encoded',$encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'){
|
||||
// TODO: add an option to automatically run utf8_encode on $body and $headers
|
||||
// if $this->soap_defencoding is UTF-8. Not doing this automatically allows
|
||||
// one to send arbitrary UTF-8 characters, not just characters that map to ISO-8859-1
|
||||
|
||||
$this->debug("In serializeEnvelope length=" . strlen($body) . " body (max 1000 characters)=" . substr($body, 0, 1000) . " style=$style use=$use encodingStyle=$encodingStyle");
|
||||
$this->debug("headers:");
|
||||
$this->appendDebug($this->varDump($headers));
|
||||
$this->debug("namespaces:");
|
||||
$this->appendDebug($this->varDump($namespaces));
|
||||
|
||||
// serialize namespaces
|
||||
$ns_string = '';
|
||||
foreach(array_merge($this->namespaces,$namespaces) as $k => $v){
|
||||
$ns_string .= " xmlns:$k=\"$v\"";
|
||||
}
|
||||
if($encodingStyle) {
|
||||
$ns_string = " SOAP-ENV:encodingStyle=\"$encodingStyle\"$ns_string";
|
||||
}
|
||||
|
||||
// serialize headers
|
||||
if($headers){
|
||||
if (is_array($headers)) {
|
||||
$xml = '';
|
||||
foreach ($headers as $k => $v) {
|
||||
if (is_object($v) && get_class($v) == 'soapval') {
|
||||
$xml .= $this->serialize_val($v, false, false, false, false, false, $use);
|
||||
} else {
|
||||
$xml .= $this->serialize_val($v, $k, false, false, false, false, $use);
|
||||
}
|
||||
}
|
||||
$headers = $xml;
|
||||
$this->debug("In serializeEnvelope, serialized array of headers to $headers");
|
||||
}
|
||||
$headers = "<SOAP-ENV:Header>".$headers."</SOAP-ENV:Header>";
|
||||
}
|
||||
// serialize envelope
|
||||
return
|
||||
'<?xml version="1.0" encoding="'.$this->soap_defencoding .'"?'.">".
|
||||
'<SOAP-ENV:Envelope'.$ns_string.">".
|
||||
$headers.
|
||||
"<SOAP-ENV:Body>".
|
||||
$body.
|
||||
"</SOAP-ENV:Body>".
|
||||
"</SOAP-ENV:Envelope>";
|
||||
}
|
||||
|
||||
/**
|
||||
* formats a string to be inserted into an HTML stream
|
||||
*
|
||||
* @param string $str The string to format
|
||||
* @return string The formatted string
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function formatDump($str){
|
||||
$str = htmlspecialchars($str);
|
||||
return nl2br($str);
|
||||
}
|
||||
|
||||
/**
|
||||
* contracts (changes namespace to prefix) a qualified name
|
||||
*
|
||||
* @param string $qname qname
|
||||
* @return string contracted qname
|
||||
* @access private
|
||||
*/
|
||||
function contractQname($qname){
|
||||
// get element namespace
|
||||
//$this->xdebug("Contract $qname");
|
||||
if (strrpos($qname, ':')) {
|
||||
// get unqualified name
|
||||
$name = substr($qname, strrpos($qname, ':') + 1);
|
||||
// get ns
|
||||
$ns = substr($qname, 0, strrpos($qname, ':'));
|
||||
$p = $this->getPrefixFromNamespace($ns);
|
||||
if ($p) {
|
||||
return $p . ':' . $name;
|
||||
}
|
||||
return $qname;
|
||||
} else {
|
||||
return $qname;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* expands (changes prefix to namespace) a qualified name
|
||||
*
|
||||
* @param string $qname qname
|
||||
* @return string expanded qname
|
||||
* @access private
|
||||
*/
|
||||
function expandQname($qname){
|
||||
// get element prefix
|
||||
if(strpos($qname,':') && !ereg('^http://',$qname)){
|
||||
// get unqualified name
|
||||
$name = substr(strstr($qname,':'),1);
|
||||
// get ns prefix
|
||||
$prefix = substr($qname,0,strpos($qname,':'));
|
||||
if(isset($this->namespaces[$prefix])){
|
||||
return $this->namespaces[$prefix].':'.$name;
|
||||
} else {
|
||||
return $qname;
|
||||
}
|
||||
} else {
|
||||
return $qname;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the local part of a prefixed string
|
||||
* returns the original string, if not prefixed
|
||||
*
|
||||
* @param string $str The prefixed string
|
||||
* @return string The local part
|
||||
* @access public
|
||||
*/
|
||||
function getLocalPart($str){
|
||||
if($sstr = strrchr($str,':')){
|
||||
// get unqualified name
|
||||
return substr( $sstr, 1 );
|
||||
} else {
|
||||
return $str;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the prefix part of a prefixed string
|
||||
* returns false, if not prefixed
|
||||
*
|
||||
* @param string $str The prefixed string
|
||||
* @return mixed The prefix or false if there is no prefix
|
||||
* @access public
|
||||
*/
|
||||
function getPrefix($str){
|
||||
if($pos = strrpos($str,':')){
|
||||
// get prefix
|
||||
return substr($str,0,$pos);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* pass it a prefix, it returns a namespace
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @return mixed The namespace, false if no namespace has the specified prefix
|
||||
* @access public
|
||||
*/
|
||||
function getNamespaceFromPrefix($prefix){
|
||||
if (isset($this->namespaces[$prefix])) {
|
||||
return $this->namespaces[$prefix];
|
||||
}
|
||||
//$this->setError("No namespace registered for prefix '$prefix'");
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the prefix for a given namespace (or prefix)
|
||||
* or false if no prefixes registered for the given namespace
|
||||
*
|
||||
* @param string $ns The namespace
|
||||
* @return mixed The prefix, false if the namespace has no prefixes
|
||||
* @access public
|
||||
*/
|
||||
function getPrefixFromNamespace($ns) {
|
||||
foreach ($this->namespaces as $p => $n) {
|
||||
if ($ns == $n || $ns == $p) {
|
||||
$this->usedNamespaces[$p] = $n;
|
||||
return $p;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the time in ODBC canonical form with microseconds
|
||||
*
|
||||
* @return string The time in ODBC canonical form with microseconds
|
||||
* @access public
|
||||
*/
|
||||
function getmicrotime() {
|
||||
if (function_exists('gettimeofday')) {
|
||||
$tod = gettimeofday();
|
||||
$sec = $tod['sec'];
|
||||
$usec = $tod['usec'];
|
||||
} else {
|
||||
$sec = time();
|
||||
$usec = 0;
|
||||
}
|
||||
return strftime('%Y-%m-%d %H:%M:%S', $sec) . '.' . sprintf('%06d', $usec);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string with the output of var_dump
|
||||
*
|
||||
* @param mixed $data The variable to var_dump
|
||||
* @return string The output of var_dump
|
||||
* @access public
|
||||
*/
|
||||
function varDump($data) {
|
||||
ob_start();
|
||||
var_dump($data);
|
||||
$ret_val = ob_get_contents();
|
||||
ob_end_clean();
|
||||
return $ret_val;
|
||||
}
|
||||
|
||||
/**
|
||||
* represents the object as a string
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
function __toString() {
|
||||
return $this->varDump($this);
|
||||
}
|
||||
}
|
||||
|
||||
// XML Schema Datatype Helper Functions
|
||||
|
||||
//xsd:dateTime helpers
|
||||
|
||||
/**
|
||||
* convert unix timestamp to ISO 8601 compliant date string
|
||||
*
|
||||
* @param string $timestamp Unix time stamp
|
||||
* @param boolean $utc Whether the time stamp is UTC or local
|
||||
* @access public
|
||||
*/
|
||||
function timestamp_to_iso8601($timestamp,$utc=true){
|
||||
$datestr = date('Y-m-d\TH:i:sO',$timestamp);
|
||||
if($utc){
|
||||
$eregStr =
|
||||
'([0-9]{4})-'. // centuries & years CCYY-
|
||||
'([0-9]{2})-'. // months MM-
|
||||
'([0-9]{2})'. // days DD
|
||||
'T'. // separator T
|
||||
'([0-9]{2}):'. // hours hh:
|
||||
'([0-9]{2}):'. // minutes mm:
|
||||
'([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss...
|
||||
'(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
|
||||
|
||||
if(ereg($eregStr,$datestr,$regs)){
|
||||
return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]);
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
return $datestr;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* convert ISO 8601 compliant date string to unix timestamp
|
||||
*
|
||||
* @param string $datestr ISO 8601 compliant date string
|
||||
* @access public
|
||||
*/
|
||||
function iso8601_to_timestamp($datestr){
|
||||
$eregStr =
|
||||
'([0-9]{4})-'. // centuries & years CCYY-
|
||||
'([0-9]{2})-'. // months MM-
|
||||
'([0-9]{2})'. // days DD
|
||||
'T'. // separator T
|
||||
'([0-9]{2}):'. // hours hh:
|
||||
'([0-9]{2}):'. // minutes mm:
|
||||
'([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss...
|
||||
'(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
|
||||
if(ereg($eregStr,$datestr,$regs)){
|
||||
// not utc
|
||||
if($regs[8] != 'Z'){
|
||||
$op = substr($regs[8],0,1);
|
||||
$h = substr($regs[8],1,2);
|
||||
$m = substr($regs[8],strlen($regs[8])-2,2);
|
||||
if($op == '-'){
|
||||
$regs[4] = $regs[4] + $h;
|
||||
$regs[5] = $regs[5] + $m;
|
||||
} elseif($op == '+'){
|
||||
$regs[4] = $regs[4] - $h;
|
||||
$regs[5] = $regs[5] - $m;
|
||||
}
|
||||
}
|
||||
return gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
|
||||
// return strtotime("$regs[1]-$regs[2]-$regs[3] $regs[4]:$regs[5]:$regs[6]Z");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* sleeps some number of microseconds
|
||||
*
|
||||
* @param string $usec the number of microseconds to sleep
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function usleepWindows($usec)
|
||||
{
|
||||
$start = gettimeofday();
|
||||
|
||||
do
|
||||
{
|
||||
$stop = gettimeofday();
|
||||
$timePassed = 1000000 * ($stop['sec'] - $start['sec'])
|
||||
+ $stop['usec'] - $start['usec'];
|
||||
}
|
||||
while ($timePassed < $usec);
|
||||
}
|
||||
|
||||
|
||||
?>
|
90
html/afnic/lib/class.soap_fault.php
Normal file
90
html/afnic/lib/class.soap_fault.php
Normal file
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Contains information for a SOAP fault.
|
||||
* Mainly used for returning faults from deployed functions
|
||||
* in a server instance.
|
||||
* @author Dietrich Ayala <dietrich@ganx4.com>
|
||||
* @version $Id: class.soap_fault.php,v 1.14 2007/04/11 15:49:47 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_fault extends nusoap_base {
|
||||
/**
|
||||
* The fault code (client|server)
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $faultcode;
|
||||
/**
|
||||
* The fault actor
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $faultactor;
|
||||
/**
|
||||
* The fault string, a description of the fault
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $faultstring;
|
||||
/**
|
||||
* The fault detail, typically a string or array of string
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
var $faultdetail;
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param string $faultcode (SOAP-ENV:Client | SOAP-ENV:Server)
|
||||
* @param string $faultactor only used when msg routed between multiple actors
|
||||
* @param string $faultstring human readable error message
|
||||
* @param mixed $faultdetail detail, typically a string or array of string
|
||||
*/
|
||||
function nusoap_fault($faultcode,$faultactor='',$faultstring='',$faultdetail=''){
|
||||
parent::nusoap_base();
|
||||
$this->faultcode = $faultcode;
|
||||
$this->faultactor = $faultactor;
|
||||
$this->faultstring = $faultstring;
|
||||
$this->faultdetail = $faultdetail;
|
||||
}
|
||||
|
||||
/**
|
||||
* serialize a fault
|
||||
*
|
||||
* @return string The serialization of the fault instance.
|
||||
* @access public
|
||||
*/
|
||||
function serialize(){
|
||||
$ns_string = '';
|
||||
foreach($this->namespaces as $k => $v){
|
||||
$ns_string .= "\n xmlns:$k=\"$v\"";
|
||||
}
|
||||
$return_msg =
|
||||
'<?xml version="1.0" encoding="'.$this->soap_defencoding.'"?>'.
|
||||
'<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"'.$ns_string.">\n".
|
||||
'<SOAP-ENV:Body>'.
|
||||
'<SOAP-ENV:Fault>'.
|
||||
$this->serialize_val($this->faultcode, 'faultcode').
|
||||
$this->serialize_val($this->faultactor, 'faultactor').
|
||||
$this->serialize_val($this->faultstring, 'faultstring').
|
||||
$this->serialize_val($this->faultdetail, 'detail').
|
||||
'</SOAP-ENV:Fault>'.
|
||||
'</SOAP-ENV:Body>'.
|
||||
'</SOAP-ENV:Envelope>';
|
||||
return $return_msg;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Backward compatibility
|
||||
*/
|
||||
class soap_fault extends nusoap_fault {
|
||||
}
|
||||
|
||||
|
||||
?>
|
639
html/afnic/lib/class.soap_parser.php
Normal file
639
html/afnic/lib/class.soap_parser.php
Normal file
@ -0,0 +1,639 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* nusoap_parser class parses SOAP XML messages into native PHP values
|
||||
*
|
||||
* @author Dietrich Ayala <dietrich@ganx4.com>
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @version $Id: class.soap_parser.php,v 1.40 2007/04/17 16:34:03 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_parser extends nusoap_base {
|
||||
|
||||
var $xml = '';
|
||||
var $xml_encoding = '';
|
||||
var $method = '';
|
||||
var $root_struct = '';
|
||||
var $root_struct_name = '';
|
||||
var $root_struct_namespace = '';
|
||||
var $root_header = '';
|
||||
var $document = ''; // incoming SOAP body (text)
|
||||
// determines where in the message we are (envelope,header,body,method)
|
||||
var $status = '';
|
||||
var $position = 0;
|
||||
var $depth = 0;
|
||||
var $default_namespace = '';
|
||||
var $namespaces = array();
|
||||
var $message = array();
|
||||
var $parent = '';
|
||||
var $fault = false;
|
||||
var $fault_code = '';
|
||||
var $fault_str = '';
|
||||
var $fault_detail = '';
|
||||
var $depth_array = array();
|
||||
var $debug_flag = true;
|
||||
var $soapresponse = NULL; // parsed SOAP Body
|
||||
var $soapheader = NULL; // parsed SOAP Header
|
||||
var $responseHeaders = ''; // incoming SOAP headers (text)
|
||||
var $body_position = 0;
|
||||
// for multiref parsing:
|
||||
// array of id => pos
|
||||
var $ids = array();
|
||||
// array of id => hrefs => pos
|
||||
var $multirefs = array();
|
||||
// toggle for auto-decoding element content
|
||||
var $decode_utf8 = true;
|
||||
|
||||
/**
|
||||
* constructor that actually does the parsing
|
||||
*
|
||||
* @param string $xml SOAP message
|
||||
* @param string $encoding character encoding scheme of message
|
||||
* @param string $method method for which XML is parsed (unused?)
|
||||
* @param string $decode_utf8 whether to decode UTF-8 to ISO-8859-1
|
||||
* @access public
|
||||
*/
|
||||
function nusoap_parser($xml,$encoding='UTF-8',$method='',$decode_utf8=true){
|
||||
parent::nusoap_base();
|
||||
$this->xml = $xml;
|
||||
$this->xml_encoding = $encoding;
|
||||
$this->method = $method;
|
||||
$this->decode_utf8 = $decode_utf8;
|
||||
|
||||
// Check whether content has been read.
|
||||
if(!empty($xml)){
|
||||
// Check XML encoding
|
||||
$pos_xml = strpos($xml, '<?xml');
|
||||
if ($pos_xml !== FALSE) {
|
||||
$xml_decl = substr($xml, $pos_xml, strpos($xml, '?>', $pos_xml + 2) - $pos_xml + 1);
|
||||
if (preg_match("/encoding=[\"']([^\"']*)[\"']/", $xml_decl, $res)) {
|
||||
$xml_encoding = $res[1];
|
||||
if (strtoupper($xml_encoding) != $encoding) {
|
||||
$err = "Charset from HTTP Content-Type '" . $encoding . "' does not match encoding from XML declaration '" . $xml_encoding . "'";
|
||||
$this->debug($err);
|
||||
if ($encoding != 'ISO-8859-1' || strtoupper($xml_encoding) != 'UTF-8') {
|
||||
$this->setError($err);
|
||||
return;
|
||||
}
|
||||
// when HTTP says ISO-8859-1 (the default) and XML says UTF-8 (the typical), assume the other endpoint is just sloppy and proceed
|
||||
} else {
|
||||
$this->debug('Charset from HTTP Content-Type matches encoding from XML declaration');
|
||||
}
|
||||
} else {
|
||||
$this->debug('No encoding specified in XML declaration');
|
||||
}
|
||||
} else {
|
||||
$this->debug('No XML declaration');
|
||||
}
|
||||
$this->debug('Entering nusoap_parser(), length='.strlen($xml).', encoding='.$encoding);
|
||||
// Create an XML parser - why not xml_parser_create_ns?
|
||||
$this->parser = xml_parser_create($this->xml_encoding);
|
||||
// Set the options for parsing the XML data.
|
||||
//xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
|
||||
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
|
||||
xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, $this->xml_encoding);
|
||||
// Set the object for the parser.
|
||||
xml_set_object($this->parser, $this);
|
||||
// Set the element handlers for the parser.
|
||||
xml_set_element_handler($this->parser, 'start_element','end_element');
|
||||
xml_set_character_data_handler($this->parser,'character_data');
|
||||
|
||||
// Parse the XML file.
|
||||
if(!xml_parse($this->parser,$xml,true)){
|
||||
// Display an error message.
|
||||
$err = sprintf('XML error parsing SOAP payload on line %d: %s',
|
||||
xml_get_current_line_number($this->parser),
|
||||
xml_error_string(xml_get_error_code($this->parser)));
|
||||
$this->debug($err);
|
||||
$this->debug("XML payload:\n" . $xml);
|
||||
$this->setError($err);
|
||||
} else {
|
||||
$this->debug('parsed successfully, found root struct: '.$this->root_struct.' of name '.$this->root_struct_name);
|
||||
// get final value
|
||||
$this->soapresponse = $this->message[$this->root_struct]['result'];
|
||||
// get header value
|
||||
if($this->root_header != '' && isset($this->message[$this->root_header]['result'])){
|
||||
$this->soapheader = $this->message[$this->root_header]['result'];
|
||||
}
|
||||
// resolve hrefs/ids
|
||||
if(sizeof($this->multirefs) > 0){
|
||||
foreach($this->multirefs as $id => $hrefs){
|
||||
$this->debug('resolving multirefs for id: '.$id);
|
||||
$idVal = $this->buildVal($this->ids[$id]);
|
||||
if (is_array($idVal) && isset($idVal['!id'])) {
|
||||
unset($idVal['!id']);
|
||||
}
|
||||
foreach($hrefs as $refPos => $ref){
|
||||
$this->debug('resolving href at pos '.$refPos);
|
||||
$this->multirefs[$id][$refPos] = $idVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
xml_parser_free($this->parser);
|
||||
} else {
|
||||
$this->debug('xml was empty, didn\'t parse!');
|
||||
$this->setError('xml was empty, didn\'t parse!');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* start-element handler
|
||||
*
|
||||
* @param resource $parser XML parser object
|
||||
* @param string $name element name
|
||||
* @param array $attrs associative array of attributes
|
||||
* @access private
|
||||
*/
|
||||
function start_element($parser, $name, $attrs) {
|
||||
// position in a total number of elements, starting from 0
|
||||
// update class level pos
|
||||
$pos = $this->position++;
|
||||
// and set mine
|
||||
$this->message[$pos] = array('pos' => $pos,'children'=>'','cdata'=>'');
|
||||
// depth = how many levels removed from root?
|
||||
// set mine as current global depth and increment global depth value
|
||||
$this->message[$pos]['depth'] = $this->depth++;
|
||||
|
||||
// else add self as child to whoever the current parent is
|
||||
if($pos != 0){
|
||||
$this->message[$this->parent]['children'] .= '|'.$pos;
|
||||
}
|
||||
// set my parent
|
||||
$this->message[$pos]['parent'] = $this->parent;
|
||||
// set self as current parent
|
||||
$this->parent = $pos;
|
||||
// set self as current value for this depth
|
||||
$this->depth_array[$this->depth] = $pos;
|
||||
// get element prefix
|
||||
if(strpos($name,':')){
|
||||
// get ns prefix
|
||||
$prefix = substr($name,0,strpos($name,':'));
|
||||
// get unqualified name
|
||||
$name = substr(strstr($name,':'),1);
|
||||
}
|
||||
// set status
|
||||
if($name == 'Envelope'){
|
||||
$this->status = 'envelope';
|
||||
} elseif($name == 'Header' && $this->status = 'envelope'){
|
||||
$this->root_header = $pos;
|
||||
$this->status = 'header';
|
||||
} elseif($name == 'Body' && $this->status = 'envelope'){
|
||||
$this->status = 'body';
|
||||
$this->body_position = $pos;
|
||||
// set method
|
||||
} elseif($this->status == 'body' && $pos == ($this->body_position+1)){
|
||||
$this->status = 'method';
|
||||
$this->root_struct_name = $name;
|
||||
$this->root_struct = $pos;
|
||||
$this->message[$pos]['type'] = 'struct';
|
||||
$this->debug("found root struct $this->root_struct_name, pos $this->root_struct");
|
||||
}
|
||||
// set my status
|
||||
$this->message[$pos]['status'] = $this->status;
|
||||
// set name
|
||||
$this->message[$pos]['name'] = htmlspecialchars($name);
|
||||
// set attrs
|
||||
$this->message[$pos]['attrs'] = $attrs;
|
||||
|
||||
// loop through atts, logging ns and type declarations
|
||||
$attstr = '';
|
||||
foreach($attrs as $key => $value){
|
||||
$key_prefix = $this->getPrefix($key);
|
||||
$key_localpart = $this->getLocalPart($key);
|
||||
// if ns declarations, add to class level array of valid namespaces
|
||||
if($key_prefix == 'xmlns'){
|
||||
if(ereg('^http://www.w3.org/[0-9]{4}/XMLSchema$',$value)){
|
||||
$this->XMLSchemaVersion = $value;
|
||||
$this->namespaces['xsd'] = $this->XMLSchemaVersion;
|
||||
$this->namespaces['xsi'] = $this->XMLSchemaVersion.'-instance';
|
||||
}
|
||||
$this->namespaces[$key_localpart] = $value;
|
||||
// set method namespace
|
||||
if($name == $this->root_struct_name){
|
||||
$this->methodNamespace = $value;
|
||||
}
|
||||
// if it's a type declaration, set type
|
||||
} elseif($key_localpart == 'type'){
|
||||
if (isset($this->message[$pos]['type']) && $this->message[$pos]['type'] == 'array') {
|
||||
// do nothing: already processed arrayType
|
||||
} else {
|
||||
$value_prefix = $this->getPrefix($value);
|
||||
$value_localpart = $this->getLocalPart($value);
|
||||
$this->message[$pos]['type'] = $value_localpart;
|
||||
$this->message[$pos]['typePrefix'] = $value_prefix;
|
||||
if(isset($this->namespaces[$value_prefix])){
|
||||
$this->message[$pos]['type_namespace'] = $this->namespaces[$value_prefix];
|
||||
} else if(isset($attrs['xmlns:'.$value_prefix])) {
|
||||
$this->message[$pos]['type_namespace'] = $attrs['xmlns:'.$value_prefix];
|
||||
}
|
||||
// should do something here with the namespace of specified type?
|
||||
}
|
||||
} elseif($key_localpart == 'arrayType'){
|
||||
$this->message[$pos]['type'] = 'array';
|
||||
/* do arrayType ereg here
|
||||
[1] arrayTypeValue ::= atype asize
|
||||
[2] atype ::= QName rank*
|
||||
[3] rank ::= '[' (',')* ']'
|
||||
[4] asize ::= '[' length~ ']'
|
||||
[5] length ::= nextDimension* Digit+
|
||||
[6] nextDimension ::= Digit+ ','
|
||||
*/
|
||||
$expr = '([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]';
|
||||
if(ereg($expr,$value,$regs)){
|
||||
$this->message[$pos]['typePrefix'] = $regs[1];
|
||||
$this->message[$pos]['arrayTypePrefix'] = $regs[1];
|
||||
if (isset($this->namespaces[$regs[1]])) {
|
||||
$this->message[$pos]['arrayTypeNamespace'] = $this->namespaces[$regs[1]];
|
||||
} else if (isset($attrs['xmlns:'.$regs[1]])) {
|
||||
$this->message[$pos]['arrayTypeNamespace'] = $attrs['xmlns:'.$regs[1]];
|
||||
}
|
||||
$this->message[$pos]['arrayType'] = $regs[2];
|
||||
$this->message[$pos]['arraySize'] = $regs[3];
|
||||
$this->message[$pos]['arrayCols'] = $regs[4];
|
||||
}
|
||||
// specifies nil value (or not)
|
||||
} elseif ($key_localpart == 'nil'){
|
||||
$this->message[$pos]['nil'] = ($value == 'true' || $value == '1');
|
||||
// some other attribute
|
||||
} elseif ($key != 'href' && $key != 'xmlns' && $key_localpart != 'encodingStyle' && $key_localpart != 'root') {
|
||||
$this->message[$pos]['xattrs']['!' . $key] = $value;
|
||||
}
|
||||
|
||||
if ($key == 'xmlns') {
|
||||
$this->default_namespace = $value;
|
||||
}
|
||||
// log id
|
||||
if($key == 'id'){
|
||||
$this->ids[$value] = $pos;
|
||||
}
|
||||
// root
|
||||
if($key_localpart == 'root' && $value == 1){
|
||||
$this->status = 'method';
|
||||
$this->root_struct_name = $name;
|
||||
$this->root_struct = $pos;
|
||||
$this->debug("found root struct $this->root_struct_name, pos $pos");
|
||||
}
|
||||
// for doclit
|
||||
$attstr .= " $key=\"$value\"";
|
||||
}
|
||||
// get namespace - must be done after namespace atts are processed
|
||||
if(isset($prefix)){
|
||||
$this->message[$pos]['namespace'] = $this->namespaces[$prefix];
|
||||
$this->default_namespace = $this->namespaces[$prefix];
|
||||
} else {
|
||||
$this->message[$pos]['namespace'] = $this->default_namespace;
|
||||
}
|
||||
if($this->status == 'header'){
|
||||
if ($this->root_header != $pos) {
|
||||
$this->responseHeaders .= "<" . (isset($prefix) ? $prefix . ':' : '') . "$name$attstr>";
|
||||
}
|
||||
} elseif($this->root_struct_name != ''){
|
||||
$this->document .= "<" . (isset($prefix) ? $prefix . ':' : '') . "$name$attstr>";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* end-element handler
|
||||
*
|
||||
* @param resource $parser XML parser object
|
||||
* @param string $name element name
|
||||
* @access private
|
||||
*/
|
||||
function end_element($parser, $name) {
|
||||
// position of current element is equal to the last value left in depth_array for my depth
|
||||
$pos = $this->depth_array[$this->depth--];
|
||||
|
||||
// get element prefix
|
||||
if(strpos($name,':')){
|
||||
// get ns prefix
|
||||
$prefix = substr($name,0,strpos($name,':'));
|
||||
// get unqualified name
|
||||
$name = substr(strstr($name,':'),1);
|
||||
}
|
||||
|
||||
// build to native type
|
||||
if(isset($this->body_position) && $pos > $this->body_position){
|
||||
// deal w/ multirefs
|
||||
if(isset($this->message[$pos]['attrs']['href'])){
|
||||
// get id
|
||||
$id = substr($this->message[$pos]['attrs']['href'],1);
|
||||
// add placeholder to href array
|
||||
$this->multirefs[$id][$pos] = 'placeholder';
|
||||
// add set a reference to it as the result value
|
||||
$this->message[$pos]['result'] =& $this->multirefs[$id][$pos];
|
||||
// build complexType values
|
||||
} elseif($this->message[$pos]['children'] != ''){
|
||||
// if result has already been generated (struct/array)
|
||||
if(!isset($this->message[$pos]['result'])){
|
||||
$this->message[$pos]['result'] = $this->buildVal($pos);
|
||||
}
|
||||
// build complexType values of attributes and possibly simpleContent
|
||||
} elseif (isset($this->message[$pos]['xattrs'])) {
|
||||
if (isset($this->message[$pos]['nil']) && $this->message[$pos]['nil']) {
|
||||
$this->message[$pos]['xattrs']['!'] = null;
|
||||
} elseif (isset($this->message[$pos]['cdata']) && trim($this->message[$pos]['cdata']) != '') {
|
||||
if (isset($this->message[$pos]['type'])) {
|
||||
$this->message[$pos]['xattrs']['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : '');
|
||||
} else {
|
||||
$parent = $this->message[$pos]['parent'];
|
||||
if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) {
|
||||
$this->message[$pos]['xattrs']['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : '');
|
||||
} else {
|
||||
$this->message[$pos]['xattrs']['!'] = $this->message[$pos]['cdata'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->message[$pos]['result'] = $this->message[$pos]['xattrs'];
|
||||
// set value of simpleType (or nil complexType)
|
||||
} else {
|
||||
//$this->debug('adding data for scalar value '.$this->message[$pos]['name'].' of value '.$this->message[$pos]['cdata']);
|
||||
if (isset($this->message[$pos]['nil']) && $this->message[$pos]['nil']) {
|
||||
$this->message[$pos]['xattrs']['!'] = null;
|
||||
} elseif (isset($this->message[$pos]['type'])) {
|
||||
$this->message[$pos]['result'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : '');
|
||||
} else {
|
||||
$parent = $this->message[$pos]['parent'];
|
||||
if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) {
|
||||
$this->message[$pos]['result'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : '');
|
||||
} else {
|
||||
$this->message[$pos]['result'] = $this->message[$pos]['cdata'];
|
||||
}
|
||||
}
|
||||
|
||||
/* add value to parent's result, if parent is struct/array
|
||||
$parent = $this->message[$pos]['parent'];
|
||||
if($this->message[$parent]['type'] != 'map'){
|
||||
if(strtolower($this->message[$parent]['type']) == 'array'){
|
||||
$this->message[$parent]['result'][] = $this->message[$pos]['result'];
|
||||
} else {
|
||||
$this->message[$parent]['result'][$this->message[$pos]['name']] = $this->message[$pos]['result'];
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// for doclit
|
||||
if($this->status == 'header'){
|
||||
if ($this->root_header != $pos) {
|
||||
$this->responseHeaders .= "</" . (isset($prefix) ? $prefix . ':' : '') . "$name>";
|
||||
}
|
||||
} elseif($pos >= $this->root_struct){
|
||||
$this->document .= "</" . (isset($prefix) ? $prefix . ':' : '') . "$name>";
|
||||
}
|
||||
// switch status
|
||||
if($pos == $this->root_struct){
|
||||
$this->status = 'body';
|
||||
$this->root_struct_namespace = $this->message[$pos]['namespace'];
|
||||
} elseif($name == 'Body'){
|
||||
$this->status = 'envelope';
|
||||
} elseif($name == 'Header'){
|
||||
$this->status = 'envelope';
|
||||
} elseif($name == 'Envelope'){
|
||||
//
|
||||
}
|
||||
// set parent back to my parent
|
||||
$this->parent = $this->message[$pos]['parent'];
|
||||
}
|
||||
|
||||
/**
|
||||
* element content handler
|
||||
*
|
||||
* @param resource $parser XML parser object
|
||||
* @param string $data element content
|
||||
* @access private
|
||||
*/
|
||||
function character_data($parser, $data){
|
||||
$pos = $this->depth_array[$this->depth];
|
||||
if ($this->xml_encoding=='UTF-8'){
|
||||
// TODO: add an option to disable this for folks who want
|
||||
// raw UTF-8 that, e.g., might not map to iso-8859-1
|
||||
// TODO: this can also be handled with xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, "ISO-8859-1");
|
||||
if($this->decode_utf8){
|
||||
$data = utf8_decode($data);
|
||||
}
|
||||
}
|
||||
$this->message[$pos]['cdata'] .= $data;
|
||||
// for doclit
|
||||
if($this->status == 'header'){
|
||||
$this->responseHeaders .= $data;
|
||||
} else {
|
||||
$this->document .= $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get the parsed message (SOAP Body)
|
||||
*
|
||||
* @return mixed
|
||||
* @access public
|
||||
* @deprecated use get_soapbody instead
|
||||
*/
|
||||
function get_response(){
|
||||
return $this->soapresponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the parsed SOAP Body (NULL if there was none)
|
||||
*
|
||||
* @return mixed
|
||||
* @access public
|
||||
*/
|
||||
function get_soapbody(){
|
||||
return $this->soapresponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the parsed SOAP Header (NULL if there was none)
|
||||
*
|
||||
* @return mixed
|
||||
* @access public
|
||||
*/
|
||||
function get_soapheader(){
|
||||
return $this->soapheader;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the unparsed SOAP Header
|
||||
*
|
||||
* @return string XML or empty if no Header
|
||||
* @access public
|
||||
*/
|
||||
function getHeaders(){
|
||||
return $this->responseHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* decodes simple types into PHP variables
|
||||
*
|
||||
* @param string $value value to decode
|
||||
* @param string $type XML type to decode
|
||||
* @param string $typens XML type namespace to decode
|
||||
* @return mixed PHP value
|
||||
* @access private
|
||||
*/
|
||||
function decodeSimple($value, $type, $typens) {
|
||||
// TODO: use the namespace!
|
||||
if ((!isset($type)) || $type == 'string' || $type == 'long' || $type == 'unsignedLong') {
|
||||
return (string) $value;
|
||||
}
|
||||
if ($type == 'int' || $type == 'integer' || $type == 'short' || $type == 'byte') {
|
||||
return (int) $value;
|
||||
}
|
||||
if ($type == 'float' || $type == 'double' || $type == 'decimal') {
|
||||
return (double) $value;
|
||||
}
|
||||
if ($type == 'boolean') {
|
||||
if (strtolower($value) == 'false' || strtolower($value) == 'f') {
|
||||
return false;
|
||||
}
|
||||
return (boolean) $value;
|
||||
}
|
||||
if ($type == 'base64' || $type == 'base64Binary') {
|
||||
$this->debug('Decode base64 value');
|
||||
return base64_decode($value);
|
||||
}
|
||||
// obscure numeric types
|
||||
if ($type == 'nonPositiveInteger' || $type == 'negativeInteger'
|
||||
|| $type == 'nonNegativeInteger' || $type == 'positiveInteger'
|
||||
|| $type == 'unsignedInt'
|
||||
|| $type == 'unsignedShort' || $type == 'unsignedByte') {
|
||||
return (int) $value;
|
||||
}
|
||||
// bogus: parser treats array with no elements as a simple type
|
||||
if ($type == 'array') {
|
||||
return array();
|
||||
}
|
||||
// everything else
|
||||
return (string) $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* builds response structures for compound values (arrays/structs)
|
||||
* and scalars
|
||||
*
|
||||
* @param integer $pos position in node tree
|
||||
* @return mixed PHP value
|
||||
* @access private
|
||||
*/
|
||||
function buildVal($pos){
|
||||
if(!isset($this->message[$pos]['type'])){
|
||||
$this->message[$pos]['type'] = '';
|
||||
}
|
||||
$this->debug('in buildVal() for '.$this->message[$pos]['name']."(pos $pos) of type ".$this->message[$pos]['type']);
|
||||
// if there are children...
|
||||
if($this->message[$pos]['children'] != ''){
|
||||
$this->debug('in buildVal, there are children');
|
||||
$children = explode('|',$this->message[$pos]['children']);
|
||||
array_shift($children); // knock off empty
|
||||
// md array
|
||||
if(isset($this->message[$pos]['arrayCols']) && $this->message[$pos]['arrayCols'] != ''){
|
||||
$r=0; // rowcount
|
||||
$c=0; // colcount
|
||||
foreach($children as $child_pos){
|
||||
$this->debug("in buildVal, got an MD array element: $r, $c");
|
||||
$params[$r][] = $this->message[$child_pos]['result'];
|
||||
$c++;
|
||||
if($c == $this->message[$pos]['arrayCols']){
|
||||
$c = 0;
|
||||
$r++;
|
||||
}
|
||||
}
|
||||
// array
|
||||
} elseif($this->message[$pos]['type'] == 'array' || $this->message[$pos]['type'] == 'Array'){
|
||||
$this->debug('in buildVal, adding array '.$this->message[$pos]['name']);
|
||||
foreach($children as $child_pos){
|
||||
$params[] = &$this->message[$child_pos]['result'];
|
||||
}
|
||||
// apache Map type: java hashtable
|
||||
} elseif($this->message[$pos]['type'] == 'Map' && $this->message[$pos]['type_namespace'] == 'http://xml.apache.org/xml-soap'){
|
||||
$this->debug('in buildVal, Java Map '.$this->message[$pos]['name']);
|
||||
foreach($children as $child_pos){
|
||||
$kv = explode("|",$this->message[$child_pos]['children']);
|
||||
$params[$this->message[$kv[1]]['result']] = &$this->message[$kv[2]]['result'];
|
||||
}
|
||||
// generic compound type
|
||||
//} elseif($this->message[$pos]['type'] == 'SOAPStruct' || $this->message[$pos]['type'] == 'struct') {
|
||||
} else {
|
||||
// Apache Vector type: treat as an array
|
||||
$this->debug('in buildVal, adding Java Vector or generic compound type '.$this->message[$pos]['name']);
|
||||
if ($this->message[$pos]['type'] == 'Vector' && $this->message[$pos]['type_namespace'] == 'http://xml.apache.org/xml-soap') {
|
||||
$notstruct = 1;
|
||||
} else {
|
||||
$notstruct = 0;
|
||||
}
|
||||
//
|
||||
foreach($children as $child_pos){
|
||||
if($notstruct){
|
||||
$params[] = &$this->message[$child_pos]['result'];
|
||||
} else {
|
||||
if (isset($params[$this->message[$child_pos]['name']])) {
|
||||
// de-serialize repeated element name into an array
|
||||
if ((!is_array($params[$this->message[$child_pos]['name']])) || (!isset($params[$this->message[$child_pos]['name']][0]))) {
|
||||
$params[$this->message[$child_pos]['name']] = array($params[$this->message[$child_pos]['name']]);
|
||||
}
|
||||
$params[$this->message[$child_pos]['name']][] = &$this->message[$child_pos]['result'];
|
||||
} else {
|
||||
$params[$this->message[$child_pos]['name']] = &$this->message[$child_pos]['result'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isset($this->message[$pos]['xattrs'])) {
|
||||
$this->debug('in buildVal, handling attributes');
|
||||
foreach ($this->message[$pos]['xattrs'] as $n => $v) {
|
||||
$params[$n] = $v;
|
||||
}
|
||||
}
|
||||
// handle simpleContent
|
||||
if (isset($this->message[$pos]['cdata']) && trim($this->message[$pos]['cdata']) != '') {
|
||||
$this->debug('in buildVal, handling simpleContent');
|
||||
if (isset($this->message[$pos]['type'])) {
|
||||
$params['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : '');
|
||||
} else {
|
||||
$parent = $this->message[$pos]['parent'];
|
||||
if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) {
|
||||
$params['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : '');
|
||||
} else {
|
||||
$params['!'] = $this->message[$pos]['cdata'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$ret = is_array($params) ? $params : array();
|
||||
$this->debug('in buildVal, return:');
|
||||
$this->appendDebug($this->varDump($ret));
|
||||
return $ret;
|
||||
} else {
|
||||
$this->debug('in buildVal, no children, building scalar');
|
||||
$cdata = isset($this->message[$pos]['cdata']) ? $this->message[$pos]['cdata'] : '';
|
||||
if (isset($this->message[$pos]['type'])) {
|
||||
$ret = $this->decodeSimple($cdata, $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : '');
|
||||
$this->debug("in buildVal, return: $ret");
|
||||
return $ret;
|
||||
}
|
||||
$parent = $this->message[$pos]['parent'];
|
||||
if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) {
|
||||
$ret = $this->decodeSimple($cdata, $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : '');
|
||||
$this->debug("in buildVal, return: $ret");
|
||||
return $ret;
|
||||
}
|
||||
$ret = $this->message[$pos]['cdata'];
|
||||
$this->debug("in buildVal, return: $ret");
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Backward compatibility
|
||||
*/
|
||||
class soap_parser extends nusoap_parser {
|
||||
}
|
||||
|
||||
|
||||
?>
|
1073
html/afnic/lib/class.soap_server.php
Normal file
1073
html/afnic/lib/class.soap_server.php
Normal file
File diff suppressed because it is too large
Load Diff
1305
html/afnic/lib/class.soap_transport_http.php
Normal file
1305
html/afnic/lib/class.soap_transport_http.php
Normal file
File diff suppressed because it is too large
Load Diff
107
html/afnic/lib/class.soap_val.php
Normal file
107
html/afnic/lib/class.soap_val.php
Normal file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* For creating serializable abstractions of native PHP types. This class
|
||||
* allows element name/namespace, XSD type, and XML attributes to be
|
||||
* associated with a value. This is extremely useful when WSDL is not
|
||||
* used, but is also useful when WSDL is used with polymorphic types, including
|
||||
* xsd:anyType and user-defined types.
|
||||
*
|
||||
* @author Dietrich Ayala <dietrich@ganx4.com>
|
||||
* @version $Id: class.soap_val.php,v 1.11 2007/04/06 13:56:32 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class soapval extends nusoap_base {
|
||||
/**
|
||||
* The XML element name
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $name;
|
||||
/**
|
||||
* The XML type name (string or false)
|
||||
*
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
var $type;
|
||||
/**
|
||||
* The PHP value
|
||||
*
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
var $value;
|
||||
/**
|
||||
* The XML element namespace (string or false)
|
||||
*
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
var $element_ns;
|
||||
/**
|
||||
* The XML type namespace (string or false)
|
||||
*
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
var $type_ns;
|
||||
/**
|
||||
* The XML element attributes (array or false)
|
||||
*
|
||||
* @var mixed
|
||||
* @access private
|
||||
*/
|
||||
var $attributes;
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param string $name optional name
|
||||
* @param mixed $type optional type name
|
||||
* @param mixed $value optional value
|
||||
* @param mixed $element_ns optional namespace of value
|
||||
* @param mixed $type_ns optional namespace of type
|
||||
* @param mixed $attributes associative array of attributes to add to element serialization
|
||||
* @access public
|
||||
*/
|
||||
function soapval($name='soapval',$type=false,$value=-1,$element_ns=false,$type_ns=false,$attributes=false) {
|
||||
parent::nusoap_base();
|
||||
$this->name = $name;
|
||||
$this->type = $type;
|
||||
$this->value = $value;
|
||||
$this->element_ns = $element_ns;
|
||||
$this->type_ns = $type_ns;
|
||||
$this->attributes = $attributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* return serialized value
|
||||
*
|
||||
* @param string $use The WSDL use value (encoded|literal)
|
||||
* @return string XML data
|
||||
* @access public
|
||||
*/
|
||||
function serialize($use='encoded') {
|
||||
return $this->serialize_val($this->value, $this->name, $this->type, $this->element_ns, $this->type_ns, $this->attributes, $use, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* decodes a soapval object into a PHP native type
|
||||
*
|
||||
* @return mixed
|
||||
* @access public
|
||||
*/
|
||||
function decode(){
|
||||
return $this->value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
977
html/afnic/lib/class.soapclient.php
Normal file
977
html/afnic/lib/class.soapclient.php
Normal file
@ -0,0 +1,977 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* [nu]soapclient higher level class for easy usage.
|
||||
*
|
||||
* usage:
|
||||
*
|
||||
* // instantiate client with server info
|
||||
* $soapclient = new nusoap_client( string path [ ,mixed wsdl] );
|
||||
*
|
||||
* // call method, get results
|
||||
* echo $soapclient->call( string methodname [ ,array parameters] );
|
||||
*
|
||||
* // bye bye client
|
||||
* unset($soapclient);
|
||||
*
|
||||
* @author Dietrich Ayala <dietrich@ganx4.com>
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @version $Id: class.soapclient.php,v 1.64 2007/10/22 01:15:17 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_client extends nusoap_base {
|
||||
|
||||
var $username = ''; // Username for HTTP authentication
|
||||
var $password = ''; // Password for HTTP authentication
|
||||
var $authtype = ''; // Type of HTTP authentication
|
||||
var $certRequest = array(); // Certificate for HTTP SSL authentication
|
||||
var $requestHeaders = false; // SOAP headers in request (text)
|
||||
var $responseHeaders = ''; // SOAP headers from response (incomplete namespace resolution) (text)
|
||||
var $responseHeader = NULL; // SOAP Header from response (parsed)
|
||||
var $document = ''; // SOAP body response portion (incomplete namespace resolution) (text)
|
||||
var $endpoint;
|
||||
var $forceEndpoint = ''; // overrides WSDL endpoint
|
||||
var $proxyhost = '';
|
||||
var $proxyport = '';
|
||||
var $proxyusername = '';
|
||||
var $proxypassword = '';
|
||||
var $xml_encoding = ''; // character set encoding of incoming (response) messages
|
||||
var $http_encoding = false;
|
||||
var $timeout = 0; // HTTP connection timeout
|
||||
var $response_timeout = 30; // HTTP response timeout
|
||||
var $endpointType = ''; // soap|wsdl, empty for WSDL initialization error
|
||||
var $persistentConnection = false;
|
||||
var $defaultRpcParams = false; // This is no longer used
|
||||
var $request = ''; // HTTP request
|
||||
var $response = ''; // HTTP response
|
||||
var $responseData = ''; // SOAP payload of response
|
||||
var $cookies = array(); // Cookies from response or for request
|
||||
var $decode_utf8 = true; // toggles whether the parser decodes element content w/ utf8_decode()
|
||||
var $operations = array(); // WSDL operations, empty for WSDL initialization error
|
||||
var $curl_options = array(); // User-specified cURL options
|
||||
var $bindingType = ''; // WSDL operation binding type
|
||||
var $use_curl = false; // whether to always try to use cURL
|
||||
|
||||
/*
|
||||
* fault related variables
|
||||
*/
|
||||
/**
|
||||
* @var fault
|
||||
* @access public
|
||||
*/
|
||||
var $fault;
|
||||
/**
|
||||
* @var faultcode
|
||||
* @access public
|
||||
*/
|
||||
var $faultcode;
|
||||
/**
|
||||
* @var faultstring
|
||||
* @access public
|
||||
*/
|
||||
var $faultstring;
|
||||
/**
|
||||
* @var faultdetail
|
||||
* @access public
|
||||
*/
|
||||
var $faultdetail;
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param mixed $endpoint SOAP server or WSDL URL (string), or wsdl instance (object)
|
||||
* @param bool $wsdl optional, set to true if using WSDL
|
||||
* @param int $portName optional portName in WSDL document
|
||||
* @param string $proxyhost
|
||||
* @param string $proxyport
|
||||
* @param string $proxyusername
|
||||
* @param string $proxypassword
|
||||
* @param integer $timeout set the connection timeout
|
||||
* @param integer $response_timeout set the response timeout
|
||||
* @access public
|
||||
*/
|
||||
function nusoap_client($endpoint,$wsdl = false,$proxyhost = false,$proxyport = false,$proxyusername = false, $proxypassword = false, $timeout = 0, $response_timeout = 30){
|
||||
parent::nusoap_base();
|
||||
$this->endpoint = $endpoint;
|
||||
$this->proxyhost = $proxyhost;
|
||||
$this->proxyport = $proxyport;
|
||||
$this->proxyusername = $proxyusername;
|
||||
$this->proxypassword = $proxypassword;
|
||||
$this->timeout = $timeout;
|
||||
$this->response_timeout = $response_timeout;
|
||||
|
||||
$this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout");
|
||||
$this->appendDebug('endpoint=' . $this->varDump($endpoint));
|
||||
|
||||
// make values
|
||||
if($wsdl){
|
||||
if (is_object($endpoint) && (get_class($endpoint) == 'wsdl')) {
|
||||
$this->wsdl = $endpoint;
|
||||
$this->endpoint = $this->wsdl->wsdl;
|
||||
$this->wsdlFile = $this->endpoint;
|
||||
$this->debug('existing wsdl instance created from ' . $this->endpoint);
|
||||
$this->checkWSDL();
|
||||
} else {
|
||||
$this->wsdlFile = $this->endpoint;
|
||||
$this->wsdl = null;
|
||||
$this->debug('will use lazy evaluation of wsdl from ' . $this->endpoint);
|
||||
}
|
||||
$this->endpointType = 'wsdl';
|
||||
} else {
|
||||
$this->debug("instantiate SOAP with endpoint at $endpoint");
|
||||
$this->endpointType = 'soap';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* calls method, returns PHP native type
|
||||
*
|
||||
* @param string $operation SOAP server URL or path
|
||||
* @param mixed $params An array, associative or simple, of the parameters
|
||||
* for the method call, or a string that is the XML
|
||||
* for the call. For rpc style, this call will
|
||||
* wrap the XML in a tag named after the method, as
|
||||
* well as the SOAP Envelope and Body. For document
|
||||
* style, this will only wrap with the Envelope and Body.
|
||||
* IMPORTANT: when using an array with document style,
|
||||
* in which case there
|
||||
* is really one parameter, the root of the fragment
|
||||
* used in the call, which encloses what programmers
|
||||
* normally think of parameters. A parameter array
|
||||
* *must* include the wrapper.
|
||||
* @param string $namespace optional method namespace (WSDL can override)
|
||||
* @param string $soapAction optional SOAPAction value (WSDL can override)
|
||||
* @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array
|
||||
* @param boolean $rpcParams optional (no longer used)
|
||||
* @param string $style optional (rpc|document) the style to use when serializing parameters (WSDL can override)
|
||||
* @param string $use optional (encoded|literal) the use when serializing parameters (WSDL can override)
|
||||
* @return mixed response from SOAP call
|
||||
* @access public
|
||||
*/
|
||||
function call($operation,$params=array(),$namespace='http://tempuri.org',$soapAction='',$headers=false,$rpcParams=null,$style='rpc',$use='encoded'){
|
||||
$this->operation = $operation;
|
||||
$this->fault = false;
|
||||
$this->setError('');
|
||||
$this->request = '';
|
||||
$this->response = '';
|
||||
$this->responseData = '';
|
||||
$this->faultstring = '';
|
||||
$this->faultcode = '';
|
||||
$this->opData = array();
|
||||
|
||||
$this->debug("call: operation=$operation, namespace=$namespace, soapAction=$soapAction, rpcParams=$rpcParams, style=$style, use=$use, endpointType=$this->endpointType");
|
||||
$this->appendDebug('params=' . $this->varDump($params));
|
||||
$this->appendDebug('headers=' . $this->varDump($headers));
|
||||
if ($headers) {
|
||||
$this->requestHeaders = $headers;
|
||||
}
|
||||
if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) {
|
||||
$this->loadWSDL();
|
||||
if ($this->getError())
|
||||
return false;
|
||||
}
|
||||
// serialize parameters
|
||||
if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){
|
||||
// use WSDL for operation
|
||||
$this->opData = $opData;
|
||||
$this->debug("found operation");
|
||||
$this->appendDebug('opData=' . $this->varDump($opData));
|
||||
if (isset($opData['soapAction'])) {
|
||||
$soapAction = $opData['soapAction'];
|
||||
}
|
||||
if (! $this->forceEndpoint) {
|
||||
$this->endpoint = $opData['endpoint'];
|
||||
} else {
|
||||
$this->endpoint = $this->forceEndpoint;
|
||||
}
|
||||
$namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] : $namespace;
|
||||
$style = $opData['style'];
|
||||
$use = $opData['input']['use'];
|
||||
// add ns to ns array
|
||||
if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){
|
||||
$nsPrefix = 'ns' . rand(1000, 9999);
|
||||
$this->wsdl->namespaces[$nsPrefix] = $namespace;
|
||||
}
|
||||
$nsPrefix = $this->wsdl->getPrefixFromNamespace($namespace);
|
||||
// serialize payload
|
||||
if (is_string($params)) {
|
||||
$this->debug("serializing param string for WSDL operation $operation");
|
||||
$payload = $params;
|
||||
} elseif (is_array($params)) {
|
||||
$this->debug("serializing param array for WSDL operation $operation");
|
||||
$payload = $this->wsdl->serializeRPCParameters($operation,'input',$params,$this->bindingType);
|
||||
} else {
|
||||
$this->debug('params must be array or string');
|
||||
$this->setError('params must be array or string');
|
||||
return false;
|
||||
}
|
||||
$usedNamespaces = $this->wsdl->usedNamespaces;
|
||||
if (isset($opData['input']['encodingStyle'])) {
|
||||
$encodingStyle = $opData['input']['encodingStyle'];
|
||||
} else {
|
||||
$encodingStyle = '';
|
||||
}
|
||||
$this->appendDebug($this->wsdl->getDebug());
|
||||
$this->wsdl->clearDebug();
|
||||
if ($errstr = $this->wsdl->getError()) {
|
||||
$this->debug('got wsdl error: '.$errstr);
|
||||
$this->setError('wsdl error: '.$errstr);
|
||||
return false;
|
||||
}
|
||||
} elseif($this->endpointType == 'wsdl') {
|
||||
// operation not in WSDL
|
||||
$this->appendDebug($this->wsdl->getDebug());
|
||||
$this->wsdl->clearDebug();
|
||||
$this->setError( 'operation '.$operation.' not present.');
|
||||
$this->debug("operation '$operation' not present.");
|
||||
return false;
|
||||
} else {
|
||||
// no WSDL
|
||||
//$this->namespaces['ns1'] = $namespace;
|
||||
$nsPrefix = 'ns' . rand(1000, 9999);
|
||||
// serialize
|
||||
$payload = '';
|
||||
if (is_string($params)) {
|
||||
$this->debug("serializing param string for operation $operation");
|
||||
$payload = $params;
|
||||
} elseif (is_array($params)) {
|
||||
$this->debug("serializing param array for operation $operation");
|
||||
foreach($params as $k => $v){
|
||||
$payload .= $this->serialize_val($v,$k,false,false,false,false,$use);
|
||||
}
|
||||
} else {
|
||||
$this->debug('params must be array or string');
|
||||
$this->setError('params must be array or string');
|
||||
return false;
|
||||
}
|
||||
$usedNamespaces = array();
|
||||
if ($use == 'encoded') {
|
||||
$encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/';
|
||||
} else {
|
||||
$encodingStyle = '';
|
||||
}
|
||||
}
|
||||
// wrap RPC calls with method element
|
||||
if ($style == 'rpc') {
|
||||
if ($use == 'literal') {
|
||||
$this->debug("wrapping RPC request with literal method element");
|
||||
if ($namespace) {
|
||||
// http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace
|
||||
$payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" .
|
||||
$payload .
|
||||
"</$nsPrefix:$operation>";
|
||||
} else {
|
||||
$payload = "<$operation>" . $payload . "</$operation>";
|
||||
}
|
||||
} else {
|
||||
$this->debug("wrapping RPC request with encoded method element");
|
||||
if ($namespace) {
|
||||
$payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" .
|
||||
$payload .
|
||||
"</$nsPrefix:$operation>";
|
||||
} else {
|
||||
$payload = "<$operation>" .
|
||||
$payload .
|
||||
"</$operation>";
|
||||
}
|
||||
}
|
||||
}
|
||||
// serialize envelope
|
||||
$soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use,$encodingStyle);
|
||||
$this->debug("endpoint=$this->endpoint, soapAction=$soapAction, namespace=$namespace, style=$style, use=$use, encodingStyle=$encodingStyle");
|
||||
$this->debug('SOAP message length=' . strlen($soapmsg) . ' contents (max 1000 bytes)=' . substr($soapmsg, 0, 1000));
|
||||
// send
|
||||
$return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout);
|
||||
if($errstr = $this->getError()){
|
||||
$this->debug('Error: '.$errstr);
|
||||
return false;
|
||||
} else {
|
||||
$this->return = $return;
|
||||
$this->debug('sent message successfully and got a(n) '.gettype($return));
|
||||
$this->appendDebug('return=' . $this->varDump($return));
|
||||
|
||||
// fault?
|
||||
if(is_array($return) && isset($return['faultcode'])){
|
||||
$this->debug('got fault');
|
||||
$this->setError($return['faultcode'].': '.$return['faultstring']);
|
||||
$this->fault = true;
|
||||
foreach($return as $k => $v){
|
||||
$this->$k = $v;
|
||||
$this->debug("$k = $v<br>");
|
||||
}
|
||||
return $return;
|
||||
} elseif ($style == 'document') {
|
||||
// NOTE: if the response is defined to have multiple parts (i.e. unwrapped),
|
||||
// we are only going to return the first part here...sorry about that
|
||||
return $return;
|
||||
} else {
|
||||
// array of return values
|
||||
if(is_array($return)){
|
||||
// multiple 'out' parameters, which we return wrapped up
|
||||
// in the array
|
||||
if(sizeof($return) > 1){
|
||||
return $return;
|
||||
}
|
||||
// single 'out' parameter (normally the return value)
|
||||
$return = array_shift($return);
|
||||
$this->debug('return shifted value: ');
|
||||
$this->appendDebug($this->varDump($return));
|
||||
return $return;
|
||||
// nothing returned (ie, echoVoid)
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* check WSDL passed as an instance or pulled from an endpoint
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function checkWSDL() {
|
||||
$this->appendDebug($this->wsdl->getDebug());
|
||||
$this->wsdl->clearDebug();
|
||||
$this->debug('checkWSDL');
|
||||
// catch errors
|
||||
if ($errstr = $this->wsdl->getError()) {
|
||||
$this->debug('got wsdl error: '.$errstr);
|
||||
$this->setError('wsdl error: '.$errstr);
|
||||
} elseif ($this->operations = $this->wsdl->getOperations('soap')) {
|
||||
$this->bindingType = 'soap';
|
||||
$this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType);
|
||||
} elseif ($this->operations = $this->wsdl->getOperations('soap12')) {
|
||||
$this->bindingType = 'soap12';
|
||||
$this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType);
|
||||
$this->debug('**************** WARNING: SOAP 1.2 BINDING *****************');
|
||||
} else {
|
||||
$this->debug('getOperations returned false');
|
||||
$this->setError('no operations defined in the WSDL document!');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* instantiate wsdl object and parse wsdl file
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function loadWSDL() {
|
||||
$this->debug('instantiating wsdl class with doc: '.$this->wsdlFile);
|
||||
$this->wsdl =& new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl);
|
||||
$this->wsdl->setCredentials($this->username, $this->password, $this->authtype, $this->certRequest);
|
||||
$this->wsdl->fetchWSDL($this->wsdlFile);
|
||||
$this->checkWSDL();
|
||||
}
|
||||
|
||||
/**
|
||||
* get available data pertaining to an operation
|
||||
*
|
||||
* @param string $operation operation name
|
||||
* @return array array of data pertaining to the operation
|
||||
* @access public
|
||||
*/
|
||||
function getOperationData($operation){
|
||||
if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) {
|
||||
$this->loadWSDL();
|
||||
if ($this->getError())
|
||||
return false;
|
||||
}
|
||||
if(isset($this->operations[$operation])){
|
||||
return $this->operations[$operation];
|
||||
}
|
||||
$this->debug("No data for operation: $operation");
|
||||
}
|
||||
|
||||
/**
|
||||
* send the SOAP message
|
||||
*
|
||||
* Note: if the operation has multiple return values
|
||||
* the return value of this method will be an array
|
||||
* of those values.
|
||||
*
|
||||
* @param string $msg a SOAPx4 soapmsg object
|
||||
* @param string $soapaction SOAPAction value
|
||||
* @param integer $timeout set connection timeout in seconds
|
||||
* @param integer $response_timeout set response timeout in seconds
|
||||
* @return mixed native PHP types.
|
||||
* @access private
|
||||
*/
|
||||
function send($msg, $soapaction = '', $timeout=0, $response_timeout=30) {
|
||||
$this->checkCookies();
|
||||
// detect transport
|
||||
switch(true){
|
||||
// http(s)
|
||||
case ereg('^http',$this->endpoint):
|
||||
$this->debug('transporting via HTTP');
|
||||
if($this->persistentConnection == true && is_object($this->persistentConnection)){
|
||||
$http =& $this->persistentConnection;
|
||||
} else {
|
||||
$http = new soap_transport_http($this->endpoint, $this->curl_options, $this->use_curl);
|
||||
if ($this->persistentConnection) {
|
||||
$http->usePersistentConnection();
|
||||
}
|
||||
}
|
||||
$http->setContentType($this->getHTTPContentType(), $this->getHTTPContentTypeCharset());
|
||||
$http->setSOAPAction($soapaction);
|
||||
if($this->proxyhost && $this->proxyport){
|
||||
$http->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword);
|
||||
}
|
||||
if($this->authtype != '') {
|
||||
$http->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest);
|
||||
}
|
||||
if($this->http_encoding != ''){
|
||||
$http->setEncoding($this->http_encoding);
|
||||
}
|
||||
$this->debug('sending message, length='.strlen($msg));
|
||||
if(ereg('^http:',$this->endpoint)){
|
||||
//if(strpos($this->endpoint,'http:')){
|
||||
$this->responseData = $http->send($msg,$timeout,$response_timeout,$this->cookies);
|
||||
} elseif(ereg('^https',$this->endpoint)){
|
||||
//} elseif(strpos($this->endpoint,'https:')){
|
||||
//if(phpversion() == '4.3.0-dev'){
|
||||
//$response = $http->send($msg,$timeout,$response_timeout);
|
||||
//$this->request = $http->outgoing_payload;
|
||||
//$this->response = $http->incoming_payload;
|
||||
//} else
|
||||
$this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout,$this->cookies);
|
||||
} else {
|
||||
$this->setError('no http/s in endpoint url');
|
||||
}
|
||||
$this->request = $http->outgoing_payload;
|
||||
$this->response = $http->incoming_payload;
|
||||
$this->appendDebug($http->getDebug());
|
||||
$this->UpdateCookies($http->incoming_cookies);
|
||||
|
||||
// save transport object if using persistent connections
|
||||
if ($this->persistentConnection) {
|
||||
$http->clearDebug();
|
||||
if (!is_object($this->persistentConnection)) {
|
||||
$this->persistentConnection = $http;
|
||||
}
|
||||
}
|
||||
|
||||
if($err = $http->getError()){
|
||||
$this->setError('HTTP Error: '.$err);
|
||||
return false;
|
||||
} elseif($this->getError()){
|
||||
return false;
|
||||
} else {
|
||||
$this->debug('got response, length='. strlen($this->responseData).' type='.$http->incoming_headers['content-type']);
|
||||
return $this->parseResponse($http->incoming_headers, $this->responseData);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$this->setError('no transport found, or selected transport is not yet supported!');
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* processes SOAP message returned from server
|
||||
*
|
||||
* @param array $headers The HTTP headers
|
||||
* @param string $data unprocessed response data from server
|
||||
* @return mixed value of the message, decoded into a PHP type
|
||||
* @access private
|
||||
*/
|
||||
function parseResponse($headers, $data) {
|
||||
$this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:');
|
||||
$this->appendDebug($this->varDump($headers));
|
||||
if (!strstr($headers['content-type'], 'text/xml')) {
|
||||
$this->setError('Response not of type text/xml: ' . $headers['content-type']);
|
||||
return false;
|
||||
}
|
||||
if (strpos($headers['content-type'], '=')) {
|
||||
$enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
|
||||
$this->debug('Got response encoding: ' . $enc);
|
||||
if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
|
||||
$this->xml_encoding = strtoupper($enc);
|
||||
} else {
|
||||
$this->xml_encoding = 'US-ASCII';
|
||||
}
|
||||
} else {
|
||||
// should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1
|
||||
$this->xml_encoding = 'ISO-8859-1';
|
||||
}
|
||||
$this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser');
|
||||
$parser = new nusoap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8);
|
||||
// add parser debug data to our debug
|
||||
$this->appendDebug($parser->getDebug());
|
||||
// if parse errors
|
||||
if($errstr = $parser->getError()){
|
||||
$this->setError( $errstr);
|
||||
// destroy the parser object
|
||||
unset($parser);
|
||||
return false;
|
||||
} else {
|
||||
// get SOAP headers
|
||||
$this->responseHeaders = $parser->getHeaders();
|
||||
// get SOAP headers
|
||||
$this->responseHeader = $parser->get_soapheader();
|
||||
// get decoded message
|
||||
$return = $parser->get_soapbody();
|
||||
// add document for doclit support
|
||||
$this->document = $parser->document;
|
||||
// destroy the parser object
|
||||
unset($parser);
|
||||
// return decode message
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* sets user-specified cURL options
|
||||
*
|
||||
* @param mixed $option The cURL option (always integer?)
|
||||
* @param mixed $value The cURL option value
|
||||
* @access public
|
||||
*/
|
||||
function setCurlOption($option, $value) {
|
||||
$this->debug("setCurlOption option=$option, value=");
|
||||
$this->appendDebug($this->varDump($value));
|
||||
$this->curl_options[$option] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the SOAP endpoint, which can override WSDL
|
||||
*
|
||||
* @param string $endpoint The endpoint URL to use, or empty string or false to prevent override
|
||||
* @access public
|
||||
*/
|
||||
function setEndpoint($endpoint) {
|
||||
$this->debug("setEndpoint(\"$endpoint\")");
|
||||
$this->forceEndpoint = $endpoint;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the SOAP headers
|
||||
*
|
||||
* @param mixed $headers String of XML with SOAP header content, or array of soapval objects for SOAP headers
|
||||
* @access public
|
||||
*/
|
||||
function setHeaders($headers){
|
||||
$this->debug("setHeaders headers=");
|
||||
$this->appendDebug($this->varDump($headers));
|
||||
$this->requestHeaders = $headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the SOAP response headers (namespace resolution incomplete)
|
||||
*
|
||||
* @return string
|
||||
* @access public
|
||||
*/
|
||||
function getHeaders(){
|
||||
return $this->responseHeaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the SOAP response Header (parsed)
|
||||
*
|
||||
* @return mixed
|
||||
* @access public
|
||||
*/
|
||||
function getHeader(){
|
||||
return $this->responseHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* set proxy info here
|
||||
*
|
||||
* @param string $proxyhost
|
||||
* @param string $proxyport
|
||||
* @param string $proxyusername
|
||||
* @param string $proxypassword
|
||||
* @access public
|
||||
*/
|
||||
function setHTTPProxy($proxyhost, $proxyport, $proxyusername = '', $proxypassword = '') {
|
||||
$this->proxyhost = $proxyhost;
|
||||
$this->proxyport = $proxyport;
|
||||
$this->proxyusername = $proxyusername;
|
||||
$this->proxypassword = $proxypassword;
|
||||
}
|
||||
|
||||
/**
|
||||
* if authenticating, set user credentials here
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param string $authtype (basic|digest|certificate|ntlm)
|
||||
* @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs)
|
||||
* @access public
|
||||
*/
|
||||
function setCredentials($username, $password, $authtype = 'basic', $certRequest = array()) {
|
||||
$this->debug("setCredentials username=$username authtype=$authtype certRequest=");
|
||||
$this->appendDebug($this->varDump($certRequest));
|
||||
$this->username = $username;
|
||||
$this->password = $password;
|
||||
$this->authtype = $authtype;
|
||||
$this->certRequest = $certRequest;
|
||||
}
|
||||
|
||||
/**
|
||||
* use HTTP encoding
|
||||
*
|
||||
* @param string $enc HTTP encoding
|
||||
* @access public
|
||||
*/
|
||||
function setHTTPEncoding($enc='gzip, deflate'){
|
||||
$this->debug("setHTTPEncoding(\"$enc\")");
|
||||
$this->http_encoding = $enc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether to try to use cURL connections if possible
|
||||
*
|
||||
* @param boolean $use Whether to try to use cURL
|
||||
* @access public
|
||||
*/
|
||||
function setUseCURL($use) {
|
||||
$this->debug("setUseCURL($use)");
|
||||
$this->use_curl = $use;
|
||||
}
|
||||
|
||||
/**
|
||||
* use HTTP persistent connections if possible
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function useHTTPPersistentConnection(){
|
||||
$this->debug("useHTTPPersistentConnection");
|
||||
$this->persistentConnection = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the default RPC parameter setting.
|
||||
* If true, default is that call params are like RPC even for document style.
|
||||
* Each call() can override this value.
|
||||
*
|
||||
* This is no longer used.
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function getDefaultRpcParams() {
|
||||
return $this->defaultRpcParams;
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the default RPC parameter setting.
|
||||
* If true, default is that call params are like RPC even for document style
|
||||
* Each call() can override this value.
|
||||
*
|
||||
* This is no longer used.
|
||||
*
|
||||
* @param boolean $rpcParams
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function setDefaultRpcParams($rpcParams) {
|
||||
$this->defaultRpcParams = $rpcParams;
|
||||
}
|
||||
|
||||
/**
|
||||
* dynamically creates an instance of a proxy class,
|
||||
* allowing user to directly call methods from wsdl
|
||||
*
|
||||
* @return object soap_proxy object
|
||||
* @access public
|
||||
*/
|
||||
function getProxy() {
|
||||
$r = rand();
|
||||
$evalStr = $this->_getProxyClassCode($r);
|
||||
//$this->debug("proxy class: $evalStr");
|
||||
if ($this->getError()) {
|
||||
$this->debug("Error from _getProxyClassCode, so return NULL");
|
||||
return null;
|
||||
}
|
||||
// eval the class
|
||||
eval($evalStr);
|
||||
// instantiate proxy object
|
||||
eval("\$proxy = new nusoap_proxy_$r('');");
|
||||
// transfer current wsdl data to the proxy thereby avoiding parsing the wsdl twice
|
||||
$proxy->endpointType = 'wsdl';
|
||||
$proxy->wsdlFile = $this->wsdlFile;
|
||||
$proxy->wsdl = $this->wsdl;
|
||||
$proxy->operations = $this->operations;
|
||||
$proxy->defaultRpcParams = $this->defaultRpcParams;
|
||||
// transfer other state
|
||||
$proxy->soap_defencoding = $this->soap_defencoding;
|
||||
$proxy->username = $this->username;
|
||||
$proxy->password = $this->password;
|
||||
$proxy->authtype = $this->authtype;
|
||||
$proxy->certRequest = $this->certRequest;
|
||||
$proxy->requestHeaders = $this->requestHeaders;
|
||||
$proxy->endpoint = $this->endpoint;
|
||||
$proxy->forceEndpoint = $this->forceEndpoint;
|
||||
$proxy->proxyhost = $this->proxyhost;
|
||||
$proxy->proxyport = $this->proxyport;
|
||||
$proxy->proxyusername = $this->proxyusername;
|
||||
$proxy->proxypassword = $this->proxypassword;
|
||||
$proxy->http_encoding = $this->http_encoding;
|
||||
$proxy->timeout = $this->timeout;
|
||||
$proxy->response_timeout = $this->response_timeout;
|
||||
$proxy->persistentConnection = &$this->persistentConnection;
|
||||
$proxy->decode_utf8 = $this->decode_utf8;
|
||||
$proxy->curl_options = $this->curl_options;
|
||||
$proxy->bindingType = $this->bindingType;
|
||||
$proxy->use_curl = $this->use_curl;
|
||||
return $proxy;
|
||||
}
|
||||
|
||||
/**
|
||||
* dynamically creates proxy class code
|
||||
*
|
||||
* @return string PHP/NuSOAP code for the proxy class
|
||||
* @access private
|
||||
*/
|
||||
function _getProxyClassCode($r) {
|
||||
$this->debug("in getProxy endpointType=$this->endpointType");
|
||||
$this->appendDebug("wsdl=" . $this->varDump($this->wsdl));
|
||||
if ($this->endpointType != 'wsdl') {
|
||||
$evalStr = 'A proxy can only be created for a WSDL client';
|
||||
$this->setError($evalStr);
|
||||
$evalStr = "echo \"$evalStr\";";
|
||||
return $evalStr;
|
||||
}
|
||||
if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) {
|
||||
$this->loadWSDL();
|
||||
if ($this->getError()) {
|
||||
return "echo \"" . $this->getError() . "\";";
|
||||
}
|
||||
}
|
||||
$evalStr = '';
|
||||
foreach ($this->operations as $operation => $opData) {
|
||||
if ($operation != '') {
|
||||
// create param string and param comment string
|
||||
if (sizeof($opData['input']['parts']) > 0) {
|
||||
$paramStr = '';
|
||||
$paramArrayStr = '';
|
||||
$paramCommentStr = '';
|
||||
foreach ($opData['input']['parts'] as $name => $type) {
|
||||
$paramStr .= "\$$name, ";
|
||||
$paramArrayStr .= "'$name' => \$$name, ";
|
||||
$paramCommentStr .= "$type \$$name, ";
|
||||
}
|
||||
$paramStr = substr($paramStr, 0, strlen($paramStr)-2);
|
||||
$paramArrayStr = substr($paramArrayStr, 0, strlen($paramArrayStr)-2);
|
||||
$paramCommentStr = substr($paramCommentStr, 0, strlen($paramCommentStr)-2);
|
||||
} else {
|
||||
$paramStr = '';
|
||||
$paramArrayStr = '';
|
||||
$paramCommentStr = 'void';
|
||||
}
|
||||
$opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace'];
|
||||
$evalStr .= "// $paramCommentStr
|
||||
function " . str_replace('.', '__', $operation) . "($paramStr) {
|
||||
\$params = array($paramArrayStr);
|
||||
return \$this->call('$operation', \$params, '".$opData['namespace']."', '".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."');
|
||||
}
|
||||
";
|
||||
unset($paramStr);
|
||||
unset($paramCommentStr);
|
||||
}
|
||||
}
|
||||
$evalStr = 'class nusoap_proxy_'.$r.' extends nusoap_client {
|
||||
'.$evalStr.'
|
||||
}';
|
||||
return $evalStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* dynamically creates proxy class code
|
||||
*
|
||||
* @return string PHP/NuSOAP code for the proxy class
|
||||
* @access public
|
||||
*/
|
||||
function getProxyClassCode() {
|
||||
$r = rand();
|
||||
return $this->_getProxyClassCode($r);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP body for the current request.
|
||||
*
|
||||
* @param string $soapmsg The SOAP payload
|
||||
* @return string The HTTP body, which includes the SOAP payload
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPBody($soapmsg) {
|
||||
return $soapmsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP content type for the current request.
|
||||
*
|
||||
* Note: getHTTPBody must be called before this.
|
||||
*
|
||||
* @return string the HTTP content type for the current request.
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPContentType() {
|
||||
return 'text/xml';
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP content type charset for the current request.
|
||||
* returns false for non-text content types.
|
||||
*
|
||||
* Note: getHTTPBody must be called before this.
|
||||
*
|
||||
* @return string the HTTP content type charset for the current request.
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPContentTypeCharset() {
|
||||
return $this->soap_defencoding;
|
||||
}
|
||||
|
||||
/*
|
||||
* whether or not parser should decode utf8 element content
|
||||
*
|
||||
* @return always returns true
|
||||
* @access public
|
||||
*/
|
||||
function decodeUTF8($bool){
|
||||
$this->decode_utf8 = $bool;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* adds a new Cookie into $this->cookies array
|
||||
*
|
||||
* @param string $name Cookie Name
|
||||
* @param string $value Cookie Value
|
||||
* @return boolean if cookie-set was successful returns true, else false
|
||||
* @access public
|
||||
*/
|
||||
function setCookie($name, $value) {
|
||||
if (strlen($name) == 0) {
|
||||
return false;
|
||||
}
|
||||
$this->cookies[] = array('name' => $name, 'value' => $value);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets all Cookies
|
||||
*
|
||||
* @return array with all internal cookies
|
||||
* @access public
|
||||
*/
|
||||
function getCookies() {
|
||||
return $this->cookies;
|
||||
}
|
||||
|
||||
/**
|
||||
* checks all Cookies and delete those which are expired
|
||||
*
|
||||
* @return boolean always return true
|
||||
* @access private
|
||||
*/
|
||||
function checkCookies() {
|
||||
if (sizeof($this->cookies) == 0) {
|
||||
return true;
|
||||
}
|
||||
$this->debug('checkCookie: check ' . sizeof($this->cookies) . ' cookies');
|
||||
$curr_cookies = $this->cookies;
|
||||
$this->cookies = array();
|
||||
foreach ($curr_cookies as $cookie) {
|
||||
if (! is_array($cookie)) {
|
||||
$this->debug('Remove cookie that is not an array');
|
||||
continue;
|
||||
}
|
||||
if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) {
|
||||
if (strtotime($cookie['expires']) > time()) {
|
||||
$this->cookies[] = $cookie;
|
||||
} else {
|
||||
$this->debug('Remove expired cookie ' . $cookie['name']);
|
||||
}
|
||||
} else {
|
||||
$this->cookies[] = $cookie;
|
||||
}
|
||||
}
|
||||
$this->debug('checkCookie: '.sizeof($this->cookies).' cookies left in array');
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* updates the current cookies with a new set
|
||||
*
|
||||
* @param array $cookies new cookies with which to update current ones
|
||||
* @return boolean always return true
|
||||
* @access private
|
||||
*/
|
||||
function UpdateCookies($cookies) {
|
||||
if (sizeof($this->cookies) == 0) {
|
||||
// no existing cookies: take whatever is new
|
||||
if (sizeof($cookies) > 0) {
|
||||
$this->debug('Setting new cookie(s)');
|
||||
$this->cookies = $cookies;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (sizeof($cookies) == 0) {
|
||||
// no new cookies: keep what we've got
|
||||
return true;
|
||||
}
|
||||
// merge
|
||||
foreach ($cookies as $newCookie) {
|
||||
if (!is_array($newCookie)) {
|
||||
continue;
|
||||
}
|
||||
if ((!isset($newCookie['name'])) || (!isset($newCookie['value']))) {
|
||||
continue;
|
||||
}
|
||||
$newName = $newCookie['name'];
|
||||
|
||||
$found = false;
|
||||
for ($i = 0; $i < count($this->cookies); $i++) {
|
||||
$cookie = $this->cookies[$i];
|
||||
if (!is_array($cookie)) {
|
||||
continue;
|
||||
}
|
||||
if (!isset($cookie['name'])) {
|
||||
continue;
|
||||
}
|
||||
if ($newName != $cookie['name']) {
|
||||
continue;
|
||||
}
|
||||
$newDomain = isset($newCookie['domain']) ? $newCookie['domain'] : 'NODOMAIN';
|
||||
$domain = isset($cookie['domain']) ? $cookie['domain'] : 'NODOMAIN';
|
||||
if ($newDomain != $domain) {
|
||||
continue;
|
||||
}
|
||||
$newPath = isset($newCookie['path']) ? $newCookie['path'] : 'NOPATH';
|
||||
$path = isset($cookie['path']) ? $cookie['path'] : 'NOPATH';
|
||||
if ($newPath != $path) {
|
||||
continue;
|
||||
}
|
||||
$this->cookies[$i] = $newCookie;
|
||||
$found = true;
|
||||
$this->debug('Update cookie ' . $newName . '=' . $newCookie['value']);
|
||||
break;
|
||||
}
|
||||
if (! $found) {
|
||||
$this->debug('Add cookie ' . $newName . '=' . $newCookie['value']);
|
||||
$this->cookies[] = $newCookie;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!extension_loaded('soap')) {
|
||||
/**
|
||||
* For backwards compatiblity, define soapclient unless the PHP SOAP extension is loaded.
|
||||
*/
|
||||
class soapclient extends nusoap_client {
|
||||
}
|
||||
}
|
||||
?>
|
1904
html/afnic/lib/class.wsdl.php
Normal file
1904
html/afnic/lib/class.wsdl.php
Normal file
File diff suppressed because it is too large
Load Diff
209
html/afnic/lib/class.wsdlcache.php
Normal file
209
html/afnic/lib/class.wsdlcache.php
Normal file
@ -0,0 +1,209 @@
|
||||
<?php
|
||||
/*
|
||||
The NuSOAP project home is:
|
||||
http://sourceforge.net/projects/nusoap/
|
||||
|
||||
The primary support for NuSOAP is the mailing list:
|
||||
nusoap-general@lists.sourceforge.net
|
||||
*/
|
||||
|
||||
/**
|
||||
* caches instances of the wsdl class
|
||||
*
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @author Ingo Fischer <ingo@apollon.de>
|
||||
* @version $Id: class.wsdlcache.php,v 1.7 2007/04/17 16:34:03 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_wsdlcache {
|
||||
/**
|
||||
* @var resource
|
||||
* @access private
|
||||
*/
|
||||
var $fplock;
|
||||
/**
|
||||
* @var integer
|
||||
* @access private
|
||||
*/
|
||||
var $cache_lifetime;
|
||||
/**
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $cache_dir;
|
||||
/**
|
||||
* @var string
|
||||
* @access public
|
||||
*/
|
||||
var $debug_str = '';
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param string $cache_dir directory for cache-files
|
||||
* @param integer $cache_lifetime lifetime for caching-files in seconds or 0 for unlimited
|
||||
* @access public
|
||||
*/
|
||||
function nusoap_wsdlcache($cache_dir='.', $cache_lifetime=0) {
|
||||
$this->fplock = array();
|
||||
$this->cache_dir = $cache_dir != '' ? $cache_dir : '.';
|
||||
$this->cache_lifetime = $cache_lifetime;
|
||||
}
|
||||
|
||||
/**
|
||||
* creates the filename used to cache a wsdl instance
|
||||
*
|
||||
* @param string $wsdl The URL of the wsdl instance
|
||||
* @return string The filename used to cache the instance
|
||||
* @access private
|
||||
*/
|
||||
function createFilename($wsdl) {
|
||||
return $this->cache_dir.'/wsdlcache-' . md5($wsdl);
|
||||
}
|
||||
|
||||
/**
|
||||
* adds debug data to the class level debug string
|
||||
*
|
||||
* @param string $string debug data
|
||||
* @access private
|
||||
*/
|
||||
function debug($string){
|
||||
$this->debug_str .= get_class($this).": $string\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* gets a wsdl instance from the cache
|
||||
*
|
||||
* @param string $wsdl The URL of the wsdl instance
|
||||
* @return object wsdl The cached wsdl instance, null if the instance is not in the cache
|
||||
* @access public
|
||||
*/
|
||||
function get($wsdl) {
|
||||
$filename = $this->createFilename($wsdl);
|
||||
if ($this->obtainMutex($filename, "r")) {
|
||||
// check for expired WSDL that must be removed from the cache
|
||||
if ($this->cache_lifetime > 0) {
|
||||
if (file_exists($filename) && (time() - filemtime($filename) > $this->cache_lifetime)) {
|
||||
unlink($filename);
|
||||
$this->debug("Expired $wsdl ($filename) from cache");
|
||||
$this->releaseMutex($filename);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// see what there is to return
|
||||
if (!file_exists($filename)) {
|
||||
$this->debug("$wsdl ($filename) not in cache (1)");
|
||||
$this->releaseMutex($filename);
|
||||
return null;
|
||||
}
|
||||
$fp = @fopen($filename, "r");
|
||||
if ($fp) {
|
||||
$s = implode("", @file($filename));
|
||||
fclose($fp);
|
||||
$this->debug("Got $wsdl ($filename) from cache");
|
||||
} else {
|
||||
$s = null;
|
||||
$this->debug("$wsdl ($filename) not in cache (2)");
|
||||
}
|
||||
$this->releaseMutex($filename);
|
||||
return (!is_null($s)) ? unserialize($s) : null;
|
||||
} else {
|
||||
$this->debug("Unable to obtain mutex for $filename in get");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* obtains the local mutex
|
||||
*
|
||||
* @param string $filename The Filename of the Cache to lock
|
||||
* @param string $mode The open-mode ("r" or "w") or the file - affects lock-mode
|
||||
* @return boolean Lock successfully obtained ?!
|
||||
* @access private
|
||||
*/
|
||||
function obtainMutex($filename, $mode) {
|
||||
if (isset($this->fplock[md5($filename)])) {
|
||||
$this->debug("Lock for $filename already exists");
|
||||
return false;
|
||||
}
|
||||
$this->fplock[md5($filename)] = fopen($filename.".lock", "w");
|
||||
if ($mode == "r") {
|
||||
return flock($this->fplock[md5($filename)], LOCK_SH);
|
||||
} else {
|
||||
return flock($this->fplock[md5($filename)], LOCK_EX);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* adds a wsdl instance to the cache
|
||||
*
|
||||
* @param object wsdl $wsdl_instance The wsdl instance to add
|
||||
* @return boolean WSDL successfully cached
|
||||
* @access public
|
||||
*/
|
||||
function put($wsdl_instance) {
|
||||
$filename = $this->createFilename($wsdl_instance->wsdl);
|
||||
$s = serialize($wsdl_instance);
|
||||
if ($this->obtainMutex($filename, "w")) {
|
||||
$fp = fopen($filename, "w");
|
||||
if (! $fp) {
|
||||
$this->debug("Cannot write $wsdl_instance->wsdl ($filename) in cache");
|
||||
$this->releaseMutex($filename);
|
||||
return false;
|
||||
}
|
||||
fputs($fp, $s);
|
||||
fclose($fp);
|
||||
$this->debug("Put $wsdl_instance->wsdl ($filename) in cache");
|
||||
$this->releaseMutex($filename);
|
||||
return true;
|
||||
} else {
|
||||
$this->debug("Unable to obtain mutex for $filename in put");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* releases the local mutex
|
||||
*
|
||||
* @param string $filename The Filename of the Cache to lock
|
||||
* @return boolean Lock successfully released
|
||||
* @access private
|
||||
*/
|
||||
function releaseMutex($filename) {
|
||||
$ret = flock($this->fplock[md5($filename)], LOCK_UN);
|
||||
fclose($this->fplock[md5($filename)]);
|
||||
unset($this->fplock[md5($filename)]);
|
||||
if (! $ret) {
|
||||
$this->debug("Not able to release lock for $filename");
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* removes a wsdl instance from the cache
|
||||
*
|
||||
* @param string $wsdl The URL of the wsdl instance
|
||||
* @return boolean Whether there was an instance to remove
|
||||
* @access public
|
||||
*/
|
||||
function remove($wsdl) {
|
||||
$filename = $this->createFilename($wsdl);
|
||||
if (!file_exists($filename)) {
|
||||
$this->debug("$wsdl ($filename) not in cache to be removed");
|
||||
return false;
|
||||
}
|
||||
// ignore errors obtaining mutex
|
||||
$this->obtainMutex($filename, "w");
|
||||
$ret = unlink($filename);
|
||||
$this->debug("Removed ($ret) $wsdl ($filename) from cache");
|
||||
$this->releaseMutex($filename);
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For backward compatibility
|
||||
*/
|
||||
class wsdlcache extends nusoap_wsdlcache {
|
||||
}
|
||||
?>
|
938
html/afnic/lib/class.xmlschema.php
Normal file
938
html/afnic/lib/class.xmlschema.php
Normal file
@ -0,0 +1,938 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* parses an XML Schema, allows access to it's data, other utility methods.
|
||||
* imperfect, no validation... yet, but quite functional.
|
||||
*
|
||||
* @author Dietrich Ayala <dietrich@ganx4.com>
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @version $Id: class.xmlschema.php,v 1.49 2007/11/06 14:17:53 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_xmlschema extends nusoap_base {
|
||||
|
||||
// files
|
||||
var $schema = '';
|
||||
var $xml = '';
|
||||
// namespaces
|
||||
var $enclosingNamespaces;
|
||||
// schema info
|
||||
var $schemaInfo = array();
|
||||
var $schemaTargetNamespace = '';
|
||||
// types, elements, attributes defined by the schema
|
||||
var $attributes = array();
|
||||
var $complexTypes = array();
|
||||
var $complexTypeStack = array();
|
||||
var $currentComplexType = null;
|
||||
var $elements = array();
|
||||
var $elementStack = array();
|
||||
var $currentElement = null;
|
||||
var $simpleTypes = array();
|
||||
var $simpleTypeStack = array();
|
||||
var $currentSimpleType = null;
|
||||
// imports
|
||||
var $imports = array();
|
||||
// parser vars
|
||||
var $parser;
|
||||
var $position = 0;
|
||||
var $depth = 0;
|
||||
var $depth_array = array();
|
||||
var $message = array();
|
||||
var $defaultNamespace = array();
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param string $schema schema document URI
|
||||
* @param string $xml xml document URI
|
||||
* @param string $namespaces namespaces defined in enclosing XML
|
||||
* @access public
|
||||
*/
|
||||
function nusoap_xmlschema($schema='',$xml='',$namespaces=array()){
|
||||
parent::nusoap_base();
|
||||
$this->debug('nusoap_xmlschema class instantiated, inside constructor');
|
||||
// files
|
||||
$this->schema = $schema;
|
||||
$this->xml = $xml;
|
||||
|
||||
// namespaces
|
||||
$this->enclosingNamespaces = $namespaces;
|
||||
$this->namespaces = array_merge($this->namespaces, $namespaces);
|
||||
|
||||
// parse schema file
|
||||
if($schema != ''){
|
||||
$this->debug('initial schema file: '.$schema);
|
||||
$this->parseFile($schema, 'schema');
|
||||
}
|
||||
|
||||
// parse xml file
|
||||
if($xml != ''){
|
||||
$this->debug('initial xml file: '.$xml);
|
||||
$this->parseFile($xml, 'xml');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* parse an XML file
|
||||
*
|
||||
* @param string $xml path/URL to XML file
|
||||
* @param string $type (schema | xml)
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function parseFile($xml,$type){
|
||||
// parse xml file
|
||||
if($xml != ""){
|
||||
$xmlStr = @join("",@file($xml));
|
||||
if($xmlStr == ""){
|
||||
$msg = 'Error reading XML from '.$xml;
|
||||
$this->setError($msg);
|
||||
$this->debug($msg);
|
||||
return false;
|
||||
} else {
|
||||
$this->debug("parsing $xml");
|
||||
$this->parseString($xmlStr,$type);
|
||||
$this->debug("done parsing $xml");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* parse an XML string
|
||||
*
|
||||
* @param string $xml path or URL
|
||||
* @param string $type (schema|xml)
|
||||
* @access private
|
||||
*/
|
||||
function parseString($xml,$type){
|
||||
// parse xml string
|
||||
if($xml != ""){
|
||||
|
||||
// Create an XML parser.
|
||||
$this->parser = xml_parser_create();
|
||||
// Set the options for parsing the XML data.
|
||||
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0);
|
||||
|
||||
// Set the object for the parser.
|
||||
xml_set_object($this->parser, $this);
|
||||
|
||||
// Set the element handlers for the parser.
|
||||
if($type == "schema"){
|
||||
xml_set_element_handler($this->parser, 'schemaStartElement','schemaEndElement');
|
||||
xml_set_character_data_handler($this->parser,'schemaCharacterData');
|
||||
} elseif($type == "xml"){
|
||||
xml_set_element_handler($this->parser, 'xmlStartElement','xmlEndElement');
|
||||
xml_set_character_data_handler($this->parser,'xmlCharacterData');
|
||||
}
|
||||
|
||||
// Parse the XML file.
|
||||
if(!xml_parse($this->parser,$xml,true)){
|
||||
// Display an error message.
|
||||
$errstr = sprintf('XML error parsing XML schema on line %d: %s',
|
||||
xml_get_current_line_number($this->parser),
|
||||
xml_error_string(xml_get_error_code($this->parser))
|
||||
);
|
||||
$this->debug($errstr);
|
||||
$this->debug("XML payload:\n" . $xml);
|
||||
$this->setError($errstr);
|
||||
}
|
||||
|
||||
xml_parser_free($this->parser);
|
||||
} else{
|
||||
$this->debug('no xml passed to parseString()!!');
|
||||
$this->setError('no xml passed to parseString()!!');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gets a type name for an unnamed type
|
||||
*
|
||||
* @param string Element name
|
||||
* @return string A type name for an unnamed type
|
||||
* @access private
|
||||
*/
|
||||
function CreateTypeName($ename) {
|
||||
$scope = '';
|
||||
for ($i = 0; $i < count($this->complexTypeStack); $i++) {
|
||||
$scope .= $this->complexTypeStack[$i] . '_';
|
||||
}
|
||||
return $scope . $ename . '_ContainedType';
|
||||
}
|
||||
|
||||
/**
|
||||
* start-element handler
|
||||
*
|
||||
* @param string $parser XML parser object
|
||||
* @param string $name element name
|
||||
* @param string $attrs associative array of attributes
|
||||
* @access private
|
||||
*/
|
||||
function schemaStartElement($parser, $name, $attrs) {
|
||||
|
||||
// position in the total number of elements, starting from 0
|
||||
$pos = $this->position++;
|
||||
$depth = $this->depth++;
|
||||
// set self as current value for this depth
|
||||
$this->depth_array[$depth] = $pos;
|
||||
$this->message[$pos] = array('cdata' => '');
|
||||
if ($depth > 0) {
|
||||
$this->defaultNamespace[$pos] = $this->defaultNamespace[$this->depth_array[$depth - 1]];
|
||||
} else {
|
||||
$this->defaultNamespace[$pos] = false;
|
||||
}
|
||||
|
||||
// get element prefix
|
||||
if($prefix = $this->getPrefix($name)){
|
||||
// get unqualified name
|
||||
$name = $this->getLocalPart($name);
|
||||
} else {
|
||||
$prefix = '';
|
||||
}
|
||||
|
||||
// loop thru attributes, expanding, and registering namespace declarations
|
||||
if(count($attrs) > 0){
|
||||
foreach($attrs as $k => $v){
|
||||
// if ns declarations, add to class level array of valid namespaces
|
||||
if(ereg("^xmlns",$k)){
|
||||
//$this->xdebug("$k: $v");
|
||||
//$this->xdebug('ns_prefix: '.$this->getPrefix($k));
|
||||
if($ns_prefix = substr(strrchr($k,':'),1)){
|
||||
//$this->xdebug("Add namespace[$ns_prefix] = $v");
|
||||
$this->namespaces[$ns_prefix] = $v;
|
||||
} else {
|
||||
$this->defaultNamespace[$pos] = $v;
|
||||
if (! $this->getPrefixFromNamespace($v)) {
|
||||
$this->namespaces['ns'.(count($this->namespaces)+1)] = $v;
|
||||
}
|
||||
}
|
||||
if($v == 'http://www.w3.org/2001/XMLSchema' || $v == 'http://www.w3.org/1999/XMLSchema' || $v == 'http://www.w3.org/2000/10/XMLSchema'){
|
||||
$this->XMLSchemaVersion = $v;
|
||||
$this->namespaces['xsi'] = $v.'-instance';
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($attrs as $k => $v){
|
||||
// expand each attribute
|
||||
$k = strpos($k,':') ? $this->expandQname($k) : $k;
|
||||
$v = strpos($v,':') ? $this->expandQname($v) : $v;
|
||||
$eAttrs[$k] = $v;
|
||||
}
|
||||
$attrs = $eAttrs;
|
||||
} else {
|
||||
$attrs = array();
|
||||
}
|
||||
// find status, register data
|
||||
switch($name){
|
||||
case 'all': // (optional) compositor content for a complexType
|
||||
case 'choice':
|
||||
case 'group':
|
||||
case 'sequence':
|
||||
//$this->xdebug("compositor $name for currentComplexType: $this->currentComplexType and currentElement: $this->currentElement");
|
||||
$this->complexTypes[$this->currentComplexType]['compositor'] = $name;
|
||||
//if($name == 'all' || $name == 'sequence'){
|
||||
// $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct';
|
||||
//}
|
||||
break;
|
||||
case 'attribute': // complexType attribute
|
||||
//$this->xdebug("parsing attribute $attrs[name] $attrs[ref] of value: ".$attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']);
|
||||
$this->xdebug("parsing attribute:");
|
||||
$this->appendDebug($this->varDump($attrs));
|
||||
if (!isset($attrs['form'])) {
|
||||
$attrs['form'] = $this->schemaInfo['attributeFormDefault'];
|
||||
}
|
||||
if (isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])) {
|
||||
$v = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'];
|
||||
if (!strpos($v, ':')) {
|
||||
// no namespace in arrayType attribute value...
|
||||
if ($this->defaultNamespace[$pos]) {
|
||||
// ...so use the default
|
||||
$attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'] = $this->defaultNamespace[$pos] . ':' . $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if(isset($attrs['name'])){
|
||||
$this->attributes[$attrs['name']] = $attrs;
|
||||
$aname = $attrs['name'];
|
||||
} elseif(isset($attrs['ref']) && $attrs['ref'] == 'http://schemas.xmlsoap.org/soap/encoding/:arrayType'){
|
||||
if (isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])) {
|
||||
$aname = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'];
|
||||
} else {
|
||||
$aname = '';
|
||||
}
|
||||
} elseif(isset($attrs['ref'])){
|
||||
$aname = $attrs['ref'];
|
||||
$this->attributes[$attrs['ref']] = $attrs;
|
||||
}
|
||||
|
||||
if($this->currentComplexType){ // This should *always* be
|
||||
$this->complexTypes[$this->currentComplexType]['attrs'][$aname] = $attrs;
|
||||
}
|
||||
// arrayType attribute
|
||||
if(isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']) || $this->getLocalPart($aname) == 'arrayType'){
|
||||
$this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
|
||||
$prefix = $this->getPrefix($aname);
|
||||
if(isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])){
|
||||
$v = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'];
|
||||
} else {
|
||||
$v = '';
|
||||
}
|
||||
if(strpos($v,'[,]')){
|
||||
$this->complexTypes[$this->currentComplexType]['multidimensional'] = true;
|
||||
}
|
||||
$v = substr($v,0,strpos($v,'[')); // clip the []
|
||||
if(!strpos($v,':') && isset($this->typemap[$this->XMLSchemaVersion][$v])){
|
||||
$v = $this->XMLSchemaVersion.':'.$v;
|
||||
}
|
||||
$this->complexTypes[$this->currentComplexType]['arrayType'] = $v;
|
||||
}
|
||||
break;
|
||||
case 'complexContent': // (optional) content for a complexType
|
||||
break;
|
||||
case 'complexType':
|
||||
array_push($this->complexTypeStack, $this->currentComplexType);
|
||||
if(isset($attrs['name'])){
|
||||
// TODO: what is the scope of named complexTypes that appear
|
||||
// nested within other c complexTypes?
|
||||
$this->xdebug('processing named complexType '.$attrs['name']);
|
||||
//$this->currentElement = false;
|
||||
$this->currentComplexType = $attrs['name'];
|
||||
$this->complexTypes[$this->currentComplexType] = $attrs;
|
||||
$this->complexTypes[$this->currentComplexType]['typeClass'] = 'complexType';
|
||||
// This is for constructs like
|
||||
// <complexType name="ListOfString" base="soap:Array">
|
||||
// <sequence>
|
||||
// <element name="string" type="xsd:string"
|
||||
// minOccurs="0" maxOccurs="unbounded" />
|
||||
// </sequence>
|
||||
// </complexType>
|
||||
if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){
|
||||
$this->xdebug('complexType is unusual array');
|
||||
$this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
|
||||
} else {
|
||||
$this->complexTypes[$this->currentComplexType]['phpType'] = 'struct';
|
||||
}
|
||||
} else {
|
||||
$name = $this->CreateTypeName($this->currentElement);
|
||||
$this->xdebug('processing unnamed complexType for element ' . $this->currentElement . ' named ' . $name);
|
||||
$this->currentComplexType = $name;
|
||||
//$this->currentElement = false;
|
||||
$this->complexTypes[$this->currentComplexType] = $attrs;
|
||||
$this->complexTypes[$this->currentComplexType]['typeClass'] = 'complexType';
|
||||
// This is for constructs like
|
||||
// <complexType name="ListOfString" base="soap:Array">
|
||||
// <sequence>
|
||||
// <element name="string" type="xsd:string"
|
||||
// minOccurs="0" maxOccurs="unbounded" />
|
||||
// </sequence>
|
||||
// </complexType>
|
||||
if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){
|
||||
$this->xdebug('complexType is unusual array');
|
||||
$this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
|
||||
} else {
|
||||
$this->complexTypes[$this->currentComplexType]['phpType'] = 'struct';
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'element':
|
||||
array_push($this->elementStack, $this->currentElement);
|
||||
if (!isset($attrs['form'])) {
|
||||
$attrs['form'] = $this->schemaInfo['elementFormDefault'];
|
||||
}
|
||||
if(isset($attrs['type'])){
|
||||
$this->xdebug("processing typed element ".$attrs['name']." of type ".$attrs['type']);
|
||||
if (! $this->getPrefix($attrs['type'])) {
|
||||
if ($this->defaultNamespace[$pos]) {
|
||||
$attrs['type'] = $this->defaultNamespace[$pos] . ':' . $attrs['type'];
|
||||
$this->xdebug('used default namespace to make type ' . $attrs['type']);
|
||||
}
|
||||
}
|
||||
// This is for constructs like
|
||||
// <complexType name="ListOfString" base="soap:Array">
|
||||
// <sequence>
|
||||
// <element name="string" type="xsd:string"
|
||||
// minOccurs="0" maxOccurs="unbounded" />
|
||||
// </sequence>
|
||||
// </complexType>
|
||||
if ($this->currentComplexType && $this->complexTypes[$this->currentComplexType]['phpType'] == 'array') {
|
||||
$this->xdebug('arrayType for unusual array is ' . $attrs['type']);
|
||||
$this->complexTypes[$this->currentComplexType]['arrayType'] = $attrs['type'];
|
||||
}
|
||||
$this->currentElement = $attrs['name'];
|
||||
$ename = $attrs['name'];
|
||||
} elseif(isset($attrs['ref'])){
|
||||
$this->xdebug("processing element as ref to ".$attrs['ref']);
|
||||
$this->currentElement = "ref to ".$attrs['ref'];
|
||||
$ename = $this->getLocalPart($attrs['ref']);
|
||||
} else {
|
||||
$type = $this->CreateTypeName($this->currentComplexType . '_' . $attrs['name']);
|
||||
$this->xdebug("processing untyped element " . $attrs['name'] . ' type ' . $type);
|
||||
$this->currentElement = $attrs['name'];
|
||||
$attrs['type'] = $this->schemaTargetNamespace . ':' . $type;
|
||||
$ename = $attrs['name'];
|
||||
}
|
||||
if (isset($ename) && $this->currentComplexType) {
|
||||
$this->xdebug("add element $ename to complexType $this->currentComplexType");
|
||||
$this->complexTypes[$this->currentComplexType]['elements'][$ename] = $attrs;
|
||||
} elseif (!isset($attrs['ref'])) {
|
||||
$this->xdebug("add element $ename to elements array");
|
||||
$this->elements[ $attrs['name'] ] = $attrs;
|
||||
$this->elements[ $attrs['name'] ]['typeClass'] = 'element';
|
||||
}
|
||||
break;
|
||||
case 'enumeration': // restriction value list member
|
||||
$this->xdebug('enumeration ' . $attrs['value']);
|
||||
if ($this->currentSimpleType) {
|
||||
$this->simpleTypes[$this->currentSimpleType]['enumeration'][] = $attrs['value'];
|
||||
} elseif ($this->currentComplexType) {
|
||||
$this->complexTypes[$this->currentComplexType]['enumeration'][] = $attrs['value'];
|
||||
}
|
||||
break;
|
||||
case 'extension': // simpleContent or complexContent type extension
|
||||
$this->xdebug('extension ' . $attrs['base']);
|
||||
if ($this->currentComplexType) {
|
||||
$this->complexTypes[$this->currentComplexType]['extensionBase'] = $attrs['base'];
|
||||
}
|
||||
break;
|
||||
case 'import':
|
||||
if (isset($attrs['schemaLocation'])) {
|
||||
//$this->xdebug('import namespace ' . $attrs['namespace'] . ' from ' . $attrs['schemaLocation']);
|
||||
$this->imports[$attrs['namespace']][] = array('location' => $attrs['schemaLocation'], 'loaded' => false);
|
||||
} else {
|
||||
//$this->xdebug('import namespace ' . $attrs['namespace']);
|
||||
$this->imports[$attrs['namespace']][] = array('location' => '', 'loaded' => true);
|
||||
if (! $this->getPrefixFromNamespace($attrs['namespace'])) {
|
||||
$this->namespaces['ns'.(count($this->namespaces)+1)] = $attrs['namespace'];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'list': // simpleType value list
|
||||
break;
|
||||
case 'restriction': // simpleType, simpleContent or complexContent value restriction
|
||||
$this->xdebug('restriction ' . $attrs['base']);
|
||||
if($this->currentSimpleType){
|
||||
$this->simpleTypes[$this->currentSimpleType]['type'] = $attrs['base'];
|
||||
} elseif($this->currentComplexType){
|
||||
$this->complexTypes[$this->currentComplexType]['restrictionBase'] = $attrs['base'];
|
||||
if(strstr($attrs['base'],':') == ':Array'){
|
||||
$this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'schema':
|
||||
$this->schemaInfo = $attrs;
|
||||
$this->schemaInfo['schemaVersion'] = $this->getNamespaceFromPrefix($prefix);
|
||||
if (isset($attrs['targetNamespace'])) {
|
||||
$this->schemaTargetNamespace = $attrs['targetNamespace'];
|
||||
}
|
||||
if (!isset($attrs['elementFormDefault'])) {
|
||||
$this->schemaInfo['elementFormDefault'] = 'unqualified';
|
||||
}
|
||||
if (!isset($attrs['attributeFormDefault'])) {
|
||||
$this->schemaInfo['attributeFormDefault'] = 'unqualified';
|
||||
}
|
||||
break;
|
||||
case 'simpleContent': // (optional) content for a complexType
|
||||
break;
|
||||
case 'simpleType':
|
||||
array_push($this->simpleTypeStack, $this->currentSimpleType);
|
||||
if(isset($attrs['name'])){
|
||||
$this->xdebug("processing simpleType for name " . $attrs['name']);
|
||||
$this->currentSimpleType = $attrs['name'];
|
||||
$this->simpleTypes[ $attrs['name'] ] = $attrs;
|
||||
$this->simpleTypes[ $attrs['name'] ]['typeClass'] = 'simpleType';
|
||||
$this->simpleTypes[ $attrs['name'] ]['phpType'] = 'scalar';
|
||||
} else {
|
||||
$name = $this->CreateTypeName($this->currentComplexType . '_' . $this->currentElement);
|
||||
$this->xdebug('processing unnamed simpleType for element ' . $this->currentElement . ' named ' . $name);
|
||||
$this->currentSimpleType = $name;
|
||||
//$this->currentElement = false;
|
||||
$this->simpleTypes[$this->currentSimpleType] = $attrs;
|
||||
$this->simpleTypes[$this->currentSimpleType]['phpType'] = 'scalar';
|
||||
}
|
||||
break;
|
||||
case 'union': // simpleType type list
|
||||
break;
|
||||
default:
|
||||
//$this->xdebug("do not have anything to do for element $name");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* end-element handler
|
||||
*
|
||||
* @param string $parser XML parser object
|
||||
* @param string $name element name
|
||||
* @access private
|
||||
*/
|
||||
function schemaEndElement($parser, $name) {
|
||||
// bring depth down a notch
|
||||
$this->depth--;
|
||||
// position of current element is equal to the last value left in depth_array for my depth
|
||||
if(isset($this->depth_array[$this->depth])){
|
||||
$pos = $this->depth_array[$this->depth];
|
||||
}
|
||||
// get element prefix
|
||||
if ($prefix = $this->getPrefix($name)){
|
||||
// get unqualified name
|
||||
$name = $this->getLocalPart($name);
|
||||
} else {
|
||||
$prefix = '';
|
||||
}
|
||||
// move on...
|
||||
if($name == 'complexType'){
|
||||
$this->xdebug('done processing complexType ' . ($this->currentComplexType ? $this->currentComplexType : '(unknown)'));
|
||||
$this->currentComplexType = array_pop($this->complexTypeStack);
|
||||
//$this->currentElement = false;
|
||||
}
|
||||
if($name == 'element'){
|
||||
$this->xdebug('done processing element ' . ($this->currentElement ? $this->currentElement : '(unknown)'));
|
||||
$this->currentElement = array_pop($this->elementStack);
|
||||
}
|
||||
if($name == 'simpleType'){
|
||||
$this->xdebug('done processing simpleType ' . ($this->currentSimpleType ? $this->currentSimpleType : '(unknown)'));
|
||||
$this->currentSimpleType = array_pop($this->simpleTypeStack);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* element content handler
|
||||
*
|
||||
* @param string $parser XML parser object
|
||||
* @param string $data element content
|
||||
* @access private
|
||||
*/
|
||||
function schemaCharacterData($parser, $data){
|
||||
$pos = $this->depth_array[$this->depth - 1];
|
||||
$this->message[$pos]['cdata'] .= $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* serialize the schema
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function serializeSchema(){
|
||||
|
||||
$schemaPrefix = $this->getPrefixFromNamespace($this->XMLSchemaVersion);
|
||||
$xml = '';
|
||||
// imports
|
||||
if (sizeof($this->imports) > 0) {
|
||||
foreach($this->imports as $ns => $list) {
|
||||
foreach ($list as $ii) {
|
||||
if ($ii['location'] != '') {
|
||||
$xml .= " <$schemaPrefix:import location=\"" . $ii['location'] . '" namespace="' . $ns . "\" />\n";
|
||||
} else {
|
||||
$xml .= " <$schemaPrefix:import namespace=\"" . $ns . "\" />\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// complex types
|
||||
foreach($this->complexTypes as $typeName => $attrs){
|
||||
$contentStr = '';
|
||||
// serialize child elements
|
||||
if(isset($attrs['elements']) && (count($attrs['elements']) > 0)){
|
||||
foreach($attrs['elements'] as $element => $eParts){
|
||||
if(isset($eParts['ref'])){
|
||||
$contentStr .= " <$schemaPrefix:element ref=\"$element\"/>\n";
|
||||
} else {
|
||||
$contentStr .= " <$schemaPrefix:element name=\"$element\" type=\"" . $this->contractQName($eParts['type']) . "\"";
|
||||
foreach ($eParts as $aName => $aValue) {
|
||||
// handle, e.g., abstract, default, form, minOccurs, maxOccurs, nillable
|
||||
if ($aName != 'name' && $aName != 'type') {
|
||||
$contentStr .= " $aName=\"$aValue\"";
|
||||
}
|
||||
}
|
||||
$contentStr .= "/>\n";
|
||||
}
|
||||
}
|
||||
// compositor wraps elements
|
||||
if (isset($attrs['compositor']) && ($attrs['compositor'] != '')) {
|
||||
$contentStr = " <$schemaPrefix:$attrs[compositor]>\n".$contentStr." </$schemaPrefix:$attrs[compositor]>\n";
|
||||
}
|
||||
}
|
||||
// attributes
|
||||
if(isset($attrs['attrs']) && (count($attrs['attrs']) >= 1)){
|
||||
foreach($attrs['attrs'] as $attr => $aParts){
|
||||
$contentStr .= " <$schemaPrefix:attribute";
|
||||
foreach ($aParts as $a => $v) {
|
||||
if ($a == 'ref' || $a == 'type') {
|
||||
$contentStr .= " $a=\"".$this->contractQName($v).'"';
|
||||
} elseif ($a == 'http://schemas.xmlsoap.org/wsdl/:arrayType') {
|
||||
$this->usedNamespaces['wsdl'] = $this->namespaces['wsdl'];
|
||||
$contentStr .= ' wsdl:arrayType="'.$this->contractQName($v).'"';
|
||||
} else {
|
||||
$contentStr .= " $a=\"$v\"";
|
||||
}
|
||||
}
|
||||
$contentStr .= "/>\n";
|
||||
}
|
||||
}
|
||||
// if restriction
|
||||
if (isset($attrs['restrictionBase']) && $attrs['restrictionBase'] != ''){
|
||||
$contentStr = " <$schemaPrefix:restriction base=\"".$this->contractQName($attrs['restrictionBase'])."\">\n".$contentStr." </$schemaPrefix:restriction>\n";
|
||||
// complex or simple content
|
||||
if ((isset($attrs['elements']) && count($attrs['elements']) > 0) || (isset($attrs['attrs']) && count($attrs['attrs']) > 0)){
|
||||
$contentStr = " <$schemaPrefix:complexContent>\n".$contentStr." </$schemaPrefix:complexContent>\n";
|
||||
}
|
||||
}
|
||||
// finalize complex type
|
||||
if($contentStr != ''){
|
||||
$contentStr = " <$schemaPrefix:complexType name=\"$typeName\">\n".$contentStr." </$schemaPrefix:complexType>\n";
|
||||
} else {
|
||||
$contentStr = " <$schemaPrefix:complexType name=\"$typeName\"/>\n";
|
||||
}
|
||||
$xml .= $contentStr;
|
||||
}
|
||||
// simple types
|
||||
if(isset($this->simpleTypes) && count($this->simpleTypes) > 0){
|
||||
foreach($this->simpleTypes as $typeName => $eParts){
|
||||
$xml .= " <$schemaPrefix:simpleType name=\"$typeName\">\n <$schemaPrefix:restriction base=\"".$this->contractQName($eParts['type'])."\">\n";
|
||||
if (isset($eParts['enumeration'])) {
|
||||
foreach ($eParts['enumeration'] as $e) {
|
||||
$xml .= " <$schemaPrefix:enumeration value=\"$e\"/>\n";
|
||||
}
|
||||
}
|
||||
$xml .= " </$schemaPrefix:restriction>\n </$schemaPrefix:simpleType>";
|
||||
}
|
||||
}
|
||||
// elements
|
||||
if(isset($this->elements) && count($this->elements) > 0){
|
||||
foreach($this->elements as $element => $eParts){
|
||||
$xml .= " <$schemaPrefix:element name=\"$element\" type=\"".$this->contractQName($eParts['type'])."\"/>\n";
|
||||
}
|
||||
}
|
||||
// attributes
|
||||
if(isset($this->attributes) && count($this->attributes) > 0){
|
||||
foreach($this->attributes as $attr => $aParts){
|
||||
$xml .= " <$schemaPrefix:attribute name=\"$attr\" type=\"".$this->contractQName($aParts['type'])."\"\n/>";
|
||||
}
|
||||
}
|
||||
// finish 'er up
|
||||
$attr = '';
|
||||
foreach ($this->schemaInfo as $k => $v) {
|
||||
if ($k == 'elementFormDefault' || $k == 'attributeFormDefault') {
|
||||
$attr .= " $k=\"$v\"";
|
||||
}
|
||||
}
|
||||
$el = "<$schemaPrefix:schema$attr targetNamespace=\"$this->schemaTargetNamespace\"\n";
|
||||
foreach (array_diff($this->usedNamespaces, $this->enclosingNamespaces) as $nsp => $ns) {
|
||||
$el .= " xmlns:$nsp=\"$ns\"";
|
||||
}
|
||||
$xml = $el . ">\n".$xml."</$schemaPrefix:schema>\n";
|
||||
return $xml;
|
||||
}
|
||||
|
||||
/**
|
||||
* adds debug data to the clas level debug string
|
||||
*
|
||||
* @param string $string debug data
|
||||
* @access private
|
||||
*/
|
||||
function xdebug($string){
|
||||
$this->debug('<' . $this->schemaTargetNamespace . '> '.$string);
|
||||
}
|
||||
|
||||
/**
|
||||
* get the PHP type of a user defined type in the schema
|
||||
* PHP type is kind of a misnomer since it actually returns 'struct' for assoc. arrays
|
||||
* returns false if no type exists, or not w/ the given namespace
|
||||
* else returns a string that is either a native php type, or 'struct'
|
||||
*
|
||||
* @param string $type name of defined type
|
||||
* @param string $ns namespace of type
|
||||
* @return mixed
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function getPHPType($type,$ns){
|
||||
if(isset($this->typemap[$ns][$type])){
|
||||
//print "found type '$type' and ns $ns in typemap<br>";
|
||||
return $this->typemap[$ns][$type];
|
||||
} elseif(isset($this->complexTypes[$type])){
|
||||
//print "getting type '$type' and ns $ns from complexTypes array<br>";
|
||||
return $this->complexTypes[$type]['phpType'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns an associative array of information about a given type
|
||||
* returns false if no type exists by the given name
|
||||
*
|
||||
* For a complexType typeDef = array(
|
||||
* 'restrictionBase' => '',
|
||||
* 'phpType' => '',
|
||||
* 'compositor' => '(sequence|all)',
|
||||
* 'elements' => array(), // refs to elements array
|
||||
* 'attrs' => array() // refs to attributes array
|
||||
* ... and so on (see addComplexType)
|
||||
* )
|
||||
*
|
||||
* For simpleType or element, the array has different keys.
|
||||
*
|
||||
* @param string $type
|
||||
* @return mixed
|
||||
* @access public
|
||||
* @see addComplexType
|
||||
* @see addSimpleType
|
||||
* @see addElement
|
||||
*/
|
||||
function getTypeDef($type){
|
||||
//$this->debug("in getTypeDef for type $type");
|
||||
if (substr($type, -1) == '^') {
|
||||
$is_element = 1;
|
||||
$type = substr($type, 0, -1);
|
||||
} else {
|
||||
$is_element = 0;
|
||||
}
|
||||
|
||||
if((! $is_element) && isset($this->complexTypes[$type])){
|
||||
$this->xdebug("in getTypeDef, found complexType $type");
|
||||
return $this->complexTypes[$type];
|
||||
} elseif((! $is_element) && isset($this->simpleTypes[$type])){
|
||||
$this->xdebug("in getTypeDef, found simpleType $type");
|
||||
if (!isset($this->simpleTypes[$type]['phpType'])) {
|
||||
// get info for type to tack onto the simple type
|
||||
// TODO: can this ever really apply (i.e. what is a simpleType really?)
|
||||
$uqType = substr($this->simpleTypes[$type]['type'], strrpos($this->simpleTypes[$type]['type'], ':') + 1);
|
||||
$ns = substr($this->simpleTypes[$type]['type'], 0, strrpos($this->simpleTypes[$type]['type'], ':'));
|
||||
$etype = $this->getTypeDef($uqType);
|
||||
if ($etype) {
|
||||
$this->xdebug("in getTypeDef, found type for simpleType $type:");
|
||||
$this->xdebug($this->varDump($etype));
|
||||
if (isset($etype['phpType'])) {
|
||||
$this->simpleTypes[$type]['phpType'] = $etype['phpType'];
|
||||
}
|
||||
if (isset($etype['elements'])) {
|
||||
$this->simpleTypes[$type]['elements'] = $etype['elements'];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->simpleTypes[$type];
|
||||
} elseif(isset($this->elements[$type])){
|
||||
$this->xdebug("in getTypeDef, found element $type");
|
||||
if (!isset($this->elements[$type]['phpType'])) {
|
||||
// get info for type to tack onto the element
|
||||
$uqType = substr($this->elements[$type]['type'], strrpos($this->elements[$type]['type'], ':') + 1);
|
||||
$ns = substr($this->elements[$type]['type'], 0, strrpos($this->elements[$type]['type'], ':'));
|
||||
$etype = $this->getTypeDef($uqType);
|
||||
if ($etype) {
|
||||
$this->xdebug("in getTypeDef, found type for element $type:");
|
||||
$this->xdebug($this->varDump($etype));
|
||||
if (isset($etype['phpType'])) {
|
||||
$this->elements[$type]['phpType'] = $etype['phpType'];
|
||||
}
|
||||
if (isset($etype['elements'])) {
|
||||
$this->elements[$type]['elements'] = $etype['elements'];
|
||||
}
|
||||
} elseif ($ns == 'http://www.w3.org/2001/XMLSchema') {
|
||||
$this->xdebug("in getTypeDef, element $type is an XSD type");
|
||||
$this->elements[$type]['phpType'] = 'scalar';
|
||||
}
|
||||
}
|
||||
return $this->elements[$type];
|
||||
} elseif(isset($this->attributes[$type])){
|
||||
$this->xdebug("in getTypeDef, found attribute $type");
|
||||
return $this->attributes[$type];
|
||||
} elseif (ereg('_ContainedType$', $type)) {
|
||||
$this->xdebug("in getTypeDef, have an untyped element $type");
|
||||
$typeDef['typeClass'] = 'simpleType';
|
||||
$typeDef['phpType'] = 'scalar';
|
||||
$typeDef['type'] = 'http://www.w3.org/2001/XMLSchema:string';
|
||||
return $typeDef;
|
||||
}
|
||||
$this->xdebug("in getTypeDef, did not find $type");
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a sample serialization of a given type, or false if no type by the given name
|
||||
*
|
||||
* @param string $type name of type
|
||||
* @return mixed
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function serializeTypeDef($type){
|
||||
//print "in sTD() for type $type<br>";
|
||||
if($typeDef = $this->getTypeDef($type)){
|
||||
$str .= '<'.$type;
|
||||
if(is_array($typeDef['attrs'])){
|
||||
foreach($typeDef['attrs'] as $attName => $data){
|
||||
$str .= " $attName=\"{type = ".$data['type']."}\"";
|
||||
}
|
||||
}
|
||||
$str .= " xmlns=\"".$this->schema['targetNamespace']."\"";
|
||||
if(count($typeDef['elements']) > 0){
|
||||
$str .= ">";
|
||||
foreach($typeDef['elements'] as $element => $eData){
|
||||
$str .= $this->serializeTypeDef($element);
|
||||
}
|
||||
$str .= "</$type>";
|
||||
} elseif($typeDef['typeClass'] == 'element') {
|
||||
$str .= "></$type>";
|
||||
} else {
|
||||
$str .= "/>";
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns HTML form elements that allow a user
|
||||
* to enter values for creating an instance of the given type.
|
||||
*
|
||||
* @param string $name name for type instance
|
||||
* @param string $type name of type
|
||||
* @return string
|
||||
* @access public
|
||||
* @deprecated
|
||||
*/
|
||||
function typeToForm($name,$type){
|
||||
// get typedef
|
||||
if($typeDef = $this->getTypeDef($type)){
|
||||
// if struct
|
||||
if($typeDef['phpType'] == 'struct'){
|
||||
$buffer .= '<table>';
|
||||
foreach($typeDef['elements'] as $child => $childDef){
|
||||
$buffer .= "
|
||||
<tr><td align='right'>$childDef[name] (type: ".$this->getLocalPart($childDef['type'])."):</td>
|
||||
<td><input type='text' name='parameters[".$name."][$childDef[name]]'></td></tr>";
|
||||
}
|
||||
$buffer .= '</table>';
|
||||
// if array
|
||||
} elseif($typeDef['phpType'] == 'array'){
|
||||
$buffer .= '<table>';
|
||||
for($i=0;$i < 3; $i++){
|
||||
$buffer .= "
|
||||
<tr><td align='right'>array item (type: $typeDef[arrayType]):</td>
|
||||
<td><input type='text' name='parameters[".$name."][]'></td></tr>";
|
||||
}
|
||||
$buffer .= '</table>';
|
||||
// if scalar
|
||||
} else {
|
||||
$buffer .= "<input type='text' name='parameters[$name]'>";
|
||||
}
|
||||
} else {
|
||||
$buffer .= "<input type='text' name='parameters[$name]'>";
|
||||
}
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* adds a complex type to the schema
|
||||
*
|
||||
* example: array
|
||||
*
|
||||
* addType(
|
||||
* 'ArrayOfstring',
|
||||
* 'complexType',
|
||||
* 'array',
|
||||
* '',
|
||||
* 'SOAP-ENC:Array',
|
||||
* array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'string[]'),
|
||||
* 'xsd:string'
|
||||
* );
|
||||
*
|
||||
* example: PHP associative array ( SOAP Struct )
|
||||
*
|
||||
* addType(
|
||||
* 'SOAPStruct',
|
||||
* 'complexType',
|
||||
* 'struct',
|
||||
* 'all',
|
||||
* array('myVar'=> array('name'=>'myVar','type'=>'string')
|
||||
* );
|
||||
*
|
||||
* @param name
|
||||
* @param typeClass (complexType|simpleType|attribute)
|
||||
* @param phpType: currently supported are array and struct (php assoc array)
|
||||
* @param compositor (all|sequence|choice)
|
||||
* @param restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array)
|
||||
* @param elements = array ( name = array(name=>'',type=>'') )
|
||||
* @param attrs = array(
|
||||
* array(
|
||||
* 'ref' => "http://schemas.xmlsoap.org/soap/encoding/:arrayType",
|
||||
* "http://schemas.xmlsoap.org/wsdl/:arrayType" => "string[]"
|
||||
* )
|
||||
* )
|
||||
* @param arrayType: namespace:name (http://www.w3.org/2001/XMLSchema:string)
|
||||
* @access public
|
||||
* @see getTypeDef
|
||||
*/
|
||||
function addComplexType($name,$typeClass='complexType',$phpType='array',$compositor='',$restrictionBase='',$elements=array(),$attrs=array(),$arrayType=''){
|
||||
$this->complexTypes[$name] = array(
|
||||
'name' => $name,
|
||||
'typeClass' => $typeClass,
|
||||
'phpType' => $phpType,
|
||||
'compositor'=> $compositor,
|
||||
'restrictionBase' => $restrictionBase,
|
||||
'elements' => $elements,
|
||||
'attrs' => $attrs,
|
||||
'arrayType' => $arrayType
|
||||
);
|
||||
|
||||
$this->xdebug("addComplexType $name:");
|
||||
$this->appendDebug($this->varDump($this->complexTypes[$name]));
|
||||
}
|
||||
|
||||
/**
|
||||
* adds a simple type to the schema
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array)
|
||||
* @param string $typeClass (should always be simpleType)
|
||||
* @param string $phpType (should always be scalar)
|
||||
* @param array $enumeration array of values
|
||||
* @access public
|
||||
* @see nusoap_xmlschema
|
||||
* @see getTypeDef
|
||||
*/
|
||||
function addSimpleType($name, $restrictionBase='', $typeClass='simpleType', $phpType='scalar', $enumeration=array()) {
|
||||
$this->simpleTypes[$name] = array(
|
||||
'name' => $name,
|
||||
'typeClass' => $typeClass,
|
||||
'phpType' => $phpType,
|
||||
'type' => $restrictionBase,
|
||||
'enumeration' => $enumeration
|
||||
);
|
||||
|
||||
$this->xdebug("addSimpleType $name:");
|
||||
$this->appendDebug($this->varDump($this->simpleTypes[$name]));
|
||||
}
|
||||
|
||||
/**
|
||||
* adds an element to the schema
|
||||
*
|
||||
* @param array $attrs attributes that must include name and type
|
||||
* @see nusoap_xmlschema
|
||||
* @access public
|
||||
*/
|
||||
function addElement($attrs) {
|
||||
if (! $this->getPrefix($attrs['type'])) {
|
||||
$attrs['type'] = $this->schemaTargetNamespace . ':' . $attrs['type'];
|
||||
}
|
||||
$this->elements[ $attrs['name'] ] = $attrs;
|
||||
$this->elements[ $attrs['name'] ]['typeClass'] = 'element';
|
||||
|
||||
$this->xdebug("addElement " . $attrs['name']);
|
||||
$this->appendDebug($this->varDump($this->elements[ $attrs['name'] ]));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Backward compatibility
|
||||
*/
|
||||
class XMLSchema extends nusoap_xmlschema {
|
||||
}
|
||||
|
||||
|
||||
?>
|
7993
html/afnic/lib/nusoap.php
Normal file
7993
html/afnic/lib/nusoap.php
Normal file
File diff suppressed because it is too large
Load Diff
501
html/afnic/lib/nusoapmime.php
Normal file
501
html/afnic/lib/nusoapmime.php
Normal file
@ -0,0 +1,501 @@
|
||||
<?php
|
||||
/*
|
||||
$Id: nusoapmime.php,v 1.12 2007/04/17 16:34:03 snichol Exp $
|
||||
|
||||
NuSOAP - Web Services Toolkit for PHP
|
||||
|
||||
Copyright (c) 2002 NuSphere Corporation
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
The NuSOAP project home is:
|
||||
http://sourceforge.net/projects/nusoap/
|
||||
|
||||
The primary support for NuSOAP is the mailing list:
|
||||
nusoap-general@lists.sourceforge.net
|
||||
|
||||
If you have any questions or comments, please email:
|
||||
|
||||
Dietrich Ayala
|
||||
dietrich@ganx4.com
|
||||
http://dietrich.ganx4.com/nusoap
|
||||
|
||||
NuSphere Corporation
|
||||
http://www.nusphere.com
|
||||
|
||||
*/
|
||||
|
||||
/*require_once('nusoap.php');*/
|
||||
/* PEAR Mail_MIME library */
|
||||
require_once('Mail/mimeDecode.php');
|
||||
require_once('Mail/mimePart.php');
|
||||
|
||||
/**
|
||||
* nusoap_client_mime client supporting MIME attachments defined at
|
||||
* http://www.w3.org/TR/SOAP-attachments. It depends on the PEAR Mail_MIME library.
|
||||
*
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @author Thanks to Guillaume and Henning Reich for posting great attachment code to the mail list
|
||||
* @version $Id: nusoapmime.php,v 1.12 2007/04/17 16:34:03 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_client_mime extends nusoap_client {
|
||||
/**
|
||||
* @var array Each array element in the return is an associative array with keys
|
||||
* data, filename, contenttype, cid
|
||||
* @access private
|
||||
*/
|
||||
var $requestAttachments = array();
|
||||
/**
|
||||
* @var array Each array element in the return is an associative array with keys
|
||||
* data, filename, contenttype, cid
|
||||
* @access private
|
||||
*/
|
||||
var $responseAttachments;
|
||||
/**
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $mimeContentType;
|
||||
|
||||
/**
|
||||
* adds a MIME attachment to the current request.
|
||||
*
|
||||
* If the $data parameter contains an empty string, this method will read
|
||||
* the contents of the file named by the $filename parameter.
|
||||
*
|
||||
* If the $cid parameter is false, this method will generate the cid.
|
||||
*
|
||||
* @param string $data The data of the attachment
|
||||
* @param string $filename The filename of the attachment (default is empty string)
|
||||
* @param string $contenttype The MIME Content-Type of the attachment (default is application/octet-stream)
|
||||
* @param string $cid The content-id (cid) of the attachment (default is false)
|
||||
* @return string The content-id (cid) of the attachment
|
||||
* @access public
|
||||
*/
|
||||
function addAttachment($data, $filename = '', $contenttype = 'application/octet-stream', $cid = false) {
|
||||
if (! $cid) {
|
||||
$cid = md5(uniqid(time()));
|
||||
}
|
||||
|
||||
$info['data'] = $data;
|
||||
$info['filename'] = $filename;
|
||||
$info['contenttype'] = $contenttype;
|
||||
$info['cid'] = $cid;
|
||||
|
||||
$this->requestAttachments[] = $info;
|
||||
|
||||
return $cid;
|
||||
}
|
||||
|
||||
/**
|
||||
* clears the MIME attachments for the current request.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function clearAttachments() {
|
||||
$this->requestAttachments = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the MIME attachments from the current response.
|
||||
*
|
||||
* Each array element in the return is an associative array with keys
|
||||
* data, filename, contenttype, cid. These keys correspond to the parameters
|
||||
* for addAttachment.
|
||||
*
|
||||
* @return array The attachments.
|
||||
* @access public
|
||||
*/
|
||||
function getAttachments() {
|
||||
return $this->responseAttachments;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP body for the current request.
|
||||
*
|
||||
* @param string $soapmsg The SOAP payload
|
||||
* @return string The HTTP body, which includes the SOAP payload
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPBody($soapmsg) {
|
||||
if (count($this->requestAttachments) > 0) {
|
||||
$params['content_type'] = 'multipart/related; type="text/xml"';
|
||||
$mimeMessage =& new Mail_mimePart('', $params);
|
||||
unset($params);
|
||||
|
||||
$params['content_type'] = 'text/xml';
|
||||
$params['encoding'] = '8bit';
|
||||
$params['charset'] = $this->soap_defencoding;
|
||||
$mimeMessage->addSubpart($soapmsg, $params);
|
||||
|
||||
foreach ($this->requestAttachments as $att) {
|
||||
unset($params);
|
||||
|
||||
$params['content_type'] = $att['contenttype'];
|
||||
$params['encoding'] = 'base64';
|
||||
$params['disposition'] = 'attachment';
|
||||
$params['dfilename'] = $att['filename'];
|
||||
$params['cid'] = $att['cid'];
|
||||
|
||||
if ($att['data'] == '' && $att['filename'] <> '') {
|
||||
if ($fd = fopen($att['filename'], 'rb')) {
|
||||
$data = fread($fd, filesize($att['filename']));
|
||||
fclose($fd);
|
||||
} else {
|
||||
$data = '';
|
||||
}
|
||||
$mimeMessage->addSubpart($data, $params);
|
||||
} else {
|
||||
$mimeMessage->addSubpart($att['data'], $params);
|
||||
}
|
||||
}
|
||||
|
||||
$output = $mimeMessage->encode();
|
||||
$mimeHeaders = $output['headers'];
|
||||
|
||||
foreach ($mimeHeaders as $k => $v) {
|
||||
$this->debug("MIME header $k: $v");
|
||||
if (strtolower($k) == 'content-type') {
|
||||
// PHP header() seems to strip leading whitespace starting
|
||||
// the second line, so force everything to one line
|
||||
$this->mimeContentType = str_replace("\r\n", " ", $v);
|
||||
}
|
||||
}
|
||||
|
||||
return $output['body'];
|
||||
}
|
||||
|
||||
return parent::getHTTPBody($soapmsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP content type for the current request.
|
||||
*
|
||||
* Note: getHTTPBody must be called before this.
|
||||
*
|
||||
* @return string the HTTP content type for the current request.
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPContentType() {
|
||||
if (count($this->requestAttachments) > 0) {
|
||||
return $this->mimeContentType;
|
||||
}
|
||||
return parent::getHTTPContentType();
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP content type charset for the current request.
|
||||
* returns false for non-text content types.
|
||||
*
|
||||
* Note: getHTTPBody must be called before this.
|
||||
*
|
||||
* @return string the HTTP content type charset for the current request.
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPContentTypeCharset() {
|
||||
if (count($this->requestAttachments) > 0) {
|
||||
return false;
|
||||
}
|
||||
return parent::getHTTPContentTypeCharset();
|
||||
}
|
||||
|
||||
/**
|
||||
* processes SOAP message returned from server
|
||||
*
|
||||
* @param array $headers The HTTP headers
|
||||
* @param string $data unprocessed response data from server
|
||||
* @return mixed value of the message, decoded into a PHP type
|
||||
* @access private
|
||||
*/
|
||||
function parseResponse($headers, $data) {
|
||||
$this->debug('Entering parseResponse() for payload of length ' . strlen($data) . ' and type of ' . $headers['content-type']);
|
||||
$this->responseAttachments = array();
|
||||
if (strstr($headers['content-type'], 'multipart/related')) {
|
||||
$this->debug('Decode multipart/related');
|
||||
$input = '';
|
||||
foreach ($headers as $k => $v) {
|
||||
$input .= "$k: $v\r\n";
|
||||
}
|
||||
$params['input'] = $input . "\r\n" . $data;
|
||||
$params['include_bodies'] = true;
|
||||
$params['decode_bodies'] = true;
|
||||
$params['decode_headers'] = true;
|
||||
|
||||
$structure = Mail_mimeDecode::decode($params);
|
||||
|
||||
foreach ($structure->parts as $part) {
|
||||
if (!isset($part->disposition) && (strstr($part->headers['content-type'], 'text/xml'))) {
|
||||
$this->debug('Have root part of type ' . $part->headers['content-type']);
|
||||
$root = $part->body;
|
||||
$return = parent::parseResponse($part->headers, $part->body);
|
||||
} else {
|
||||
$this->debug('Have an attachment of type ' . $part->headers['content-type']);
|
||||
$info['data'] = $part->body;
|
||||
$info['filename'] = isset($part->d_parameters['filename']) ? $part->d_parameters['filename'] : '';
|
||||
$info['contenttype'] = $part->headers['content-type'];
|
||||
$info['cid'] = $part->headers['content-id'];
|
||||
$this->responseAttachments[] = $info;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($return)) {
|
||||
$this->responseData = $root;
|
||||
return $return;
|
||||
}
|
||||
|
||||
$this->setError('No root part found in multipart/related content');
|
||||
return '';
|
||||
}
|
||||
$this->debug('Not multipart/related');
|
||||
return parent::parseResponse($headers, $data);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For backwards compatiblity, define soapclientmime unless the PHP SOAP extension is loaded.
|
||||
*/
|
||||
if (!extension_loaded('soap')) {
|
||||
class soapclientmime extends nusoap_client_mime {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* nusoap_server_mime server supporting MIME attachments defined at
|
||||
* http://www.w3.org/TR/SOAP-attachments. It depends on the PEAR Mail_MIME library.
|
||||
*
|
||||
* @author Scott Nichol <snichol@users.sourceforge.net>
|
||||
* @author Thanks to Guillaume and Henning Reich for posting great attachment code to the mail list
|
||||
* @version $Id: nusoapmime.php,v 1.12 2007/04/17 16:34:03 snichol Exp $
|
||||
* @access public
|
||||
*/
|
||||
class nusoap_server_mime extends nusoap_server {
|
||||
/**
|
||||
* @var array Each array element in the return is an associative array with keys
|
||||
* data, filename, contenttype, cid
|
||||
* @access private
|
||||
*/
|
||||
var $requestAttachments = array();
|
||||
/**
|
||||
* @var array Each array element in the return is an associative array with keys
|
||||
* data, filename, contenttype, cid
|
||||
* @access private
|
||||
*/
|
||||
var $responseAttachments;
|
||||
/**
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $mimeContentType;
|
||||
|
||||
/**
|
||||
* adds a MIME attachment to the current response.
|
||||
*
|
||||
* If the $data parameter contains an empty string, this method will read
|
||||
* the contents of the file named by the $filename parameter.
|
||||
*
|
||||
* If the $cid parameter is false, this method will generate the cid.
|
||||
*
|
||||
* @param string $data The data of the attachment
|
||||
* @param string $filename The filename of the attachment (default is empty string)
|
||||
* @param string $contenttype The MIME Content-Type of the attachment (default is application/octet-stream)
|
||||
* @param string $cid The content-id (cid) of the attachment (default is false)
|
||||
* @return string The content-id (cid) of the attachment
|
||||
* @access public
|
||||
*/
|
||||
function addAttachment($data, $filename = '', $contenttype = 'application/octet-stream', $cid = false) {
|
||||
if (! $cid) {
|
||||
$cid = md5(uniqid(time()));
|
||||
}
|
||||
|
||||
$info['data'] = $data;
|
||||
$info['filename'] = $filename;
|
||||
$info['contenttype'] = $contenttype;
|
||||
$info['cid'] = $cid;
|
||||
|
||||
$this->responseAttachments[] = $info;
|
||||
|
||||
return $cid;
|
||||
}
|
||||
|
||||
/**
|
||||
* clears the MIME attachments for the current response.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function clearAttachments() {
|
||||
$this->responseAttachments = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the MIME attachments from the current request.
|
||||
*
|
||||
* Each array element in the return is an associative array with keys
|
||||
* data, filename, contenttype, cid. These keys correspond to the parameters
|
||||
* for addAttachment.
|
||||
*
|
||||
* @return array The attachments.
|
||||
* @access public
|
||||
*/
|
||||
function getAttachments() {
|
||||
return $this->requestAttachments;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP body for the current response.
|
||||
*
|
||||
* @param string $soapmsg The SOAP payload
|
||||
* @return string The HTTP body, which includes the SOAP payload
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPBody($soapmsg) {
|
||||
if (count($this->responseAttachments) > 0) {
|
||||
$params['content_type'] = 'multipart/related; type="text/xml"';
|
||||
$mimeMessage =& new Mail_mimePart('', $params);
|
||||
unset($params);
|
||||
|
||||
$params['content_type'] = 'text/xml';
|
||||
$params['encoding'] = '8bit';
|
||||
$params['charset'] = $this->soap_defencoding;
|
||||
$mimeMessage->addSubpart($soapmsg, $params);
|
||||
|
||||
foreach ($this->responseAttachments as $att) {
|
||||
unset($params);
|
||||
|
||||
$params['content_type'] = $att['contenttype'];
|
||||
$params['encoding'] = 'base64';
|
||||
$params['disposition'] = 'attachment';
|
||||
$params['dfilename'] = $att['filename'];
|
||||
$params['cid'] = $att['cid'];
|
||||
|
||||
if ($att['data'] == '' && $att['filename'] <> '') {
|
||||
if ($fd = fopen($att['filename'], 'rb')) {
|
||||
$data = fread($fd, filesize($att['filename']));
|
||||
fclose($fd);
|
||||
} else {
|
||||
$data = '';
|
||||
}
|
||||
$mimeMessage->addSubpart($data, $params);
|
||||
} else {
|
||||
$mimeMessage->addSubpart($att['data'], $params);
|
||||
}
|
||||
}
|
||||
|
||||
$output = $mimeMessage->encode();
|
||||
$mimeHeaders = $output['headers'];
|
||||
|
||||
foreach ($mimeHeaders as $k => $v) {
|
||||
$this->debug("MIME header $k: $v");
|
||||
if (strtolower($k) == 'content-type') {
|
||||
// PHP header() seems to strip leading whitespace starting
|
||||
// the second line, so force everything to one line
|
||||
$this->mimeContentType = str_replace("\r\n", " ", $v);
|
||||
}
|
||||
}
|
||||
|
||||
return $output['body'];
|
||||
}
|
||||
|
||||
return parent::getHTTPBody($soapmsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP content type for the current response.
|
||||
*
|
||||
* Note: getHTTPBody must be called before this.
|
||||
*
|
||||
* @return string the HTTP content type for the current response.
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPContentType() {
|
||||
if (count($this->responseAttachments) > 0) {
|
||||
return $this->mimeContentType;
|
||||
}
|
||||
return parent::getHTTPContentType();
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the HTTP content type charset for the current response.
|
||||
* returns false for non-text content types.
|
||||
*
|
||||
* Note: getHTTPBody must be called before this.
|
||||
*
|
||||
* @return string the HTTP content type charset for the current response.
|
||||
* @access private
|
||||
*/
|
||||
function getHTTPContentTypeCharset() {
|
||||
if (count($this->responseAttachments) > 0) {
|
||||
return false;
|
||||
}
|
||||
return parent::getHTTPContentTypeCharset();
|
||||
}
|
||||
|
||||
/**
|
||||
* processes SOAP message received from client
|
||||
*
|
||||
* @param array $headers The HTTP headers
|
||||
* @param string $data unprocessed request data from client
|
||||
* @return mixed value of the message, decoded into a PHP type
|
||||
* @access private
|
||||
*/
|
||||
function parseRequest($headers, $data) {
|
||||
$this->debug('Entering parseRequest() for payload of length ' . strlen($data) . ' and type of ' . $headers['content-type']);
|
||||
$this->requestAttachments = array();
|
||||
if (strstr($headers['content-type'], 'multipart/related')) {
|
||||
$this->debug('Decode multipart/related');
|
||||
$input = '';
|
||||
foreach ($headers as $k => $v) {
|
||||
$input .= "$k: $v\r\n";
|
||||
}
|
||||
$params['input'] = $input . "\r\n" . $data;
|
||||
$params['include_bodies'] = true;
|
||||
$params['decode_bodies'] = true;
|
||||
$params['decode_headers'] = true;
|
||||
|
||||
$structure = Mail_mimeDecode::decode($params);
|
||||
|
||||
foreach ($structure->parts as $part) {
|
||||
if (!isset($part->disposition) && (strstr($part->headers['content-type'], 'text/xml'))) {
|
||||
$this->debug('Have root part of type ' . $part->headers['content-type']);
|
||||
$return = parent::parseRequest($part->headers, $part->body);
|
||||
} else {
|
||||
$this->debug('Have an attachment of type ' . $part->headers['content-type']);
|
||||
$info['data'] = $part->body;
|
||||
$info['filename'] = isset($part->d_parameters['filename']) ? $part->d_parameters['filename'] : '';
|
||||
$info['contenttype'] = $part->headers['content-type'];
|
||||
$info['cid'] = $part->headers['content-id'];
|
||||
$this->requestAttachments[] = $info;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($return)) {
|
||||
return $return;
|
||||
}
|
||||
|
||||
$this->setError('No root part found in multipart/related content');
|
||||
return;
|
||||
}
|
||||
$this->debug('Not multipart/related');
|
||||
return parent::parseRequest($headers, $data);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For backwards compatiblity
|
||||
*/
|
||||
class nusoapservermime extends nusoap_server_mime {
|
||||
}
|
||||
|
||||
?>
|
172
html/afnic/nindex.php
Normal file
172
html/afnic/nindex.php
Normal file
@ -0,0 +1,172 @@
|
||||
<?php
|
||||
// Pull in the NuSOAP code
|
||||
require_once('./lib/nusoap.php');
|
||||
// Create the server instance
|
||||
$server = new soap_server();
|
||||
// Initialize WSDL support
|
||||
$server->configureWSDL('entreprises', 'urn:entreprises', '', 'document');
|
||||
// Register the data structures used by the service
|
||||
$server->wsdl->addComplexType(
|
||||
'IdentiteRequest',
|
||||
'complexType',
|
||||
'struct',
|
||||
'all',
|
||||
'',
|
||||
array(
|
||||
'siret' => array('name' => 'siret', 'type' => 'xsd:int'),
|
||||
'id' => array('name' => 'id', 'type' => 'xsd:int'),
|
||||
)
|
||||
);
|
||||
|
||||
$server->wsdl->addComplexType(
|
||||
'ErrorElement',
|
||||
'complexType',
|
||||
'struct',
|
||||
'all',
|
||||
'',
|
||||
array(
|
||||
'errnum' => array('name' => 'errnum', 'type' => 'xsd:int'),
|
||||
'errmsg' => array('name' => 'errmsg', 'type' => 'xsd:string')
|
||||
)
|
||||
);
|
||||
|
||||
$server->wsdl->addComplexType(
|
||||
'EntrepResult',
|
||||
'complexType',
|
||||
'struct',
|
||||
'all',
|
||||
'',
|
||||
array(
|
||||
'id' => array('name' => 'id','type' => 'xsd:int'),
|
||||
'Siret' => array('name' => 'Siret','type' => 'xsd:string'),
|
||||
'SiretSiege' => array('name' => 'SiretSiege','type' => 'xsd:string'),
|
||||
'Siege' => array('name' => 'Siege','type' => 'xsd:int'),
|
||||
'Actif' => array('name' => 'Actif','type' => 'xsd:int'),
|
||||
'AutreId' => array('name' => 'AutreId','type' => 'xsd:string'),
|
||||
'Nom' => array('name' => 'Nom','type' => 'xsd:string'),
|
||||
'Nom2' => array('name' => 'Nom2','type' => 'xsd:string'),
|
||||
'Sigle' => array('name' => 'Sigle','type' => 'xsd:string'),
|
||||
'Enseigne' => array('name' => 'Enseigne','type' => 'xsd:string'),
|
||||
'Adresse' => array('name' => 'Adresse','type' => 'xsd:string'),
|
||||
'Adresse2' => array('name' => 'Adresse2','type' => 'xsd:string'),
|
||||
'AdresseNum' => array('name' => 'AdresseNum','type' => 'xsd:int'),
|
||||
'AdresseBtq' => array('name' => 'AdresseBtq','type' => 'xsd:string'),
|
||||
'AdresseVoie' => array('name' => 'AdresseVoie','type' => 'xsd:string'),
|
||||
'AdresseRue' => array('name' => 'AdresseRue','type' => 'xsd:string'),
|
||||
'CP' => array('name' => 'CP','type' => 'xsd:int'),
|
||||
'Ville' => array('name' => 'Ville','type' => 'xsd:string'),
|
||||
'Pays' => array('name' => 'Pays','type' => 'xsd:string'),
|
||||
'Civilite' => array('name' => 'Civilite','type' => 'xsd:string'),
|
||||
'NbEtab' => array('name' => 'NbEtab','type' => 'xsd:int'),
|
||||
'Tel' => array('name' => 'Tel','type' => 'xsd:string'),
|
||||
'Fax' => array('name' => 'Fax','type' => 'xsd:string'),
|
||||
'Web' => array('name' => 'Web','type' => 'xsd:string'),
|
||||
'Mail' => array('name' => 'Mail','type' => 'xsd:string'),
|
||||
'FJ' => array('name' => 'FJ','type' => 'xsd:int'),
|
||||
'Fj_Lib' => array('name' => 'FJ_lib','type' => 'xsd:string'),
|
||||
'Siren' => array('name' => 'Siren','type' => 'xsd:int'),
|
||||
'Nic' => array('name' => 'Nic','type' => 'xsd:int'),
|
||||
'NafEnt' => array('name' => 'NafEnt','type' => 'xsd:string'),
|
||||
'NafEntLib' => array('name' => 'NafEntLib','type' => 'xsd:string'),
|
||||
'Capital' => array('name' => 'Capital','type' => 'xsd:int'),
|
||||
'CapitalDev' => array('name' => 'CapitalDev','type' => 'xsd:string'),
|
||||
'CapitalLib' => array('name' => 'CapitalLib','type' => 'xsd:string'),
|
||||
'DateCreaEt' => array('name' => 'DateCreaEt','type' => 'xsd:int'),
|
||||
'DateCreaEn' => array('name' => 'DateCreaEn','type' => 'xsd:int'),
|
||||
'DateClotEn' => array('name' => 'DateClotEn','type' => 'xsd:int'),
|
||||
'EffEnTr' => array('name' => 'EffEnTr','type' => 'xsd:string'),
|
||||
'EffEnTrLib' => array('name' => 'EffEnTrLib','type' => 'xsd:string'),
|
||||
'Effectif' => array('name' => 'Effectif','type' => 'xsd:string'),
|
||||
'Dept' => array('name' => 'Dept','type' => 'xsd:string'),
|
||||
'codeCommune' => array('name' => 'codeCommune','type' => 'xsd:int'),
|
||||
'TrancheCA' => array('name' => 'TrancheCA','type' => 'xsd:string'),
|
||||
'TrancheCALib' => array('name' => 'TrancheCALib','type' => 'xsd:string'),
|
||||
'dir1Titre' => array('name' => 'dir1Titre','type' => 'xsd:string'),
|
||||
'dir1NomPrenom' => array('name' => 'dir1NomPrenom','type' => 'xsd:string'),
|
||||
'dir1DateFct' => array('name' => 'dir1DateFct','type' => 'xsd:string'),
|
||||
'SituationJuridique' => array('name' => 'SituationJuridique','type' => 'xsd:string'),
|
||||
)
|
||||
);
|
||||
|
||||
$server->wsdl->addComplexType(
|
||||
'EntrepResult',
|
||||
'complexType',
|
||||
'struct',
|
||||
'all',
|
||||
'',
|
||||
array(
|
||||
'error' => array('name' => 'error', 'type' => 'wsdl:ErrorElement'),
|
||||
'result' => array('name' => 'winner', 'type' => 'wsdl:EntrepElement')
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// Register the method to expose
|
||||
$server->register('getIdentite', // method name
|
||||
array('IdentiteRequest' => 'tns:IdentiteRequest'), // input parameters
|
||||
array('return' => 'tns:EntrepResult'), // output parameters
|
||||
'urn:entreprises', // namespace
|
||||
'', // soapaction
|
||||
'document', // style
|
||||
'literal', // use
|
||||
'Retourne une fiche identite entreprise' // documentation
|
||||
);
|
||||
|
||||
|
||||
// Define the method as a PHP function
|
||||
function getIdentite($param) {
|
||||
global $server;
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
define ('DATETIME', date('YmdHis'));
|
||||
define ('DATE', substr(DATETIME,0,8));
|
||||
define ('TIME', substr(DATETIME,8,6));
|
||||
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
|
||||
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
/**
|
||||
* Inclusion du fichier de configuration des includes M<EFBFBD>tiers de S&D
|
||||
*/
|
||||
include '/var/www/includes/config.php';
|
||||
|
||||
/**
|
||||
* Inclusion du Framework
|
||||
*/
|
||||
if( !defined('FWK_PATH') )
|
||||
include '/var/www/framework/fwk.php';
|
||||
|
||||
debugLog('W','AFNIC Identifiant/Mot de passe ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
//strtr('REQUEST:'.print_r($_REQUEST,true).'SERVER:'.print_r($_SERVER,true).'ENV:'.print_r($_ENV, true),array("\r"=>'', "\n"=>'')),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
include_once('WsEntreprise.php');
|
||||
|
||||
global $tabInfoUser;
|
||||
global $iDbCrm;
|
||||
$iDbCrm=new WDB('sdv1');
|
||||
$WsEntreprise = new WsEntreprise();
|
||||
return $WsEntreprise->getIdentite($param);
|
||||
}
|
||||
|
||||
function wsLog($service, $siret='', $ref='') {
|
||||
if (strlen($siret)==14) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
} elseif (strlen($siret)==9) {
|
||||
$siren=$siret;
|
||||
$nic='';
|
||||
}
|
||||
|
||||
global $iDbCrm, $tabInfoUser;
|
||||
$tabInsert=array( 'login'=>$tabInfoUser['login'],
|
||||
'page'=>$service,
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'params'=>$ref);
|
||||
$rep=$iDbCrm->insert('logs', $tabInsert);
|
||||
}
|
||||
|
||||
// Use the request to (try to) invoke the service
|
||||
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
|
||||
$server->service($HTTP_RAW_POST_DATA);
|
||||
?>
|
20
html/clients-test/afnic/.htaccess
Normal file
20
html/clients-test/afnic/.htaccess
Normal file
@ -0,0 +1,20 @@
|
||||
#php_value include_path ".:/var/www/framework:/var/www/site_extranet/includes:/usr/share/php"
|
||||
php_value auto_prepend_file "/var/www/includes/auto_prepend.php"
|
||||
#php_value auto_append_file "/var/www/site_extranet/config/append.php"
|
||||
#ErrorDocument 400 /error.php?errtyp=400
|
||||
#ErrorDocument 401 /error.php?errtyp=401
|
||||
#ErrorDocument 402 /error.php?errtyp=402
|
||||
#ErrorDocument 403 /error.php?errtyp=403
|
||||
#ErrorDocument 404 /error.php?errtyp=404
|
||||
#ErrorDocument 500 /error.php?errtyp=500
|
||||
#ErrorDocument 501 /error.php?errtyp=501
|
||||
#ErrorDocument 502 /error.php?errtyp=502
|
||||
#Options +FollowSymlinks
|
||||
RewriteEngine on
|
||||
#RewriteRule ^(.*).htm$ http://www2.scores-decisions.com/index.php?page=$1 [nc]
|
||||
#RewriteRule !(index\.php|test\.php|^documents/pdf/courriers(.*)|\.html|\.htm|\.gif|\.css|\.jpg|\.png|\.jar|\.js|\.ico|\.pdf)$ /index.php [L]
|
||||
#RewriteRule ^img/(.*) /img/$1 [L]
|
||||
#RewriteRule ^js/(.*) /scripts/$1 [L]
|
||||
#RewriteRule ^css/(.*) /design/stylesheets/$1 [L]
|
||||
#RewriteRule ^etatspdf/(.*) /documents/pdf/etats/$1 [L]
|
||||
#RewriteRule ^(.*)\.htm$ /html/$1.html [L]
|
807
html/clients-test/afnic/WsEntreprise-2.2.php
Normal file
807
html/clients-test/afnic/WsEntreprise-2.2.php
Normal file
@ -0,0 +1,807 @@
|
||||
<?php
|
||||
|
||||
ini_set('soap.wsdl_cache_enabled', 0);
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
class WsEntreprise {
|
||||
|
||||
var $iInsee;
|
||||
|
||||
/** Constructeur de la classe
|
||||
** @nodoc
|
||||
**/
|
||||
function __construct(){
|
||||
$this->iInsee=new MInsee();
|
||||
}
|
||||
|
||||
/** Obtention automatique d'un nouveau login pour un client
|
||||
** @nodoc
|
||||
**/
|
||||
function getNextLogin($login) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut créer un nouveau login **/
|
||||
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin', "u.login='$login' AND u.idClient=c.id");
|
||||
$racine=$rep[0]['racineLogin'];
|
||||
$idClient=$rep[0]['idClient'];
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
|
||||
if (count($rep)==0) $racine.='1';
|
||||
else {
|
||||
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
|
||||
$racine.=$last_i+1;
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient));
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getInfosLogin($login, $ipUtilisateur) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['login']<>$login && $tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut il des infos sur un login ? **/
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, actif, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND deleted=0", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
$rep=array('login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> prepareString($tabRep['nom']),
|
||||
'prenom'=> prepareString($tabRep['prenom']),
|
||||
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> prepareString($tabRep['adrVille']),
|
||||
'adrComp'=> prepareString($tabRep['adrComp']),
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> prepareString($tabRep['profil']),
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'reference'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($tabInfoUser['filtre_ip']));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
//debugLog('I',"getInfosLogin : \$tabIpAllowed : ".print_r($tabIpAllowed,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $ipUtilisateur) )
|
||||
$connected=true;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) $connected=true;
|
||||
elseif (!$connected) {
|
||||
$errnum=10818;
|
||||
$errmsg='Adresse IP non declaree pour ce compte. Contactez votre administrateur !';
|
||||
}
|
||||
|
||||
$rep=array( 'connected'=> $connected,
|
||||
'login'=> $tabInfoUser['login'],
|
||||
'id'=> $tabInfoUser['id'],
|
||||
'idClient'=> $tabInfoUser['idClient'],
|
||||
'email'=> $tabInfoUser['email'],
|
||||
'typeCompte'=> $tabInfoUser['typeCompte'],
|
||||
'filtre_ip'=> $tabInfoUser['filtre_ip'],
|
||||
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
|
||||
'ipConnexion'=> $ipUtilisateur,
|
||||
'civilite'=> $tabInfoUser['civilite'],
|
||||
'nom'=> prepareString($tabInfoUser['nom']),
|
||||
'prenom'=> prepareString($tabInfoUser['prenom']),
|
||||
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
|
||||
'siret'=> $tabInfoUser['siret'],
|
||||
'adrNum'=> $tabInfoUser['adrNum'],
|
||||
'adrIndRep'=> $tabInfoUser['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
|
||||
'adrCp'=> $tabInfoUser['adrCp'],
|
||||
'adrVille'=> prepareString($tabInfoUser['adrVille']),
|
||||
'adrComp'=> prepareString($tabInfoUser['adrComp']),
|
||||
'tel'=> $tabInfoUser['tel'],
|
||||
'fax'=> $tabInfoUser['fax'],
|
||||
'mobile'=> $tabInfoUser['mobile'],
|
||||
'pref'=> $tabInfoUser['pref'],
|
||||
'profil'=> prepareString($tabInfoUser['profil']),
|
||||
'dateInscription'=> $tabInfoUser['dateInscription'],
|
||||
'dateValidation'=> $tabInfoUser['dateValidation'],
|
||||
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
|
||||
'droits'=> $tabInfoUser['droits'],
|
||||
'nbReponses'=> $tabInfoUser['nbReponses'],
|
||||
'formatMail'=> $tabInfoUser['formatMail'],
|
||||
'reference'=> $tabInfoUser['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
|
||||
'maxFicheId'=> $tabInfoUser['maxFicheId'],
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getListeUtilisateurs($login, $idClient=0) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUser['profil']<>'Administrateur')
|
||||
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
|
||||
$idClient=$rep[0][0];
|
||||
if ($idClient==0)
|
||||
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($rep as $uti)
|
||||
$tabRet[]=array( 'idUti'=>$uti['id'],
|
||||
'idClient'=>$uti['idClient'],
|
||||
'login'=>$uti['login'],
|
||||
'email'=>$uti['email'],
|
||||
'actif'=>$uti['actif'],
|
||||
'nom'=>prepareString($uti['nom']),
|
||||
'prenom'=>prepareString($uti['prenom']),
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Mise à jour des informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function setInfosLogin($login, $tabInfoUserWS) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUserWS['delete']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('deleted'=>1);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>0);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>1);
|
||||
else {
|
||||
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
|
||||
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
|
||||
$tabUpdate=array();
|
||||
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
|
||||
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
|
||||
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
|
||||
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
|
||||
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
|
||||
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
|
||||
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
|
||||
|
||||
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
|
||||
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
|
||||
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
|
||||
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
$tabUpdate['droits']=$strDroits;
|
||||
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
|
||||
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
|
||||
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
|
||||
}
|
||||
}
|
||||
if ($tabInfoUserWS['action']=='new') {
|
||||
$tabUpdate['login']=$login;
|
||||
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
|
||||
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
else
|
||||
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
|
||||
}
|
||||
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
|
||||
else
|
||||
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
||||
/*
|
||||
[rech_limites] => Array
|
||||
(
|
||||
[0] => assocs
|
||||
[1] => actifs
|
||||
[2] => radies
|
||||
[3] => sieges
|
||||
)
|
||||
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
*/
|
||||
}
|
||||
|
||||
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
|
||||
** @nodoc
|
||||
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
|
||||
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
|
||||
** @param string $codePostal Code postal (ex: 75014)
|
||||
** @param string $ville Ville
|
||||
** @param bool $siege Limitation de la recherche au sièges (si true)
|
||||
** @param bool $actif Limitation aux établissements actifs (si true)
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
|
||||
** @param bool $avecSiren Ne proposer que les entités sirénées
|
||||
** @return Tableau d'entreprises ou d'établissements
|
||||
**/
|
||||
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
|
||||
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($etab['FJLib']),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
** @nodoc
|
||||
** @param integer $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param integer $dep Département
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
||||
$tabRet=array();
|
||||
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
|
||||
elseif (strlen($siret)== 9) $nic='';
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt' => $etab['NafEnt'], // Entreprise
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
}
|
||||
$rep['reponses']=$tabRet;
|
||||
|
||||
/** Si le siren est valide, on part chez Infogreffe **/
|
||||
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
|
||||
$iGeffes=new MGreffes();
|
||||
$etab=$iGeffes->getIdentite($siren);
|
||||
if ($etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString($etab['Nom']),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'],
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
|
||||
'NafEnt' => $etab['NafEnt'],
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>1,
|
||||
'nbReponsesTotal'=>1,
|
||||
'reponses'=>$tabRet);
|
||||
} else
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>0,
|
||||
'nbReponsesTotal'=>0,
|
||||
'reponses'=>array());
|
||||
}
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
||||
}
|
||||
|
||||
|
||||
/** Fiche d'identité de l'entreprise ou de l'établissement
|
||||
**
|
||||
** @param integer $siret Siret de l'entreprise ou de l'établissement
|
||||
** @param integer $dep Département de l'établissement (facultatif)
|
||||
** @param integer $id Numéro d'établissement interne base Scores et Décisions
|
||||
** @param integer $waldec Identifiant Waldec de l'association
|
||||
** @return Fiche d'identité
|
||||
**/
|
||||
function getIdentite($params) {
|
||||
|
||||
$siret=$params->siret;
|
||||
$dep=$params->dept;
|
||||
$id=$params->id;
|
||||
$waldec=strtoupper($params->waldec);
|
||||
|
||||
/**sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep)", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id");
|
||||
*/
|
||||
$forceVerif=false;
|
||||
debugLog('W',"Recherche par identifiant Siren=$siret, Dept=$dep, Id=$id, Waldec=$waldec",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
|
||||
if ($waldec<>'' && substr($waldec,0,1)=='W' && $siret*1==0) {
|
||||
debugLog('I',"AFNIC Recherche par identifiant Waldec $waldec (Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissementsParId('AUTRE', $waldec, 0, 20, 20);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siret=$etab['Siret'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>108, 'errmsg'=>'Waldec inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($id==0 && !$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($dep==974) {
|
||||
debugLog('I',"AFNIC Recherche par Siren/Dept (Waldec=$waldec, Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, 0, 20, 20, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siren=$etab['siren'];
|
||||
$nic=$etab['nic'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Siren $siren/Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>107, 'errmsg'=>'Entreprise ou Association non présente dans le département demandé'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$codePaysIso2='FR';
|
||||
if ($entrep['Dept']>98) {
|
||||
$codePaysInsee=$entrep['codeCommune'];
|
||||
$iDb=new WDB('jo');
|
||||
$tabTmp=$iDb->select(
|
||||
'jo.tabPays j, insee.insee_tabPays i',
|
||||
'j.codPays, j.numPays, j.codPays3, j.codePaysInpi, j.libPays, i.LIBCOG, i.ACTUAL',
|
||||
"j.codePaysInsee=$codePaysInsee AND j.codePaysInsee=substring( i.COG, 3, 3 ) AND i.ACTUAL IN (1,4) AND j.numPays is NOT NULL", true, MYSQL_ASSOC);
|
||||
if (count($tabTmp)==1) {
|
||||
$codePaysIso2=$tabTmp[0]['codPays'];
|
||||
} else {
|
||||
$codePaysIso2='';
|
||||
foreach ($tabTmp as $tabTmp2) {
|
||||
if (trim(strtoupper(strtr($tabTmp2['libPays'],
|
||||
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ',
|
||||
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY")))==trim(strtoupper($tabTmp2['LIBCOG']))) {
|
||||
$codePaysIso2=$tabTmp2['codPays'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($codePaysIso2=='') {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep) Plusieurs Codes Pays", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id".EOL.
|
||||
print_r($entrep, true).EOL.
|
||||
print_r($tabTmp, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$autreId=$entrep['AutreId'];
|
||||
if ($params->siret>0 && $waldec<>'')
|
||||
$autreId=$waldec;
|
||||
|
||||
// Source RNCS prioritaire pour les infos entreprises
|
||||
$nom=$entrep['nomLong'];
|
||||
if ($nom=='') $nom=$entrep['Nom'];
|
||||
$sigle=$entrep['sigleLong'];
|
||||
if ($sigle=='') $sigle=$entrep['Sigle'];
|
||||
|
||||
// Actif RNCS
|
||||
if ($entrep['EntActiveRCS']) $actif=1;
|
||||
// Inactif RNCS
|
||||
elseif (isset($entrep['EntActiveRCS']) && $entrep['EntActiveRCS']==0) $actif=0;
|
||||
// Actif Insee et périmètre Insee
|
||||
elseif ($entrep['Actif'] || $entrep['NbEtab']) $actif=1;
|
||||
else $actif=0;
|
||||
|
||||
// Source INSEE prioritaire sur l'établissement
|
||||
$enseigne=$entrep['Enseigne'];
|
||||
if ($enseigne=='') $enseigne=$entrep['enseigneLong'];
|
||||
$tabCarInvalides=array('/'=>' ','*'=>' ', '&'=>' ET ', '&'=>' ET ', '&'=>' ET ',
|
||||
'"'=>' ', "'"=>' ');
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$actif,
|
||||
'AutreId' =>$autreId,
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
'Nom' =>trim(prepareString(preg_replace('/ +/',' ', strtr($nom,$tabCarInvalides)))),
|
||||
'Nom2' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['Nom2'],$tabCarInvalides)))),
|
||||
'NomCommercial' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NomCommercial'],$tabCarInvalides)))),
|
||||
'Sigle' =>trim(prepareString(preg_replace('/ +/',' ', strtr($sigle,$tabCarInvalides)))),
|
||||
'Enseigne' =>trim(prepareString(preg_replace('/ +/',' ', strtr($enseigne,$tabCarInvalides)))),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'PaysIso2' =>$codePaysIso2,
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['FJ_lib'],$tabCarInvalides)))),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NafEntLib'],$tabCarInvalides)))),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
'SituationJuridique'=>strtoupper(substr($entrep['SituationJuridique'],0,1)),
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);*/
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
||||
** @nodoc
|
||||
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
|
||||
** @param integer $id Identifiant S&D de l'établissement
|
||||
** @return array Fiche d'identité de l'établissement
|
||||
**/
|
||||
/*function getIdentite($params) {
|
||||
//function getIdentite($siret, $id = 0) {
|
||||
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
|
||||
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
|
||||
} else {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
}
|
||||
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
|
||||
fclose($fp);
|
||||
}**
|
||||
$siret=$params->siret;
|
||||
$id=$params->id;
|
||||
$forceVerif=false;
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if (!$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$iBourse=new MBourse($siren);
|
||||
$bourse=$iBourse->getInfosBourse($siren);
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
// 'Source' =>$entrep['Source'],
|
||||
// 'SourceId' =>$entrep['SourceId'],
|
||||
// 'Isin' =>$entrep['Isin'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
// 'Siret' =>$entrep['Siret'],
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
|
||||
/*
|
||||
'GeoLat' =>$entrep['GeoLat'],
|
||||
'GeoLon' =>$entrep['GeoLon'],
|
||||
'GeoPrecis' =>$entrep['GeoPrecis'],
|
||||
'GeoInfos' =>$entrep['GeoInfos'],
|
||||
|
||||
'TvaNumero' =>$entrep['TvaNumero'],
|
||||
'TvaAttribue' =>$entrep['TvaAttribue'],
|
||||
** 'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
// 'NafEtab' =>$entrep['NafEtab'],
|
||||
// 'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
|
||||
// 'Activite' =>prepareString($entrep['Activite']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
/* 'dir2Titre' =>prepareString($entrep['dir2Titre']),
|
||||
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
|
||||
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
|
||||
'Rivoli' =>$entrep['Rivoli'],
|
||||
|
||||
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
||||
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
||||
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
||||
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
||||
** 'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
/* 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),**
|
||||
//'importExport' =>$entrep['importExport'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);**
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
*/
|
||||
}
|
||||
?>
|
807
html/clients-test/afnic/WsEntreprise.php
Normal file
807
html/clients-test/afnic/WsEntreprise.php
Normal file
@ -0,0 +1,807 @@
|
||||
<?php
|
||||
|
||||
ini_set('soap.wsdl_cache_enabled', 0);
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
class WsEntreprise {
|
||||
|
||||
var $iInsee;
|
||||
|
||||
/** Constructeur de la classe
|
||||
** @nodoc
|
||||
**/
|
||||
function __construct(){
|
||||
$this->iInsee=new MInsee();
|
||||
}
|
||||
|
||||
/** Obtention automatique d'un nouveau login pour un client
|
||||
** @nodoc
|
||||
**/
|
||||
function getNextLogin($login) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut créer un nouveau login **/
|
||||
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin', "u.login='$login' AND u.idClient=c.id");
|
||||
$racine=$rep[0]['racineLogin'];
|
||||
$idClient=$rep[0]['idClient'];
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
|
||||
if (count($rep)==0) $racine.='1';
|
||||
else {
|
||||
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
|
||||
$racine.=$last_i+1;
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient));
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getInfosLogin($login, $ipUtilisateur) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['login']<>$login && $tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut il des infos sur un login ? **/
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, actif, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND deleted=0", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
$rep=array('login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> prepareString($tabRep['nom']),
|
||||
'prenom'=> prepareString($tabRep['prenom']),
|
||||
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> prepareString($tabRep['adrVille']),
|
||||
'adrComp'=> prepareString($tabRep['adrComp']),
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> prepareString($tabRep['profil']),
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'reference'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($tabInfoUser['filtre_ip']));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
//debugLog('I',"getInfosLogin : \$tabIpAllowed : ".print_r($tabIpAllowed,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $ipUtilisateur) )
|
||||
$connected=true;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) $connected=true;
|
||||
elseif (!$connected) {
|
||||
$errnum=10818;
|
||||
$errmsg='Adresse IP non declaree pour ce compte. Contactez votre administrateur !';
|
||||
}
|
||||
|
||||
$rep=array( 'connected'=> $connected,
|
||||
'login'=> $tabInfoUser['login'],
|
||||
'id'=> $tabInfoUser['id'],
|
||||
'idClient'=> $tabInfoUser['idClient'],
|
||||
'email'=> $tabInfoUser['email'],
|
||||
'typeCompte'=> $tabInfoUser['typeCompte'],
|
||||
'filtre_ip'=> $tabInfoUser['filtre_ip'],
|
||||
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
|
||||
'ipConnexion'=> $ipUtilisateur,
|
||||
'civilite'=> $tabInfoUser['civilite'],
|
||||
'nom'=> prepareString($tabInfoUser['nom']),
|
||||
'prenom'=> prepareString($tabInfoUser['prenom']),
|
||||
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
|
||||
'siret'=> $tabInfoUser['siret'],
|
||||
'adrNum'=> $tabInfoUser['adrNum'],
|
||||
'adrIndRep'=> $tabInfoUser['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
|
||||
'adrCp'=> $tabInfoUser['adrCp'],
|
||||
'adrVille'=> prepareString($tabInfoUser['adrVille']),
|
||||
'adrComp'=> prepareString($tabInfoUser['adrComp']),
|
||||
'tel'=> $tabInfoUser['tel'],
|
||||
'fax'=> $tabInfoUser['fax'],
|
||||
'mobile'=> $tabInfoUser['mobile'],
|
||||
'pref'=> $tabInfoUser['pref'],
|
||||
'profil'=> prepareString($tabInfoUser['profil']),
|
||||
'dateInscription'=> $tabInfoUser['dateInscription'],
|
||||
'dateValidation'=> $tabInfoUser['dateValidation'],
|
||||
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
|
||||
'droits'=> $tabInfoUser['droits'],
|
||||
'nbReponses'=> $tabInfoUser['nbReponses'],
|
||||
'formatMail'=> $tabInfoUser['formatMail'],
|
||||
'reference'=> $tabInfoUser['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
|
||||
'maxFicheId'=> $tabInfoUser['maxFicheId'],
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getListeUtilisateurs($login, $idClient=0) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUser['profil']<>'Administrateur')
|
||||
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
|
||||
$idClient=$rep[0][0];
|
||||
if ($idClient==0)
|
||||
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($rep as $uti)
|
||||
$tabRet[]=array( 'idUti'=>$uti['id'],
|
||||
'idClient'=>$uti['idClient'],
|
||||
'login'=>$uti['login'],
|
||||
'email'=>$uti['email'],
|
||||
'actif'=>$uti['actif'],
|
||||
'nom'=>prepareString($uti['nom']),
|
||||
'prenom'=>prepareString($uti['prenom']),
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Mise à jour des informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function setInfosLogin($login, $tabInfoUserWS) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUserWS['delete']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('deleted'=>1);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>0);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>1);
|
||||
else {
|
||||
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
|
||||
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
|
||||
$tabUpdate=array();
|
||||
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
|
||||
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
|
||||
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
|
||||
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
|
||||
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
|
||||
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
|
||||
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
|
||||
|
||||
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
|
||||
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
|
||||
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
|
||||
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
$tabUpdate['droits']=$strDroits;
|
||||
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
|
||||
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
|
||||
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
|
||||
}
|
||||
}
|
||||
if ($tabInfoUserWS['action']=='new') {
|
||||
$tabUpdate['login']=$login;
|
||||
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
|
||||
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
else
|
||||
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
|
||||
}
|
||||
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
|
||||
else
|
||||
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
||||
/*
|
||||
[rech_limites] => Array
|
||||
(
|
||||
[0] => assocs
|
||||
[1] => actifs
|
||||
[2] => radies
|
||||
[3] => sieges
|
||||
)
|
||||
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
*/
|
||||
}
|
||||
|
||||
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
|
||||
** @nodoc
|
||||
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
|
||||
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
|
||||
** @param string $codePostal Code postal (ex: 75014)
|
||||
** @param string $ville Ville
|
||||
** @param bool $siege Limitation de la recherche au sièges (si true)
|
||||
** @param bool $actif Limitation aux établissements actifs (si true)
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
|
||||
** @param bool $avecSiren Ne proposer que les entités sirénées
|
||||
** @return Tableau d'entreprises ou d'établissements
|
||||
**/
|
||||
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
|
||||
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($etab['FJLib']),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
** @nodoc
|
||||
** @param integer $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param integer $dep Département
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
||||
$tabRet=array();
|
||||
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
|
||||
elseif (strlen($siret)== 9) $nic='';
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt' => $etab['NafEnt'], // Entreprise
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
}
|
||||
$rep['reponses']=$tabRet;
|
||||
|
||||
/** Si le siren est valide, on part chez Infogreffe **/
|
||||
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
|
||||
$iGeffes=new MGreffes();
|
||||
$etab=$iGeffes->getIdentite($siren);
|
||||
if ($etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString($etab['Nom']),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'],
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
|
||||
'NafEnt' => $etab['NafEnt'],
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>1,
|
||||
'nbReponsesTotal'=>1,
|
||||
'reponses'=>$tabRet);
|
||||
} else
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>0,
|
||||
'nbReponsesTotal'=>0,
|
||||
'reponses'=>array());
|
||||
}
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
||||
}
|
||||
|
||||
|
||||
/** Fiche d'identité de l'entreprise ou de l'établissement
|
||||
**
|
||||
** @param integer $siret Siret de l'entreprise ou de l'établissement
|
||||
** @param integer $dep Département de l'établissement (facultatif)
|
||||
** @param integer $id Numéro d'établissement interne base Scores et Décisions
|
||||
** @param integer $waldec Identifiant Waldec de l'association
|
||||
** @return Fiche d'identité
|
||||
**/
|
||||
function getIdentite($params) {
|
||||
|
||||
$siret=$params->siret;
|
||||
$dep=$params->dept;
|
||||
$id=$params->id;
|
||||
$waldec=strtoupper($params->waldec);
|
||||
|
||||
/**sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep)", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id");
|
||||
*/
|
||||
$forceVerif=false;
|
||||
debugLog('W',"Recherche par identifiant Siren=$siret, Dept=$dep, Id=$id, Waldec=$waldec",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
|
||||
if ($waldec<>'' && substr($waldec,0,1)=='W' && $siret*1==0) {
|
||||
debugLog('I',"AFNIC Recherche par identifiant Waldec $waldec (Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissementsParId('AUTRE', $waldec, 0, 20, 20);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siret=$etab['Siret'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>108, 'errmsg'=>'Waldec inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($id==0 && !$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($dep==974) {
|
||||
debugLog('I',"AFNIC Recherche par Siren/Dept (Waldec=$waldec, Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, 0, 20, 20, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siren=$etab['siren'];
|
||||
$nic=$etab['nic'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Siren $siren/Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>107, 'errmsg'=>'Entreprise ou Association non présente dans le département demandé'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$codePaysIso2='FR';
|
||||
if ($entrep['Dept']>98) {
|
||||
$codePaysInsee=$entrep['codeCommune'];
|
||||
$iDb=new WDB('jo');
|
||||
$tabTmp=$iDb->select(
|
||||
'jo.tabPays j, insee.insee_tabPays i',
|
||||
'j.codPays, j.numPays, j.codPays3, j.codePaysInpi, j.libPays, i.LIBCOG, i.ACTUAL',
|
||||
"j.codePaysInsee=$codePaysInsee AND j.codePaysInsee=substring( i.COG, 3, 3 ) AND i.ACTUAL IN (1,4) AND j.numPays is NOT NULL", true, MYSQL_ASSOC);
|
||||
if (count($tabTmp)==1) {
|
||||
$codePaysIso2=$tabTmp[0]['codPays'];
|
||||
} else {
|
||||
$codePaysIso2='';
|
||||
foreach ($tabTmp as $tabTmp2) {
|
||||
if (trim(strtoupper(strtr($tabTmp2['libPays'],
|
||||
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ',
|
||||
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY")))==trim(strtoupper($tabTmp2['LIBCOG']))) {
|
||||
$codePaysIso2=$tabTmp2['codPays'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($codePaysIso2=='') {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep) Plusieurs Codes Pays", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id".EOL.
|
||||
print_r($entrep, true).EOL.
|
||||
print_r($tabTmp, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$autreId=$entrep['AutreId'];
|
||||
if ($params->siret>0 && $waldec<>'')
|
||||
$autreId=$waldec;
|
||||
|
||||
// Source RNCS prioritaire pour les infos entreprises
|
||||
$nom=$entrep['nomLong'];
|
||||
if ($nom=='') $nom=$entrep['Nom'];
|
||||
$sigle=$entrep['sigleLong'];
|
||||
if ($sigle=='') $sigle=$entrep['Sigle'];
|
||||
|
||||
// Actif RNCS
|
||||
if ($entrep['EntActiveRCS']) $actif=1;
|
||||
// Inactif RNCS
|
||||
elseif (isset($entrep['EntActiveRCS']) && $entrep['EntActiveRCS']==0) $actif=0;
|
||||
// Actif Insee et périmètre Insee
|
||||
elseif ($entrep['Actif'] || $entrep['NbEtab']) $actif=1;
|
||||
else $actif=0;
|
||||
|
||||
// Source INSEE prioritaire sur l'établissement
|
||||
$enseigne=$entrep['Enseigne'];
|
||||
if ($enseigne=='') $enseigne=$entrep['enseigneLong'];
|
||||
$tabCarInvalides=array('/'=>' ','*'=>' ', '&'=>' ET ', '&'=>' ET ', '&'=>' ET ',
|
||||
'"'=>' ', "'"=>' ');
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$actif,
|
||||
'AutreId' =>$autreId,
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
'Nom' =>trim(prepareString(preg_replace('/ +/',' ', strtr($nom,$tabCarInvalides)))),
|
||||
'Nom2' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['Nom2'],$tabCarInvalides)))),
|
||||
'NomCommercial' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NomCommercial'],$tabCarInvalides)))),
|
||||
'Sigle' =>trim(prepareString(preg_replace('/ +/',' ', strtr($sigle,$tabCarInvalides)))),
|
||||
'Enseigne' =>trim(prepareString(preg_replace('/ +/',' ', strtr($enseigne,$tabCarInvalides)))),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'PaysIso2' =>$codePaysIso2,
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['FJ_lib'],$tabCarInvalides)))),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NafEntLib'],$tabCarInvalides)))),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
'SituationJuridique'=>strtoupper(substr($entrep['SituationJuridique'],0,1)),
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);*/
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
||||
** @nodoc
|
||||
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
|
||||
** @param integer $id Identifiant S&D de l'établissement
|
||||
** @return array Fiche d'identité de l'établissement
|
||||
**/
|
||||
/*function getIdentite($params) {
|
||||
//function getIdentite($siret, $id = 0) {
|
||||
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
|
||||
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
|
||||
} else {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
}
|
||||
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
|
||||
fclose($fp);
|
||||
}**
|
||||
$siret=$params->siret;
|
||||
$id=$params->id;
|
||||
$forceVerif=false;
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if (!$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$iBourse=new MBourse($siren);
|
||||
$bourse=$iBourse->getInfosBourse($siren);
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
// 'Source' =>$entrep['Source'],
|
||||
// 'SourceId' =>$entrep['SourceId'],
|
||||
// 'Isin' =>$entrep['Isin'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
// 'Siret' =>$entrep['Siret'],
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
|
||||
/*
|
||||
'GeoLat' =>$entrep['GeoLat'],
|
||||
'GeoLon' =>$entrep['GeoLon'],
|
||||
'GeoPrecis' =>$entrep['GeoPrecis'],
|
||||
'GeoInfos' =>$entrep['GeoInfos'],
|
||||
|
||||
'TvaNumero' =>$entrep['TvaNumero'],
|
||||
'TvaAttribue' =>$entrep['TvaAttribue'],
|
||||
** 'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
// 'NafEtab' =>$entrep['NafEtab'],
|
||||
// 'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
|
||||
// 'Activite' =>prepareString($entrep['Activite']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
/* 'dir2Titre' =>prepareString($entrep['dir2Titre']),
|
||||
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
|
||||
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
|
||||
'Rivoli' =>$entrep['Rivoli'],
|
||||
|
||||
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
||||
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
||||
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
||||
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
||||
** 'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
/* 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),**
|
||||
//'importExport' =>$entrep['importExport'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);**
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
*/
|
||||
}
|
||||
?>
|
136
html/clients-test/afnic/WsEntreprises.wsdl
Normal file
136
html/clients-test/afnic/WsEntreprises.wsdl
Normal file
@ -0,0 +1,136 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://ws3.scores-decisions.com/clients/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
203
html/clients-test/afnic/WsEntreprises2.2-dlw.wsdl
Normal file
203
html/clients-test/afnic/WsEntreprises2.2-dlw.wsdl
Normal file
@ -0,0 +1,203 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Siret de l'etablissement (0 significatifs)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Siret du siege de l'entreprise</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>0=Etablissement Secondaire, 1=Etablissement Siege</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>0=Entreprise inactive, 1=Entreprise juridiquement active</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Identifiant Autre. Si commence par W=Waldec (Source JOASSO)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="idSd" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Identifiant Interne de l'etablissement (Source SCORES DECISIONS)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true">
|
||||
<!-- Nom : 160 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Raison Sociale de l'entreprise (Source RNCS ou a defaut INSEE)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true">
|
||||
<!-- Nom2 : 38 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Complement de Nom, ligne d'adresse 2 dans la norme AFNOR XP Z 10011 (Source INSEE)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="NomCommercial" type="xsd:string" nillable="true">
|
||||
<!-- NomCommercial : 200 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Nom Commercial de l'etablissement (Source RNCS)</xsd:documentation></xsd:annotation>
|
||||
<!-- <xsd:restriction base="xsd:string"><xsd:length value="200"/></xsd:restriction>-->
|
||||
</xsd:element>
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true">
|
||||
<!-- Sigle : 80 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Sigle de l'entreprise (Source RNCS, INSEE)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true">
|
||||
<!-- Enseigne : 200 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Enseigne de l'etablissement (Source INSEE, RNCS)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Libelle du pays (vide si l'etablissement est situe en France)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="PaysIso2" type="typens:codePaysIso2" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Civilite (0:Personne Morale, 1:Monsieur, 2=Madame)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Nombre d'etablissents en activite a l'INSEE</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="typens:codeFJ" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Libelle de la forme juridique RNCS ou INSEE</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Code activite de l'entreprise (Source INSEE. 5 car=NAF rev2 2008, 4 car=NAF rev1 2003)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Libelle du code activite de l'entreprise</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Capital Social de l'entreprise (Source RNCS ou SED)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Devise du capital de l'entreprise (Codification ISO 4217)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>R:Radie, D:Dissoute, A:Absorbee (Source Annonces Legales)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:simpleType name="codePaysIso2">
|
||||
<xsd:annotation><xsd:documentation>Code Pays ISO 3166-1 alpha-2 sur 2 lettres</xsd:documentation></xsd:annotation>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[A-Z]{2}"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="codeFJ">
|
||||
<xsd:annotation><xsd:documentation>Code Forme Juridique RNCS ou a defaut INSEE sur 4 chiffres</xsd:documentation></xsd:annotation>
|
||||
<xsd:restriction base="xsd:int">
|
||||
<xsd:length value="4"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="dept" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="waldec" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/clients-test/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
||||
|
148
html/clients-test/afnic/WsEntreprises2.2new-dlw.wsdl
Normal file
148
html/clients-test/afnic/WsEntreprises2.2new-dlw.wsdl
Normal file
@ -0,0 +1,148 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="PaysIso2" type="codePaysIso2" nillable="true" />
|
||||
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:simpleType name="codePaysIso2">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[A-Z]{2}"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="dept" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="waldec" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/clients-test/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
||||
|
140
html/clients-test/afnic/WsEntreprises2.2old-dlw.wsdl
Normal file
140
html/clients-test/afnic/WsEntreprises2.2old-dlw.wsdl
Normal file
@ -0,0 +1,140 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="PaysIso2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="dept" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="waldec" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/clients-test/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
189
html/clients-test/afnic/index.php
Normal file
189
html/clients-test/afnic/index.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
define ('DATETIME', date('YmdHis'));
|
||||
define ('DATE', substr(DATETIME,0,8));
|
||||
define ('TIME', substr(DATETIME,8,6));
|
||||
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
|
||||
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
/**
|
||||
* Inclusion du fichier de configuration des includes Métiers de S&D
|
||||
*/
|
||||
include '/var/www/includes/config.php';
|
||||
|
||||
/**
|
||||
* Inclusion du Framework
|
||||
*/
|
||||
if( !defined('FWK_PATH') )
|
||||
include '/var/www/framework/fwk.php';
|
||||
|
||||
debugLog('W','AFNIC Identifiant/Mot de passe ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
//strtr('REQUEST:'.print_r($_REQUEST,true).'SERVER:'.print_r($_SERVER,true).'ENV:'.print_r($_ENV, true),array("\r"=>'', "\n"=>'')),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
include_once('WsEntreprise.php');
|
||||
|
||||
global $tabInfoUser;
|
||||
global $iDbCrm;
|
||||
$iDbCrm=new WDB('sdv1');
|
||||
|
||||
function checkAuth($login, $password, $ipConnexion) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
if ($tabRep['password']==$password ||
|
||||
$tabRep['password']==md5($password) ||
|
||||
$password==md5($login.'|'.$tabRep['password']) ) {
|
||||
$tabInfoUser=array( 'login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'ipPasserelle'=> '',
|
||||
'ipConnexion'=> $ipConnexion,
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> $tabRep['nom'],
|
||||
'prenom'=> $tabRep['prenom'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' OK', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return true;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' incorrect', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' inexistant ou inactif', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
/*
|
||||
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
|
||||
$server->addFunction('rechercheAsso');
|
||||
$server->addFunction('identiteAsso');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD']=='POST')
|
||||
$server->handle();
|
||||
else
|
||||
die('WebService Association de scores et décisions');
|
||||
*/
|
||||
|
||||
// On tente d'instancier la classe soapServer
|
||||
// Si cela s'avère impossible, on lève une exception
|
||||
try {/*array('trace' => false
|
||||
,'exceptions' => false
|
||||
,'proxy_host' => "monproxy"
|
||||
,'proxy_port' => monport
|
||||
,'local_cert' => "conf/clientCert.pem"
|
||||
,'passphrase' => "monpassword"
|
||||
)
|
||||
);*/
|
||||
//$server = new SoapServer(null, array('uri' => "http://viete.scores-decisions.com/",
|
||||
$server = new SoapServer('WsEntreprises2.2-dlw.wsdl', array(//'uri' => "http://viete.scores-decisions.com/",
|
||||
'soap_version' => SOAP_1_1,
|
||||
'style' => SOAP_DOCUMENT,
|
||||
'use' => SOAP_LITERAL,
|
||||
// 'soap_version' => SOAP_1_2,
|
||||
'trace' => 1,
|
||||
));
|
||||
//"etab.wsdl", array('trace' => 1, 'soap_version' => SOAP_1_1));//(null, array('uri' => "http://test-uri/"));//
|
||||
// On définit la classe qui va gérer les requètes SOAP
|
||||
$server -> setclass('WsEntreprise');
|
||||
} catch (Exception $e) {
|
||||
debugLog('E','Exception : '.$e,__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
echo $e;
|
||||
}
|
||||
|
||||
// La méthode POST a été utilisée pour appeller cette page.
|
||||
// On suppose donc qu'une requète a été envoyée, on la gère
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (checkAuth("testafnic", "afnic", $_SERVER['REMOTE_ADDR']))
|
||||
//if (checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
||||
//if ($_SERVER['PHP_AUTH_USER']=='TEST' && $_SERVER['PHP_AUTH_PW']=='prout')
|
||||
$server -> handle();
|
||||
else {
|
||||
$server->fault('900', 'Identifiant ou mot de passe incorrect');
|
||||
debugLog('W','Couple Identifiant/Mot de passe incorrect ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
//$server->fault('999', 'Service indisponible');
|
||||
}
|
||||
// sinon, on affiche une liste des méthodes que peut gérer ce serveur
|
||||
elseif (isset($_REQUEST['wsdl'])) {
|
||||
echo file_get_contents('WsEntreprises.wsdl');
|
||||
debugLog('N','Accès en GET au WebService WSDL',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
else {
|
||||
echo '<strong>This SOAP server can handle following functions : </strong>';
|
||||
echo '<ul>';
|
||||
$str=file_get_contents('WsEntreprise.php');
|
||||
// die($str);
|
||||
foreach($server -> getFunctions() as $func) {
|
||||
preg_match('#\/\*\*([^\/]*)\*\/(?:\s+)function(?: +|\()'.$func.'#sU', $str, $matches);
|
||||
if (!preg_match('/@nodoc/i', $matches[1])) {
|
||||
$tabFunc[$func]=$matches[1];
|
||||
echo '<li><a href="#'.$func.'">' , $func , '</a></li>';
|
||||
}
|
||||
// <a href="[^>]+">[^<]+</a>`';
|
||||
//print_r($matches);
|
||||
}
|
||||
debugLog('N','Accès en GET au WebService',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
?></ul>
|
||||
<hr/>
|
||||
<table>
|
||||
<? foreach($tabFunc as $func=>$infos)
|
||||
{ //if (!preg_match('/@nodoc/i', $infos)) {
|
||||
?><tr><td><b><u><a name="<?=$func?>"><?=$func?></a></u></b></td></tr>
|
||||
<tr><td><pre><?=strtr(htmlentities($infos),array( '@param'=>'Paramètre',
|
||||
'@return'=>'Retourne ',
|
||||
'$'=>'', '*'=>''
|
||||
))?></pre></td></tr><?
|
||||
}//}
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
|
||||
function wsLog($service, $siret='', $ref='') {
|
||||
if (strlen($siret)==14) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
} elseif (strlen($siret)==9) {
|
||||
$siren=$siret;
|
||||
$nic='';
|
||||
}
|
||||
|
||||
global $iDbCrm, $tabInfoUser;
|
||||
$tabInsert=array( 'login'=>$tabInfoUser['login'],
|
||||
'page'=>$service,
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'params'=>$ref);
|
||||
$rep=$iDbCrm->insert('logs', $tabInsert);
|
||||
}
|
||||
?>
|
6
html/clients-test/index.html
Normal file
6
html/clients-test/index.html
Normal file
@ -0,0 +1,6 @@
|
||||
<html>
|
||||
<title>Nothing here</title>
|
||||
<body>
|
||||
<h3>Nothing here</h3>
|
||||
</body>
|
||||
</html>
|
20
html/clients/afnic/.htaccess
Normal file
20
html/clients/afnic/.htaccess
Normal file
@ -0,0 +1,20 @@
|
||||
#php_value include_path ".:/var/www/framework:/var/www/site_extranet/includes:/usr/share/php"
|
||||
php_value auto_prepend_file "/var/www/includes/auto_prepend.php"
|
||||
#php_value auto_append_file "/var/www/site_extranet/config/append.php"
|
||||
#ErrorDocument 400 /error.php?errtyp=400
|
||||
#ErrorDocument 401 /error.php?errtyp=401
|
||||
#ErrorDocument 402 /error.php?errtyp=402
|
||||
#ErrorDocument 403 /error.php?errtyp=403
|
||||
#ErrorDocument 404 /error.php?errtyp=404
|
||||
#ErrorDocument 500 /error.php?errtyp=500
|
||||
#ErrorDocument 501 /error.php?errtyp=501
|
||||
#ErrorDocument 502 /error.php?errtyp=502
|
||||
#Options +FollowSymlinks
|
||||
RewriteEngine on
|
||||
#RewriteRule ^(.*).htm$ http://www2.scores-decisions.com/index.php?page=$1 [nc]
|
||||
#RewriteRule !(index\.php|test\.php|^documents/pdf/courriers(.*)|\.html|\.htm|\.gif|\.css|\.jpg|\.png|\.jar|\.js|\.ico|\.pdf)$ /index.php [L]
|
||||
#RewriteRule ^img/(.*) /img/$1 [L]
|
||||
#RewriteRule ^js/(.*) /scripts/$1 [L]
|
||||
#RewriteRule ^css/(.*) /design/stylesheets/$1 [L]
|
||||
#RewriteRule ^etatspdf/(.*) /documents/pdf/etats/$1 [L]
|
||||
#RewriteRule ^(.*)\.htm$ /html/$1.html [L]
|
576
html/clients/afnic/WsEntreprise-2.1.php
Normal file
576
html/clients/afnic/WsEntreprise-2.1.php
Normal file
@ -0,0 +1,576 @@
|
||||
<?php
|
||||
|
||||
ini_set('soap.wsdl_cache_enabled', 0);
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
|
||||
class WsEntreprise {
|
||||
|
||||
var $iInsee;
|
||||
|
||||
/** Constructeur de la classe
|
||||
** @nodoc
|
||||
**/
|
||||
function __construct(){
|
||||
$this->iInsee=new MInsee();
|
||||
}
|
||||
|
||||
/** Obtention automatique d'un nouveau login pour un client
|
||||
** @nodoc
|
||||
**/
|
||||
function getNextLogin($login) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut créer un nouveau login **/
|
||||
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin', "u.login='$login' AND u.idClient=c.id");
|
||||
$racine=$rep[0]['racineLogin'];
|
||||
$idClient=$rep[0]['idClient'];
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
|
||||
if (count($rep)==0) $racine.='1';
|
||||
else {
|
||||
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
|
||||
$racine.=$last_i+1;
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient));
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getInfosLogin($login, $ipUtilisateur) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['login']<>$login && $tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut il des infos sur un login ? **/
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, actif, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND deleted=0", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
$rep=array('login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> prepareString($tabRep['nom']),
|
||||
'prenom'=> prepareString($tabRep['prenom']),
|
||||
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> prepareString($tabRep['adrVille']),
|
||||
'adrComp'=> prepareString($tabRep['adrComp']),
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> prepareString($tabRep['profil']),
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'reference'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($tabInfoUser['filtre_ip']));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
//debugLog('I',"getInfosLogin : \$tabIpAllowed : ".print_r($tabIpAllowed,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $ipUtilisateur) )
|
||||
$connected=true;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) $connected=true;
|
||||
elseif (!$connected) {
|
||||
$errnum=10818;
|
||||
$errmsg='Adresse IP non declaree pour ce compte. Contactez votre administrateur !';
|
||||
}
|
||||
|
||||
$rep=array( 'connected'=> $connected,
|
||||
'login'=> $tabInfoUser['login'],
|
||||
'id'=> $tabInfoUser['id'],
|
||||
'idClient'=> $tabInfoUser['idClient'],
|
||||
'email'=> $tabInfoUser['email'],
|
||||
'typeCompte'=> $tabInfoUser['typeCompte'],
|
||||
'filtre_ip'=> $tabInfoUser['filtre_ip'],
|
||||
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
|
||||
'ipConnexion'=> $ipUtilisateur,
|
||||
'civilite'=> $tabInfoUser['civilite'],
|
||||
'nom'=> prepareString($tabInfoUser['nom']),
|
||||
'prenom'=> prepareString($tabInfoUser['prenom']),
|
||||
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
|
||||
'siret'=> $tabInfoUser['siret'],
|
||||
'adrNum'=> $tabInfoUser['adrNum'],
|
||||
'adrIndRep'=> $tabInfoUser['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
|
||||
'adrCp'=> $tabInfoUser['adrCp'],
|
||||
'adrVille'=> prepareString($tabInfoUser['adrVille']),
|
||||
'adrComp'=> prepareString($tabInfoUser['adrComp']),
|
||||
'tel'=> $tabInfoUser['tel'],
|
||||
'fax'=> $tabInfoUser['fax'],
|
||||
'mobile'=> $tabInfoUser['mobile'],
|
||||
'pref'=> $tabInfoUser['pref'],
|
||||
'profil'=> prepareString($tabInfoUser['profil']),
|
||||
'dateInscription'=> $tabInfoUser['dateInscription'],
|
||||
'dateValidation'=> $tabInfoUser['dateValidation'],
|
||||
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
|
||||
'droits'=> $tabInfoUser['droits'],
|
||||
'nbReponses'=> $tabInfoUser['nbReponses'],
|
||||
'formatMail'=> $tabInfoUser['formatMail'],
|
||||
'reference'=> $tabInfoUser['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
|
||||
'maxFicheId'=> $tabInfoUser['maxFicheId'],
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getListeUtilisateurs($login, $idClient=0) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUser['profil']<>'Administrateur')
|
||||
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
|
||||
$idClient=$rep[0][0];
|
||||
if ($idClient==0)
|
||||
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($rep as $uti)
|
||||
$tabRet[]=array( 'idUti'=>$uti['id'],
|
||||
'idClient'=>$uti['idClient'],
|
||||
'login'=>$uti['login'],
|
||||
'email'=>$uti['email'],
|
||||
'actif'=>$uti['actif'],
|
||||
'nom'=>prepareString($uti['nom']),
|
||||
'prenom'=>prepareString($uti['prenom']),
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Mise à jour des informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function setInfosLogin($login, $tabInfoUserWS) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUserWS['delete']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('deleted'=>1);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>0);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>1);
|
||||
else {
|
||||
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
|
||||
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
|
||||
$tabUpdate=array();
|
||||
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
|
||||
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
|
||||
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
|
||||
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
|
||||
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
|
||||
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
|
||||
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
|
||||
|
||||
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
|
||||
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
|
||||
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
|
||||
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
$tabUpdate['droits']=$strDroits;
|
||||
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
|
||||
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
|
||||
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
|
||||
}
|
||||
}
|
||||
if ($tabInfoUserWS['action']=='new') {
|
||||
$tabUpdate['login']=$login;
|
||||
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
|
||||
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
else
|
||||
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
|
||||
}
|
||||
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
|
||||
else
|
||||
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
||||
/*
|
||||
[rech_limites] => Array
|
||||
(
|
||||
[0] => assocs
|
||||
[1] => actifs
|
||||
[2] => radies
|
||||
[3] => sieges
|
||||
)
|
||||
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
*/
|
||||
}
|
||||
|
||||
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
|
||||
** @nodoc
|
||||
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
|
||||
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
|
||||
** @param string $codePostal Code postal (ex: 75014)
|
||||
** @param string $ville Ville
|
||||
** @param bool $siege Limitation de la recherche au sièges (si true)
|
||||
** @param bool $actif Limitation aux établissements actifs (si true)
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
|
||||
** @param bool $avecSiren Ne proposer que les entités sirénées
|
||||
** @return Tableau d'entreprises ou d'établissements
|
||||
**/
|
||||
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
|
||||
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($etab['FJLib']),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
** @nodoc
|
||||
** @param integer $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param integer $dep Département
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
||||
$tabRet=array();
|
||||
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
|
||||
elseif (strlen($siret)== 9) $nic='';
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt' => $etab['NafEnt'], // Entreprise
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
}
|
||||
$rep['reponses']=$tabRet;
|
||||
|
||||
/** Si le siren est valide, on part chez Infogreffe **/
|
||||
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
|
||||
$iGeffes=new MGreffes();
|
||||
$etab=$iGeffes->getIdentite($siren);
|
||||
if ($etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString($etab['Nom']),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'],
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
|
||||
'NafEnt' => $etab['NafEnt'],
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>1,
|
||||
'nbReponsesTotal'=>1,
|
||||
'reponses'=>$tabRet);
|
||||
} else
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>0,
|
||||
'nbReponsesTotal'=>0,
|
||||
'reponses'=>array());
|
||||
}
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
||||
}
|
||||
|
||||
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
||||
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
|
||||
** @param integer $id Identifiant S&D de l'établissement
|
||||
** @return array Fiche d'identité de l'établissement
|
||||
**/
|
||||
function getIdentite($params) {
|
||||
//function getIdentite($siret, $id = 0) {
|
||||
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
|
||||
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
|
||||
} else {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
}
|
||||
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
|
||||
fclose($fp);
|
||||
}*/
|
||||
$siret=$params->siret;
|
||||
$id=$params->id;
|
||||
$forceVerif=false;
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if (!$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$iBourse=new MBourse($siren);
|
||||
$bourse=$iBourse->getInfosBourse($siren);
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
// 'Isin' =>$entrep['Isin'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
// 'Siret' =>$entrep['Siret'],
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
|
||||
/*
|
||||
'GeoLat' =>$entrep['GeoLat'],
|
||||
'GeoLon' =>$entrep['GeoLon'],
|
||||
'GeoPrecis' =>$entrep['GeoPrecis'],
|
||||
'GeoInfos' =>$entrep['GeoInfos'],
|
||||
|
||||
'TvaNumero' =>$entrep['TvaNumero'],
|
||||
'TvaAttribue' =>$entrep['TvaAttribue'],
|
||||
*/ 'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
// 'NafEtab' =>$entrep['NafEtab'],
|
||||
// 'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
|
||||
// 'Activite' =>prepareString($entrep['Activite']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
/* 'dir2Titre' =>prepareString($entrep['dir2Titre']),
|
||||
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
|
||||
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
|
||||
'Rivoli' =>$entrep['Rivoli'],
|
||||
|
||||
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
||||
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
||||
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
||||
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
||||
*/ 'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
/* 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),*/
|
||||
//'importExport' =>$entrep['importExport'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);*/
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
807
html/clients/afnic/WsEntreprise-2.2.php
Normal file
807
html/clients/afnic/WsEntreprise-2.2.php
Normal file
@ -0,0 +1,807 @@
|
||||
<?php
|
||||
|
||||
ini_set('soap.wsdl_cache_enabled', 0);
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
class WsEntreprise {
|
||||
|
||||
var $iInsee;
|
||||
|
||||
/** Constructeur de la classe
|
||||
** @nodoc
|
||||
**/
|
||||
function __construct(){
|
||||
$this->iInsee=new MInsee();
|
||||
}
|
||||
|
||||
/** Obtention automatique d'un nouveau login pour un client
|
||||
** @nodoc
|
||||
**/
|
||||
function getNextLogin($login) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut créer un nouveau login **/
|
||||
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin', "u.login='$login' AND u.idClient=c.id");
|
||||
$racine=$rep[0]['racineLogin'];
|
||||
$idClient=$rep[0]['idClient'];
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
|
||||
if (count($rep)==0) $racine.='1';
|
||||
else {
|
||||
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
|
||||
$racine.=$last_i+1;
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient));
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getInfosLogin($login, $ipUtilisateur) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['login']<>$login && $tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut il des infos sur un login ? **/
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, actif, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND deleted=0", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
$rep=array('login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> prepareString($tabRep['nom']),
|
||||
'prenom'=> prepareString($tabRep['prenom']),
|
||||
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> prepareString($tabRep['adrVille']),
|
||||
'adrComp'=> prepareString($tabRep['adrComp']),
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> prepareString($tabRep['profil']),
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'reference'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($tabInfoUser['filtre_ip']));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
//debugLog('I',"getInfosLogin : \$tabIpAllowed : ".print_r($tabIpAllowed,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $ipUtilisateur) )
|
||||
$connected=true;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) $connected=true;
|
||||
elseif (!$connected) {
|
||||
$errnum=10818;
|
||||
$errmsg='Adresse IP non declaree pour ce compte. Contactez votre administrateur !';
|
||||
}
|
||||
|
||||
$rep=array( 'connected'=> $connected,
|
||||
'login'=> $tabInfoUser['login'],
|
||||
'id'=> $tabInfoUser['id'],
|
||||
'idClient'=> $tabInfoUser['idClient'],
|
||||
'email'=> $tabInfoUser['email'],
|
||||
'typeCompte'=> $tabInfoUser['typeCompte'],
|
||||
'filtre_ip'=> $tabInfoUser['filtre_ip'],
|
||||
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
|
||||
'ipConnexion'=> $ipUtilisateur,
|
||||
'civilite'=> $tabInfoUser['civilite'],
|
||||
'nom'=> prepareString($tabInfoUser['nom']),
|
||||
'prenom'=> prepareString($tabInfoUser['prenom']),
|
||||
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
|
||||
'siret'=> $tabInfoUser['siret'],
|
||||
'adrNum'=> $tabInfoUser['adrNum'],
|
||||
'adrIndRep'=> $tabInfoUser['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
|
||||
'adrCp'=> $tabInfoUser['adrCp'],
|
||||
'adrVille'=> prepareString($tabInfoUser['adrVille']),
|
||||
'adrComp'=> prepareString($tabInfoUser['adrComp']),
|
||||
'tel'=> $tabInfoUser['tel'],
|
||||
'fax'=> $tabInfoUser['fax'],
|
||||
'mobile'=> $tabInfoUser['mobile'],
|
||||
'pref'=> $tabInfoUser['pref'],
|
||||
'profil'=> prepareString($tabInfoUser['profil']),
|
||||
'dateInscription'=> $tabInfoUser['dateInscription'],
|
||||
'dateValidation'=> $tabInfoUser['dateValidation'],
|
||||
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
|
||||
'droits'=> $tabInfoUser['droits'],
|
||||
'nbReponses'=> $tabInfoUser['nbReponses'],
|
||||
'formatMail'=> $tabInfoUser['formatMail'],
|
||||
'reference'=> $tabInfoUser['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
|
||||
'maxFicheId'=> $tabInfoUser['maxFicheId'],
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getListeUtilisateurs($login, $idClient=0) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUser['profil']<>'Administrateur')
|
||||
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
|
||||
$idClient=$rep[0][0];
|
||||
if ($idClient==0)
|
||||
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($rep as $uti)
|
||||
$tabRet[]=array( 'idUti'=>$uti['id'],
|
||||
'idClient'=>$uti['idClient'],
|
||||
'login'=>$uti['login'],
|
||||
'email'=>$uti['email'],
|
||||
'actif'=>$uti['actif'],
|
||||
'nom'=>prepareString($uti['nom']),
|
||||
'prenom'=>prepareString($uti['prenom']),
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Mise à jour des informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function setInfosLogin($login, $tabInfoUserWS) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUserWS['delete']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('deleted'=>1);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>0);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>1);
|
||||
else {
|
||||
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
|
||||
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
|
||||
$tabUpdate=array();
|
||||
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
|
||||
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
|
||||
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
|
||||
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
|
||||
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
|
||||
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
|
||||
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
|
||||
|
||||
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
|
||||
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
|
||||
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
|
||||
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
$tabUpdate['droits']=$strDroits;
|
||||
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
|
||||
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
|
||||
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
|
||||
}
|
||||
}
|
||||
if ($tabInfoUserWS['action']=='new') {
|
||||
$tabUpdate['login']=$login;
|
||||
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
|
||||
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
else
|
||||
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
|
||||
}
|
||||
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
|
||||
else
|
||||
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
||||
/*
|
||||
[rech_limites] => Array
|
||||
(
|
||||
[0] => assocs
|
||||
[1] => actifs
|
||||
[2] => radies
|
||||
[3] => sieges
|
||||
)
|
||||
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
*/
|
||||
}
|
||||
|
||||
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
|
||||
** @nodoc
|
||||
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
|
||||
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
|
||||
** @param string $codePostal Code postal (ex: 75014)
|
||||
** @param string $ville Ville
|
||||
** @param bool $siege Limitation de la recherche au sièges (si true)
|
||||
** @param bool $actif Limitation aux établissements actifs (si true)
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
|
||||
** @param bool $avecSiren Ne proposer que les entités sirénées
|
||||
** @return Tableau d'entreprises ou d'établissements
|
||||
**/
|
||||
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
|
||||
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($etab['FJLib']),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
** @nodoc
|
||||
** @param integer $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param integer $dep Département
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
||||
$tabRet=array();
|
||||
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
|
||||
elseif (strlen($siret)== 9) $nic='';
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt' => $etab['NafEnt'], // Entreprise
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
}
|
||||
$rep['reponses']=$tabRet;
|
||||
|
||||
/** Si le siren est valide, on part chez Infogreffe **/
|
||||
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
|
||||
$iGeffes=new MGreffes();
|
||||
$etab=$iGeffes->getIdentite($siren);
|
||||
if ($etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString($etab['Nom']),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'],
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
|
||||
'NafEnt' => $etab['NafEnt'],
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>1,
|
||||
'nbReponsesTotal'=>1,
|
||||
'reponses'=>$tabRet);
|
||||
} else
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>0,
|
||||
'nbReponsesTotal'=>0,
|
||||
'reponses'=>array());
|
||||
}
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
||||
}
|
||||
|
||||
|
||||
/** Fiche d'identité de l'entreprise ou de l'établissement
|
||||
**
|
||||
** @param integer $siret Siret de l'entreprise ou de l'établissement
|
||||
** @param integer $dep Département de l'établissement (facultatif)
|
||||
** @param integer $id Numéro d'établissement interne base Scores et Décisions
|
||||
** @param integer $waldec Identifiant Waldec de l'association
|
||||
** @return Fiche d'identité
|
||||
**/
|
||||
function getIdentite($params) {
|
||||
|
||||
$siret=$params->siret;
|
||||
$dep=$params->dept;
|
||||
$id=$params->id;
|
||||
$waldec=strtoupper($params->waldec);
|
||||
|
||||
/**sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep)", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id");
|
||||
*/
|
||||
$forceVerif=false;
|
||||
debugLog('W',"Recherche par identifiant Siren=$siret, Dept=$dep, Id=$id, Waldec=$waldec",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
|
||||
if ($waldec<>'' && substr($waldec,0,1)=='W' && $siret*1==0) {
|
||||
debugLog('I',"AFNIC Recherche par identifiant Waldec $waldec (Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissementsParId('AUTRE', $waldec, 0, 20, 20);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siret=$etab['Siret'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>108, 'errmsg'=>'Waldec inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($id==0 && !$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if ($dep==974) {
|
||||
debugLog('I',"AFNIC Recherche par Siren/Dept (Waldec=$waldec, Siren=$siret, Dept=$dep, Id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, 0, 20, 20, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
if ($rep['nbReponses']>0) {
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$siren=$etab['siren'];
|
||||
$nic=$etab['nic'];
|
||||
$id=$etab['id'];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
debugLog('W', "Siren $siren/Waldec $waldec non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>107, 'errmsg'=>'Entreprise ou Association non présente dans le département demandé'), 'result'=>$tabRet);
|
||||
}
|
||||
}
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$codePaysIso2='FR';
|
||||
if ($entrep['Dept']>98) {
|
||||
$codePaysInsee=$entrep['codeCommune'];
|
||||
$iDb=new WDB('jo');
|
||||
$tabTmp=$iDb->select(
|
||||
'jo.tabPays j, insee.insee_tabPays i',
|
||||
'j.codPays, j.numPays, j.codPays3, j.codePaysInpi, j.libPays, i.LIBCOG, i.ACTUAL',
|
||||
"j.codePaysInsee=$codePaysInsee AND j.codePaysInsee=substring( i.COG, 3, 3 ) AND i.ACTUAL IN (1,4) AND j.numPays is NOT NULL", true, MYSQL_ASSOC);
|
||||
if (count($tabTmp)==1) {
|
||||
$codePaysIso2=$tabTmp[0]['codPays'];
|
||||
} else {
|
||||
$codePaysIso2='';
|
||||
foreach ($tabTmp as $tabTmp2) {
|
||||
if (trim(strtoupper(strtr($tabTmp2['libPays'],
|
||||
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ',
|
||||
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY")))==trim(strtoupper($tabTmp2['LIBCOG']))) {
|
||||
$codePaysIso2=$tabTmp2['codPays'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($codePaysIso2=='') {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Afnic $siret/$waldec ($dep) Plusieurs Codes Pays", "Siret $siret
|
||||
Waldec $waldec
|
||||
Département $dep
|
||||
Id=$id".EOL.
|
||||
print_r($entrep, true).EOL.
|
||||
print_r($tabTmp, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$autreId=$entrep['AutreId'];
|
||||
if ($params->siret>0 && $waldec<>'')
|
||||
$autreId=$waldec;
|
||||
|
||||
// Source RNCS prioritaire pour les infos entreprises
|
||||
$nom=$entrep['nomLong'];
|
||||
if ($nom=='') $nom=$entrep['Nom'];
|
||||
$sigle=$entrep['sigleLong'];
|
||||
if ($sigle=='') $sigle=$entrep['Sigle'];
|
||||
|
||||
// Actif RNCS
|
||||
if ($entrep['EntActiveRCS']) $actif=1;
|
||||
// Inactif RNCS
|
||||
elseif (isset($entrep['EntActiveRCS']) && $entrep['EntActiveRCS']==0) $actif=0;
|
||||
// Actif Insee et périmètre Insee
|
||||
elseif ($entrep['Actif'] || $entrep['NbEtab']) $actif=1;
|
||||
else $actif=0;
|
||||
|
||||
// Source INSEE prioritaire sur l'établissement
|
||||
$enseigne=$entrep['Enseigne'];
|
||||
if ($enseigne=='') $enseigne=$entrep['enseigneLong'];
|
||||
$tabCarInvalides=array('/'=>' ','*'=>' ', '&'=>' ET ', '&'=>' ET ', '&'=>' ET ',
|
||||
'"'=>' ', "'"=>' ');
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$actif,
|
||||
'AutreId' =>$autreId,
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
'Nom' =>trim(prepareString(preg_replace('/ +/',' ', strtr($nom,$tabCarInvalides)))),
|
||||
'Nom2' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['Nom2'],$tabCarInvalides)))),
|
||||
'NomCommercial' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NomCommercial'],$tabCarInvalides)))),
|
||||
'Sigle' =>trim(prepareString(preg_replace('/ +/',' ', strtr($sigle,$tabCarInvalides)))),
|
||||
'Enseigne' =>trim(prepareString(preg_replace('/ +/',' ', strtr($enseigne,$tabCarInvalides)))),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'PaysIso2' =>$codePaysIso2,
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['FJ_lib'],$tabCarInvalides)))),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>trim(prepareString(preg_replace('/ +/',' ', strtr($entrep['NafEntLib'],$tabCarInvalides)))),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
'SituationJuridique'=>strtoupper(substr($entrep['SituationJuridique'],0,1)),
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);*/
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
||||
** @nodoc
|
||||
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
|
||||
** @param integer $id Identifiant S&D de l'établissement
|
||||
** @return array Fiche d'identité de l'établissement
|
||||
**/
|
||||
/*function getIdentite($params) {
|
||||
//function getIdentite($siret, $id = 0) {
|
||||
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
|
||||
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
|
||||
} else {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
}
|
||||
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
|
||||
fclose($fp);
|
||||
}**
|
||||
$siret=$params->siret;
|
||||
$id=$params->id;
|
||||
$forceVerif=false;
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if (!$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$iBourse=new MBourse($siren);
|
||||
$bourse=$iBourse->getInfosBourse($siren);
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
// 'Source' =>$entrep['Source'],
|
||||
// 'SourceId' =>$entrep['SourceId'],
|
||||
// 'Isin' =>$entrep['Isin'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
// 'Siret' =>$entrep['Siret'],
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
|
||||
/*
|
||||
'GeoLat' =>$entrep['GeoLat'],
|
||||
'GeoLon' =>$entrep['GeoLon'],
|
||||
'GeoPrecis' =>$entrep['GeoPrecis'],
|
||||
'GeoInfos' =>$entrep['GeoInfos'],
|
||||
|
||||
'TvaNumero' =>$entrep['TvaNumero'],
|
||||
'TvaAttribue' =>$entrep['TvaAttribue'],
|
||||
** 'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
// 'NafEtab' =>$entrep['NafEtab'],
|
||||
// 'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
|
||||
// 'Activite' =>prepareString($entrep['Activite']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
/* 'dir2Titre' =>prepareString($entrep['dir2Titre']),
|
||||
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
|
||||
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
|
||||
'Rivoli' =>$entrep['Rivoli'],
|
||||
|
||||
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
||||
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
||||
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
||||
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
||||
** 'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
/* 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),**
|
||||
//'importExport' =>$entrep['importExport'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);**
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
*/
|
||||
}
|
||||
?>
|
576
html/clients/afnic/WsEntreprise.php
Normal file
576
html/clients/afnic/WsEntreprise.php
Normal file
@ -0,0 +1,576 @@
|
||||
<?php
|
||||
|
||||
ini_set('soap.wsdl_cache_enabled', 0);
|
||||
|
||||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'insee/classMSirene.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMTva.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
|
||||
class WsEntreprise {
|
||||
|
||||
var $iInsee;
|
||||
|
||||
/** Constructeur de la classe
|
||||
** @nodoc
|
||||
**/
|
||||
function __construct(){
|
||||
$this->iInsee=new MInsee();
|
||||
}
|
||||
|
||||
/** Obtention automatique d'un nouveau login pour un client
|
||||
** @nodoc
|
||||
**/
|
||||
function getNextLogin($login) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut créer un nouveau login **/
|
||||
$rep=$iDbCrm->select('utilisateurs u, clients c', 'u.idClient, c.racineLogin', "u.login='$login' AND u.idClient=c.id");
|
||||
$racine=$rep[0]['racineLogin'];
|
||||
$idClient=$rep[0]['idClient'];
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, length(login) as taille', "login like '$racine%' group by login order by taille desc, login desc LIMIT 0,1");
|
||||
if (count($rep)==0) $racine.='1';
|
||||
else {
|
||||
$last_i=preg_replace("/\D/", '',$rep[0]['login'])*1;
|
||||
$racine.=$last_i+1;
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>array('racine'=>$racine, 'idClient'=>$idClient));
|
||||
}
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getInfosLogin($login, $ipUtilisateur) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
if ($tabInfoUser['login']<>$login && $tabInfoUser['profil']=='Administrateur') {
|
||||
/** Un administrateur veut il des infos sur un login ? **/
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, actif, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND deleted=0", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
$rep=array('login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> prepareString($tabRep['nom']),
|
||||
'prenom'=> prepareString($tabRep['prenom']),
|
||||
'raisonSociale'=> prepareString($tabRep['raisonSociale']),
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabRep['adrLibVoie']),
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> prepareString($tabRep['adrVille']),
|
||||
'adrComp'=> prepareString($tabRep['adrComp']),
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> prepareString($tabRep['profil']),
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'reference'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
}
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
$connected=false;
|
||||
$tabIpAllowed=explode(';', trim($tabInfoUser['filtre_ip']));
|
||||
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
|
||||
$tabIpAllowed=array();
|
||||
//debugLog('I',"getInfosLogin : \$tabIpAllowed : ".print_r($tabIpAllowed,true),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
foreach ($tabIpAllowed as $ip) {
|
||||
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $ipUtilisateur) )
|
||||
$connected=true;
|
||||
}
|
||||
if (count($tabIpAllowed)==0) $connected=true;
|
||||
elseif (!$connected) {
|
||||
$errnum=10818;
|
||||
$errmsg='Adresse IP non declaree pour ce compte. Contactez votre administrateur !';
|
||||
}
|
||||
|
||||
$rep=array( 'connected'=> $connected,
|
||||
'login'=> $tabInfoUser['login'],
|
||||
'id'=> $tabInfoUser['id'],
|
||||
'idClient'=> $tabInfoUser['idClient'],
|
||||
'email'=> $tabInfoUser['email'],
|
||||
'typeCompte'=> $tabInfoUser['typeCompte'],
|
||||
'filtre_ip'=> $tabInfoUser['filtre_ip'],
|
||||
'ipPasserelle'=> $tabInfoUser['ipConnexion'],
|
||||
'ipConnexion'=> $ipUtilisateur,
|
||||
'civilite'=> $tabInfoUser['civilite'],
|
||||
'nom'=> prepareString($tabInfoUser['nom']),
|
||||
'prenom'=> prepareString($tabInfoUser['prenom']),
|
||||
'raisonSociale'=> prepareString($tabInfoUser['raisonSociale']),
|
||||
'siret'=> $tabInfoUser['siret'],
|
||||
'adrNum'=> $tabInfoUser['adrNum'],
|
||||
'adrIndRep'=> $tabInfoUser['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabInfoUser['adrTypeVoie'],
|
||||
'adrLibVoie'=> prepareString($tabInfoUser['adrLibVoie']),
|
||||
'adrCp'=> $tabInfoUser['adrCp'],
|
||||
'adrVille'=> prepareString($tabInfoUser['adrVille']),
|
||||
'adrComp'=> prepareString($tabInfoUser['adrComp']),
|
||||
'tel'=> $tabInfoUser['tel'],
|
||||
'fax'=> $tabInfoUser['fax'],
|
||||
'mobile'=> $tabInfoUser['mobile'],
|
||||
'pref'=> $tabInfoUser['pref'],
|
||||
'profil'=> prepareString($tabInfoUser['profil']),
|
||||
'dateInscription'=> $tabInfoUser['dateInscription'],
|
||||
'dateValidation'=> $tabInfoUser['dateValidation'],
|
||||
'nombreConnexions'=> $tabInfoUser['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabInfoUser['dateDerniereConnexion'],
|
||||
'droits'=> $tabInfoUser['droits'],
|
||||
'nbReponses'=> $tabInfoUser['nbReponses'],
|
||||
'formatMail'=> $tabInfoUser['formatMail'],
|
||||
'reference'=> $tabInfoUser['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabInfoUser['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabInfoUser['dateFinCompte'],
|
||||
'maxFicheId'=> $tabInfoUser['maxFicheId'],
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'result'=>$rep);
|
||||
}
|
||||
|
||||
/** Récupère les informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function getListeUtilisateurs($login, $idClient=0) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUser['profil']<>'Administrateur')
|
||||
return array('error'=>array('errnum'=>987684351, 'errmsg'=>'Profil non administrateur'), 'result'=>array());
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'idClient', "login='$login'");
|
||||
$idClient=$rep[0][0];
|
||||
if ($idClient==0)
|
||||
return array('error'=>array('errnum'=>98684351, 'errmsg'=>'idClient=0'), 'result'=>$rep);
|
||||
|
||||
$rep=$iDbCrm->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom', "idClient='$idClient' AND deleted=0 ORDER BY login ASC", true, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($rep as $uti)
|
||||
$tabRet[]=array( 'idUti'=>$uti['id'],
|
||||
'idClient'=>$uti['idClient'],
|
||||
'login'=>$uti['login'],
|
||||
'email'=>$uti['email'],
|
||||
'actif'=>$uti['actif'],
|
||||
'nom'=>prepareString($uti['nom']),
|
||||
'prenom'=>prepareString($uti['prenom']),
|
||||
);
|
||||
return array('error'=>array('errnum'=>$errnum, 'errmsg'=>$errmsg), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Mise à jour des informations du profil connecté
|
||||
** @nodoc
|
||||
**/
|
||||
function setInfosLogin($login, $tabInfoUserWS) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
|
||||
if ($tabInfoUserWS['delete']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('deleted'=>1);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==0 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>0);
|
||||
elseif (isset($tabInfoUserWS['actif']) && $tabInfoUserWS['actif']==1 && $tabInfoUser['profil']=='Administrateur')
|
||||
$tabUpdate=array('actif'=>1);
|
||||
else {
|
||||
$strPrefs=@implode(' ',$tabInfoUserWS['pref']);
|
||||
$strDroits=@implode(' ',$tabInfoUserWS['droits']);
|
||||
$tabUpdate=array();
|
||||
if (isset($tabInfoUserWS['email'])) $tabUpdate['email']=stripslashes($tabInfoUserWS['email']);
|
||||
if (isset($tabInfoUserWS['tel_fix'])) $tabUpdate['tel']=stripslashes($tabInfoUserWS['tel_fix']);
|
||||
if (isset($tabInfoUserWS['tel_fax'])) $tabUpdate['fax']=stripslashes($tabInfoUserWS['tel_fax']);
|
||||
if (isset($tabInfoUserWS['tel_mob'])) $tabUpdate['mobile']=stripslashes($tabInfoUserWS['tel_mob']);
|
||||
if (isset($tabInfoUserWS['rech_nbrep'])) $tabUpdate['nbReponses']=$tabInfoUserWS['rech_nbrep'];
|
||||
if (isset($tabInfoUserWS['formatMail'])) $tabUpdate['formatMail']=$tabInfoUserWS['formatMail'];
|
||||
if (isset($tabInfoUserWS['pref'])) $tabUpdate['pref']=$strPrefs;
|
||||
|
||||
if (isset($tabInfoUserWS['changepwd']) && $tabInfoUserWS['changepwd']==1 &&
|
||||
isset($tabInfoUserWS['password']) && trim($tabInfoUserWS['password'])<>'')
|
||||
$tabUpdate['password']=stripslashes($tabInfoUserWS['password']);
|
||||
|
||||
if ($tabInfoUser['profil']=='Administrateur') {
|
||||
$tabUpdate['droits']=$strDroits;
|
||||
if (isset($tabInfoUserWS['nom'])) $tabUpdate['nom']=stripslashes($tabInfoUserWS['nom']);
|
||||
if (isset($tabInfoUserWS['prenom'])) $tabUpdate['prenom']=stripslashes($tabInfoUserWS['prenom']);
|
||||
if (isset($tabInfoUserWS['reference'])) $tabUpdate['referenceParDefaut']=stripslashes($tabInfoUserWS['reference']);
|
||||
}
|
||||
}
|
||||
if ($tabInfoUserWS['action']=='new') {
|
||||
$tabUpdate['login']=$login;
|
||||
$tabUpdate['idClient']=$tabInfoUserWS['idClient'];
|
||||
if ($iDbCrm->insert('utilisateurs', $tabUpdate))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
else
|
||||
return array('error'=>array('errnum'=>76841, 'errmsg'=>'Création impossible'), 'result'=>0);
|
||||
}
|
||||
if ($iDbCrm->update('utilisateurs', $tabUpdate, "login='$login'"))
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>1);
|
||||
|
||||
else
|
||||
return array('error'=>array('errnum'=>76840, 'errmsg'=>'Mise a jour impossible'), 'result'=>0);
|
||||
/*
|
||||
[rech_limites] => Array
|
||||
(
|
||||
[0] => assocs
|
||||
[1] => actifs
|
||||
[2] => radies
|
||||
[3] => sieges
|
||||
)
|
||||
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
*/
|
||||
}
|
||||
|
||||
/** Recherche d'une entreprise ou d'un établissement par sa raison sociale, son enseigne, son sigle, son adresse .
|
||||
** @nodoc
|
||||
** @param string $raisonSociale Raison Sociale ou Enseigne ou Sigle
|
||||
** @param string $adresse Adresse de l'entreprise, du type : 3 rue des Plantes
|
||||
** @param string $codePostal Code postal (ex: 75014)
|
||||
** @param string $ville Ville
|
||||
** @param bool $siege Limitation de la recherche au sièges (si true)
|
||||
** @param bool $actif Limitation aux établissements actifs (si true)
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur le nom, l'adresse et la ville (si true)
|
||||
** @param bool $avecSiren Ne proposer que les entités sirénées
|
||||
** @return Tableau d'entreprises ou d'établissements
|
||||
**/
|
||||
function searchNomAdr($raisonSociale, $adresse='', $codePostal='', $ville='', $siege='', $actif='', $deb=0, $nbRep=20, $maxRep=200, $pertinence=false, $avecSiren=false, $ape_etab='') {
|
||||
debugLog('I',"Recherche Entreprise de $raisonSociale, $adresse, $codePostal $ville (Siège=$siege / Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$etabs=$this->iInsee->rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren, $ape_etab);
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($etab['FJLib']),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
** @nodoc
|
||||
** @param integer $siret Siren ou Siret de l'entreprise ou de l'établissement sur 9 ou 14 chiffres significatifs
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param integer $dep Département
|
||||
** @return Liste d'établissements
|
||||
**/
|
||||
function searchSiren($siret, $deb=0, $nbRep=20, $maxRep=200, $dep=0) {
|
||||
$tabRet=array();
|
||||
debugLog('I',"Recherche par Siret de $siret (dep=$dep) avec un maximum de $maxRep réponses pour la tranche $deb à $nbRep",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (strlen($siret)==14) $nic=substr(''.$siret,9,5);
|
||||
elseif (strlen($siret)== 9) $nic='';
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siret incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'results'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9);
|
||||
$rep=$this->iInsee->getEtablissements($siren, $nic, $deb, $nbRep, $maxRep, $dep);
|
||||
$etabs=$rep['reponses'];
|
||||
|
||||
foreach ($etabs as $nb=>$etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']), // Etablissement
|
||||
'NafEnt' => $etab['NafEnt'], // Entreprise
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
}
|
||||
$rep['reponses']=$tabRet;
|
||||
|
||||
/** Si le siren est valide, on part chez Infogreffe **/
|
||||
if (count($tabRet)==0 && $this->iInsee->valideSiren($siren)) {
|
||||
$iGeffes=new MGreffes();
|
||||
$etab=$iGeffes->getIdentite($siren);
|
||||
if ($etab) {
|
||||
$tabRet[]=array( 'id' => $etab['id'],
|
||||
'Pertinence'=> $etab['Pertinence'],
|
||||
'Siret' => $etab['Siret'],
|
||||
'Siege' => $etab['Siege'],
|
||||
'Nom' => prepareString($etab['Nom']),
|
||||
'Nom2' => prepareString($etab['Nom2']),
|
||||
'Sigle' => prepareString($etab['Sigle']),
|
||||
'Enseigne' => prepareString($etab['Enseigne']),
|
||||
'Adresse' => prepareString($etab['Adresse']),
|
||||
'Adresse2' => prepareString($etab['Adresse2']),
|
||||
'CP' => $etab['CP'],
|
||||
'Ville' => prepareString($etab['Ville']),
|
||||
'Tel' => $etab['Tel'],
|
||||
'Fax' => $etab['Fax'],
|
||||
'FJ' => $etab['FJ'],
|
||||
'FJLib' => prepareString($etab['FJLib']),
|
||||
'Siren' => $etab['Siren'],
|
||||
'Nic' => $etab['Nic'],
|
||||
'Actif' => $etab['Actif'],
|
||||
'NafEtab' => $etab['NafEtab'],
|
||||
'NafEtabLib'=> prepareString($etab['NafEtabLib']),
|
||||
'NafEnt' => $etab['NafEnt'],
|
||||
'NafEntLib' => prepareString($etab['NafEntLib']),
|
||||
);
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>1,
|
||||
'nbReponsesTotal'=>1,
|
||||
'reponses'=>$tabRet);
|
||||
} else
|
||||
$rep=array( 'criteres'=>array('siren'=>$siren, 'nic'=>$nic, 'dep'=>$dep),
|
||||
'nbReponses'=>0,
|
||||
'nbReponsesTotal'=>0,
|
||||
'reponses'=>array());
|
||||
}
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$rep);
|
||||
}
|
||||
|
||||
/** Retourne les informations identitaires de l'entreprise ou de l'établissement demandé
|
||||
** @param integer $siret Siren de l'entreprise ou siret de l'établissement
|
||||
** @param integer $id Identifiant S&D de l'établissement
|
||||
** @return array Fiche d'identité de l'établissement
|
||||
**/
|
||||
function getIdentite($params) {
|
||||
//function getIdentite($siret, $id = 0) {
|
||||
/* $login, $page, $siret, $ip, $host, $resolution, $nbcolors, $user_agent, $referer, $date_login, $date_last_action, $request) {
|
||||
if (!file_exists('/var/www/site_extranet/log/actions.log')) {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
fwrite($fp, 'Date et Heure;Login;Page;Siret;Ip;Host;Resolution;Nbcolors;User Agent;Referer;Date login;Date last action;Request'."\n");
|
||||
} else {
|
||||
$fp=fopen('/var/www/site_extranet/log/actions.log', 'a');
|
||||
}
|
||||
fwrite($fp, date('Y/m/d H:i:s').";$login;$page;$siret;$ip;$host;$resolution;$nbcolors;$user_agent;$referer;$date_login;$date_last_action;$request\n");
|
||||
fclose($fp);
|
||||
}*/
|
||||
$siret=$params->siret;
|
||||
$id=$params->id;
|
||||
$forceVerif=false;
|
||||
|
||||
debugLog('I',"AFNIC Identités demandée pour siret ".strtr(print_r($siret, true),array("\r"=>'',"\n"=>'')). " (id=$id)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$tabRet=array();
|
||||
$siret=trim($siret);
|
||||
$len=strlen($siret);
|
||||
$id=trim($id)*1;
|
||||
if ($len==14) $nic=substr(''.$siret,9,5)*1;
|
||||
elseif ($len== 9) $nic='';
|
||||
elseif ($len== 0) { $siren=0; $nic=''; }
|
||||
else {
|
||||
debugLog('W', "Siren/Siret $siren incorrect", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren Siret inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
$siren=substr(''.$siret,0,9)*1;
|
||||
if ($siren==0 && $id==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
if (!$this->iInsee->valideSiren($siren, $nic)) {
|
||||
debugLog('W', "Siren $siren/$nic invalide (105)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>105, 'errmsg'=>'Siren invalide'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$tabTmp=$this->searchSiren($siret);
|
||||
if ($tabTmp['results']['nbReponses']==0) {
|
||||
debugLog('W', "Siren $siren inexistant", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>106, 'errmsg'=>'Siren inconnu'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
debugLog('I', "Avant getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
$entrep=$this->iInsee->getIdentiteEntreprise($siren, $nic, $id, $forceVerif);
|
||||
debugLog('I', "Après getIdentiteEntreprise($siren, $nic, $id)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
if (empty($entrep)) {
|
||||
debugLog('W', "Siren $siren non présent en base", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>102, 'errmsg'=>'Siren inexistant'), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
$iBourse=new MBourse($siren);
|
||||
$bourse=$iBourse->getInfosBourse($siren);
|
||||
|
||||
$tabRet=array( 'id' =>$entrep['id'],
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'idSd' =>$entrep['Source'].'-'.$entrep['SourceId'],
|
||||
// 'Isin' =>$entrep['Isin'],
|
||||
'Nom' =>prepareString(strtr($entrep['Nom'],'/*',' ')),
|
||||
'Nom2' =>prepareString($entrep['Nom2']),
|
||||
// 'Siret' =>$entrep['Siret'],
|
||||
'Sigle' =>prepareString($entrep['Sigle']),
|
||||
'Enseigne' =>prepareString($entrep['Enseigne']),
|
||||
'Adresse' =>prepareString($entrep['Adresse']),
|
||||
'Adresse2' =>prepareString($entrep['Adresse2']),
|
||||
'AdresseNum' =>prepareString($entrep['AdresseNum']),
|
||||
'AdresseBtq' =>prepareString($entrep['AdresseBtq']),
|
||||
'AdresseVoie' =>prepareString($entrep['AdresseVoie']),
|
||||
'AdresseRue' =>prepareString($entrep['AdresseRue']),
|
||||
'CP' =>$entrep['CP'],
|
||||
'Ville' =>prepareString($entrep['Ville']),
|
||||
'Pays' =>prepareString($entrep['Pays']), // Ajouté le 18 02 2008
|
||||
'Civilite' =>$entrep['Civilite'],
|
||||
'NbEtab' =>$entrep['NbEtab'],
|
||||
'Tel' =>prepareString($entrep['Tel']),
|
||||
'Fax' =>prepareString($entrep['Fax']),
|
||||
'Web' =>prepareString($entrep['Web']),
|
||||
'Mail' =>prepareString($entrep['Mail']),
|
||||
|
||||
/*
|
||||
'GeoLat' =>$entrep['GeoLat'],
|
||||
'GeoLon' =>$entrep['GeoLon'],
|
||||
'GeoPrecis' =>$entrep['GeoPrecis'],
|
||||
'GeoInfos' =>$entrep['GeoInfos'],
|
||||
|
||||
'TvaNumero' =>$entrep['TvaNumero'],
|
||||
'TvaAttribue' =>$entrep['TvaAttribue'],
|
||||
*/ 'FJ' =>$entrep['FJ'],
|
||||
'FJ_lib' =>prepareString($entrep['FJ_lib']),
|
||||
'Siren' =>$entrep['Siren'],
|
||||
'Nic' =>$entrep['Nic'],
|
||||
'NafEnt' =>$entrep['NafEnt'],
|
||||
'NafEntLib' =>prepareString($entrep['NafEntLib']),
|
||||
// 'NafEtab' =>$entrep['NafEtab'],
|
||||
// 'NafEtabLib' =>prepareString($entrep['NafEtabLib']),
|
||||
// 'Activite' =>prepareString($entrep['Activite']),
|
||||
'Capital' =>$entrep['Capital'],
|
||||
'CapitalDev' =>$entrep['CapitalDev'],
|
||||
'CapitalLib' =>prepareString($entrep['CapitalLib']), // Ajouté le 18 02 2008
|
||||
'DateCreaEt' =>$entrep['DateCreaEt'],
|
||||
'DateCreaEn' =>$entrep['DateCreaEn'],
|
||||
'DateClotEn' =>$entrep['DateClotEn'],
|
||||
'EffEnTr' =>prepareString($entrep['EffEnTr']),
|
||||
'EffEnTrLib' =>prepareString($entrep['EffEnTrLib']),
|
||||
'Effectif' =>prepareString($entrep['Effectif']),
|
||||
'Dept' =>$entrep['Dept'],
|
||||
'codeCommune' =>prepareString($entrep['codeCommune']),
|
||||
'TrancheCA' =>prepareString($entrep['TrancheCA']),
|
||||
'TrancheCALib' =>prepareString($entrep['TrancheCALib']),
|
||||
'dir1Titre' =>prepareString($entrep['dir1Titre']),//utf8
|
||||
'dir1NomPrenom' =>prepareString($entrep['dir1NomPrenom']),
|
||||
'dir1DateFct' =>prepareString($entrep['dir1DateFct']),
|
||||
/* 'dir2Titre' =>prepareString($entrep['dir2Titre']),
|
||||
'dir2NomPrenom' =>prepareString($entrep['dir2NomPrenom']),
|
||||
'dir2DateFct' =>prepareString($entrep['dir2DateFct']),
|
||||
'Rivoli' =>$entrep['Rivoli'],
|
||||
|
||||
'NatureActivite' =>$entrep['NatureActivite'], // Nature de l'activité
|
||||
'OrigineCreation' =>$entrep['OrigineCreation'], // Origine de la création
|
||||
'Auxiliaire' =>$entrep['Auxiliaire'], // 1=Auxiliaire / 0=Non auxiliaire
|
||||
'Saisonnalite' =>$entrep['Saisonnalite'], // P=Activité permanente / S=Activité saisonnière
|
||||
*/ 'SituationJuridique'=>$entrep['SituationJuridique'],
|
||||
/* 'Bourse' =>array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),*/
|
||||
//'importExport' =>$entrep['importExport'],
|
||||
);
|
||||
|
||||
|
||||
global $tabInfoUser;
|
||||
if (preg_match('/NAF4/i', $tabInfoUser['pref'])) {
|
||||
$entrep2=$this->iInsee->getNaf4($siren, $nic, $id);
|
||||
$tabRet['Naf4Ent'] = $entrep2['apen4'];
|
||||
$tabRet['Naf4Etab'] = $entrep2['apet4'];
|
||||
$tabRet['Naf4EntLib'] = prepareString($entrep2['apen4_lib']);
|
||||
$tabRet['Naf4EtabLib'] = prepareString($entrep2['apet4_lib']);
|
||||
}
|
||||
/*$tabRet=$entrep;
|
||||
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
|
||||
'nombreTitres'=>$bourse['nombreTitres'],
|
||||
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']);*/
|
||||
//$tabRet=$entrep;
|
||||
debugLog('I', 'Etablissement retourné = '. $entrep['Nom'], __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
wsLog('identite',$siret,$id);
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'result'=>$tabRet);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
136
html/clients/afnic/WsEntreprises.wsdl
Normal file
136
html/clients/afnic/WsEntreprises.wsdl
Normal file
@ -0,0 +1,136 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://ws3.scores-decisions.com/clients/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
203
html/clients/afnic/WsEntreprises2.2-dlw.wsdl
Normal file
203
html/clients/afnic/WsEntreprises2.2-dlw.wsdl
Normal file
@ -0,0 +1,203 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
|
||||
<wsdl:definitions name="entreprises"
|
||||
targetNamespace="urn:entreprises"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlns="urn:entreprises"
|
||||
xmlns:typens="urn:entreprises"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
>
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:entreprises">
|
||||
|
||||
<xsd:complexType name="EntrepElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Siret" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Siret de l'etablissement (0 significatifs)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="SiretSiege" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Siret du siege de l'entreprise</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Siege" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>0=Etablissement Secondaire, 1=Etablissement Siege</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Actif" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>0=Entreprise inactive, 1=Entreprise juridiquement active</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="AutreId" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Identifiant Autre. Si commence par W=Waldec (Source JOASSO)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="idSd" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Identifiant Interne de l'etablissement (Source SCORES DECISIONS)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Nom" type="xsd:string" nillable="true">
|
||||
<!-- Nom : 160 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Raison Sociale de l'entreprise (Source RNCS ou a defaut INSEE)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Nom2" type="xsd:string" nillable="true">
|
||||
<!-- Nom2 : 38 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Complement de Nom, ligne d'adresse 2 dans la norme AFNOR XP Z 10011 (Source INSEE)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="NomCommercial" type="xsd:string" nillable="true">
|
||||
<!-- NomCommercial : 200 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Nom Commercial de l'etablissement (Source RNCS)</xsd:documentation></xsd:annotation>
|
||||
<!-- <xsd:restriction base="xsd:string"><xsd:length value="200"/></xsd:restriction>-->
|
||||
</xsd:element>
|
||||
<xsd:element name="Sigle" type="xsd:string" nillable="true">
|
||||
<!-- Sigle : 80 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Sigle de l'entreprise (Source RNCS, INSEE)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Enseigne" type="xsd:string" nillable="true">
|
||||
<!-- Enseigne : 200 caracteres -->
|
||||
<xsd:annotation><xsd:documentation>Enseigne de l'etablissement (Source INSEE, RNCS)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Adresse" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Adresse2" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseNum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="AdresseBtq" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseVoie" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="AdresseRue" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="CP" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Ville" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Pays" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Libelle du pays (vide si l'etablissement est situe en France)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="PaysIso2" type="typens:codePaysIso2" nillable="true" />
|
||||
<xsd:element name="Civilite" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Civilite (0:Personne Morale, 1:Monsieur, 2=Madame)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="NbEtab" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Nombre d'etablissents en activite a l'INSEE</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Tel" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Fax" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Web" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Mail" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="FJ" type="typens:codeFJ" nillable="true" />
|
||||
<xsd:element name="FJ_lib" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Libelle de la forme juridique RNCS ou INSEE</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Siren" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="Nic" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="NafEnt" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Code activite de l'entreprise (Source INSEE. 5 car=NAF rev2 2008, 4 car=NAF rev1 2003)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="NafEntLib" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Libelle du code activite de l'entreprise</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Capital" type="xsd:int" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Capital Social de l'entreprise (Source RNCS ou SED)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="CapitalDev" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>Devise du capital de l'entreprise (Codification ISO 4217)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
<xsd:element name="Capitsequenceib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="DateCreaEt" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateCreaEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="DateClotEn" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="EffEnTr" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="EffEnTrLib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Effectif" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="Dept" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="codeCommune" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="TrancheCA" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="TrancheCALib" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1Titre" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1NomPrenom" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="dir1DateFct" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="SituationJuridique" type="xsd:string" nillable="true">
|
||||
<xsd:annotation><xsd:documentation>R:Radie, D:Dissoute, A:Absorbee (Source Annonces Legales)</xsd:documentation></xsd:annotation>
|
||||
</xsd:element>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ErrorElement">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="errnum" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="errmsg" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="EntrepResult">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="error" type="typens:ErrorElement" nillable="true" />
|
||||
<xsd:element name="result" type="typens:EntrepElement" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:simpleType name="codePaysIso2">
|
||||
<xsd:annotation><xsd:documentation>Code Pays ISO 3166-1 alpha-2 sur 2 lettres</xsd:documentation></xsd:annotation>
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[A-Z]{2}"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="codeFJ">
|
||||
<xsd:annotation><xsd:documentation>Code Forme Juridique RNCS ou a defaut INSEE sur 4 chiffres</xsd:documentation></xsd:annotation>
|
||||
<xsd:restriction base="xsd:int">
|
||||
<xsd:length value="4"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="IdentiteRequest">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="siret" type="xsd:string" nillable="true" />
|
||||
<xsd:element name="id" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="dept" type="xsd:int" nillable="true" />
|
||||
<xsd:element name="waldec" type="xsd:string" nillable="true" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="IdentiteRequest">
|
||||
<wsdl:part name="parameters" element="typens:IdentiteRequest"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EntrepResult">
|
||||
<wsdl:part name="parameters" element="typens:EntrepResult"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:portType name="entreprisesPortType">
|
||||
<wsdl:operation name="getIdentite">
|
||||
<wsdl:documentation>Retourne une fiche identite entreprise</wsdl:documentation>
|
||||
<wsdl:input message="wsdlns:IdentiteRequest" name="getIdentiteRequest"/>
|
||||
<wsdl:output message="wsdlns:EntrepResult" name="getIdentiteResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="entreprisesBinding" type="wsdlns:entreprisesPortType">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getIdentite">
|
||||
<soap:operation soapAction="getIdentite"/>
|
||||
<wsdl:input name="getIdentiteRequest">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getIdentiteResponse">
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="entreprisesService">
|
||||
<wsdl:port name="entreprisesPort" binding="wsdlns:entreprisesBinding">
|
||||
<soap:address location="http://tville.scores-decisions.com/clients-test/afnic/" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
||||
|
189
html/clients/afnic/index-2.1.php
Normal file
189
html/clients/afnic/index-2.1.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
define ('DATETIME', date('YmdHis'));
|
||||
define ('DATE', substr(DATETIME,0,8));
|
||||
define ('TIME', substr(DATETIME,8,6));
|
||||
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
|
||||
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
/**
|
||||
* Inclusion du fichier de configuration des includes Métiers de S&D
|
||||
*/
|
||||
include '/var/www/includes/config.php';
|
||||
|
||||
/**
|
||||
* Inclusion du Framework
|
||||
*/
|
||||
if( !defined('FWK_PATH') )
|
||||
include '/var/www/framework/fwk.php';
|
||||
|
||||
debugLog('W','AFNIC Identifiant/Mot de passe ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
//strtr('REQUEST:'.print_r($_REQUEST,true).'SERVER:'.print_r($_SERVER,true).'ENV:'.print_r($_ENV, true),array("\r"=>'', "\n"=>'')),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
include_once('WsEntreprise.php');
|
||||
|
||||
global $tabInfoUser;
|
||||
global $iDbCrm;
|
||||
$iDbCrm=new WDB('sdv1');
|
||||
|
||||
function checkAuth($login, $password, $ipConnexion) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
if ($tabRep['password']==$password ||
|
||||
$tabRep['password']==md5($password) ||
|
||||
$password==md5($login.'|'.$tabRep['password']) ) {
|
||||
$tabInfoUser=array( 'login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'ipPasserelle'=> '',
|
||||
'ipConnexion'=> $ipConnexion,
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> $tabRep['nom'],
|
||||
'prenom'=> $tabRep['prenom'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' OK', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return true;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' incorrect', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' inexistant ou inactif', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
/*
|
||||
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
|
||||
$server->addFunction('rechercheAsso');
|
||||
$server->addFunction('identiteAsso');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD']=='POST')
|
||||
$server->handle();
|
||||
else
|
||||
die('WebService Association de scores et décisions');
|
||||
*/
|
||||
|
||||
// On tente d'instancier la classe soapServer
|
||||
// Si cela s'avère impossible, on lève une exception
|
||||
try {/*array('trace' => false
|
||||
,'exceptions' => false
|
||||
,'proxy_host' => "monproxy"
|
||||
,'proxy_port' => monport
|
||||
,'local_cert' => "conf/clientCert.pem"
|
||||
,'passphrase' => "monpassword"
|
||||
)
|
||||
);*/
|
||||
//$server = new SoapServer(null, array('uri' => "http://viete.scores-decisions.com/",
|
||||
$server = new SoapServer('WsEntreprises.wsdl', array(//'uri' => "http://viete.scores-decisions.com/",
|
||||
'soap_version' => SOAP_1_1,
|
||||
'style' => SOAP_DOCUMENT,
|
||||
'use' => SOAP_LITERAL,
|
||||
// 'soap_version' => SOAP_1_2,
|
||||
'trace' => 1,
|
||||
));
|
||||
//"etab.wsdl", array('trace' => 1, 'soap_version' => SOAP_1_1));//(null, array('uri' => "http://test-uri/"));//
|
||||
// On définit la classe qui va gérer les requètes SOAP
|
||||
$server -> setclass('WsEntreprise');
|
||||
} catch (Exception $e) {
|
||||
debugLog('E','Exception : '.$e,__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
echo $e;
|
||||
}
|
||||
|
||||
// La méthode POST a été utilisée pour appeller cette page.
|
||||
// On suppose donc qu'une requète a été envoyée, on la gère
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (checkAuth("testafnic", "afnic", $_SERVER['REMOTE_ADDR']))
|
||||
//if (checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
||||
//if ($_SERVER['PHP_AUTH_USER']=='TEST' && $_SERVER['PHP_AUTH_PW']=='prout')
|
||||
$server -> handle();
|
||||
else {
|
||||
$server->fault('900', 'Identifiant ou mot de passe incorrect');
|
||||
debugLog('W','Couple Identifiant/Mot de passe incorrect ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
//$server->fault('999', 'Service indisponible');
|
||||
}
|
||||
// sinon, on affiche une liste des méthodes que peut gérer ce serveur
|
||||
elseif (isset($_REQUEST['wsdl'])) {
|
||||
echo file_get_contents('WsEntreprises.wsdl');
|
||||
debugLog('N','Accès en GET au WebService WSDL',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
else {
|
||||
echo '<strong>This SOAP server can handle following functions : </strong>';
|
||||
echo '<ul>';
|
||||
$str=file_get_contents('WsEntreprise.php');
|
||||
// die($str);
|
||||
foreach($server -> getFunctions() as $func) {
|
||||
preg_match('#\/\*\*([^\/]*)\*\/(?:\s+)function(?: +|\()'.$func.'#sU', $str, $matches);
|
||||
if (!preg_match('/@nodoc/i', $matches[1])) {
|
||||
$tabFunc[$func]=$matches[1];
|
||||
echo '<li><a href="#'.$func.'">' , $func , '</a></li>';
|
||||
}
|
||||
// <a href="[^>]+">[^<]+</a>`';
|
||||
//print_r($matches);
|
||||
}
|
||||
debugLog('N','Accès en GET au WebService',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
?></ul>
|
||||
<hr/>
|
||||
<table>
|
||||
<? foreach($tabFunc as $func=>$infos)
|
||||
{ //if (!preg_match('/@nodoc/i', $infos)) {
|
||||
?><tr><td><b><u><a name="<?=$func?>"><?=$func?></a></u></b></td></tr>
|
||||
<tr><td><pre><?=strtr(htmlentities($infos),array( '@param'=>'Paramètre',
|
||||
'@return'=>'Retourne ',
|
||||
'$'=>'', '*'=>''
|
||||
))?></pre></td></tr><?
|
||||
}//}
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
|
||||
function wsLog($service, $siret='', $ref='') {
|
||||
if (strlen($siret)==14) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
} elseif (strlen($siret)==9) {
|
||||
$siren=$siret;
|
||||
$nic='';
|
||||
}
|
||||
|
||||
global $iDbCrm, $tabInfoUser;
|
||||
$tabInsert=array( 'login'=>$tabInfoUser['login'],
|
||||
'page'=>$service,
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'params'=>$ref);
|
||||
$rep=$iDbCrm->insert('logs', $tabInsert);
|
||||
}
|
||||
?>
|
189
html/clients/afnic/index-2.2.php
Normal file
189
html/clients/afnic/index-2.2.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
define ('DATETIME', date('YmdHis'));
|
||||
define ('DATE', substr(DATETIME,0,8));
|
||||
define ('TIME', substr(DATETIME,8,6));
|
||||
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
|
||||
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
/**
|
||||
* Inclusion du fichier de configuration des includes Métiers de S&D
|
||||
*/
|
||||
include '/var/www/includes/config.php';
|
||||
|
||||
/**
|
||||
* Inclusion du Framework
|
||||
*/
|
||||
if( !defined('FWK_PATH') )
|
||||
include '/var/www/framework/fwk.php';
|
||||
|
||||
debugLog('W','AFNIC Identifiant/Mot de passe ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
//strtr('REQUEST:'.print_r($_REQUEST,true).'SERVER:'.print_r($_SERVER,true).'ENV:'.print_r($_ENV, true),array("\r"=>'', "\n"=>'')),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
include_once('WsEntreprise.php');
|
||||
|
||||
global $tabInfoUser;
|
||||
global $iDbCrm;
|
||||
$iDbCrm=new WDB('sdv1');
|
||||
|
||||
function checkAuth($login, $password, $ipConnexion) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
if ($tabRep['password']==$password ||
|
||||
$tabRep['password']==md5($password) ||
|
||||
$password==md5($login.'|'.$tabRep['password']) ) {
|
||||
$tabInfoUser=array( 'login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'ipPasserelle'=> '',
|
||||
'ipConnexion'=> $ipConnexion,
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> $tabRep['nom'],
|
||||
'prenom'=> $tabRep['prenom'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' OK', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return true;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' incorrect', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' inexistant ou inactif', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
/*
|
||||
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
|
||||
$server->addFunction('rechercheAsso');
|
||||
$server->addFunction('identiteAsso');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD']=='POST')
|
||||
$server->handle();
|
||||
else
|
||||
die('WebService Association de scores et décisions');
|
||||
*/
|
||||
|
||||
// On tente d'instancier la classe soapServer
|
||||
// Si cela s'avère impossible, on lève une exception
|
||||
try {/*array('trace' => false
|
||||
,'exceptions' => false
|
||||
,'proxy_host' => "monproxy"
|
||||
,'proxy_port' => monport
|
||||
,'local_cert' => "conf/clientCert.pem"
|
||||
,'passphrase' => "monpassword"
|
||||
)
|
||||
);*/
|
||||
//$server = new SoapServer(null, array('uri' => "http://viete.scores-decisions.com/",
|
||||
$server = new SoapServer('WsEntreprises2.2-dlw.wsdl', array(//'uri' => "http://viete.scores-decisions.com/",
|
||||
'soap_version' => SOAP_1_1,
|
||||
'style' => SOAP_DOCUMENT,
|
||||
'use' => SOAP_LITERAL,
|
||||
// 'soap_version' => SOAP_1_2,
|
||||
'trace' => 1,
|
||||
));
|
||||
//"etab.wsdl", array('trace' => 1, 'soap_version' => SOAP_1_1));//(null, array('uri' => "http://test-uri/"));//
|
||||
// On définit la classe qui va gérer les requètes SOAP
|
||||
$server -> setclass('WsEntreprise');
|
||||
} catch (Exception $e) {
|
||||
debugLog('E','Exception : '.$e,__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
echo $e;
|
||||
}
|
||||
|
||||
// La méthode POST a été utilisée pour appeller cette page.
|
||||
// On suppose donc qu'une requète a été envoyée, on la gère
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (checkAuth("testafnic", "afnic", $_SERVER['REMOTE_ADDR']))
|
||||
//if (checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
||||
//if ($_SERVER['PHP_AUTH_USER']=='TEST' && $_SERVER['PHP_AUTH_PW']=='prout')
|
||||
$server -> handle();
|
||||
else {
|
||||
$server->fault('900', 'Identifiant ou mot de passe incorrect');
|
||||
debugLog('W','Couple Identifiant/Mot de passe incorrect ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
//$server->fault('999', 'Service indisponible');
|
||||
}
|
||||
// sinon, on affiche une liste des méthodes que peut gérer ce serveur
|
||||
elseif (isset($_REQUEST['wsdl'])) {
|
||||
echo file_get_contents('WsEntreprises.wsdl');
|
||||
debugLog('N','Accès en GET au WebService WSDL',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
else {
|
||||
echo '<strong>This SOAP server can handle following functions : </strong>';
|
||||
echo '<ul>';
|
||||
$str=file_get_contents('WsEntreprise.php');
|
||||
// die($str);
|
||||
foreach($server -> getFunctions() as $func) {
|
||||
preg_match('#\/\*\*([^\/]*)\*\/(?:\s+)function(?: +|\()'.$func.'#sU', $str, $matches);
|
||||
if (!preg_match('/@nodoc/i', $matches[1])) {
|
||||
$tabFunc[$func]=$matches[1];
|
||||
echo '<li><a href="#'.$func.'">' , $func , '</a></li>';
|
||||
}
|
||||
// <a href="[^>]+">[^<]+</a>`';
|
||||
//print_r($matches);
|
||||
}
|
||||
debugLog('N','Accès en GET au WebService',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
?></ul>
|
||||
<hr/>
|
||||
<table>
|
||||
<? foreach($tabFunc as $func=>$infos)
|
||||
{ //if (!preg_match('/@nodoc/i', $infos)) {
|
||||
?><tr><td><b><u><a name="<?=$func?>"><?=$func?></a></u></b></td></tr>
|
||||
<tr><td><pre><?=strtr(htmlentities($infos),array( '@param'=>'Paramètre',
|
||||
'@return'=>'Retourne ',
|
||||
'$'=>'', '*'=>''
|
||||
))?></pre></td></tr><?
|
||||
}//}
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
|
||||
function wsLog($service, $siret='', $ref='') {
|
||||
if (strlen($siret)==14) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
} elseif (strlen($siret)==9) {
|
||||
$siren=$siret;
|
||||
$nic='';
|
||||
}
|
||||
|
||||
global $iDbCrm, $tabInfoUser;
|
||||
$tabInsert=array( 'login'=>$tabInfoUser['login'],
|
||||
'page'=>$service,
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'params'=>$ref);
|
||||
$rep=$iDbCrm->insert('logs', $tabInsert);
|
||||
}
|
||||
?>
|
189
html/clients/afnic/index.php
Normal file
189
html/clients/afnic/index.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
define ('DATETIME', date('YmdHis'));
|
||||
define ('DATE', substr(DATETIME,0,8));
|
||||
define ('TIME', substr(DATETIME,8,6));
|
||||
define ('DATE_LISIBLE', substr(DATETIME,6,2).'/'.substr(DATETIME,4,2).'/'.substr(DATETIME,0,4));
|
||||
define ('TIME_LISIBLE', substr(DATETIME,8,2).':'.substr(DATETIME,10,2).':'.substr(DATETIME,12,2));
|
||||
|
||||
/**
|
||||
* Inclusion du fichier de configuration des includes Métiers de S&D
|
||||
*/
|
||||
include '/var/www/includes/config.php';
|
||||
|
||||
/**
|
||||
* Inclusion du Framework
|
||||
*/
|
||||
if( !defined('FWK_PATH') )
|
||||
include '/var/www/framework/fwk.php';
|
||||
|
||||
debugLog('W','AFNIC Identifiant/Mot de passe ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
//strtr('REQUEST:'.print_r($_REQUEST,true).'SERVER:'.print_r($_SERVER,true).'ENV:'.print_r($_ENV, true),array("\r"=>'', "\n"=>'')),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
include_once('WsEntreprise.php');
|
||||
|
||||
global $tabInfoUser;
|
||||
global $iDbCrm;
|
||||
$iDbCrm=new WDB('sdv1');
|
||||
|
||||
function checkAuth($login, $password, $ipConnexion) {
|
||||
global $iDbCrm;
|
||||
global $tabInfoUser;
|
||||
$rep=$iDbCrm->select('utilisateurs', 'login, id, email, password, idClient, typeCompte, filtre_ip, civilite, nom, prenom, tel, fax, mobile, profil, raisonSociale, siret, adrNum, adrIndRep, adrTypeVoie, adrLibVoie, adrCp, adrVille, adrComp, tel, fax, mobile, pref, profil, dateInscription, dateValidation, nombreConnexions, dateDerniereConnexion, droits, referenceParDefaut, nbReponses, formatMail, dateDebutCompte, dateFinCompte, maxFicheId', "login='$login' AND actif=1", true, MYSQL_ASSOC);
|
||||
$tabRep=$rep[0];
|
||||
if (count($rep)>0) {
|
||||
if ($tabRep['password']==$password ||
|
||||
$tabRep['password']==md5($password) ||
|
||||
$password==md5($login.'|'.$tabRep['password']) ) {
|
||||
$tabInfoUser=array( 'login'=> $login,
|
||||
'id'=> $tabRep['id'],
|
||||
'email'=> $tabRep['email'],
|
||||
'typeCompte'=> $tabRep['typeCompte'],
|
||||
'idClient'=> $tabRep['idClient'],
|
||||
'filtre_ip'=> $tabRep['filtre_ip'],
|
||||
'ipPasserelle'=> '',
|
||||
'ipConnexion'=> $ipConnexion,
|
||||
'civilite'=> $tabRep['civilite'],
|
||||
'nom'=> $tabRep['nom'],
|
||||
'prenom'=> $tabRep['prenom'],
|
||||
'raisonSociale'=> $tabRep['raisonSociale'],
|
||||
'siret'=> $tabRep['siret'],
|
||||
'adrNum'=> $tabRep['adrNum'],
|
||||
'adrIndRep'=> $tabRep['adrIndRep'],
|
||||
'adrTypeVoie'=> $tabRep['adrTypeVoie'],
|
||||
'adrLibVoie'=> $tabRep['adrLibVoie'],
|
||||
'adrCp'=> $tabRep['adrCp'],
|
||||
'adrVille'=> $tabRep['adrVille'],
|
||||
'adrComp'=> $tabRep['adrComp'],
|
||||
'tel'=> $tabRep['tel'],
|
||||
'fax'=> $tabRep['fax'],
|
||||
'mobile'=> $tabRep['mobile'],
|
||||
'pref'=> $tabRep['pref'],
|
||||
'profil'=> $tabRep['profil'],
|
||||
'dateInscription'=> $tabRep['dateInscription'],
|
||||
'dateValidation'=> $tabRep['dateValidation'],
|
||||
'nombreConnexions'=> $tabRep['nombreConnexions'],
|
||||
'dateDerniereConnexion'=> $tabRep['dateDerniereConnexion'],
|
||||
'droits'=> $tabRep['droits'],
|
||||
'nbReponses'=> $tabRep['nbReponses'],
|
||||
'formatMail'=> $tabRep['formatMail'],
|
||||
'referenceParDefaut'=> $tabRep['referenceParDefaut'],
|
||||
'dateDebutCompte'=> $tabRep['dateDebutCompte'],
|
||||
'dateFinCompte'=> $tabRep['dateFinCompte'],
|
||||
'maxFicheId'=> $tabRep['maxFicheId'],
|
||||
);
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' OK', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return true;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' incorrect', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
debugLog('W','CheckAuth '.$login.'/'.$password.' inexistant ou inactif', __LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return false;
|
||||
}
|
||||
|
||||
ini_set("soap.wsdl_cache_enabled", "0");
|
||||
/*
|
||||
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
|
||||
$server->addFunction('rechercheAsso');
|
||||
$server->addFunction('identiteAsso');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD']=='POST')
|
||||
$server->handle();
|
||||
else
|
||||
die('WebService Association de scores et décisions');
|
||||
*/
|
||||
|
||||
// On tente d'instancier la classe soapServer
|
||||
// Si cela s'avère impossible, on lève une exception
|
||||
try {/*array('trace' => false
|
||||
,'exceptions' => false
|
||||
,'proxy_host' => "monproxy"
|
||||
,'proxy_port' => monport
|
||||
,'local_cert' => "conf/clientCert.pem"
|
||||
,'passphrase' => "monpassword"
|
||||
)
|
||||
);*/
|
||||
//$server = new SoapServer(null, array('uri' => "http://viete.scores-decisions.com/",
|
||||
$server = new SoapServer('WsEntreprises.wsdl', array(//'uri' => "http://viete.scores-decisions.com/",
|
||||
'soap_version' => SOAP_1_1,
|
||||
'style' => SOAP_DOCUMENT,
|
||||
'use' => SOAP_LITERAL,
|
||||
// 'soap_version' => SOAP_1_2,
|
||||
'trace' => 1,
|
||||
));
|
||||
//"etab.wsdl", array('trace' => 1, 'soap_version' => SOAP_1_1));//(null, array('uri' => "http://test-uri/"));//
|
||||
// On définit la classe qui va gérer les requètes SOAP
|
||||
$server -> setclass('WsEntreprise');
|
||||
} catch (Exception $e) {
|
||||
debugLog('E','Exception : '.$e,__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
echo $e;
|
||||
}
|
||||
|
||||
// La méthode POST a été utilisée pour appeller cette page.
|
||||
// On suppose donc qu'une requète a été envoyée, on la gère
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (checkAuth("testafnic", "afnic", $_SERVER['REMOTE_ADDR']))
|
||||
//if (checkAuth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $_SERVER['REMOTE_ADDR']))
|
||||
//if ($_SERVER['PHP_AUTH_USER']=='TEST' && $_SERVER['PHP_AUTH_PW']=='prout')
|
||||
$server -> handle();
|
||||
else {
|
||||
$server->fault('900', 'Identifiant ou mot de passe incorrect');
|
||||
debugLog('W','Couple Identifiant/Mot de passe incorrect ('.$_SERVER['PHP_AUTH_USER'].'/'.$_SERVER['PHP_AUTH_PW'].')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
//$server->fault('999', 'Service indisponible');
|
||||
}
|
||||
// sinon, on affiche une liste des méthodes que peut gérer ce serveur
|
||||
elseif (isset($_REQUEST['wsdl'])) {
|
||||
echo file_get_contents('WsEntreprises.wsdl');
|
||||
debugLog('N','Accès en GET au WebService WSDL',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
}
|
||||
else {
|
||||
echo '<strong>This SOAP server can handle following functions : </strong>';
|
||||
echo '<ul>';
|
||||
$str=file_get_contents('WsEntreprise.php');
|
||||
// die($str);
|
||||
foreach($server -> getFunctions() as $func) {
|
||||
preg_match('#\/\*\*([^\/]*)\*\/(?:\s+)function(?: +|\()'.$func.'#sU', $str, $matches);
|
||||
if (!preg_match('/@nodoc/i', $matches[1])) {
|
||||
$tabFunc[$func]=$matches[1];
|
||||
echo '<li><a href="#'.$func.'">' , $func , '</a></li>';
|
||||
}
|
||||
// <a href="[^>]+">[^<]+</a>`';
|
||||
//print_r($matches);
|
||||
}
|
||||
debugLog('N','Accès en GET au WebService',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
?></ul>
|
||||
<hr/>
|
||||
<table>
|
||||
<? foreach($tabFunc as $func=>$infos)
|
||||
{ //if (!preg_match('/@nodoc/i', $infos)) {
|
||||
?><tr><td><b><u><a name="<?=$func?>"><?=$func?></a></u></b></td></tr>
|
||||
<tr><td><pre><?=strtr(htmlentities($infos),array( '@param'=>'Paramètre',
|
||||
'@return'=>'Retourne ',
|
||||
'$'=>'', '*'=>''
|
||||
))?></pre></td></tr><?
|
||||
}//}
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
|
||||
function wsLog($service, $siret='', $ref='') {
|
||||
if (strlen($siret)==14) {
|
||||
$siren=substr($siret,0,9);
|
||||
$nic=substr($siret,9,5);
|
||||
} elseif (strlen($siret)==9) {
|
||||
$siren=$siret;
|
||||
$nic='';
|
||||
}
|
||||
|
||||
global $iDbCrm, $tabInfoUser;
|
||||
$tabInsert=array( 'login'=>$tabInfoUser['login'],
|
||||
'page'=>$service,
|
||||
'siren'=>$siren,
|
||||
'nic'=>$nic,
|
||||
'params'=>$ref);
|
||||
$rep=$iDbCrm->insert('logs', $tabInsert);
|
||||
}
|
||||
?>
|
6
html/clients/index.html
Normal file
6
html/clients/index.html
Normal file
@ -0,0 +1,6 @@
|
||||
<html>
|
||||
<title>Nothing here</title>
|
||||
<body>
|
||||
<h3>Nothing here</h3>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user