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
$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
$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
$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
$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
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
$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
}\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
}\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
<?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