Ajout méthodes Gestion des Clients et Utilisateurs

This commit is contained in:
Michael RICOIS 2010-12-02 16:45:25 +00:00
parent 6c270f5c51
commit 4cb8b06ee3
3 changed files with 400 additions and 10 deletions

View File

@ -82,3 +82,8 @@ Type.80 = "SurveillancesReturn"
Type.81 = "SurveillancesResult"
Type.82 = "SurveillancesCriteres"
Type.83 = "SurveillancesReponses"
Type.84 = "ClientReturn"
Type.85 = "ModeleUtilisateurReturn"
Type.86 = "ModeleUtilisateur"
Type.87 = "ListeDroitsReturn"
Type.88 = "ListePrefsReturn"

View File

@ -765,7 +765,7 @@ class ListeClientsReturn
class Client
{
/** @var string */
/** @var int */
public $idClient;
/** @var string */
public $nom;
@ -814,24 +814,18 @@ class Client
/** @var string */
public $droits;
/** @var string */
public $timeout;
/** @var string */
public $filtres_ip;
/** @var string */
public $dateInsert;
/** @var string */
public $dateUpdate;
/** @var string */
public $respComSD;
/** @var string */
public $typeContrat;
/** @var string */
public $dateSignature;
/** @var string */
public $typeAcces;
public $typeAccess;
/** @var string */
public $typeScore;
/** @var string */
public $timeout;
/** @var string */
public $accesPieces;
/** @var string */
public $accesKbis;
@ -865,6 +859,10 @@ class Client
public $forfaitInvestigDep;
/** @var string */
public $tarifIndiscore;
/** @var string */
public $InterSudLogin;
/** @var string */
public $InterSudPass;
}
class SetMandataireReturn
@ -1224,3 +1222,135 @@ class SurveillancesReponses
/** @var string */
public $ville;
}
class ClientReturn
{
/** @var ErrorType */
public $error;
/** @var boolean */
public $result;
}
class SetUtilisateurs
{
/** @var int */
public $id = null;
/** @var string */
public $login;
/** @var string */
public $email;
/** @var string */
public $password;
/** @var bool */
public $actif;
/**
* TEST/PROD
* @var string
*/
public $typeCompte;
/**
* @var string
*/
public $filtre_ip;
/**
* M/Mme/Mlle
* @var string
*/
public $civilite;
/** @var string */
public $nom;
/** @var string */
public $prenom;
/** @var string */
public $raisonSociale;
/** @var string */
public $siret;
/** @var string */
public $adrNum;
/** @var string */
public $adrIndRep;
/** @var string */
public $adrTypeVoie;
/** @var string */
public $adrLibVoie;
/** @var string */
public $adrCp;
/** @var string */
public $adrVille;
/** @var string */
public $adrComp;
/** @var string */
public $tel;
/** @var string */
public $fax;
/** @var string */
public $mobile;
/** @var string */
public $pref;
/** @var string */
public $profil;
/** @var string */
public $dateInscription;
/** @var string */
public $dateValidation;
/** @var string */
public $droits;
/** @var string */
public $referenceParDefaut;
/** @var int */
public $nbReponses;
/** @var string */
public $listeEven;
/** @var int */
public $maxFicheId;
}
class UtilisateursReturn
{
/** @var ErrorType */
public $error;
/** @var boolean */
public $result;
}
class ModeleUtilisateurReturn
{
/** @var ErrorType */
public $error;
/** @var boolean */
public $result;
}
class ModeleUtilisateur
{
/** @var string */
public $actif;
/** @var string */
public $typeCompte;
/** @var string */
public $pref;
/** @var string */
public $profil;
/** @var string */
public $droits;
}
class ListeDroitsReturn
{
/** @var string */
public $code;
/** @var string */
public $desc;
}
class ListePrefsReturn
{
/** @var string */
public $code;
/** @var string */
public $desc;
}

View File

@ -2669,6 +2669,226 @@ class WsInterne extends WsScore
return $output;
}
/**
* Créations/Modification d'utilisateurs
* @param integer $idClient
* @param SetUtilisateurs[] $users
* @return UtilisateursReturn
*/
protected function setUtilisateurs($idClient, $users)
{
$this->authenticate();
$error = new ErrorType();
$result = false;
//idClient existe
$iDbCrm = new WDB('sdv1');
$rep = $iDbCrm->select('clients', 'id, nom, actif, test, racineLogin, siren, nic, droits, filtres_ip, typeAcces, typeScore, accesPieces, accesKbis, accesInvestigations, accesInternationnal, accesEnquetes, miseSousSurveillance', "1 AND id='$idClient'", true, MYSQL_ASSOC);
if (count($rep)>0){
$client = $rep[0];
$idClient = $client['id'];
if (count($users)>0){
foreach($users as $user){
$tabInfos = array();
$tabInfos['idClient'] = $idClient;
$tabInfos['login'] = $user->login;
$tabInfos['email'] = '';
$tabInfos['password'] = $user->password;
$tabInfos['actif'] = '';
//$tabInfos['deleted'] = '';
if (in_array($user->typeCompte, array('TEST', 'PROD'))){
$tabInfos['typeCompte'] = $user->typeCompte;
} else {
$tabInfos['typeCompte'] = 'PROD';
}
//$tabInfos['filtre_ip'] = '';
//SetInfosLogin
$tabInfos['civilite'] = '';
$tabInfos['nom'] = '';
$tabInfos['prenom'] = '';
//Identique au client
$tabInfos['raisonSociale'] = '';
$tabInfos['siret'] = '';
$tabInfos['adrNum'] = '';
$tabInfos['adrInRep'] = '';
$tabInfos['adrTypeVoie'] = '';
$tabInfos['adrLibVoie'] = '';
$tabInfos['adrCp'] = '';
$tabInfos['adrVille'] = '';
$tabInfos['adrComp'] = '';
$tabInfos['tel'] = '';
$tabInfos['fax'] = '';
$tabInfos['mobile'] = '';
$tabInfos['pref'] = '';
if (in_array($user->typeCompte, array('Administrateur', 'Utilisateur'))){
$tabInfos['profil'] = $user->profil;
} else {
$tabInfos['profil'] = 'Utilisateur';
}
/*
$tabInfos['dateInscription'] = '';
$tabInfos['dateValidation'] = '';
*/
if (empty($user->droits)){
$tabInfos['droits'] = $client->droits;
} else {
$tabInfos['droits'] = $user->droits;
}
$tabInfos['referenceParDefaut'] = '';
$tabInfos['nbReponses'] = '';
$tabInfos['listeEven'] = '';
$tabInfos['maxFicheId'] = $user->maxFicheId;
//$tabInfos['dateInsert'] = '';
if (empty($user->id)){
$iDbCrm->insert('utilisateurs', $tabInfos);
} else {
$iDbCrm->update('utilisateurs', $tabInfos, "id='$user->id'");
}
}
} else {
$error->errnum = 1;
$error->errmsg = 'Aucun utiliateur';
}
} else {
$error->errnum = 1;
$error->errmsg = 'Identifiant client inconnu!';
}
$output = new UtilisateursReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* Création d'un modele pour le préremplisage des données utilisateurs
* @param integer $idClient
* @param string $nom
* @param ModeleUtilisateur $infos
* @return ModeleUtilisateurReturn
*/
protected function setModeleUtilisateur($idClient, $nom, $infos)
{
$this->authenticate();
}
/**
* Création/Modification d'un client
* @param Client $infos
* @param integer $idModele
* @return ClientReturn
*/
public function setClient($infos, $idModele = null)
{
$this->authenticate();
$error = new ErrorType();
$result = false;
//Pas SuperAdministrateur
if ($this->tabInfoUser['profil']!='SuperAdministrateur')
{
$error->errnum = 1;
$error->errmsg = 'Profil insuffisant pour cette méthode';
}
else
{
$tabInfos = array();
$tabInfos['nom'] = $infos->nom;
$tabInfos['actif'] = ($infos->actif=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['test'] = ($infos->test=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['racineLogin'] = $infos->racineLogin;
$tabInfos['siren'] = (int) $infos->siren;
$tabInfos['nic'] = (int) $infos->nic;
$tabInfos['tva'] = $infos->tva;
$tabInfos['idClientFacture'] = $infos->idClientFacture;
if ($infos->editerFacture=='Non') {
$tabInfos['editerFacture'] = 'Non' ;
}
$tabInfos['fact_detail'] = ($infos->fact_detail=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['fact_dest'] = $infos->fact_dest;
$tabInfos['fact_adr1'] = $infos->fact_adr1;
$tabInfos['fact_adr2'] = $infos->fact_adr2;
$tabInfos['fact_adr3'] = $infos->fact_adr3;
$tabInfos['fact_email'] = $infos->fact_email;
$tabInfos['fact_tel'] = $infos->fact_tel;
if (in_array($infos->fact_rib, array('BPOSTALE','CCOOP', 'CDNORD'))){
$tabInfos['fact_rib'] = $infos->fact_rib;
}
$tabInfos['fact_tel'] = $infos->fact_tel;
$tabInfos['liv_dest'] = $infos->liv_dest;
$tabInfos['liv_adr1'] = $infos->liv_adr1;
$tabInfos['liv_adr2'] = $infos->liv_adr2;
$tabInfos['liv_adr3'] = $infos->liv_adr3;
$tabInfos['liv_email'] = $infos->liv_email;
$tabInfos['liv_tel'] = $infos->liv_tel;
$tabInfos['droits'] = $infos->droits;
$tabInfos['filtres_ip'] = $infos->filtres_ip;
//$tabInfos['respComSD'] = $infos->respComSD;
if (in_array($infos->typeContrat, array('Contrat','Marché'))){
$tabInfos['typeContrat'] = $infos->typeContrat;
}
if (in_array($infos->typeAcces, array('userPassword','userPasswordIP', 'IP'))){
$tabInfos['typeAcces'] = $infos->typeAcces;
}
if (in_array($infos->typeScore, array('20','100'))){
$tabInfos['typescores'] = $infos->typeScores;
}
if (!empty($timeout)){
$tabInfos['timeout'] = $infos->timeout;
}
$tabInfos['accesPieces'] = ($infos->accesPieces=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['accesKbis'] = ($infos->accesKbis=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['accesInvestigations'] = ($infos->accesInvestigations=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['accesInternationnal'] = ($infos->accesInternationnal=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['accesEnquetes'] = ($infos->accesEnquetes=='Oui') ? 'Oui' : 'Non' ;
$tabInfos['miseSousSurveillance'] = ($infos->miseSousSurveillance=='Oui') ? 'Oui' : 'Non' ;
if (in_array($infos->forfaitExtranetPeriode, array('Mensuel','Trimestriel','Semestriel', 'Annuel'))){
$tabInfos['forfaitExtranetPeriode'] = $infos->forfaitExtranetPeriode;
}
$tabInfos['forfaitExtranetMontant'] = $infos->forfaitExtranetMontant;
if ($infos->reconductionAuto=='Non') {
$tabInfos['reconductionAuto'] = 'Non';
}
$tabInfos['remarque'] = $infos->remarque;
$tabInfos['forfaitPiecesNb'] = $infos->forfaitPiecesNb;
$tabInfos['forfaitPiecesMt'] = $infos->forfaitPiecesMt;
$tabInfos['forfaitPiecesDep'] = $infos->forfaitPiecesDep;
$tabInfos['forfaitInvestigNb'] = $infos->forfaitInvestigNb;
$tabInfos['forfaitInvestigMt'] = $infos->forfaitInvestigMt;
$tabInfos['forfaitInvestigDep'] = $infos->forfaitInvestigDep;
$tabInfos['tarifIndiscore'] = $infos->tarifIndiscore;
$tabInfos['InterSudLogin'] = $infos->InterSudLogin;
$tabInfos['InterSudPass'] = $infos->InterSudPass;
$iDbCrm = new WDB('sdv1');
if (empty($infos->idClient)){
//Ajout
//$tabInfos['dateInsert'] = now();
if($iDbCrm->insert('clients', $tabInfos)){
$result = true;
}
} else {
//Modification
if ($iDbCrm->update('clients', $tabInfos, "id='$idClient'")){
$result = true;
}
}
}
$output = new ClientReturn();
$output->error = $error;
$output->result = $result;
return $output;
}
/**
* Récupère la liste des clients ou les informations d'un client
* @param int $idClient
@ -2770,6 +2990,41 @@ class WsInterne extends WsScore
$output->result = $tabRet;
}
/**
*
* Retourne la liste des droits
* @return ListeDroitsReturn[]
*/
public function getListeDroits()
{
$tabRet = array();
foreach($this->listeDroits as $code => $desc){
$droit = new ListeDroitsReturn();
$droit->code = $code;
$droit->desc = $desc;
$tabRet[] = $droit;
}
return $tabRet;
}
/**
*
* Retourne la liste des préférences
* @return ListePrefsReturn[]
*/
public function getListePrefs()
{
$tabRet = array();
foreach($this->listePrefs as $code => $desc){
$pref = new ListePrefsReturn();
$pref->code = $code;
$pref->desc = $desc;
$tabRet[] = $pref;
}
return $tabRet;
}
/**
* getStatsUtilisateurs
* @param string $login