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