]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 21 Jan 2011 10:52:37 +0000 (10:52 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 21 Jan 2011 10:52:37 +0000 (10:52 +0000)
inc/commons/DAO/class.common.dao.utilisateur.php
inc/commons/class.common.core.php
inc/commons/class.common.filtre.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/DAO/class.ws.dao.demande.php

index 38c943f59e4d9ed9cebf2b690e43d785e94c9a76..5f478087d7dc5849d78f2273fd4479d6d6dc9bbe 100644 (file)
@@ -119,7 +119,10 @@ class commonDAOUtilisateur extends commonDAO {
        public function selectByEmail($email)\r
        {\r
                $r = $this->con->select('SELECT * FROM utilisateurs WHERE email=\'' . $this->con->escape($email) . '\'');\r
-               return $this->singleton($r);\r
+               if ($r->count()) {\r
+                       return $this->singleton($r);\r
+               }\r
+               return null;\r
        }\r
 \r
        protected function getNextId()\r
@@ -188,7 +191,11 @@ class commonDAOUtilisateur extends commonDAO {
                $c->nom = $data['nom'];\r
                $c->prenom = $data['prenom'];\r
                $c->email = $data['email'];\r
-               $c->password = $data['password'];\r
+               if (isset($data['password'])) {\r
+                       $c->password = $data['password'];\r
+               } else {\r
+                       $c->password = crypt::createPassword();\r
+               }\r
                $c->adresse = $data['adresse'];\r
                $c->code_postal = $data['code_postal'];\r
                $c->ville = $data['ville'];\r
@@ -198,8 +205,7 @@ class commonDAOUtilisateur extends commonDAO {
                $c->fax = $data['fax'];\r
                $c->lang = $data['lang'];\r
                $c->entreprise = $data['entreprise'];\r
-               if ($data['grade'] == 0) {\r
-               } else {\r
+               if ($data['grade'] > 0) {\r
                        $c->agence = $data['agence'];\r
                }\r
                // Nouveau client\r
index b6c7b2bf3bc9bebb774800dbc577641abf1b8fcc..de7a018d111e59e689a68e8e994230046f90e1ac 100644 (file)
@@ -31,6 +31,7 @@ class commonCore extends cubeCore {
                $this->projets_status = array(0 => __('En cours'), 1 => __('Terminé'));\r
                $this->devis_status = array(0 => __('Brouillon'), 1 => __('Envoyé'),\r
                        2 => __('Validé'), 3 => __('Refusé'));\r
+               $this->demandes_status = array(0 => __('Non traitée'), 1 => __('Confiée à un revendeur'), 2 => __('Traitée'));\r
                $this->factures_status = array(0 => __('Brouillon'), 1 => __('Attente'),\r
                        2 => __('Payée'), 3 => __('Annulée'), 4 => __('Avoir'));\r
                $this->books_status = array(-1 => __('Brouillon'), 0 => __('Prêt'), 1 => __('Téléchargé'), 2 => __('Facturé'));\r
index d5c04e3a8f5f90db84b3613356e96a1ff8509e92..c177a74fc3b2e716615078eebbb50a6a40107b4c 100644 (file)
@@ -37,6 +37,8 @@ class commonFiltre {
                        $this->values = array(__('En cours') => '0', __('Terminé') => '1');\r
                } elseif ($this->varname == 'status_facture') {\r
                        $this->values = array_flip($core->factures_status);\r
+               } elseif ($this->varname == 'status_demande') {\r
+                       $this->values = array_flip($core->demandes_status);\r
                } elseif ($this->varname == 'annee_facture') {\r
                        for($i = 2008;$i <= date('Y', TIME);$i++) {\r
                                $this->values[$i] = $i;\r
index 92b6a9c8233b2c1b94116c31a1ced134e80741a2..ed4128d17881ede64108c647261a354ea1c5fdcb 100644 (file)
@@ -217,7 +217,7 @@ class wsAjax extends cubeAjax {
        public static function demandeDevis($args, &$x)\r
        {\r
                global $core;\r
-               if (!self::valideDemandeDevis()) {\r
+               if (!self::valideDemandeDevis($x)) {\r
                        return;\r
                }\r
                // L'utilisateur est-il déjà dans la base ?\r
@@ -225,23 +225,71 @@ class wsAjax extends cubeAjax {
                $utilisateur = $daoUtilisateur->selectByEmail($_POST['email']);\r
                if ($utilisateur != null) {\r
                        $utilisateur_id = $this->utilisateur_id;\r
-               }else{\r
-\r
+               } else {\r
+                       // Création de l'entreprise\r
+                       $daoEntreprise = new commonDAOEntreprise($core->con);\r
+                       $datas = array();\r
+                       $datas['entreprise_id'] = 'new';\r
+                       $datas['adresse'] = $_POST['adresse'];\r
+                       $datas['code_postal'] = $_POST['code_postal'];\r
+                       $datas['ville'] = $_POST['ville'];\r
+                       $datas['pays'] = $_POST['pays'];\r
+                       if ($_POST['societe'] == '') {\r
+                               $datas['nom'] = $_POST['prenom'] . ' ' . $_POST['nom'];\r
+                       } else {\r
+                               $datas['nom'] = $_POST['societe'];\r
+                       }\r
+                       $datas['site'] = $_POST['site'];\r
+                       $datas['ws_grade'] = 1;\r
+                       $datas['ws_admin'] = 1;\r
+                       $entreprise = $daoEntreprise->sauve($datas);\r
+                       // Création de l'utilisateur\r
+                       $datas = array();\r
+                       $datas['utilisateur_id'] = 'new';\r
+                       $datas['prenom'] = $_POST['prenom'];\r
+                       $datas['nom'] = $_POST['nom'];\r
+                       $datas['entreprise'] = $entreprise->entreprise_id;\r
+                       $datas['adresse'] = $_POST['adresse'];\r
+                       $datas['code_postal'] = $_POST['code_postal'];\r
+                       $datas['ville'] = $_POST['ville'];\r
+                       $datas['pays'] = $_POST['pays'];\r
+                       $datas['email'] = $_POST['email'];\r
+                       $datas['telephone'] = $_POST['telephone'];\r
+                       $datas['lang'] = $_POST['lang'];\r
+                       $datas['grade'] = 0;\r
+                       $datas['fax'] = '';\r
+                       $datas['mobile'] = '';\r
+                       $utilisateur = $daoUtilisateur->sauve($datas);\r
+                       $utilisateur_id = $utilisateur->utilisateur_id;\r
                }\r
 \r
-\r
+               $datas = array();\r
+               $datas['demande_id'] = 'new';\r
+               $datas['type'] = $_POST['type'];\r
+               $datas['pages'] = $_POST['pages'];\r
+               $datas['liens'] = $_POST['liens'];\r
+               $datas['langues'] = $_POST['langues'];\r
+               $datas['details'] = $_POST['details'];\r
+               $datas['utilisateur'] = $utilisateur_id;\r
+               $datas['revendeur'] = 0;\r
+               $datas['status'] = 0;\r
+               $daoDemande = new wsDAODemande($core->con);\r
+               $daoDemande->sauve($datas);\r
+\r
+               $x->addAlert(__("Votre demande de devis a bien été envoyée. Merci pour l'intérêt que vous portez à Fluidbook."));\r
        }\r
 \r
-       public static function valideDemandeDevis()\r
+       public static function valideDemandeDevis(&$x)\r
        {\r
-               foreach($_POST as $k => $v) {\r
+               $d = array_unique($_POST);\r
+               foreach($d as $k => $v) {\r
                        $_POST[$k] = trim($v);\r
                }\r
                // Validation des champs de formulaires\r
                $ok = true;\r
                $non_vides = array('pages', 'nom', 'adresse', 'code_postal', 'ville', 'pays');\r
                foreach($non_vides as $nv) {\r
-                       if ($_POST[$nv] == '') {\r
+                       if (!isset($_POST[$nv]) || $_POST[$nv] == '') {\r
                                $x->addError($nv);\r
                                $ok = false;\r
                        } else {\r
@@ -249,7 +297,7 @@ class wsAjax extends cubeAjax {
                        }\r
                }\r
 \r
-               if (!cubeMail::isEmail($_POST['email'])) {\r
+               if (!isset($_POST['email']) || !cubeMail::isEmail($_POST['email'])) {\r
                        $x->addError('email');\r
                        $ok = false;\r
                } else {\r
@@ -257,7 +305,7 @@ class wsAjax extends cubeAjax {
                }\r
 \r
                if (!$ok) {\r
-                       $x->addAlert(__('Vous devez compléter les champs marqués en rouge'));\r
+                       $x->addAlert(__('Merci de compléter les champs marqués en rouge'));\r
                }\r
                return $ok;\r
        }\r
index 0af3cb826cb269502ae7326cef921d018a27d73d..6c473711f4bdddde3705334207036a9f6b72c478 100644 (file)
@@ -1,7 +1,77 @@
 <?php\r
+class wsDAODemande extends commonDAO {\r
+       protected function singleton($r)\r
+       {\r
+               $demande = new wsDemande();\r
+               $demande->type = $r->type;\r
+               $demande->pages = $r->pages;\r
+               $demande->liens = $r->liens;\r
+               $demande->langues = $r->langues;\r
+               $demande->details = $r->details;\r
+               $demande->date = $r->date;\r
+               $demande->utilisateur = $r->utilisateur;\r
+               $demande->status = $r->status;\r
+               $demande->revendeur = $r->revendeur;\r
 \r
-class wsDAODemande extends commonDAO{\r
+               return $demande;\r
+       }\r
 \r
+       protected function getNextId()\r
+       {\r
+               $r = $this->con->select('SELECT MAX(demande_id) AS demande_id FROM demandes');\r
+               return $r->demande_id + 1;\r
+       }\r
+\r
+       public function selectById($demande_id = null)\r
+       {\r
+               $r = $this->con->select('SELECT * FROM demandes WHERE demande_id=\'' . $this->con->escape($demande_id) . '\' LIMIT 1');\r
+               return $this->singleton($r);\r
+       }\r
+\r
+       public function sauve($data)\r
+       {\r
+               global $core;\r
+\r
+               $c = $this->con->openCursor('demandes');\r
+               $c->type = $data['type'];\r
+               $c->pages = $data['pages'];\r
+               $c->liens = $data['liens'];\r
+               $c->langues = $data['langues'];\r
+               $c->details = $data['details'];\r
+               $c->utilisateur = $data['utilisateur'];\r
+               $c->revendeur = $data['revendeur'];\r
+               $c->status = $data['status'];\r
+\r
+               if ($data['demande_id'] == 'new' || $data['demande_id'] == '') {\r
+                       $c->date = TIME;\r
+                       $demande_id = $c->demande_id = $this->getNextId();\r
+                       $c->insert();\r
+               } else {\r
+                       $demande_id = $data['demande_id'];\r
+                       $c->update('WHERE demande_id=\'' . $this->con->escape($data['demande_id']) . '\'');\r
+               }\r
+\r
+               return $this->selectById($demande_id);\r
+       }\r
+\r
+       public function count()\r
+       {\r
+               $r = $this->con->select('SELECT COUNT(*) AS nb FROM demandes WHERE ' . $this->makeWhereFromFiltres());\r
+               return $r->nb;\r
+       }\r
+\r
+       protected function makeWhereFromFiltres()\r
+       {\r
+               if (!is_null($this->filtres)) {\r
+                       $w = array('1=1');\r
+                       if (commonFiltre::test('status_demande', $this->filtres)) {\r
+                               $w[] = 'status IN(' . implode(',', array_keys($this->filtres['status_demande'])) . ')';\r
+                       }\r
+                       return implode(' AND ', $w);\r
+               } else {\r
+                       return '1=1';\r
+               }\r
+       }\r
 }\r
 \r
 ?>
\ No newline at end of file