From 4cb8b06ee3c0237a4066dde9d8cd37626f882294 Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Thu, 2 Dec 2010 16:45:25 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20m=C3=A9thodes=20Gestion=20des=20Clients?= =?UTF-8?q?=20et=20Utilisateurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/configs/WsInterne.ini | 5 + library/WsScore/Types/InterneTypes.php | 150 ++++++++++++++- library/WsScore/WsInterne.php | 255 +++++++++++++++++++++++++ 3 files changed, 400 insertions(+), 10 deletions(-) diff --git a/application/configs/WsInterne.ini b/application/configs/WsInterne.ini index dac98a84..153f5c94 100644 --- a/application/configs/WsInterne.ini +++ b/application/configs/WsInterne.ini @@ -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" diff --git a/library/WsScore/Types/InterneTypes.php b/library/WsScore/Types/InterneTypes.php index b10129e7..f9c7dfa7 100644 --- a/library/WsScore/Types/InterneTypes.php +++ b/library/WsScore/Types/InterneTypes.php @@ -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; +} diff --git a/library/WsScore/WsInterne.php b/library/WsScore/WsInterne.php index 75320729..a9bd93a1 100644 --- a/library/WsScore/WsInterne.php +++ b/library/WsScore/WsInterne.php @@ -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